{"name":"azuredevops","displayName":"Azure DevOps","version":"3.14.0","description":"A Pulumi package for creating and managing Azure DevOps.","keywords":["pulumi","azuredevops"],"homepage":"https://pulumi.io","license":"Apache-2.0","attribution":"This Pulumi package is based on the [`azuredevops` Terraform Provider](https://github.com/microsoft/terraform-provider-azuredevops).","repository":"https://github.com/pulumi/pulumi-azuredevops","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"packageReferences":{"Pulumi":"3.*"},"namespaces":{"azuredevops":"AzureDevOps"},"compatibility":"tfbridge20","respectSchemaVersion":true},"go":{"importBasePath":"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops","generateResourceContainerTypes":true,"generateExtraInputTypes":true,"respectSchemaVersion":true},"nodejs":{"packageDescription":"A Pulumi package for creating and managing Azure DevOps.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/microsoft/terraform-provider-azuredevops)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-azuredevops` repo](https://github.com/pulumi/pulumi-azuredevops/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-azuredevops` repo](https://github.com/microsoft/terraform-provider-azuredevops/issues).","devDependencies":{"@types/mime":"^2.0.0","@types/node":"^10.0.0"},"compatibility":"tfbridge20","disableUnionOutputTypes":true,"respectSchemaVersion":true},"python":{"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/microsoft/terraform-provider-azuredevops)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-azuredevops` repo](https://github.com/pulumi/pulumi-azuredevops/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-azuredevops` repo](https://github.com/microsoft/terraform-provider-azuredevops/issues).","compatibility":"tfbridge20","respectSchemaVersion":true,"pyproject":{"enabled":true},"inputTypes":"classes-and-dicts"}},"config":{"variables":{"auxiliaryTenantIds":{"type":"array","items":{"type":"string"},"description":"List of auxiliary Tenant IDs required for multi-tenancy and cross-tenant scenarios."},"clientCertificate":{"type":"string","description":"Base64 encoded certificate to use to authenticate to the service principal.","secret":true},"clientCertificatePassword":{"type":"string","description":"Password for a client certificate password.","secret":true},"clientCertificatePath":{"type":"string","description":"Path to a certificate to use to authenticate to the service principal."},"clientId":{"type":"string","description":"The service principal client id which should be used for AAD auth."},"clientIdFilePath":{"type":"string","description":"The path to a file containing the Client ID which should be used."},"clientSecret":{"type":"string","description":"Client secret for authenticating to  a service principal.","secret":true},"clientSecretPath":{"type":"string","description":"Path to a file containing a client secret for authenticating to  a service principal."},"oidcAzureServiceConnectionId":{"type":"string","description":"The Azure Pipelines Service Connection ID to use for authentication."},"oidcRequestToken":{"type":"string","description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidcRequestUrl":{"type":"string","description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidcToken":{"type":"string","description":"OIDC token to authenticate as a service principal.","secret":true},"oidcTokenFilePath":{"type":"string","description":"OIDC token from file to authenticate as a service principal."},"orgServiceUrl":{"type":"string","description":"The url of the Azure DevOps instance which should be used.","defaultInfo":{"environment":["AZDO_ORG_SERVICE_URL"]}},"personalAccessToken":{"type":"string","description":"The personal access token which should be used.","secret":true},"tenantId":{"type":"string","description":"The service principal tenant id which should be used for AAD auth."},"useCli":{"type":"boolean","description":"Use Azure CLI to authenticate. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"useMsi":{"type":"boolean","description":"Use an Azure Managed Service Identity. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."},"useOidc":{"type":"boolean","description":"Use an OIDC token to authenticate to a service principal. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."}}},"types":{"azuredevops:index/BranchPolicyAutoReviewersSettings:BranchPolicyAutoReviewersSettings":{"properties":{"autoReviewerIds":{"type":"array","items":{"type":"string"},"description":"Required reviewers ids. Supports multiples user Ids.\n"},"message":{"type":"string","description":"Activity feed message, Message will appear in the activity feed of pull requests with automatically added reviewers.\n"},"minimumNumberOfReviewers":{"type":"integer","description":"Minimum number of required reviewers. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n\n\u003e **Note** Has to be greater than \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e. Can only be greater than \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e when attribute \u003cspan pulumi-lang-nodejs=\"`autoReviewerIds`\" pulumi-lang-dotnet=\"`AutoReviewerIds`\" pulumi-lang-go=\"`autoReviewerIds`\" pulumi-lang-python=\"`auto_reviewer_ids`\" pulumi-lang-yaml=\"`autoReviewerIds`\" pulumi-lang-java=\"`autoReviewerIds`\"\u003e`auto_reviewer_ids`\u003c/span\u003e contains exactly one group! Only has an effect when attribute \u003cspan pulumi-lang-nodejs=\"`blocking`\" pulumi-lang-dotnet=\"`Blocking`\" pulumi-lang-go=\"`blocking`\" pulumi-lang-python=\"`blocking`\" pulumi-lang-yaml=\"`blocking`\" pulumi-lang-java=\"`blocking`\"\u003e`blocking`\u003c/span\u003e is set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"pathFilters":{"type":"array","items":{"type":"string"},"description":"Filter path(s) on which the policy is applied. Supports absolute paths, wildcards and multiple paths. Example: /WebApp/Models/Data.cs, /WebApp/* or *.cs,/WebApp/Models/Data.cs;ClientApp/Models/Data.cs.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyAutoReviewersSettingsScope:BranchPolicyAutoReviewersSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"},"submitterCanVote":{"type":"boolean","description":"Controls whether or not the submitter's vote counts. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["autoReviewerIds","scopes"]},"azuredevops:index/BranchPolicyAutoReviewersSettingsScope:BranchPolicyAutoReviewersSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyBuildValidationSettings:BranchPolicyBuildValidationSettings":{"properties":{"buildDefinitionId":{"type":"integer","description":"The ID of the build to monitor for the policy.\n"},"displayName":{"type":"string","description":"The display name for the policy.\n"},"filenamePatterns":{"type":"array","items":{"type":"string"},"description":"If a path filter is set, the policy will only apply when files which match the filter are changes. Not setting this field means that the policy will always apply. You can specify absolute paths and wildcards. Example: `[\"/WebApp/Models/Data.cs\", \"/WebApp/*\", \"*.cs\"]`. Paths prefixed with \"!\" are excluded. Example: `[\"/WebApp/*\", \"!/WebApp/Tests/*\"]`. Order is significant.\n"},"manualQueueOnly":{"type":"boolean","description":"If set to true, the build will need to be manually queued. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"queueOnSourceUpdateOnly":{"type":"boolean","description":"True if the build should queue on source updates only. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyBuildValidationSettingsScope:BranchPolicyBuildValidationSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"},"validDuration":{"type":"integer","description":"The number of minutes for which the build is valid. If \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, the build will not expire. Defaults to \u003cspan pulumi-lang-nodejs=\"`720`\" pulumi-lang-dotnet=\"`720`\" pulumi-lang-go=\"`720`\" pulumi-lang-python=\"`720`\" pulumi-lang-yaml=\"`720`\" pulumi-lang-java=\"`720`\"\u003e`720`\u003c/span\u003e (12 hours).\n\n\u003e **Note** Combine \u003cspan pulumi-lang-nodejs=\"`validDuration`\" pulumi-lang-dotnet=\"`ValidDuration`\" pulumi-lang-go=\"`validDuration`\" pulumi-lang-python=\"`valid_duration`\" pulumi-lang-yaml=\"`validDuration`\" pulumi-lang-java=\"`validDuration`\"\u003e`valid_duration`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`queueOnSourceUpdateOnly`\" pulumi-lang-dotnet=\"`QueueOnSourceUpdateOnly`\" pulumi-lang-go=\"`queueOnSourceUpdateOnly`\" pulumi-lang-python=\"`queue_on_source_update_only`\" pulumi-lang-yaml=\"`queueOnSourceUpdateOnly`\" pulumi-lang-java=\"`queueOnSourceUpdateOnly`\"\u003e`queue_on_source_update_only`\u003c/span\u003e to set the build expiration.\n1.  Expire immediately when branch is updated: `valid_duration=0` and `queue_on_source_update_only=false`\n2.  Expire after a period of time : `valid_duration=360` and `queue_on_source_update_only=true`\n3.  Never expire: `valid_duration=0` and `queue_on_source_update_only=true`\n"}},"type":"object","required":["buildDefinitionId","displayName","scopes"]},"azuredevops:index/BranchPolicyBuildValidationSettingsScope:BranchPolicyBuildValidationSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyCommentResolutionSettings:BranchPolicyCommentResolutionSettings":{"properties":{"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyCommentResolutionSettingsScope:BranchPolicyCommentResolutionSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"}},"type":"object","required":["scopes"]},"azuredevops:index/BranchPolicyCommentResolutionSettingsScope:BranchPolicyCommentResolutionSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyMergeTypesSettings:BranchPolicyMergeTypesSettings":{"properties":{"allowBasicNoFastForward":{"type":"boolean","description":"Allow basic merge with no fast forward. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"allowRebaseAndFastForward":{"type":"boolean","description":"Allow rebase with fast forward. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"allowRebaseWithMerge":{"type":"boolean","description":"Allow rebase with merge commit. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"allowSquash":{"type":"boolean","description":"Allow squash merge. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyMergeTypesSettingsScope:BranchPolicyMergeTypesSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"}},"type":"object","required":["scopes"]},"azuredevops:index/BranchPolicyMergeTypesSettingsScope:BranchPolicyMergeTypesSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyMinReviewersSettings:BranchPolicyMinReviewersSettings":{"properties":{"allowCompletionWithRejectsOrWaits":{"type":"boolean","description":"Allow completion even if some reviewers vote to wait or reject. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"lastPusherCannotApprove":{"type":"boolean","description":"Prohibit the most recent pusher from approving their own changes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"onEachIterationRequireVote":{"type":"boolean","description":"Require at least one approval on every iteration. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **Note:** If \u003cspan pulumi-lang-nodejs=\"`onPushResetAllVotes`\" pulumi-lang-dotnet=\"`OnPushResetAllVotes`\" pulumi-lang-go=\"`onPushResetAllVotes`\" pulumi-lang-python=\"`on_push_reset_all_votes`\" pulumi-lang-yaml=\"`onPushResetAllVotes`\" pulumi-lang-java=\"`onPushResetAllVotes`\"\u003e`on_push_reset_all_votes`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`onPushResetApprovedVotes`\" pulumi-lang-dotnet=\"`OnPushResetApprovedVotes`\" pulumi-lang-go=\"`onPushResetApprovedVotes`\" pulumi-lang-python=\"`on_push_reset_approved_votes`\" pulumi-lang-yaml=\"`onPushResetApprovedVotes`\" pulumi-lang-java=\"`onPushResetApprovedVotes`\"\u003e`on_push_reset_approved_votes`\u003c/span\u003e will be set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. To enable \u003cspan pulumi-lang-nodejs=\"`onPushResetApprovedVotes`\" pulumi-lang-dotnet=\"`OnPushResetApprovedVotes`\" pulumi-lang-go=\"`onPushResetApprovedVotes`\" pulumi-lang-python=\"`on_push_reset_approved_votes`\" pulumi-lang-yaml=\"`onPushResetApprovedVotes`\" pulumi-lang-java=\"`onPushResetApprovedVotes`\"\u003e`on_push_reset_approved_votes`\u003c/span\u003e, you need explicitly set \u003cspan pulumi-lang-nodejs=\"`onPushResetAllVotes`\" pulumi-lang-dotnet=\"`OnPushResetAllVotes`\" pulumi-lang-go=\"`onPushResetAllVotes`\" pulumi-lang-python=\"`on_push_reset_all_votes`\" pulumi-lang-yaml=\"`onPushResetAllVotes`\" pulumi-lang-java=\"`onPushResetAllVotes`\"\u003e`on_push_reset_all_votes`\u003c/span\u003e \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e or not configure.\n"},"onLastIterationRequireVote":{"type":"boolean","description":"On last iteration require vote. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"onPushResetAllVotes":{"type":"boolean","description":"When new changes are pushed reset all code reviewer votes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"onPushResetApprovedVotes":{"type":"boolean","description":"When new changes are pushed reset all approval votes (does not reset votes to reject or wait). Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"reviewerCount":{"type":"integer","description":"The number of reviewers needed to approve.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyMinReviewersSettingsScope:BranchPolicyMinReviewersSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"},"submitterCanVote":{"type":"boolean","description":"Allow requesters to approve their own changes. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["scopes"]},"azuredevops:index/BranchPolicyMinReviewersSettingsScope:BranchPolicyMinReviewersSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyStatusCheckSettings:BranchPolicyStatusCheckSettings":{"properties":{"applicability":{"type":"string","description":"Policy applicability. If policy `applicability=default`, apply unless \"Not Applicable\"\nstatus is posted to the pull request. If policy `applicability=conditional`, policy is applied only after a status\nis posted to the pull request. Possible values \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`conditional`\" pulumi-lang-dotnet=\"`Conditional`\" pulumi-lang-go=\"`conditional`\" pulumi-lang-python=\"`conditional`\" pulumi-lang-yaml=\"`conditional`\" pulumi-lang-java=\"`conditional`\"\u003e`conditional`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`default`\" pulumi-lang-dotnet=\"`Default`\" pulumi-lang-go=\"`default`\" pulumi-lang-python=\"`default`\" pulumi-lang-yaml=\"`default`\" pulumi-lang-java=\"`default`\"\u003e`default`\u003c/span\u003e.\n"},"authorId":{"type":"string","description":"The authorized user can post the status.\n"},"displayName":{"type":"string","description":"The display name.\n"},"filenamePatterns":{"type":"array","items":{"type":"string"},"description":"If a path filter is set, the policy will only apply when files which match the filter are changed. Not setting this field means that the policy is always applied.\n\n~\u003e**NOTE** 1. Specify absolute paths and wildcards. Example: `[\"/WebApp/Models/Data.cs\", \"/WebApp/*\", \"*.cs\"]`.\n\u003cbr\u003e 2. Paths prefixed with \"!\" are excluded. Example: `[\"/WebApp/*\", \"!/WebApp/Tests/*\"]`. Order is significant.\n"},"genre":{"type":"string","description":"The genre of the status to check (see [Microsoft Documentation](https://docs.microsoft.com/en-us/azure/devops/repos/git/pull-request-status?view=azure-devops#status-policy))\n"},"invalidateOnUpdate":{"type":"boolean","description":"Reset status whenever there are new changes.\n"},"name":{"type":"string","description":"The status name to check.\n"},"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyStatusCheckSettingsScope:BranchPolicyStatusCheckSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below.\n"}},"type":"object","required":["name","scopes"]},"azuredevops:index/BranchPolicyStatusCheckSettingsScope:BranchPolicyStatusCheckSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If `match_type=DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If `match_type=Exact`, this should be a qualified ref such as `refs/heads/master`. If `match_type=Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BranchPolicyWorkItemLinkingSettings:BranchPolicyWorkItemLinkingSettings":{"properties":{"scopes":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BranchPolicyWorkItemLinkingSettingsScope:BranchPolicyWorkItemLinkingSettingsScope"},"description":"A \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e block as defined below. Controls which repositories and branches the policy will be enabled for. This block must be defined at least once.\n"}},"type":"object","required":["scopes"]},"azuredevops:index/BranchPolicyWorkItemLinkingSettingsScope:BranchPolicyWorkItemLinkingSettingsScope":{"properties":{"matchType":{"type":"string","description":"The match type to use when applying the policy. Supported values are `Exact` (default), `Prefix` or `DefaultBranch`.\n"},"repositoryId":{"type":"string","description":"The repository ID. Needed only if the scope of the policy will be limited to a single repository. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `DefaultBranch`, this should not be defined.\n"},"repositoryRef":{"type":"string","description":"The ref pattern to use for the match when \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e other than `DefaultBranch`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Exact`, this should be a qualified ref such as `refs/heads/master`. If \u003cspan pulumi-lang-nodejs=\"`matchType`\" pulumi-lang-dotnet=\"`MatchType`\" pulumi-lang-go=\"`matchType`\" pulumi-lang-python=\"`match_type`\" pulumi-lang-yaml=\"`matchType`\" pulumi-lang-java=\"`matchType`\"\u003e`match_type`\u003c/span\u003e is `Prefix`, this should be a ref path such as `refs/heads/releases`.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionBuildCompletionTrigger:BuildDefinitionBuildCompletionTrigger":{"properties":{"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionBuildCompletionTriggerBranchFilter:BuildDefinitionBuildCompletionTriggerBranchFilter"},"description":"The branches to include and exclude from the trigger. A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as documented below.\n"},"buildDefinitionId":{"type":"integer","description":"The ID of the build pipeline will be triggered.\n"}},"type":"object","required":["branchFilters","buildDefinitionId"]},"azuredevops:index/BuildDefinitionBuildCompletionTriggerBranchFilter:BuildDefinitionBuildCompletionTriggerBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionCiTrigger:BuildDefinitionCiTrigger":{"properties":{"override":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTriggerOverride:BuildDefinitionCiTriggerOverride","description":"Override the azure-pipeline file and use a this configuration for all builds.\n"},"useYaml":{"type":"boolean","description":"Use the azure-pipeline file for the build configuration. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionCiTriggerOverride:BuildDefinitionCiTriggerOverride":{"properties":{"batch":{"type":"boolean","description":"If you set batch to true, when a pipeline is running, the system waits until the run is completed, then starts another run with all changes that have not yet been built. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTriggerOverrideBranchFilter:BuildDefinitionCiTriggerOverrideBranchFilter"},"description":"The branches to include and exclude from the trigger. A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as documented below.\n"},"maxConcurrentBuildsPerBranch":{"type":"integer","description":"The number of max builds per branch. Defaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"},"pathFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTriggerOverridePathFilter:BuildDefinitionCiTriggerOverridePathFilter"},"description":"Specify file paths to include or exclude. Note that the wildcard syntax is different between branches/tags and file paths.\n"},"pollingInterval":{"type":"integer","description":"How often the external repository is polled. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"pollingJobId":{"type":"string","description":"This is the ID of the polling job that polls the external repository. Once the build definition is saved/updated, this value is set.\n"}},"type":"object","required":["branchFilters"],"language":{"nodejs":{"requiredOutputs":["branchFilters","pollingJobId"]}}},"azuredevops:index/BuildDefinitionCiTriggerOverrideBranchFilter:BuildDefinitionCiTriggerOverrideBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionCiTriggerOverridePathFilter:BuildDefinitionCiTriggerOverridePathFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of path patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionFeature:BuildDefinitionFeature":{"properties":{"skipFirstRun":{"type":"boolean","description":"Trigger the pipeline to run after the creation. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n\n\u003e **Note** The first run(\u003cspan pulumi-lang-nodejs=\"`skipFirstRun \" pulumi-lang-dotnet=\"`SkipFirstRun \" pulumi-lang-go=\"`skipFirstRun \" pulumi-lang-python=\"`skip_first_run \" pulumi-lang-yaml=\"`skipFirstRun \" pulumi-lang-java=\"`skipFirstRun \"\u003e`skip_first_run \u003c/span\u003e= false`) will only be triggered on create. If the first run fails, the build definition will still be marked as successfully created. A warning message indicating the inability to run pipeline will be displayed.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionJob:BuildDefinitionJob":{"properties":{"allowScriptsAuthAccessOption":{"type":"boolean","description":"Enables scripts and other processes launched by tasks to access the OAuth token through the `System.AccessToken` variable. Possible values: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Available when Job type is `AgentJob`\n"},"condition":{"type":"string","description":"Specifies when this job should run. Can **Custom conditions** to specify more complex conditions. Possible values: `succeeded()`, `succeededOrFailed()`, `always()`, `failed()` etc. More details: [Pipeline conditions](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops)\n"},"dependencies":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionJobDependency:BuildDefinitionJobDependency"},"description":"A \u003cspan pulumi-lang-nodejs=\"`dependencies`\" pulumi-lang-dotnet=\"`Dependencies`\" pulumi-lang-go=\"`dependencies`\" pulumi-lang-python=\"`dependencies`\" pulumi-lang-yaml=\"`dependencies`\" pulumi-lang-java=\"`dependencies`\"\u003e`dependencies`\u003c/span\u003e blocks as documented below. Define the job dependencies.\n"},"jobAuthorizationScope":{"type":"string","description":"The job authorization scope for builds queued against this definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e, `projectCollection`. Defaults to `projectCollection`.\n"},"jobCancelTimeoutInMinutes":{"type":"integer","description":"The job cancel timeout (in minutes) for builds cancelled by user for this definition. Possible values are between \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`60`\" pulumi-lang-dotnet=\"`60`\" pulumi-lang-go=\"`60`\" pulumi-lang-python=\"`60`\" pulumi-lang-yaml=\"`60`\" pulumi-lang-java=\"`60`\"\u003e`60`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"jobTimeoutInMinutes":{"type":"integer","description":"The job execution timeout (in minutes) for builds queued against this definition. Possible values are between \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`1000000000`\" pulumi-lang-dotnet=\"`1000000000`\" pulumi-lang-go=\"`1000000000`\" pulumi-lang-python=\"`1000000000`\" pulumi-lang-yaml=\"`1000000000`\" pulumi-lang-java=\"`1000000000`\"\u003e`1000000000`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the job.\n"},"refName":{"type":"string","description":"The reference name of the job, can be used to define the job dependencies.\n"},"target":{"$ref":"#/types/azuredevops:index/BuildDefinitionJobTarget:BuildDefinitionJobTarget","description":"A \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e blocks as documented below.\n"}},"type":"object","required":["condition","name","refName","target"]},"azuredevops:index/BuildDefinitionJobDependency:BuildDefinitionJobDependency":{"properties":{"scope":{"type":"string","description":"The job reference name that depends on. Reference to `jobs.ref_name`\n"}},"type":"object","required":["scope"]},"azuredevops:index/BuildDefinitionJobTarget:BuildDefinitionJobTarget":{"properties":{"demands":{"type":"array","items":{"type":"string"},"description":"A list of demands that represents the agent capabilities required by this build. Example: \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e\n"},"executionOptions":{"$ref":"#/types/azuredevops:index/BuildDefinitionJobTargetExecutionOptions:BuildDefinitionJobTargetExecutionOptions","description":"A \u003cspan pulumi-lang-nodejs=\"`executionOptions`\" pulumi-lang-dotnet=\"`ExecutionOptions`\" pulumi-lang-go=\"`executionOptions`\" pulumi-lang-python=\"`execution_options`\" pulumi-lang-yaml=\"`executionOptions`\" pulumi-lang-java=\"`executionOptions`\"\u003e`execution_options`\u003c/span\u003e blocks as documented below.\n"},"type":{"type":"string","description":"The job type. Possible values: `AgentJob`, `AgentlessJob`\n"}},"type":"object","required":["executionOptions","type"]},"azuredevops:index/BuildDefinitionJobTargetExecutionOptions:BuildDefinitionJobTargetExecutionOptions":{"properties":{"continueOnError":{"type":"boolean","description":"Whether to continue the job when an error occurs. Possible values are: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"maxConcurrency":{"type":"integer","description":"Limit the number of agents to be used. If job type is `AgentlessJob`, the concurrency is not configurable and is fixed to 50.\n"},"multipliers":{"type":"string","description":"A list of comma separated configuration variables to use. These are defined on the Variables tab. For example, OperatingSystem, Browser will run the tasks for both variables. Available when `execution_options.type` is `Multi-Configuration`.\n"},"type":{"type":"string","description":"The execution type of the Job. Possible values are: `None`, `Multi-Configuration`, `Multi-Agent`.\n"}},"type":"object","required":["type"],"language":{"nodejs":{"requiredOutputs":["maxConcurrency","type"]}}},"azuredevops:index/BuildDefinitionPullRequestTrigger:BuildDefinitionPullRequestTrigger":{"properties":{"commentRequired":{"type":"string"},"forks":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTriggerForks:BuildDefinitionPullRequestTriggerForks","description":"Set permissions for Forked repositories.\n"},"initialBranch":{"type":"string","description":"When\u003cspan pulumi-lang-nodejs=\" useYaml \" pulumi-lang-dotnet=\" UseYaml \" pulumi-lang-go=\" useYaml \" pulumi-lang-python=\" use_yaml \" pulumi-lang-yaml=\" useYaml \" pulumi-lang-java=\" useYaml \"\u003e use_yaml \u003c/span\u003eis true set this to the name of the branch that the azure-pipelines.yml exists on. Defaults to `Managed by Terraform`.\n"},"override":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTriggerOverride:BuildDefinitionPullRequestTriggerOverride","description":"Override the azure-pipeline file and use this configuration for all builds.\n"},"useYaml":{"type":"boolean","description":"Use the azure-pipeline file for the build configuration. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object","required":["forks"]},"azuredevops:index/BuildDefinitionPullRequestTriggerForks:BuildDefinitionPullRequestTriggerForks":{"properties":{"enabled":{"type":"boolean","description":"Build pull requests from forks of this repository.\n"},"shareSecrets":{"type":"boolean","description":"Make secrets available to builds of forks.\n"}},"type":"object","required":["enabled","shareSecrets"]},"azuredevops:index/BuildDefinitionPullRequestTriggerOverride:BuildDefinitionPullRequestTriggerOverride":{"properties":{"autoCancel":{"type":"boolean","description":". Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTriggerOverrideBranchFilter:BuildDefinitionPullRequestTriggerOverrideBranchFilter"},"description":"The branches to include and exclude from the trigger. A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as documented below.\n"},"pathFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTriggerOverridePathFilter:BuildDefinitionPullRequestTriggerOverridePathFilter"},"description":"Specify file paths to include or exclude. Note that the wildcard syntax is different between branches/tags and file paths.\n"}},"type":"object","required":["branchFilters"]},"azuredevops:index/BuildDefinitionPullRequestTriggerOverrideBranchFilter:BuildDefinitionPullRequestTriggerOverrideBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionPullRequestTriggerOverridePathFilter:BuildDefinitionPullRequestTriggerOverridePathFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of path patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionRepository:BuildDefinitionRepository":{"properties":{"branchName":{"type":"string","description":"The branch name for which builds are triggered. Defaults to \u003cspan pulumi-lang-nodejs=\"`master`\" pulumi-lang-dotnet=\"`Master`\" pulumi-lang-go=\"`master`\" pulumi-lang-python=\"`master`\" pulumi-lang-yaml=\"`master`\" pulumi-lang-java=\"`master`\"\u003e`master`\u003c/span\u003e.\n"},"githubEnterpriseUrl":{"type":"string","description":"The Github Enterprise URL. Used if \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `GithubEnterprise`. Conflict with \u003cspan pulumi-lang-nodejs=\"`url`\" pulumi-lang-dotnet=\"`Url`\" pulumi-lang-go=\"`url`\" pulumi-lang-python=\"`url`\" pulumi-lang-yaml=\"`url`\" pulumi-lang-java=\"`url`\"\u003e`url`\u003c/span\u003e\n"},"repoId":{"type":"string","description":"The id of the repository. For `TfsGit` repos, this is simply the ID of the repository. For `Github` repos, this will take the form of `\u003cGitHub Org\u003e/\u003cRepo Name\u003e`. For `Bitbucket` repos, this will take the form of `\u003cWorkspace ID\u003e/\u003cRepo Name\u003e`.\n"},"repoType":{"type":"string","description":"The repository type. Possible values are: `GitHub` or `TfsGit` or `Bitbucket` or `GitHub Enterprise` or `Git`. Defaults to `GitHub`. If \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `GitHubEnterprise`, must use existing project and GitHub Enterprise service connection.\n"},"reportBuildStatus":{"type":"boolean","description":"Report build status. Default is true.\n"},"serviceConnectionId":{"type":"string","description":"The service connection ID. Used if the \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `GitHub` or `GitHubEnterprise`.\n"},"url":{"type":"string","description":"The URL of the Git repository. Used if \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `Git`. Conflict with \u003cspan pulumi-lang-nodejs=\"`githubEnterpriseUrl`\" pulumi-lang-dotnet=\"`GithubEnterpriseUrl`\" pulumi-lang-go=\"`githubEnterpriseUrl`\" pulumi-lang-python=\"`github_enterprise_url`\" pulumi-lang-yaml=\"`githubEnterpriseUrl`\" pulumi-lang-java=\"`githubEnterpriseUrl`\"\u003e`github_enterprise_url`\u003c/span\u003e\n"},"ymlPath":{"type":"string","description":"The path of the Yaml file describing the build definition.\n"}},"type":"object","required":["repoId","repoType"],"language":{"nodejs":{"requiredOutputs":["repoId","repoType","url"]}}},"azuredevops:index/BuildDefinitionSchedule:BuildDefinitionSchedule":{"properties":{"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionScheduleBranchFilter:BuildDefinitionScheduleBranchFilter"},"description":"A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as defined below.\n"},"daysToBuilds":{"type":"array","items":{"type":"string"},"description":"When to build. Possible values are: `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, `Sat`, `Sun`.\n"},"scheduleJobId":{"type":"string","description":"The ID of the schedule job\n"},"scheduleOnlyWithChanges":{"type":"boolean","description":"Schedule builds if the source or pipeline has changed. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"startHours":{"type":"integer","description":"Build start hour. Possible values are: `0 ~ 23`. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"startMinutes":{"type":"integer","description":"Build start minute. Possible values are: `0 ~ 59`. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"timeZone":{"type":"string","description":"Build time zone. Defaults to `(UTC) Coordinated Universal Time`. Possible values are:\n`(UTC-12:00) International Date Line West`,\n`(UTC-11:00) Coordinated Universal Time-11`,\n`(UTC-10:00) Aleutian Islands`,\n`(UTC-10:00) Hawaii`,\n`(UTC-09:30) Marquesas Islands`,\n`(UTC-09:00) Alaska`,\n`(UTC-09:00) Coordinated Universal Time-09`,\n`(UTC-08:00) Baja California`,\n`(UTC-08:00) Coordinated Universal Time-08`,\n`(UTC-08:00) Pacific Time (US \u0026Canada)`,\n`(UTC-07:00) Arizona`,\n`(UTC-07:00) Chihuahua, La Paz, Mazatlan`,\n`(UTC-07:00) Mountain Time (US \u0026Canada)`,\n`(UTC-07:00) Yukon`,\n`(UTC-06:00) Central America`,\n`(UTC-06:00) Central Time (US \u0026Canada)`,\n`(UTC-06:00) Easter Island`,\n`(UTC-06:00) Guadalajara, Mexico City, Monterrey`,\n`(UTC-06:00) Saskatchewan`,\n`(UTC-05:00) Bogota, Lima, Quito, Rio Branco`,\n`(UTC-05:00) Chetumal`,\n`(UTC-05:00) Eastern Time (US \u0026Canada)`,\n`(UTC-05:00) Haiti`,\n`(UTC-05:00) Havana`,\n`(UTC-05:00) Indiana (East)`,\n`(UTC-05:00) Turks and Caicos`,\n`(UTC-04:00) Asuncion`,\n`(UTC-04:00) Atlantic Time (Canada)`,\n`(UTC-04:00) Caracas`,\n`(UTC-04:00) Cuiaba`,\n`(UTC-04:00) Georgetown, La Paz, Manaus, San Juan`,\n`(UTC-04:00) Santiago`,\n`(UTC-03:30) Newfoundland`,\n`(UTC-03:00) Araguaina`,\n`(UTC-03:00) Brasilia`,\n`(UTC-03:00) Cayenne, Fortaleza`,\n`(UTC-03:00) City of Buenos Aires`,\n`(UTC-03:00) Greenland`,\n`(UTC-03:00) Montevideo`,\n`(UTC-03:00) Punta Arenas`,\n`(UTC-03:00) Saint Pierre and Miquelon`,\n`(UTC-03:00) Salvador`,\n`(UTC-02:00) Coordinated Universal Time-02`,\n`(UTC-02:00) Mid-Atlantic - Old`,\n`(UTC-01:00) Azores`,\n`(UTC-01:00) Cabo Verde Is.`,\n`(UTC) Coordinated Universal Time`,\n`(UTC+00:00) Dublin, Edinburgh, Lisbon, London`,\n`(UTC+00:00) Monrovia, Reykjavik`,\n`(UTC+00:00) Sao Tome`,\n`(UTC+01:00) Casablanca`,\n`(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna`,\n`(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague`,\n`(UTC+01:00) Brussels, Copenhagen, Madrid, Paris`,\n`(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb`,\n`(UTC+01:00) West Central Africa`,\n`(UTC+02:00) Amman`,\n`(UTC+02:00) Athens, Bucharest`,\n`(UTC+02:00) Beirut`,\n`(UTC+02:00) Cairo`,\n`(UTC+02:00) Chisinau`,\n`(UTC+02:00) Damascus`,\n`(UTC+02:00) Gaza, Hebron`,\n`(UTC+02:00) Harare, Pretoria`,\n`(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius`,\n`(UTC+02:00) Jerusalem`,\n`(UTC+02:00) Juba`,\n`(UTC+02:00) Kaliningrad`,\n`(UTC+02:00) Khartoum`,\n`(UTC+02:00) Tripoli`,\n`(UTC+02:00) Windhoek`,\n`(UTC+03:00) Baghdad`,\n`(UTC+03:00) Istanbul`,\n`(UTC+03:00) Kuwait, Riyadh`,\n`(UTC+03:00) Minsk`,\n`(UTC+03:00) Moscow, St. Petersburg`,\n`(UTC+03:00) Nairobi`,\n`(UTC+03:00) Volgograd`,\n`(UTC+03:30) Tehran`,\n`(UTC+04:00) Abu Dhabi, Muscat`,\n`(UTC+04:00) Astrakhan, Ulyanovsk`,\n`(UTC+04:00) Baku`,\n`(UTC+04:00) Izhevsk, Samara`,\n`(UTC+04:00) Port Louis`,\n`(UTC+04:00) Saratov`,\n`(UTC+04:00) Tbilisi`,\n`(UTC+04:00) Yerevan`,\n`(UTC+04:30) Kabul`,\n`(UTC+05:00) Ashgabat, Tashkent`,\n`(UTC+05:00) Ekaterinburg`,\n`(UTC+05:00) Islamabad, Karachi`,\n`(UTC+05:00) Qyzylorda`,\n`(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi`,\n`(UTC+05:30) Sri Jayawardenepura`,\n`(UTC+05:45) Kathmandu`,\n`(UTC+06:00) Astana`,\n`(UTC+06:00) Dhaka`,\n`(UTC+06:00) Omsk`,\n`(UTC+06:30) Yangon (Rangoon)`,\n`(UTC+07:00) Bangkok, Hanoi, Jakarta`,\n`(UTC+07:00) Barnaul, Gorno-Altaysk`,\n`(UTC+07:00) Hovd`,\n`(UTC+07:00) Krasnoyarsk`,\n`(UTC+07:00) Novosibirsk`,\n`(UTC+07:00) Tomsk`,\n`(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi`,\n`(UTC+08:00) Irkutsk`,\n`(UTC+08:00) Kuala Lumpur, Singapore`,\n`(UTC+08:00) Perth`,\n`(UTC+08:00) Taipei`,\n`(UTC+08:00) Ulaanbaatar`,\n`(UTC+08:45) Eucla`,\n`(UTC+09:00) Chita`,\n`(UTC+09:00) Osaka, Sapporo, Tokyo`,\n`(UTC+09:00) Pyongyang`,\n`(UTC+09:00) Seoul`,\n`(UTC+09:00) Yakutsk`,\n`(UTC+09:30) Adelaide`,\n`(UTC+09:30) Darwin`,\n`(UTC+10:00) Brisbane`,\n`(UTC+10:00) Canberra, Melbourne, Sydney`,\n`(UTC+10:00) Guam, Port Moresby`,\n`(UTC+10:00) Hobart`,\n`(UTC+10:00) Vladivostok`,\n`(UTC+10:30) Lord Howe Island`,\n`(UTC+11:00) Bougainville Island`,\n`(UTC+11:00) Chokurdakh`,\n`(UTC+11:00) Magadan`,\n`(UTC+11:00) Norfolk Island`,\n`(UTC+11:00) Sakhalin`,\n`(UTC+11:00) Solomon Is., New Caledonia`,\n`(UTC+12:00) Anadyr, Petropavlovsk-Kamchatsky`,\n`(UTC+12:00) Auckland, Wellington`,\n`(UTC+12:00) Coordinated Universal Time+12`,\n`(UTC+12:00) Fiji`,\n`(UTC+12:00) Petropavlovsk-Kamchatsky - Old`,\n`(UTC+12:45) Chatham Islands`,\n`(UTC+13:00) Coordinated Universal Time+13`,\n`(UTC+13:00) Nuku'alofa`,\n`(UTC+13:00) Samoa`,\n`(UTC+14:00) Kiritimati Island`.\n"}},"type":"object","required":["branchFilters","daysToBuilds"],"language":{"nodejs":{"requiredOutputs":["branchFilters","daysToBuilds","scheduleJobId"]}}},"azuredevops:index/BuildDefinitionScheduleBranchFilter:BuildDefinitionScheduleBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"List of branch patterns to include.\n"}},"type":"object"},"azuredevops:index/BuildDefinitionVariable:BuildDefinitionVariable":{"properties":{"allowOverride":{"type":"boolean","description":"True if the variable can be overridden. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"isSecret":{"type":"boolean","description":"True if the variable is a secret. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the variable.\n"},"secretValue":{"type":"string","description":"The secret value of the variable. Used when \u003cspan pulumi-lang-nodejs=\"`isSecret`\" pulumi-lang-dotnet=\"`IsSecret`\" pulumi-lang-go=\"`isSecret`\" pulumi-lang-python=\"`is_secret`\" pulumi-lang-yaml=\"`isSecret`\" pulumi-lang-java=\"`isSecret`\"\u003e`is_secret`\u003c/span\u003e set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["name"]},"azuredevops:index/CheckRequiredTemplateRequiredTemplate:CheckRequiredTemplateRequiredTemplate":{"properties":{"repositoryName":{"type":"string","description":"The name of the repository storing the template.\n"},"repositoryRef":{"type":"string","description":"The branch in which the template will be referenced.\n"},"repositoryType":{"type":"string","description":"The type of the repository storing the template. Possible values are: \u003cspan pulumi-lang-nodejs=\"`azuregit`\" pulumi-lang-dotnet=\"`Azuregit`\" pulumi-lang-go=\"`azuregit`\" pulumi-lang-python=\"`azuregit`\" pulumi-lang-yaml=\"`azuregit`\" pulumi-lang-java=\"`azuregit`\"\u003e`azuregit`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`github`\" pulumi-lang-dotnet=\"`Github`\" pulumi-lang-go=\"`github`\" pulumi-lang-python=\"`github`\" pulumi-lang-yaml=\"`github`\" pulumi-lang-java=\"`github`\"\u003e`github`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`githubenterprise`\" pulumi-lang-dotnet=\"`Githubenterprise`\" pulumi-lang-go=\"`githubenterprise`\" pulumi-lang-python=\"`githubenterprise`\" pulumi-lang-yaml=\"`githubenterprise`\" pulumi-lang-java=\"`githubenterprise`\"\u003e`githubenterprise`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`bitbucket`\" pulumi-lang-dotnet=\"`Bitbucket`\" pulumi-lang-go=\"`bitbucket`\" pulumi-lang-python=\"`bitbucket`\" pulumi-lang-yaml=\"`bitbucket`\" pulumi-lang-java=\"`bitbucket`\"\u003e`bitbucket`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`azuregit`\" pulumi-lang-dotnet=\"`Azuregit`\" pulumi-lang-go=\"`azuregit`\" pulumi-lang-python=\"`azuregit`\" pulumi-lang-yaml=\"`azuregit`\" pulumi-lang-java=\"`azuregit`\"\u003e`azuregit`\u003c/span\u003e.\n"},"templatePath":{"type":"string","description":"The path to the template yaml.\n"}},"type":"object","required":["repositoryName","repositoryRef","templatePath"]},"azuredevops:index/FeedFeature:FeedFeature":{"properties":{"permanentDelete":{"type":"boolean","description":"Determines if Feed should be Permanently removed, Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"restore":{"type":"boolean","description":"Determines if Feed should be Restored during creation (if possible), Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object"},"azuredevops:index/GitInitialization:GitInitialization":{"properties":{"initType":{"type":"string","description":"The type of repository to create. Valid values: `Uninitialized`, `Clean` or `Import`.\n"},"password":{"type":"string","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nThe password used to authenticate to a private repository for import initialization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`serviceConnectionId`\" pulumi-lang-dotnet=\"`ServiceConnectionId`\" pulumi-lang-go=\"`serviceConnectionId`\" pulumi-lang-python=\"`service_connection_id`\" pulumi-lang-yaml=\"`serviceConnectionId`\" pulumi-lang-java=\"`serviceConnectionId`\"\u003e`service_connection_id`\u003c/span\u003e. Note: This is a write-only attribute, which allows ephemeral resources to be used.\n\n~\u003e**Note** At least \u003cspan pulumi-lang-nodejs=\"`serviceConnectionId`\" pulumi-lang-dotnet=\"`ServiceConnectionId`\" pulumi-lang-go=\"`serviceConnectionId`\" pulumi-lang-python=\"`service_connection_id`\" pulumi-lang-yaml=\"`serviceConnectionId`\" pulumi-lang-java=\"`serviceConnectionId`\"\u003e`service_connection_id`\u003c/span\u003e or `username/password` needs to be set to import private repository.\n","secret":true},"serviceConnectionId":{"type":"string","description":"The ID of service connection used to authenticate to a private repository for import initialization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e.\n"},"sourceType":{"type":"string","description":"Type of the source repository. Used if the \u003cspan pulumi-lang-nodejs=\"`initType`\" pulumi-lang-dotnet=\"`InitType`\" pulumi-lang-go=\"`initType`\" pulumi-lang-python=\"`init_type`\" pulumi-lang-yaml=\"`initType`\" pulumi-lang-java=\"`initType`\"\u003e`init_type`\u003c/span\u003e is `Import`. Valid values: `Git`.\n"},"sourceUrl":{"type":"string","description":"The URL of the source repository. Used if the \u003cspan pulumi-lang-nodejs=\"`initType`\" pulumi-lang-dotnet=\"`InitType`\" pulumi-lang-go=\"`initType`\" pulumi-lang-python=\"`init_type`\" pulumi-lang-yaml=\"`initType`\" pulumi-lang-java=\"`initType`\"\u003e`init_type`\u003c/span\u003e is `Import`.\n"},"username":{"type":"string","description":"The username used to authenticate to a private repository for import initialization. Conflicts with \u003cspan pulumi-lang-nodejs=\"`serviceConnectionId`\" pulumi-lang-dotnet=\"`ServiceConnectionId`\" pulumi-lang-go=\"`serviceConnectionId`\" pulumi-lang-python=\"`service_connection_id`\" pulumi-lang-yaml=\"`serviceConnectionId`\" pulumi-lang-java=\"`serviceConnectionId`\"\u003e`service_connection_id`\u003c/span\u003e.\n"}},"type":"object","required":["initType"]},"azuredevops:index/ServiceEndpointArtifactoryAuthenticationBasic:ServiceEndpointArtifactoryAuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the Artifactory.\n","secret":true},"username":{"type":"string","description":"The Username of the Artifactory.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceEndpointArtifactoryAuthenticationToken:ServiceEndpointArtifactoryAuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through Artifactory.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceEndpointAzureEcrCredentials:ServiceEndpointAzureEcrCredentials":{"properties":{"serviceprincipalid":{"type":"string","description":"The ID of the Service Principal Application.\n","willReplaceOnChanges":true}},"type":"object","required":["serviceprincipalid"]},"azuredevops:index/ServiceEndpointAzureRMCredentials:ServiceEndpointAzureRMCredentials":{"properties":{"serviceprincipalcertificate":{"type":"string","description":"The service principal certificate. This not required if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`.\n","secret":true},"serviceprincipalid":{"type":"string","description":"The service principal application ID\n"},"serviceprincipalkey":{"type":"string","description":"The service principal secret. This not required if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`.\n","secret":true}},"type":"object","required":["serviceprincipalid"]},"azuredevops:index/ServiceEndpointAzureRMFeatures:ServiceEndpointAzureRMFeatures":{"properties":{"validate":{"type":"boolean","description":"Whether or not to validate connection with Azure after create or update operations. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object"},"azuredevops:index/ServiceEndpointGitHubAuthOauth:ServiceEndpointGitHubAuthOauth":{"properties":{"oauthConfigurationId":{"type":"string","description":"The OAuth Configuration ID.\n\n~\u003e**NOTE:** GitHub OAuth flow can not be performed via terraform. You must create this on Azure DevOps and then import it.\n"}},"type":"object","required":["oauthConfigurationId"]},"azuredevops:index/ServiceEndpointGitHubAuthPersonal:ServiceEndpointGitHubAuthPersonal":{"properties":{"personalAccessToken":{"type":"string","description":"The Personal Access Token for GitHub.\n","secret":true}},"type":"object","required":["personalAccessToken"]},"azuredevops:index/ServiceEndpointGitHubEnterpriseAuthOauth:ServiceEndpointGitHubEnterpriseAuthOauth":{"properties":{"oauthConfigurationId":{"type":"string","description":"The OAuth Configuration ID.\n"}},"type":"object","required":["oauthConfigurationId"]},"azuredevops:index/ServiceEndpointGitHubEnterpriseAuthPersonal:ServiceEndpointGitHubEnterpriseAuthPersonal":{"properties":{"personalAccessToken":{"type":"string","description":"The Personal Access Token for GitHub.\n","secret":true}},"type":"object","required":["personalAccessToken"]},"azuredevops:index/ServiceEndpointKubernetesAzureSubscription:ServiceEndpointKubernetesAzureSubscription":{"properties":{"azureEnvironment":{"type":"string","description":"Azure environment refers to whether the public cloud offering or domestic (government) clouds are being used. Currently, only the public cloud is supported. The value must be AzureCloud. This is also the default-value.\n"},"clusterAdmin":{"type":"boolean","description":"Set this option to allow use cluster admin credentials.\n","willReplaceOnChanges":true},"clusterName":{"type":"string","description":"The name of the Kubernetes cluster.\n"},"namespace":{"type":"string","description":"The Kubernetes namespace. Default value is \"default\".\n"},"resourcegroupId":{"type":"string","description":"The resource group name, to which the Kubernetes cluster is deployed.\n"},"subscriptionId":{"type":"string","description":"The id of the Azure subscription.\n"},"subscriptionName":{"type":"string","description":"The name of the Azure subscription.\n"},"tenantId":{"type":"string","description":"The id of the tenant used by the subscription.\n"}},"type":"object","required":["clusterName","resourcegroupId","subscriptionId","subscriptionName","tenantId"]},"azuredevops:index/ServiceEndpointKubernetesKubeconfig:ServiceEndpointKubernetesKubeconfig":{"properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Set this option to allow clients to accept a self-signed certificate.\n"},"clusterContext":{"type":"string","description":"Context within the kubeconfig file that is to be used for identifying the cluster. Default value is the current-context set in kubeconfig.\n"},"kubeConfig":{"type":"string","description":"The content of the kubeconfig in yaml notation to be used to communicate with the API-Server of Kubernetes.\n","secret":true}},"type":"object","required":["kubeConfig"],"language":{"nodejs":{"requiredOutputs":["clusterContext","kubeConfig"]}}},"azuredevops:index/ServiceEndpointKubernetesServiceAccount:ServiceEndpointKubernetesServiceAccount":{"properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Set this option to allow clients to accept a self-signed certificate. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"caCert":{"type":"string","description":"The certificate from a Kubernetes secret object.\n","secret":true},"token":{"type":"string","description":"The token from a Kubernetes secret object.\n","secret":true}},"type":"object","required":["caCert","token"]},"azuredevops:index/ServiceEndpointPipelineAuthPersonal:ServiceEndpointPipelineAuthPersonal":{"properties":{"personalAccessToken":{"type":"string","description":"The Personal Access Token for Azure DevOps Pipeline. It also can be set with AZDO_PERSONAL_ACCESS_TOKEN environment variable.\n","secret":true}},"type":"object","required":["personalAccessToken"]},"azuredevops:index/ServiceEndpointServiceFabricAzureActiveDirectory:ServiceEndpointServiceFabricAzureActiveDirectory":{"properties":{"password":{"type":"string","description":"Password for the Azure Active Directory account.\n","secret":true},"serverCertificateCommonName":{"type":"string","description":"The common name(s) of the cluster's certificate(s). This is used to verify the identity of the cluster. This value overrides the publish profile. Separate multiple common names with a comma (',')\n"},"serverCertificateLookup":{"type":"string","description":"Verification mode for the cluster. Possible values are: `Thumbprint`, `CommonName`.\n"},"serverCertificateThumbprint":{"type":"string","description":"The thumbprint(s) of the cluster's certificate(s). This is used to verify the identity of the cluster. This value overrides the publish profile. Separate multiple thumbprints with a comma (',')\n"},"username":{"type":"string","description":"Specify an Azure Active Directory account.\n"}},"type":"object","required":["password","serverCertificateLookup","username"]},"azuredevops:index/ServiceEndpointServiceFabricCertificate:ServiceEndpointServiceFabricCertificate":{"properties":{"clientCertificate":{"type":"string","description":"Base64 encoding of the cluster's client certificate file.\n","secret":true},"clientCertificatePassword":{"type":"string","description":"Password for the certificate.\n","secret":true},"serverCertificateCommonName":{"type":"string","description":"The common name(s) of the cluster's certificate(s). This is used to verify the identity of the cluster. This value overrides the publish profile. Separate multiple common names with a comma (',')\n"},"serverCertificateLookup":{"type":"string","description":"Verification mode for the cluster. Possible values are: `Thumbprint`, `CommonName`.\n"},"serverCertificateThumbprint":{"type":"string","description":"The thumbprint(s) of the cluster's certificate(s). This is used to verify the identity of the cluster. This value overrides the publish profile. Separate multiple thumbprints with a comma (',')\n"}},"type":"object","required":["clientCertificate","serverCertificateLookup"]},"azuredevops:index/ServiceEndpointServiceFabricNone:ServiceEndpointServiceFabricNone":{"properties":{"clusterSpn":{"type":"string","description":"Fully qualified domain SPN for gMSA account. This is applicable only if \u003cspan pulumi-lang-nodejs=\"`unsecured`\" pulumi-lang-dotnet=\"`Unsecured`\" pulumi-lang-go=\"`unsecured`\" pulumi-lang-python=\"`unsecured`\" pulumi-lang-yaml=\"`unsecured`\" pulumi-lang-java=\"`unsecured`\"\u003e`unsecured`\u003c/span\u003e option is disabled.\n"},"unsecured":{"type":"boolean","description":"Skip using windows security for authentication.\n"}},"type":"object"},"azuredevops:index/ServiceendpointArgocdAuthenticationBasic:ServiceendpointArgocdAuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the ArgoCD.\n","secret":true},"username":{"type":"string","description":"The Username of the ArgoCD.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointArgocdAuthenticationToken:ServiceendpointArgocdAuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through ArgoCD.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointExternaltfsAuthPersonal:ServiceendpointExternaltfsAuthPersonal":{"properties":{"personalAccessToken":{"type":"string","description":"The Personal Access Token for Azure DevOps Organization.\n","secret":true}},"type":"object","required":["personalAccessToken"]},"azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationBasic:ServiceendpointJfrogArtifactoryV2AuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the Artifactory.\n","secret":true},"username":{"type":"string","description":"The Username of the Artifactory.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationToken:ServiceendpointJfrogArtifactoryV2AuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through Artifactory.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationBasic:ServiceendpointJfrogDistributionV2AuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the Artifactory.\n","secret":true},"username":{"type":"string","description":"The Username of the Artifactory.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationToken:ServiceendpointJfrogDistributionV2AuthenticationToken":{"properties":{"token":{"type":"string","description":"The Authentication Token generated through Artifactory.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationBasic:ServiceendpointJfrogPlatformV2AuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the Artifactory.\n","secret":true},"username":{"type":"string","description":"The Username of the  Artifactory.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationToken:ServiceendpointJfrogPlatformV2AuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through Artifactory.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationBasic:ServiceendpointJfrogXrayV2AuthenticationBasic":{"properties":{"password":{"type":"string","description":"The Password of the Artifactory.\n","secret":true},"username":{"type":"string","description":"The Username of the  Artifactory.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationToken:ServiceendpointJfrogXrayV2AuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through Artifactory.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointMavenAuthenticationBasic:ServiceendpointMavenAuthenticationBasic":{"properties":{"password":{"type":"string","description":"The password Maven Repository.\n","secret":true},"username":{"type":"string","description":"The Username of the Maven Repository.\n"}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointMavenAuthenticationToken:ServiceendpointMavenAuthenticationToken":{"properties":{"token":{"type":"string","description":"Authentication Token generated through maven repository.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointOpenshiftAuthBasic:ServiceendpointOpenshiftAuthBasic":{"properties":{"password":{"type":"string","description":"The password of the user.\n","secret":true},"username":{"type":"string","description":"The name of the user.\n","secret":true}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointOpenshiftAuthNone:ServiceendpointOpenshiftAuthNone":{"properties":{"kubeConfig":{"type":"string","description":"The kubectl config\n"}},"type":"object"},"azuredevops:index/ServiceendpointOpenshiftAuthToken:ServiceendpointOpenshiftAuthToken":{"properties":{"token":{"type":"string","description":"The API token.\n"}},"type":"object","required":["token"]},"azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationBasic:ServiceendpointVisualstudiomarketplaceAuthenticationBasic":{"properties":{"password":{"type":"string","description":"The password of the marketplace.\n","secret":true},"username":{"type":"string","description":"The username of the marketplace.\n"}},"type":"object","required":["password","username"]},"azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationToken:ServiceendpointVisualstudiomarketplaceAuthenticationToken":{"properties":{"token":{"type":"string","description":"The Personal Access Token.\n","secret":true}},"type":"object","required":["token"]},"azuredevops:index/ServicehookStorageQueuePipelinesRunStateChangedEvent:ServicehookStorageQueuePipelinesRunStateChangedEvent":{"properties":{"pipelineId":{"type":"string","description":"The pipeline ID that will generate an event. If not specified, all pipelines in the project will trigger the event.\n"},"runResultFilter":{"type":"string","description":"Which run result should generate an event. Only valid if\u003cspan pulumi-lang-nodejs=\" publishedEvent \" pulumi-lang-dotnet=\" PublishedEvent \" pulumi-lang-go=\" publishedEvent \" pulumi-lang-python=\" published_event \" pulumi-lang-yaml=\" publishedEvent \" pulumi-lang-java=\" publishedEvent \"\u003e published_event \u003c/span\u003eis `RunStateChanged`. If not specified, all results will trigger the event.\n"},"runStateFilter":{"type":"string","description":"Which run state should generate an event. Only valid if\u003cspan pulumi-lang-nodejs=\" publishedEvent \" pulumi-lang-dotnet=\" PublishedEvent \" pulumi-lang-go=\" publishedEvent \" pulumi-lang-python=\" published_event \" pulumi-lang-yaml=\" publishedEvent \" pulumi-lang-java=\" publishedEvent \"\u003e published_event \u003c/span\u003eis `RunStateChanged`. If not specified, all states will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookStorageQueuePipelinesStageStateChangedEvent:ServicehookStorageQueuePipelinesStageStateChangedEvent":{"properties":{"pipelineId":{"type":"string","description":"The pipeline ID that will generate an event.\n"},"stageName":{"type":"string","description":"Which stage should generate an event. Only valid if\u003cspan pulumi-lang-nodejs=\" publishedEvent \" pulumi-lang-dotnet=\" PublishedEvent \" pulumi-lang-go=\" publishedEvent \" pulumi-lang-python=\" published_event \" pulumi-lang-yaml=\" publishedEvent \" pulumi-lang-java=\" publishedEvent \"\u003e published_event \u003c/span\u003eis `StageStateChanged`. If not specified, all stages will trigger the event.\n"},"stageResultFilter":{"type":"string","description":"Which stage result should generate an event. Only valid if\u003cspan pulumi-lang-nodejs=\" publishedEvent \" pulumi-lang-dotnet=\" PublishedEvent \" pulumi-lang-go=\" publishedEvent \" pulumi-lang-python=\" published_event \" pulumi-lang-yaml=\" publishedEvent \" pulumi-lang-java=\" publishedEvent \"\u003e published_event \u003c/span\u003eis `StageStateChanged`. If not specified, all results will trigger the event.\n"},"stageStateFilter":{"type":"string","description":"Which stage state should generate an event. Only valid if\u003cspan pulumi-lang-nodejs=\" publishedEvent \" pulumi-lang-dotnet=\" PublishedEvent \" pulumi-lang-go=\" publishedEvent \" pulumi-lang-python=\" published_event \" pulumi-lang-yaml=\" publishedEvent \" pulumi-lang-java=\" publishedEvent \"\u003e published_event \u003c/span\u003eis `StageStateChanged`. If not specified, all states will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsBuildCompleted:ServicehookWebhookTfsBuildCompleted":{"properties":{"buildStatus":{"type":"string","description":"Include only events for completed builds that have a specific completion status. Valid values: `Succeeded`, `PartiallySucceeded`, `Failed`, `Stopped`.\n"},"definitionName":{"type":"string","description":"Include only events for completed builds for a specific pipeline.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsGitPullRequestCommented:ServicehookWebhookTfsGitPullRequestCommented":{"properties":{"branch":{"type":"string","description":"Include only events for pull requests in a specific branch.\n"},"repositoryId":{"type":"string","description":"Include only events for pull requests in a specific repository (repository ID). If not specified, all repositories in the project will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsGitPullRequestCreated:ServicehookWebhookTfsGitPullRequestCreated":{"properties":{"branch":{"type":"string","description":"Include only events for pull requests in a specific branch.\n"},"pullRequestCreatedBy":{"type":"string","description":"Include only events for pull requests created by users in a specific group.\n"},"pullRequestReviewersContains":{"type":"string","description":"Include only events for pull requests with reviewers in a specific group.\n"},"repositoryId":{"type":"string","description":"Include only events for pull requests in a specific repository (repository ID). If not specified, all repositories in the project will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsGitPullRequestMergeAttempted:ServicehookWebhookTfsGitPullRequestMergeAttempted":{"properties":{"branch":{"type":"string","description":"Include only events for pull requests in a specific branch.\n"},"mergeResult":{"type":"string","description":"Include only events for pull requests with a specific merge result. Valid values: `Succeeded`, `Unsuccessful`, `Conflicts`, `Failure`, `RejectedByPolicy`.\n"},"pullRequestCreatedBy":{"type":"string","description":"Include only events for pull requests created by users in a specific group.\n"},"pullRequestReviewersContains":{"type":"string","description":"Include only events for pull requests with reviewers in a specific group.\n"},"repositoryId":{"type":"string","description":"Include only events for pull requests in a specific repository (repository ID). If not specified, all repositories in the project will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsGitPullRequestUpdated:ServicehookWebhookTfsGitPullRequestUpdated":{"properties":{"branch":{"type":"string","description":"Include only events for pull requests in a specific branch.\n"},"notificationType":{"type":"string","description":"Include only events for pull requests with a specific change. Valid values: `PushNotification`, `ReviewersUpdateNotification`, `StatusUpdateNotification`, `ReviewerVoteNotification`.\n"},"pullRequestCreatedBy":{"type":"string","description":"Include only events for pull requests created by users in a specific group.\n"},"pullRequestReviewersContains":{"type":"string","description":"Include only events for pull requests with reviewers in a specific group.\n"},"repositoryId":{"type":"string","description":"Include only events for pull requests in a specific repository (repository ID). If not specified, all repositories in the project will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsGitPush:ServicehookWebhookTfsGitPush":{"properties":{"branch":{"type":"string","description":"Include only events for code pushes to a specific branch.\n"},"pushedBy":{"type":"string","description":"Include only events for code pushes by users in a specific group.\n"},"repositoryId":{"type":"string","description":"Include only events for code pushes to a specific repository (repository ID). If not specified, all repositories in the project will trigger the event.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsRepositoryCreated:ServicehookWebhookTfsRepositoryCreated":{"properties":{"projectId":{"type":"string","description":"Include only events for repositories created in a specific project.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsRepositoryDeleted:ServicehookWebhookTfsRepositoryDeleted":{"properties":{"repositoryId":{"type":"string","description":"Include only events for repositories with a specific repository ID.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsRepositoryForked:ServicehookWebhookTfsRepositoryForked":{"properties":{"repositoryId":{"type":"string","description":"Include only events for repositories with a specific repository ID.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsRepositoryRenamed:ServicehookWebhookTfsRepositoryRenamed":{"properties":{"repositoryId":{"type":"string","description":"Include only events for repositories with a specific repository ID.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsRepositoryStatusChanged:ServicehookWebhookTfsRepositoryStatusChanged":{"properties":{"repositoryId":{"type":"string","description":"Include only events for repositories with a specific repository ID.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsServiceConnectionCreated:ServicehookWebhookTfsServiceConnectionCreated":{"properties":{"projectId":{"type":"string","description":"Include only events for service connections created in a specific project.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsServiceConnectionUpdated:ServicehookWebhookTfsServiceConnectionUpdated":{"properties":{"projectId":{"type":"string","description":"Include only events for service connections updated in a specific project.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsTfvcCheckin:ServicehookWebhookTfsTfvcCheckin":{"properties":{"path":{"type":"string","description":"Include only events for check-ins that change files under a specific path.\n"}},"type":"object","required":["path"]},"azuredevops:index/ServicehookWebhookTfsWorkItemCommented:ServicehookWebhookTfsWorkItemCommented":{"properties":{"areaPath":{"type":"string","description":"Include only events for work items under a specific area path.\n"},"commentPattern":{"type":"string","description":"Include only events for work items with a comment that contains a specific string.\n"},"tag":{"type":"string","description":"Include only events for work items that contain a specific tag.\n"},"workItemType":{"type":"string","description":"Include only events for work items of a specific type.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsWorkItemCreated:ServicehookWebhookTfsWorkItemCreated":{"properties":{"areaPath":{"type":"string","description":"Include only events for work items under a specific area path.\n"},"linksChanged":{"type":"boolean","description":"Include only events for work items with one or more links added or removed.\n"},"tag":{"type":"string","description":"Include only events for work items that contain a specific tag.\n"},"workItemType":{"type":"string","description":"Include only events for work items of a specific type.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsWorkItemDeleted:ServicehookWebhookTfsWorkItemDeleted":{"properties":{"areaPath":{"type":"string","description":"Include only events for work items under a specific area path.\n"},"tag":{"type":"string","description":"Include only events for work items that contain a specific tag.\n"},"workItemType":{"type":"string","description":"Include only events for work items of a specific type.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsWorkItemRestored:ServicehookWebhookTfsWorkItemRestored":{"properties":{"areaPath":{"type":"string","description":"Include only events for work items under a specific area path.\n"},"tag":{"type":"string","description":"Include only events for work items that contain a specific tag.\n"},"workItemType":{"type":"string","description":"Include only events for work items of a specific type.\n"}},"type":"object"},"azuredevops:index/ServicehookWebhookTfsWorkItemUpdated:ServicehookWebhookTfsWorkItemUpdated":{"properties":{"areaPath":{"type":"string","description":"Include only events for work items under a specific area path.\n"},"changedFields":{"type":"string","description":"Include only events for work items with a change in a specific field.\n"},"linksChanged":{"type":"boolean","description":"Include only events for work items with one or more links added or removed.\n"},"tag":{"type":"string","description":"Include only events for work items that contain a specific tag.\n"},"workItemType":{"type":"string","description":"Include only events for work items of a specific type.\n"}},"type":"object"},"azuredevops:index/VariableGroupKeyVault:VariableGroupKeyVault":{"properties":{"name":{"type":"string","description":"The name of the Azure key vault to link secrets from as variables.\n"},"searchDepth":{"type":"integer","description":"Set the Azure Key Vault Secret search depth. Defaults to \u003cspan pulumi-lang-nodejs=\"`20`\" pulumi-lang-dotnet=\"`20`\" pulumi-lang-go=\"`20`\" pulumi-lang-python=\"`20`\" pulumi-lang-yaml=\"`20`\" pulumi-lang-java=\"`20`\"\u003e`20`\u003c/span\u003e.\n"},"serviceEndpointId":{"type":"string","description":"The id of the Azure subscription endpoint to access the key vault.\n"}},"type":"object","required":["name","serviceEndpointId"]},"azuredevops:index/VariableGroupVariable:VariableGroupVariable":{"properties":{"contentType":{"type":"string"},"enabled":{"type":"boolean"},"expires":{"type":"string"},"isSecret":{"type":"boolean","description":"A boolean flag describing if the variable value is sensitive. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The key value used for the variable. Must be unique within the Variable Group.\n"},"secretValue":{"type":"string","description":"The secret value of the variable. If omitted, it will default to empty string. Used when \u003cspan pulumi-lang-nodejs=\"`isSecret`\" pulumi-lang-dotnet=\"`IsSecret`\" pulumi-lang-go=\"`isSecret`\" pulumi-lang-python=\"`is_secret`\" pulumi-lang-yaml=\"`isSecret`\" pulumi-lang-java=\"`isSecret`\"\u003e`is_secret`\u003c/span\u003e set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","secret":true},"value":{"type":"string","description":"The value of the variable. If omitted, it will default to empty string.\n"}},"type":"object","required":["name"],"language":{"nodejs":{"requiredOutputs":["contentType","enabled","expires","name"]}}},"azuredevops:index/WorkitemRelation:WorkitemRelation":{"properties":{"rel":{"type":"string","description":"The type of relationship. For example: `System.LinkTypes.Hierarchy-Reverse` is a parent relationship. More details [item link type](https://learn.microsoft.com/en-us/azure/devops/boards/queries/link-type-reference?view=azure-devops#example).\n"},"url":{"type":"string","description":"The URL of the Work Item.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["rel","url"]}}},"azuredevops:index/WorkitemtrackingFieldSupportedOperation:WorkitemtrackingFieldSupportedOperation":{"properties":{"name":{"type":"string","description":"The friendly name of the field. Changing this forces a new field to be created.\n"},"referenceName":{"type":"string","description":"The reference name of the field (e.g., `Custom.MyField`). Changing this forces a new field to be created.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["name","referenceName"]}}},"azuredevops:index/WorkitemtrackingprocessControlContribution:WorkitemtrackingprocessControlContribution":{"properties":{"contributionId":{"type":"string","description":"The ID of the contribution (extension).\n"},"height":{"type":"integer","description":"The height for the contribution.\n"},"inputs":{"type":"object","additionalProperties":{"type":"string"},"description":"A dictionary holding key value pairs for contribution inputs.\n"},"showOnDeletedWorkItem":{"type":"boolean","description":"A value indicating if the contribution should be shown on deleted work items. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object","required":["contributionId"],"language":{"nodejs":{"requiredOutputs":["contributionId","height"]}}},"azuredevops:index/WorkitemtrackingprocessGroupControl:WorkitemtrackingprocessGroupControl":{"properties":{"contribution":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessGroupControlContribution:WorkitemtrackingprocessGroupControlContribution","description":"Contribution configuration for extension controls. A \u003cspan pulumi-lang-nodejs=\"`contribution`\" pulumi-lang-dotnet=\"`Contribution`\" pulumi-lang-go=\"`contribution`\" pulumi-lang-python=\"`contribution`\" pulumi-lang-yaml=\"`contribution`\" pulumi-lang-java=\"`contribution`\"\u003e`contribution`\u003c/span\u003e block as defined below.\n"},"controlType":{"type":"string","description":"Type of the control (e.g., HtmlFieldControl, FieldControl).\n"},"id":{"type":"string","description":"The ID of the control. This is the field reference name (e.g., System.Description) or the contribution ID for extension controls.\n"},"inherited":{"type":"boolean","description":"A value indicating whether this control has been inherited from a parent layout.\n"},"isContribution":{"type":"boolean","description":"A value indicating if the control is a contribution (extension) control. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"label":{"type":"string","description":"Label for the control.\n"},"metadata":{"type":"string","description":"Inner text of the control.\n"},"order":{"type":"integer","description":"Order in which the group should appear in the section.\n"},"overridden":{"type":"boolean","description":"A value indicating whether this control has been overridden by a child layout.\n"},"readOnly":{"type":"boolean","description":"A value indicating if the control is read only. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"visible":{"type":"boolean","description":"A value indicating if the control should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"watermark":{"type":"string","description":"Watermark text for the textbox.\n"}},"type":"object","required":["id"],"language":{"nodejs":{"requiredOutputs":["controlType","id","inherited","order","overridden"]}}},"azuredevops:index/WorkitemtrackingprocessGroupControlContribution:WorkitemtrackingprocessGroupControlContribution":{"properties":{"contributionId":{"type":"string","description":"The ID of the contribution (extension).\n"},"height":{"type":"integer","description":"The height for the contribution.\n"},"inputs":{"type":"object","additionalProperties":{"type":"string"},"description":"A dictionary holding key value pairs for contribution inputs.\n"},"showOnDeletedWorkItem":{"type":"boolean","description":"A value indicating if the contribution should be shown on deleted work items. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"}},"type":"object","required":["contributionId"],"language":{"nodejs":{"requiredOutputs":["contributionId","height"]}}},"azuredevops:index/WorkitemtrackingprocessPageSection:WorkitemtrackingprocessPageSection":{"properties":{"id":{"type":"string","description":"The ID of the section.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"azuredevops:index/WorkitemtrackingprocessRuleAction:WorkitemtrackingprocessRuleAction":{"properties":{"actionType":{"type":"string","description":"Type of action. Valid values: `makeRequired`, `makeReadOnly`, `setDefaultValue`, `setDefaultFromClock`, `setDefaultFromField`, `copyValue`, `copyFromClock`, `copyFromCurrentUser`, `copyFromField`, `setValueToEmpty`, `copyFromServerClock`, `copyFromServerCurrentUser`, `hideTargetField`, `disallowValue`.\n"},"targetField":{"type":"string","description":"Field (reference name) to act on.\n"},"value":{"type":"string","description":"Value to set on the target field.\n"}},"type":"object","required":["actionType","targetField"]},"azuredevops:index/WorkitemtrackingprocessRuleCondition:WorkitemtrackingprocessRuleCondition":{"properties":{"conditionType":{"type":"string","description":"Type of condition. Valid values: \u003cspan pulumi-lang-nodejs=\"`when`\" pulumi-lang-dotnet=\"`When`\" pulumi-lang-go=\"`when`\" pulumi-lang-python=\"`when`\" pulumi-lang-yaml=\"`when`\" pulumi-lang-java=\"`when`\"\u003e`when`\u003c/span\u003e, `whenNot`, `whenChanged`, `whenNotChanged`, `whenWas`, `whenCurrentUserIsMemberOfGroup`, `whenCurrentUserIsNotMemberOfGroup`.\n"},"field":{"type":"string","description":"Field reference name for the condition. Required for most condition types.\n"},"value":{"type":"string","description":"Value to match for the condition.\n"}},"type":"object","required":["conditionType"]},"azuredevops:index/WorkitemtrackingprocessWorkitemtypePage:WorkitemtrackingprocessWorkitemtypePage":{"properties":{"id":{"type":"string","description":"The ID of the section.\n"},"pageType":{"type":"string","description":"The type of the page.\n"},"sections":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSection:WorkitemtrackingprocessWorkitemtypePageSection"},"description":"A \u003cspan pulumi-lang-nodejs=\"`sections`\" pulumi-lang-dotnet=\"`Sections`\" pulumi-lang-go=\"`sections`\" pulumi-lang-python=\"`sections`\" pulumi-lang-yaml=\"`sections`\" pulumi-lang-java=\"`sections`\"\u003e`sections`\u003c/span\u003e block as defined below.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id","pageType","sections"]}}},"azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSection:WorkitemtrackingprocessWorkitemtypePageSection":{"properties":{"groups":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSectionGroup:WorkitemtrackingprocessWorkitemtypePageSectionGroup"},"description":"A \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e block as defined above.\n"},"id":{"type":"string","description":"The ID of the section.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["groups","id"]}}},"azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSectionGroup:WorkitemtrackingprocessWorkitemtypePageSectionGroup":{"properties":{"controls":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSectionGroupControl:WorkitemtrackingprocessWorkitemtypePageSectionGroupControl"},"description":"A \u003cspan pulumi-lang-nodejs=\"`controls`\" pulumi-lang-dotnet=\"`Controls`\" pulumi-lang-go=\"`controls`\" pulumi-lang-python=\"`controls`\" pulumi-lang-yaml=\"`controls`\" pulumi-lang-java=\"`controls`\"\u003e`controls`\u003c/span\u003e block as defined above.\n"},"id":{"type":"string","description":"The ID of the section.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["controls","id"]}}},"azuredevops:index/WorkitemtrackingprocessWorkitemtypePageSectionGroupControl:WorkitemtrackingprocessWorkitemtypePageSectionGroupControl":{"properties":{"id":{"type":"string","description":"The ID of the section.\n"}},"type":"object","language":{"nodejs":{"requiredOutputs":["id"]}}},"azuredevops:index/getAreaChildren:getAreaChildren":{"properties":{"hasChildren":{"type":"boolean","description":"Indicator if the child Area node has child nodes\n"},"id":{"type":"string","description":"The ID of the child Area node\n"},"name":{"type":"string","description":"The name of the child Area node\n"},"path":{"type":"string","description":"The path to the Area; _Format_: URL relative; if omitted, or value `\"/\"` is used, the root Area will be returned\n"},"projectId":{"type":"string","description":"The project ID.\n"}},"type":"object","required":["hasChildren","id","name","path","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionCiTrigger:getBuildDefinitionCiTrigger":{"properties":{"overrides":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionCiTriggerOverride:getBuildDefinitionCiTriggerOverride"},"description":"A \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e block as defined below.\n"},"useYaml":{"type":"boolean","description":"Use the azure-pipeline file for the build configuration.\n"}},"type":"object","required":["overrides","useYaml"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionCiTriggerOverride:getBuildDefinitionCiTriggerOverride":{"properties":{"batch":{"type":"boolean","description":"If batch is true, when a pipeline is running, the system waits until the run is completed, then starts another run with all changes that have not yet been built.\n"},"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionCiTriggerOverrideBranchFilter:getBuildDefinitionCiTriggerOverrideBranchFilter"},"description":"A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as defined above.\n"},"maxConcurrentBuildsPerBranch":{"type":"integer","description":"The number of max builds per branch.\n"},"pathFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionCiTriggerOverridePathFilter:getBuildDefinitionCiTriggerOverridePathFilter"},"description":"The file paths to include or exclude. A \u003cspan pulumi-lang-nodejs=\"`pathFilter`\" pulumi-lang-dotnet=\"`PathFilter`\" pulumi-lang-go=\"`pathFilter`\" pulumi-lang-python=\"`path_filter`\" pulumi-lang-yaml=\"`pathFilter`\" pulumi-lang-java=\"`pathFilter`\"\u003e`path_filter`\u003c/span\u003e block as defined above.\n"},"pollingInterval":{"type":"integer","description":"How often the external repository is polled.\n"},"pollingJobId":{"type":"string","description":"This is the ID of the polling job that polls the external repository. Once the build definition is saved/updated, this value is set.\n"}},"type":"object","required":["batch","branchFilters","maxConcurrentBuildsPerBranch","pathFilters","pollingInterval","pollingJobId"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionCiTriggerOverrideBranchFilter:getBuildDefinitionCiTriggerOverrideBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to include.\n"}},"type":"object","required":["excludes","includes"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionCiTriggerOverridePathFilter:getBuildDefinitionCiTriggerOverridePathFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to include.\n"}},"type":"object","required":["excludes","includes"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionJob:getBuildDefinitionJob":{"properties":{"allowScriptsAuthAccessOption":{"type":"boolean","description":"Enables scripts and other processes launched by tasks to access the OAuth token through the `System.AccessToken` variable.\n"},"condition":{"type":"string","description":"Specifies when this job should run. Can **Custom conditions** to specify more complex conditions. More details: [Pipeline conditions](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops)\n"},"dependencies":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionJobDependency:getBuildDefinitionJobDependency"},"description":"A \u003cspan pulumi-lang-nodejs=\"`dependencies`\" pulumi-lang-dotnet=\"`Dependencies`\" pulumi-lang-go=\"`dependencies`\" pulumi-lang-python=\"`dependencies`\" pulumi-lang-yaml=\"`dependencies`\" pulumi-lang-java=\"`dependencies`\"\u003e`dependencies`\u003c/span\u003e blocks as documented below. Define the job dependencies.\n"},"jobAuthorizationScope":{"type":"string","description":"The job authorization scope for builds queued against this definition.\n"},"jobCancelTimeoutInMinutes":{"type":"integer","description":"The job cancel timeout (in minutes) for builds cancelled by user for this definition.\n"},"jobTimeoutInMinutes":{"type":"integer","description":"The job execution timeout (in minutes) for builds queued against this definition.\n"},"name":{"type":"string","description":"The name of this Build Definition.\n"},"refName":{"type":"string","description":"The reference name of the job, can be used to define the job dependencies.\n"},"targets":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionJobTarget:getBuildDefinitionJobTarget"},"description":"A \u003cspan pulumi-lang-nodejs=\"`target`\" pulumi-lang-dotnet=\"`Target`\" pulumi-lang-go=\"`target`\" pulumi-lang-python=\"`target`\" pulumi-lang-yaml=\"`target`\" pulumi-lang-java=\"`target`\"\u003e`target`\u003c/span\u003e blocks as documented below.\n"}},"type":"object","required":["allowScriptsAuthAccessOption","condition","dependencies","jobAuthorizationScope","jobCancelTimeoutInMinutes","jobTimeoutInMinutes","name","refName","targets"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionJobDependency:getBuildDefinitionJobDependency":{"properties":{"scope":{"type":"string","description":"The job reference name that depends on. Reference to `jobs.ref_name`\n"}},"type":"object","required":["scope"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionJobTarget:getBuildDefinitionJobTarget":{"properties":{"demands":{"type":"array","items":{"type":"string"},"description":"A list of demands that represents the agent capabilities required by this build. Example: \u003cspan pulumi-lang-nodejs=\"`git`\" pulumi-lang-dotnet=\"`Git`\" pulumi-lang-go=\"`git`\" pulumi-lang-python=\"`git`\" pulumi-lang-yaml=\"`git`\" pulumi-lang-java=\"`git`\"\u003e`git`\u003c/span\u003e\n"},"executionOptions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionJobTargetExecutionOption:getBuildDefinitionJobTargetExecutionOption"},"description":"A \u003cspan pulumi-lang-nodejs=\"`executionOptions`\" pulumi-lang-dotnet=\"`ExecutionOptions`\" pulumi-lang-go=\"`executionOptions`\" pulumi-lang-python=\"`execution_options`\" pulumi-lang-yaml=\"`executionOptions`\" pulumi-lang-java=\"`executionOptions`\"\u003e`execution_options`\u003c/span\u003e blocks as documented below.\n"},"type":{"type":"string","description":"The execution type of the Job.\n"}},"type":"object","required":["demands","executionOptions","type"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionJobTargetExecutionOption:getBuildDefinitionJobTargetExecutionOption":{"properties":{"continueOnError":{"type":"boolean","description":"Whether to continue the job when an error occurs.\n"},"maxConcurrency":{"type":"integer","description":"Limit the number of agents to be used. If job type is `AgentlessJob`, the concurrency is not configurable and is fixed to 50.\n"},"multipliers":{"type":"string","description":"A list of comma separated configuration variables to use. These are defined on the Variables tab. For example, OperatingSystem, Browser will run the tasks for both variables.\n"},"type":{"type":"string","description":"The execution type of the Job.\n"}},"type":"object","required":["continueOnError","maxConcurrency","multipliers","type"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionPullRequestTrigger:getBuildDefinitionPullRequestTrigger":{"properties":{"commentRequired":{"type":"string","description":"Is a comment required on the PR?\n"},"forks":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionPullRequestTriggerFork:getBuildDefinitionPullRequestTriggerFork"},"description":"A \u003cspan pulumi-lang-nodejs=\"`forks`\" pulumi-lang-dotnet=\"`Forks`\" pulumi-lang-go=\"`forks`\" pulumi-lang-python=\"`forks`\" pulumi-lang-yaml=\"`forks`\" pulumi-lang-java=\"`forks`\"\u003e`forks`\u003c/span\u003e block as defined above.\n"},"initialBranch":{"type":"string","description":"When\u003cspan pulumi-lang-nodejs=\" useYaml \" pulumi-lang-dotnet=\" UseYaml \" pulumi-lang-go=\" useYaml \" pulumi-lang-python=\" use_yaml \" pulumi-lang-yaml=\" useYaml \" pulumi-lang-java=\" useYaml \"\u003e use_yaml \u003c/span\u003eis true set this to the name of the branch that the azure-pipelines.yml exists on.\n"},"overrides":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionPullRequestTriggerOverride:getBuildDefinitionPullRequestTriggerOverride"},"description":"A \u003cspan pulumi-lang-nodejs=\"`override`\" pulumi-lang-dotnet=\"`Override`\" pulumi-lang-go=\"`override`\" pulumi-lang-python=\"`override`\" pulumi-lang-yaml=\"`override`\" pulumi-lang-java=\"`override`\"\u003e`override`\u003c/span\u003e block as defined below.\n"},"useYaml":{"type":"boolean","description":"Use the azure-pipeline file for the build configuration.\n"}},"type":"object","required":["commentRequired","forks","initialBranch","overrides","useYaml"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionPullRequestTriggerFork:getBuildDefinitionPullRequestTriggerFork":{"properties":{"enabled":{"type":"boolean","description":"Build pull requests from forks of this repository.\n"},"shareSecrets":{"type":"boolean","description":"Make secrets available to builds of forks.\n"}},"type":"object","required":["enabled","shareSecrets"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionPullRequestTriggerOverride:getBuildDefinitionPullRequestTriggerOverride":{"properties":{"autoCancel":{"type":"boolean","description":"Should further updates to a PR cancel an in progress validation?\n"},"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionPullRequestTriggerOverrideBranchFilter:getBuildDefinitionPullRequestTriggerOverrideBranchFilter"},"description":"A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as defined above.\n"},"pathFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionPullRequestTriggerOverridePathFilter:getBuildDefinitionPullRequestTriggerOverridePathFilter"},"description":"The file paths to include or exclude. A \u003cspan pulumi-lang-nodejs=\"`pathFilter`\" pulumi-lang-dotnet=\"`PathFilter`\" pulumi-lang-go=\"`pathFilter`\" pulumi-lang-python=\"`path_filter`\" pulumi-lang-yaml=\"`pathFilter`\" pulumi-lang-java=\"`pathFilter`\"\u003e`path_filter`\u003c/span\u003e block as defined above.\n"}},"type":"object","required":["autoCancel","branchFilters","pathFilters"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionPullRequestTriggerOverrideBranchFilter:getBuildDefinitionPullRequestTriggerOverrideBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to include.\n"}},"type":"object","required":["excludes","includes"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionPullRequestTriggerOverridePathFilter:getBuildDefinitionPullRequestTriggerOverridePathFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to include.\n"}},"type":"object","required":["excludes","includes"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionRepository:getBuildDefinitionRepository":{"properties":{"branchName":{"type":"string","description":"The branch name for which builds are triggered.\n"},"githubEnterpriseUrl":{"type":"string","description":"The Github Enterprise URL.\n"},"repoId":{"type":"string","description":"The id of the repository.\n"},"repoType":{"type":"string","description":"The repository type.\n"},"reportBuildStatus":{"type":"boolean","description":"Report build status.\n"},"serviceConnectionId":{"type":"string","description":"The service connection ID.\n"},"url":{"type":"string"},"ymlPath":{"type":"string","description":"The path of the Yaml file describing the build definition.\n"}},"type":"object","required":["branchName","githubEnterpriseUrl","repoId","repoType","reportBuildStatus","serviceConnectionId","url","ymlPath"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionSchedule:getBuildDefinitionSchedule":{"properties":{"branchFilters":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionScheduleBranchFilter:getBuildDefinitionScheduleBranchFilter"},"description":"A \u003cspan pulumi-lang-nodejs=\"`branchFilter`\" pulumi-lang-dotnet=\"`BranchFilter`\" pulumi-lang-go=\"`branchFilter`\" pulumi-lang-python=\"`branch_filter`\" pulumi-lang-yaml=\"`branchFilter`\" pulumi-lang-java=\"`branchFilter`\"\u003e`branch_filter`\u003c/span\u003e block as defined above.\n"},"daysToBuilds":{"type":"array","items":{"type":"string"},"description":"A list of days to build on.\n"},"scheduleJobId":{"type":"string","description":"The ID of the schedule job.\n"},"scheduleOnlyWithChanges":{"type":"boolean","description":"Schedule builds if the source or pipeline has changed.\n"},"startHours":{"type":"integer","description":"Build start hour.\n"},"startMinutes":{"type":"integer","description":"Build start minute.\n"},"timeZone":{"type":"string","description":"Build time zone.\n"}},"type":"object","required":["branchFilters","daysToBuilds","scheduleJobId","scheduleOnlyWithChanges","startHours","startMinutes","timeZone"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionScheduleBranchFilter:getBuildDefinitionScheduleBranchFilter":{"properties":{"excludes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to exclude.\n"},"includes":{"type":"array","items":{"type":"string"},"description":"(Optional) List of path patterns to include.\n"}},"type":"object","required":["excludes","includes"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getBuildDefinitionVariable:getBuildDefinitionVariable":{"properties":{"allowOverride":{"type":"boolean","description":"\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if the variable can be overridden.\n"},"isSecret":{"type":"boolean","description":"\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e if the variable is a secret.\n"},"name":{"type":"string","description":"The name of this Build Definition.\n"},"secretValue":{"type":"string","description":"The secret value of the variable.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["allowOverride","isSecret","name","secretValue","value"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getGroupsGroup:getGroupsGroup":{"properties":{"description":{"type":"string","description":"A short phrase to help human readers disambiguate groups with similar names\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.\n"},"displayName":{"type":"string","description":"This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.\n"},"domain":{"type":"string","description":"This represents the name of the container of origin for a graph member. (For MSA this is \"Windows Live ID\", for AD the name of the domain, for AAD the tenantID of the directory, for VSTS groups the ScopeId, etc)\n"},"id":{"type":"string","description":"The ID(UUID format) of the group.\n"},"mailAddress":{"type":"string","description":"The email address of record for a given graph member. This may be different than the principal name.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier (ex:AD, AAD, MSA)\n"},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. Linking and unlinking operations can cause this value to change for a user because the user is not backed by a different provider and has a different unique id in the new provider.\n"},"principalName":{"type":"string","description":"This is the PrincipalName of this graph member from the source provider. The source provider may change this field over time and it is not guaranteed to be immutable for the life of the graph member by VSTS.\n"},"url":{"type":"string","description":"This url is the full route to the source resource of this graph subject.\n"}},"type":"object","required":["descriptor","domain","id","origin","principalName","url"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getIdentityGroupsGroup:getIdentityGroupsGroup":{"properties":{"descriptor":{"type":"string","description":"The descriptor of the Identity Group.\n"},"id":{"type":"string","description":"The ID of the Identity Group.\n"},"name":{"type":"string","description":"This is the non-unique display name of the identity subject.\n"},"subjectDescriptor":{"type":"string","description":"The subject descriptor of the identity group.\n"}},"type":"object","required":["descriptor","id","name","subjectDescriptor"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getIterationChildren:getIterationChildren":{"properties":{"hasChildren":{"type":"boolean","description":"Indicator if the child Iteration node has child nodes\n"},"id":{"type":"string","description":"The ID of the child Iteration node\n"},"name":{"type":"string","description":"The name of the child Iteration node\n"},"path":{"type":"string","description":"The path to the Iteration, _Format_: URL relative; if omitted, or value `\"/\"` is used, the root Iteration will be returned\n"},"projectId":{"type":"string","description":"The project ID.\n"}},"type":"object","required":["hasChildren","id","name","path","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getPoolsAgentPool:getPoolsAgentPool":{"properties":{"autoProvision":{"type":"boolean","description":"Specifies whether or not a queue should be automatically provisioned for each project collection.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated.\n"},"id":{"type":"integer","description":"The ID of the agent pool.\n"},"name":{"type":"string","description":"The name of the agent pool.\n"},"poolType":{"type":"string","description":"Specifies whether the agent pool type is Automation or Deployment.\n"}},"type":"object","required":["autoProvision","autoUpdate","id","name","poolType"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getProjectsProject:getProjectsProject":{"properties":{"name":{"type":"string","description":"Name of the Project, if not specified all projects will be returned.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"projectUrl":{"type":"string","description":"The Url to the full version of the object.\n"},"state":{"type":"string","description":"State of the Project, if not specified all projects will be returned. Valid values are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`new`\" pulumi-lang-dotnet=\"`New`\" pulumi-lang-go=\"`new`\" pulumi-lang-python=\"`new`\" pulumi-lang-yaml=\"`new`\" pulumi-lang-java=\"`new`\"\u003e`new`\u003c/span\u003e, `wellFormed`, `createPending`, \u003cspan pulumi-lang-nodejs=\"`unchanged`\" pulumi-lang-dotnet=\"`Unchanged`\" pulumi-lang-go=\"`unchanged`\" pulumi-lang-python=\"`unchanged`\" pulumi-lang-yaml=\"`unchanged`\" pulumi-lang-java=\"`unchanged`\"\u003e`unchanged`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n\n\u003e **NOTE:** DataSource without specifying any arguments will return all projects.\n"}},"type":"object","required":["name","projectId","projectUrl","state"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getRepositoriesRepository:getRepositoriesRepository":{"properties":{"defaultBranch":{"type":"string","description":"The ref of the default branch.\n"},"disabled":{"type":"boolean","description":"Is the repository disabled?\n"},"id":{"type":"string","description":"Git repository identifier.\n"},"name":{"type":"string","description":"Name of the Git repository to retrieve; requires \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e to be specified as well\n"},"projectId":{"type":"string","description":"ID of project to list Git repositories\n"},"remoteUrl":{"type":"string","description":"HTTPS Url to clone the Git repository\n"},"size":{"type":"integer","description":"Compressed size (bytes) of the repository.\n"},"sshUrl":{"type":"string","description":"SSH Url to clone the Git repository\n"},"url":{"type":"string","description":"Details REST API endpoint for the Git Repository.\n"},"webUrl":{"type":"string","description":"Url of the Git repository web view\n"}},"type":"object","required":["defaultBranch","disabled","id","name","projectId","remoteUrl","size","sshUrl","url","webUrl"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getSecurityNamespaceAction:getSecurityNamespaceAction":{"properties":{"bit":{"type":"integer","description":"The bit value for this permission (used in permission calculations).\n"},"displayName":{"type":"string","description":"The display name of the action/permission.\n"},"name":{"type":"string","description":"The name of the security namespace.\n"}},"type":"object","required":["bit","displayName","name"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getSecurityNamespacesNamespace:getSecurityNamespacesNamespace":{"properties":{"actions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getSecurityNamespacesNamespaceAction:getSecurityNamespacesNamespaceAction"},"description":"A set of available actions (permissions) in this namespace. Each \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e block exports the following:\n"},"displayName":{"type":"string","description":"The display name of the action/permission.\n"},"id":{"type":"string","description":"The unique identifier (UUID) of the security namespace.\n"},"name":{"type":"string","description":"The name of the action/permission.\n"}},"type":"object","required":["actions","displayName","id","name"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getSecurityNamespacesNamespaceAction:getSecurityNamespacesNamespaceAction":{"properties":{"bit":{"type":"integer","description":"The bit value for this permission (used in permission calculations).\n"},"displayName":{"type":"string","description":"The display name of the action/permission.\n"},"name":{"type":"string","description":"The name of the action/permission.\n"}},"type":"object","required":["bit","displayName","name"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getSecurityroleDefinitionsDefinition:getSecurityroleDefinitionsDefinition":{"properties":{"allowPermissions":{"type":"integer","description":"The mask of allowed permissions of the Security Role Definition.\n"},"denyPermissions":{"type":"integer","description":"The mask of the denied permissions of the Security Role Definition.\n"},"description":{"type":"string","description":"The description of the Security Role Definition.\n"},"displayName":{"type":"string","description":"The display name of the Security Role Definition.\n"},"identifier":{"type":"string","description":"The identifier of the Security Role Definition.\n"},"name":{"type":"string","description":"The name of the Security Role Definition.\n"},"scope":{"type":"string","description":"Name of the Scope for which Security Role Definitions will be returned.\n\n\u003e **NOTE:** DataSource without specifying any arguments will return all projects.\n"}},"type":"object","required":["allowPermissions","description","displayName","identifier","name","scope"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getTeamsTeam:getTeamsTeam":{"properties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors for \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e of the team.\n"},"description":{"type":"string","description":"Team description.\n"},"id":{"type":"string","description":"The ID of the Team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors for \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e of the team.\n"},"name":{"type":"string","description":"The name of the team.\n"},"projectId":{"type":"string","description":"The Project ID. If no project ID all teams of the organization will be returned.\n"}},"type":"object","required":["administrators","description","id","members","name","projectId"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getUsersFeatures:getUsersFeatures":{"properties":{"concurrentWorkers":{"type":"integer","description":"Number of workers to process user data concurrently.\n\n\u003e **Note** Setting \u003cspan pulumi-lang-nodejs=\"`concurrentWorkers`\" pulumi-lang-dotnet=\"`ConcurrentWorkers`\" pulumi-lang-go=\"`concurrentWorkers`\" pulumi-lang-python=\"`concurrent_workers`\" pulumi-lang-yaml=\"`concurrentWorkers`\" pulumi-lang-java=\"`concurrentWorkers`\"\u003e`concurrent_workers`\u003c/span\u003e to a value greater than 1 can greatly decrease the time it takes to read the data source.\n"}},"type":"object"},"azuredevops:index/getUsersUser:getUsersUser":{"properties":{"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the same graph subject across both Accounts and Organizations.\n"},"displayName":{"type":"string","description":"This is the non-unique display name of the graph subject. To change this field, you must alter its value in the source provider.\n"},"id":{"type":"string","description":"The ID of the User.\n"},"mailAddress":{"type":"string","description":"The email address of record for a given graph member. This may be different than the principal name.\n"},"origin":{"type":"string","description":"The type of source provider for the \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e parameter (ex:AD, AAD, MSA) The supported origins are listed below.\n\u003cpre\u003eList of possible origins\n```hcl\nActiveDirectory          = \"ad\"   # Windows Active Directory\nAzureActiveDirectory     = \"aad\"  # Azure Active Directory\nMicrosoftAccount         = \"msa\"  # Windows Live Account\nVisualStudioTeamServices = \"vsts\" # DevOps\nGitHubDirectory          = \"ghb\"  # GitHub\n```\n\u003c/pre\u003e\n"},"originId":{"type":"string","description":"The unique identifier from the system of origin.\n"},"principalName":{"type":"string","description":"The PrincipalName of this graph member from the source provider.\n"}},"type":"object","required":["descriptor","displayName","id","mailAddress","origin","principalName"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getVariableGroupKeyVault:getVariableGroupKeyVault":{"properties":{"name":{"type":"string","description":"The name of the Variable Group to retrieve.\n"},"serviceEndpointId":{"type":"string","description":"The id of the Azure subscription endpoint to access the key vault.\n"}},"type":"object","required":["name","serviceEndpointId"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getVariableGroupVariable:getVariableGroupVariable":{"properties":{"contentType":{"type":"string"},"enabled":{"type":"boolean"},"expires":{"type":"string"},"isSecret":{"type":"boolean","description":"A boolean flag describing if the variable value is sensitive.\n"},"name":{"type":"string","description":"The name of the Variable Group to retrieve.\n"},"secretValue":{"type":"string","description":"The secret value of the variable.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"}},"type":"object","required":["contentType","enabled","expires","isSecret","name","secretValue","value"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getWorkitemtrackingprocessProcessProject:getWorkitemtrackingprocessProcessProject":{"properties":{"description":{"type":"string","description":"Description of the project.\n"},"id":{"type":"string","description":"The ID of the process.\n"},"name":{"type":"string","description":"Name of the project.\n"},"url":{"type":"string","description":"Url of the project.\n"}},"type":"object","required":["description","id","name","url"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getWorkitemtrackingprocessProcessesProcess:getWorkitemtrackingprocessProcessesProcess":{"properties":{"customizationType":{"type":"string","description":"Indicates the type of customization on this process. System Process is default process. Inherited Process is modified process that was System process before.\n"},"description":{"type":"string","description":"Description of the project.\n"},"id":{"type":"string","description":"The ID of the project.\n"},"isDefault":{"type":"boolean","description":"Is the process default?\n"},"isEnabled":{"type":"boolean","description":"Is the process enabled?\n"},"name":{"type":"string","description":"Name of the project.\n"},"parentProcessTypeId":{"type":"string","description":"ID of the parent process.\n"},"projects":{"type":"array","items":{"$ref":"#/types/azuredevops:index/getWorkitemtrackingprocessProcessesProcessProject:getWorkitemtrackingprocessProcessesProcessProject"},"description":"A \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e block as defined below. Returns associated projects when using the 'projects' expand option.\n"},"referenceName":{"type":"string","description":"Reference name of process being created. If not specified, server will assign a unique reference name.\n"}},"type":"object","required":["customizationType","description","id","isDefault","isEnabled","name","parentProcessTypeId","projects","referenceName"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getWorkitemtrackingprocessProcessesProcessProject:getWorkitemtrackingprocessProcessesProcessProject":{"properties":{"description":{"type":"string","description":"Description of the project.\n"},"id":{"type":"string","description":"The ID of the project.\n"},"name":{"type":"string","description":"Name of the project.\n"},"url":{"type":"string","description":"Url of the project.\n"}},"type":"object","required":["description","id","name","url"],"language":{"nodejs":{"requiredInputs":[]}}},"azuredevops:index/getWorkitemtrackingprocessWorkitemtypesWorkItemType:getWorkitemtrackingprocessWorkitemtypesWorkItemType":{"properties":{"color":{"type":"string","description":"Color hexadecimal code to represent the work item type.\n"},"customization":{"type":"string","description":"Indicates the type of customization on this work item type.\n"},"description":{"type":"string","description":"Description of the work item type.\n"},"icon":{"type":"string","description":"Icon to represent the work item type.\n"},"isEnabled":{"type":"boolean","description":"Indicates if the work item type is enabled.\n"},"name":{"type":"string","description":"Name of the work item type.\n"},"parentWorkItemReferenceName":{"type":"string","description":"Reference name of the parent work item type.\n"},"referenceName":{"type":"string","description":"Reference name of the work item type.\n"},"url":{"type":"string","description":"URL of the work item type.\n"}},"type":"object","required":["color","customization","description","icon","isEnabled","name","parentWorkItemReferenceName","referenceName","url"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the azuredevops package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n","properties":{"auxiliaryTenantIds":{"type":"array","items":{"type":"string"},"description":"List of auxiliary Tenant IDs required for multi-tenancy and cross-tenant scenarios."},"clientCertificate":{"type":"string","description":"Base64 encoded certificate to use to authenticate to the service principal.","secret":true},"clientCertificatePassword":{"type":"string","description":"Password for a client certificate password.","secret":true},"clientCertificatePath":{"type":"string","description":"Path to a certificate to use to authenticate to the service principal."},"clientId":{"type":"string","description":"The service principal client id which should be used for AAD auth."},"clientIdFilePath":{"type":"string","description":"The path to a file containing the Client ID which should be used."},"clientSecret":{"type":"string","description":"Client secret for authenticating to  a service principal.","secret":true},"clientSecretPath":{"type":"string","description":"Path to a file containing a client secret for authenticating to  a service principal."},"oidcAzureServiceConnectionId":{"type":"string","description":"The Azure Pipelines Service Connection ID to use for authentication."},"oidcRequestToken":{"type":"string","description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidcRequestUrl":{"type":"string","description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidcToken":{"type":"string","description":"OIDC token to authenticate as a service principal.","secret":true},"oidcTokenFilePath":{"type":"string","description":"OIDC token from file to authenticate as a service principal."},"orgServiceUrl":{"type":"string","description":"The url of the Azure DevOps instance which should be used."},"personalAccessToken":{"type":"string","description":"The personal access token which should be used.","secret":true},"tenantId":{"type":"string","description":"The service principal tenant id which should be used for AAD auth."},"useCli":{"type":"boolean","description":"Use Azure CLI to authenticate. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"useMsi":{"type":"boolean","description":"Use an Azure Managed Service Identity. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."},"useOidc":{"type":"boolean","description":"Use an OIDC token to authenticate to a service principal. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."}},"inputProperties":{"auxiliaryTenantIds":{"type":"array","items":{"type":"string"},"description":"List of auxiliary Tenant IDs required for multi-tenancy and cross-tenant scenarios."},"clientCertificate":{"type":"string","description":"Base64 encoded certificate to use to authenticate to the service principal.","secret":true},"clientCertificatePassword":{"type":"string","description":"Password for a client certificate password.","secret":true},"clientCertificatePath":{"type":"string","description":"Path to a certificate to use to authenticate to the service principal."},"clientId":{"type":"string","description":"The service principal client id which should be used for AAD auth."},"clientIdFilePath":{"type":"string","description":"The path to a file containing the Client ID which should be used."},"clientSecret":{"type":"string","description":"Client secret for authenticating to  a service principal.","secret":true},"clientSecretPath":{"type":"string","description":"Path to a file containing a client secret for authenticating to  a service principal."},"oidcAzureServiceConnectionId":{"type":"string","description":"The Azure Pipelines Service Connection ID to use for authentication."},"oidcRequestToken":{"type":"string","description":"The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID Connect."},"oidcRequestUrl":{"type":"string","description":"The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal using OpenID Connect."},"oidcToken":{"type":"string","description":"OIDC token to authenticate as a service principal.","secret":true},"oidcTokenFilePath":{"type":"string","description":"OIDC token from file to authenticate as a service principal."},"orgServiceUrl":{"type":"string","description":"The url of the Azure DevOps instance which should be used.","defaultInfo":{"environment":["AZDO_ORG_SERVICE_URL"]}},"personalAccessToken":{"type":"string","description":"The personal access token which should be used.","secret":true},"tenantId":{"type":"string","description":"The service principal tenant id which should be used for AAD auth."},"useCli":{"type":"boolean","description":"Use Azure CLI to authenticate. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e."},"useMsi":{"type":"boolean","description":"Use an Azure Managed Service Identity. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."},"useOidc":{"type":"boolean","description":"Use an OIDC token to authenticate to a service principal. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e."}},"methods":{"terraformConfig":"pulumi:providers:azuredevops/terraformConfig"}},"resources":{"azuredevops:index/areaPermissions:AreaPermissions":{"description":"Manages permissions for an Area (Component)\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Permission levels\n\nPermission for Areas within Azure DevOps can be applied on two different levels.\nThose levels are reflected by specifying (or omitting) values for the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_project_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_root_permissions = new azuredevops.AreaPermissions(\"example-root-permissions\", {\n    projectId: example.id,\n    principal: example_project_readers.apply(example_project_readers =\u003e example_project_readers.id),\n    path: \"/\",\n    permissions: {\n        CREATE_CHILDREN: \"Deny\",\n        GENERIC_READ: \"Allow\",\n        DELETE: \"Deny\",\n        WORK_ITEM_READ: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_project_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_root_permissions = azuredevops.AreaPermissions(\"example-root-permissions\",\n    project_id=example.id,\n    principal=example_project_readers.id,\n    path=\"/\",\n    permissions={\n        \"CREATE_CHILDREN\": \"Deny\",\n        \"GENERIC_READ\": \"Allow\",\n        \"DELETE\": \"Deny\",\n        \"WORK_ITEM_READ\": \"Allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_root_permissions = new AzureDevOps.AreaPermissions(\"example-root-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_project_readers.Apply(example_project_readers =\u003e example_project_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Path = \"/\",\n        Permissions = \n        {\n            { \"CREATE_CHILDREN\", \"Deny\" },\n            { \"GENERIC_READ\", \"Allow\" },\n            { \"DELETE\", \"Deny\" },\n            { \"WORK_ITEM_READ\", \"Allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewAreaPermissions(ctx, \"example-root-permissions\", \u0026azuredevops.AreaPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_project_readers.ApplyT(func(example_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_project_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPath: pulumi.String(\"/\"),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CREATE_CHILDREN\": pulumi.String(\"Deny\"),\n\t\t\t\t\"GENERIC_READ\":    pulumi.String(\"Allow\"),\n\t\t\t\t\"DELETE\":          pulumi.String(\"Deny\"),\n\t\t\t\t\"WORK_ITEM_READ\":  pulumi.String(\"Allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.AreaPermissions;\nimport com.pulumi.azuredevops.AreaPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_root_permissions = new AreaPermissions(\"example-root-permissions\", AreaPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_project_readers.applyValue(_example_project_readers -\u003e _example_project_readers.id()))\n            .path(\"/\")\n            .permissions(Map.ofEntries(\n                Map.entry(\"CREATE_CHILDREN\", \"Deny\"),\n                Map.entry(\"GENERIC_READ\", \"Allow\"),\n                Map.entry(\"DELETE\", \"Deny\"),\n                Map.entry(\"WORK_ITEM_READ\", \"Allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-root-permissions:\n    type: azuredevops:AreaPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-project-readers\"].id}\n      path: /\n      permissions:\n        CREATE_CHILDREN: Deny\n        GENERIC_READ: Allow\n        DELETE: Deny\n        WORK_ITEM_READ: Allow\nvariables:\n  example-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission             | Description                          |\n|------------------------|--------------------------------------|\n| GENERIC_READ           | View permissions for this node       |\n| GENERIC_WRITE          | Edit this node                       |\n| CREATE_CHILDREN        | Create child nodes                   |\n| DELETE                 | Delete this node                     |\n| WORK_ITEM_READ         | View work items in this node         |\n| WORK_ITEM_WRITE        | Edit work items in this node         |\n| MANAGE_TEST_PLANS      | Manage test plans                    |\n| MANAGE_TEST_SUITES     | Manage test suites                   |\n| WORK_ITEM_SAVE_COMMENT | Edit work item comments in this node |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission             | Description                          |\n|------------------------|--------------------------------------|\n| GENERIC_READ           | View permissions for this node       |\n| GENERIC_WRITE          | Edit this node                       |\n| CREATE_CHILDREN        | Create child nodes                   |\n| DELETE                 | Delete this node                     |\n| WORK_ITEM_READ         | View work items in this node         |\n| WORK_ITEM_WRITE        | Edit work items in this node         |\n| MANAGE_TEST_PLANS      | Manage test plans                    |\n| MANAGE_TEST_SUITES     | Manage test suites                   |\n| WORK_ITEM_SAVE_COMMENT | Edit work item comments in this node |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering AreaPermissions resources.\n","properties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission             | Description                          |\n|------------------------|--------------------------------------|\n| GENERIC_READ           | View permissions for this node       |\n| GENERIC_WRITE          | Edit this node                       |\n| CREATE_CHILDREN        | Create child nodes                   |\n| DELETE                 | Delete this node                     |\n| WORK_ITEM_READ         | View work items in this node         |\n| WORK_ITEM_WRITE        | Edit work items in this node         |\n| MANAGE_TEST_PLANS      | Manage test plans                    |\n| MANAGE_TEST_SUITES     | Manage test suites                   |\n| WORK_ITEM_SAVE_COMMENT | Edit work item comments in this node |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/branchPolicyAutoReviewers:BranchPolicyAutoReviewers":{"description":"Manages required reviewer policy branch policy within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleUser = new azuredevops.User(\"example\", {\n    principalName: \"mail@email.com\",\n    accountLicenseType: \"basic\",\n});\nconst exampleBranchPolicyAutoReviewers = new azuredevops.BranchPolicyAutoReviewers(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        autoReviewerIds: [exampleUser.id],\n        submitterCanVote: false,\n        message: \"Auto reviewer\",\n        pathFilters: [\"*/src/*.ts\"],\n        scopes: [{\n            repositoryId: exampleGit.id,\n            repositoryRef: exampleGit.defaultBranch,\n            matchType: \"Exact\",\n        }],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_user = azuredevops.User(\"example\",\n    principal_name=\"mail@email.com\",\n    account_license_type=\"basic\")\nexample_branch_policy_auto_reviewers = azuredevops.BranchPolicyAutoReviewers(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"auto_reviewer_ids\": [example_user.id],\n        \"submitter_can_vote\": False,\n        \"message\": \"Auto reviewer\",\n        \"path_filters\": [\"*/src/*.ts\"],\n        \"scopes\": [{\n            \"repository_id\": example_git.id,\n            \"repository_ref\": example_git.default_branch,\n            \"match_type\": \"Exact\",\n        }],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleUser = new AzureDevOps.User(\"example\", new()\n    {\n        PrincipalName = \"mail@email.com\",\n        AccountLicenseType = \"basic\",\n    });\n\n    var exampleBranchPolicyAutoReviewers = new AzureDevOps.BranchPolicyAutoReviewers(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyAutoReviewersSettingsArgs\n        {\n            AutoReviewerIds = new[]\n            {\n                exampleUser.Id,\n            },\n            SubmitterCanVote = false,\n            Message = \"Auto reviewer\",\n            PathFilters = new[]\n            {\n                \"*/src/*.ts\",\n            },\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyAutoReviewersSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := azuredevops.NewUser(ctx, \"example\", \u0026azuredevops.UserArgs{\n\t\t\tPrincipalName:      pulumi.String(\"mail@email.com\"),\n\t\t\tAccountLicenseType: pulumi.String(\"basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyAutoReviewers(ctx, \"example\", \u0026azuredevops.BranchPolicyAutoReviewersArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyAutoReviewersSettingsArgs{\n\t\t\t\tAutoReviewerIds: pulumi.StringArray{\n\t\t\t\t\texampleUser.ID(),\n\t\t\t\t},\n\t\t\t\tSubmitterCanVote: pulumi.Bool(false),\n\t\t\t\tMessage:          pulumi.String(\"Auto reviewer\"),\n\t\t\t\tPathFilters: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"*/src/*.ts\"),\n\t\t\t\t},\n\t\t\t\tScopes: azuredevops.BranchPolicyAutoReviewersSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyAutoReviewersSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.User;\nimport com.pulumi.azuredevops.UserArgs;\nimport com.pulumi.azuredevops.BranchPolicyAutoReviewers;\nimport com.pulumi.azuredevops.BranchPolicyAutoReviewersArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyAutoReviewersSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .principalName(\"mail@email.com\")\n            .accountLicenseType(\"basic\")\n            .build());\n\n        var exampleBranchPolicyAutoReviewers = new BranchPolicyAutoReviewers(\"exampleBranchPolicyAutoReviewers\", BranchPolicyAutoReviewersArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyAutoReviewersSettingsArgs.builder()\n                .autoReviewerIds(exampleUser.id())\n                .submitterCanVote(false)\n                .message(\"Auto reviewer\")\n                .pathFilters(\"*/src/*.ts\")\n                .scopes(BranchPolicyAutoReviewersSettingsScopeArgs.builder()\n                    .repositoryId(exampleGit.id())\n                    .repositoryRef(exampleGit.defaultBranch())\n                    .matchType(\"Exact\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleUser:\n    type: azuredevops:User\n    name: example\n    properties:\n      principalName: mail@email.com\n      accountLicenseType: basic\n  exampleBranchPolicyAutoReviewers:\n    type: azuredevops:BranchPolicyAutoReviewers\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        autoReviewerIds:\n          - ${exampleUser.id}\n        submitterCanVote: false\n        message: Auto reviewer\n        pathFilters:\n          - '*/src/*.ts'\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyAutoReviewers:BranchPolicyAutoReviewers example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. This relates to the Azure DevOps terms \"optional\" and \"required\" reviewers. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyAutoReviewersSettings:BranchPolicyAutoReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. This relates to the Azure DevOps terms \"optional\" and \"required\" reviewers. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyAutoReviewersSettings:BranchPolicyAutoReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyAutoReviewers resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. This relates to the Azure DevOps terms \"optional\" and \"required\" reviewers. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyAutoReviewersSettings:BranchPolicyAutoReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/branchPolicyBuildValidation:BranchPolicyBuildValidation":{"description":"Manages a build validation branch policy within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: example.id,\n    name: \"Example Build Definition\",\n    repository: {\n        repoType: \"TfsGit\",\n        repoId: exampleGit.id,\n        ymlPath: \"azure-pipelines.yml\",\n    },\n});\nconst exampleBranchPolicyBuildValidation = new azuredevops.BranchPolicyBuildValidation(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        displayName: \"Example build validation policy\",\n        buildDefinitionId: exampleBuildDefinition.id,\n        queueOnSourceUpdateOnly: true,\n        validDuration: 720,\n        filenamePatterns: [\n            \"/WebApp/*\",\n            \"!/WebApp/Tests/*\",\n            \"*.cs\",\n        ],\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: \"refs/heads/releases\",\n                matchType: \"Prefix\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example.id,\n    name=\"Example Build Definition\",\n    repository={\n        \"repo_type\": \"TfsGit\",\n        \"repo_id\": example_git.id,\n        \"yml_path\": \"azure-pipelines.yml\",\n    })\nexample_branch_policy_build_validation = azuredevops.BranchPolicyBuildValidation(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"display_name\": \"Example build validation policy\",\n        \"build_definition_id\": example_build_definition.id,\n        \"queue_on_source_update_only\": True,\n        \"valid_duration\": 720,\n        \"filename_patterns\": [\n            \"/WebApp/*\",\n            \"!/WebApp/Tests/*\",\n            \"*.cs\",\n        ],\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": \"refs/heads/releases\",\n                \"match_type\": \"Prefix\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Build Definition\",\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"TfsGit\",\n            RepoId = exampleGit.Id,\n            YmlPath = \"azure-pipelines.yml\",\n        },\n    });\n\n    var exampleBranchPolicyBuildValidation = new AzureDevOps.BranchPolicyBuildValidation(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyBuildValidationSettingsArgs\n        {\n            DisplayName = \"Example build validation policy\",\n            BuildDefinitionId = exampleBuildDefinition.Id,\n            QueueOnSourceUpdateOnly = true,\n            ValidDuration = 720,\n            FilenamePatterns = new[]\n            {\n                \"/WebApp/*\",\n                \"!/WebApp/Tests/*\",\n                \"*.cs\",\n            },\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyBuildValidationSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyBuildValidationSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = \"refs/heads/releases\",\n                    MatchType = \"Prefix\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyBuildValidationSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBuildDefinition, err := azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType: pulumi.String(\"TfsGit\"),\n\t\t\t\tRepoId:   exampleGit.ID(),\n\t\t\t\tYmlPath:  pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyBuildValidation(ctx, \"example\", \u0026azuredevops.BranchPolicyBuildValidationArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyBuildValidationSettingsArgs{\n\t\t\t\tDisplayName:             pulumi.String(\"Example build validation policy\"),\n\t\t\t\tBuildDefinitionId:       exampleBuildDefinition.ID(),\n\t\t\t\tQueueOnSourceUpdateOnly: pulumi.Bool(true),\n\t\t\t\tValidDuration:           pulumi.Int(720),\n\t\t\t\tFilenamePatterns: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"/WebApp/*\"),\n\t\t\t\t\tpulumi.String(\"!/WebApp/Tests/*\"),\n\t\t\t\t\tpulumi.String(\"*.cs\"),\n\t\t\t\t},\n\t\t\t\tScopes: azuredevops.BranchPolicyBuildValidationSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyBuildValidationSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyBuildValidationSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: pulumi.String(\"refs/heads/releases\"),\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Prefix\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyBuildValidationSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.BranchPolicyBuildValidation;\nimport com.pulumi.azuredevops.BranchPolicyBuildValidationArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyBuildValidationSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Build Definition\")\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"TfsGit\")\n                .repoId(exampleGit.id())\n                .ymlPath(\"azure-pipelines.yml\")\n                .build())\n            .build());\n\n        var exampleBranchPolicyBuildValidation = new BranchPolicyBuildValidation(\"exampleBranchPolicyBuildValidation\", BranchPolicyBuildValidationArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyBuildValidationSettingsArgs.builder()\n                .displayName(\"Example build validation policy\")\n                .buildDefinitionId(exampleBuildDefinition.id())\n                .queueOnSourceUpdateOnly(true)\n                .validDuration(720)\n                .filenamePatterns(                \n                    \"/WebApp/*\",\n                    \"!/WebApp/Tests/*\",\n                    \"*.cs\")\n                .scopes(                \n                    BranchPolicyBuildValidationSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyBuildValidationSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(\"refs/heads/releases\")\n                        .matchType(\"Prefix\")\n                        .build(),\n                    BranchPolicyBuildValidationSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Build Definition\n      repository:\n        repoType: TfsGit\n        repoId: ${exampleGit.id}\n        ymlPath: azure-pipelines.yml\n  exampleBranchPolicyBuildValidation:\n    type: azuredevops:BranchPolicyBuildValidation\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        displayName: Example build validation policy\n        buildDefinitionId: ${exampleBuildDefinition.id}\n        queueOnSourceUpdateOnly: true\n        validDuration: 720\n        filenamePatterns:\n          - /WebApp/*\n          - '!/WebApp/Tests/*'\n          - '*.cs'\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: refs/heads/releases\n            matchType: Prefix\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyBuildValidation:BranchPolicyBuildValidation example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyBuildValidationSettings:BranchPolicyBuildValidationSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyBuildValidationSettings:BranchPolicyBuildValidationSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyBuildValidation resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyBuildValidationSettings:BranchPolicyBuildValidationSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"},"aliases":[{"type":"azuredevops:Policy/branchPolicyBuildValidation:BranchPolicyBuildValidation"}]},"azuredevops:index/branchPolicyCommentResolution:BranchPolicyCommentResolution":{"description":"Configure a comment resolution policy for your branch within Azure DevOps project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBranchPolicyCommentResolution = new azuredevops.BranchPolicyCommentResolution(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: \"refs/heads/releases\",\n                matchType: \"Prefix\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_branch_policy_comment_resolution = azuredevops.BranchPolicyCommentResolution(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": \"refs/heads/releases\",\n                \"match_type\": \"Prefix\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBranchPolicyCommentResolution = new AzureDevOps.BranchPolicyCommentResolution(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyCommentResolutionSettingsArgs\n        {\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyCommentResolutionSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyCommentResolutionSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = \"refs/heads/releases\",\n                    MatchType = \"Prefix\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyCommentResolutionSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyCommentResolution(ctx, \"example\", \u0026azuredevops.BranchPolicyCommentResolutionArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyCommentResolutionSettingsArgs{\n\t\t\t\tScopes: azuredevops.BranchPolicyCommentResolutionSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyCommentResolutionSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyCommentResolutionSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: pulumi.String(\"refs/heads/releases\"),\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Prefix\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyCommentResolutionSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BranchPolicyCommentResolution;\nimport com.pulumi.azuredevops.BranchPolicyCommentResolutionArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyCommentResolutionSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBranchPolicyCommentResolution = new BranchPolicyCommentResolution(\"exampleBranchPolicyCommentResolution\", BranchPolicyCommentResolutionArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyCommentResolutionSettingsArgs.builder()\n                .scopes(                \n                    BranchPolicyCommentResolutionSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyCommentResolutionSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(\"refs/heads/releases\")\n                        .matchType(\"Prefix\")\n                        .build(),\n                    BranchPolicyCommentResolutionSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBranchPolicyCommentResolution:\n    type: azuredevops:BranchPolicyCommentResolution\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: refs/heads/releases\n            matchType: Prefix\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyCommentResolution:BranchPolicyCommentResolution example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyCommentResolutionSettings:BranchPolicyCommentResolutionSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyCommentResolutionSettings:BranchPolicyCommentResolutionSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyCommentResolution resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyCommentResolutionSettings:BranchPolicyCommentResolutionSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/branchPolicyMergeTypes:BranchPolicyMergeTypes":{"description":"Branch policy for merge types allowed on a specified branch.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBranchPolicyMergeTypes = new azuredevops.BranchPolicyMergeTypes(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        allowSquash: true,\n        allowRebaseAndFastForward: true,\n        allowBasicNoFastForward: true,\n        allowRebaseWithMerge: true,\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                repositoryId: null,\n                repositoryRef: \"refs/heads/releases\",\n                matchType: \"Prefix\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_branch_policy_merge_types = azuredevops.BranchPolicyMergeTypes(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"allow_squash\": True,\n        \"allow_rebase_and_fast_forward\": True,\n        \"allow_basic_no_fast_forward\": True,\n        \"allow_rebase_with_merge\": True,\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"repository_id\": None,\n                \"repository_ref\": \"refs/heads/releases\",\n                \"match_type\": \"Prefix\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBranchPolicyMergeTypes = new AzureDevOps.BranchPolicyMergeTypes(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyMergeTypesSettingsArgs\n        {\n            AllowSquash = true,\n            AllowRebaseAndFastForward = true,\n            AllowBasicNoFastForward = true,\n            AllowRebaseWithMerge = true,\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyMergeTypesSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyMergeTypesSettingsScopeArgs\n                {\n                    RepositoryId = null,\n                    RepositoryRef = \"refs/heads/releases\",\n                    MatchType = \"Prefix\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyMergeTypesSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyMergeTypes(ctx, \"example\", \u0026azuredevops.BranchPolicyMergeTypesArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyMergeTypesSettingsArgs{\n\t\t\t\tAllowSquash:               pulumi.Bool(true),\n\t\t\t\tAllowRebaseAndFastForward: pulumi.Bool(true),\n\t\t\t\tAllowBasicNoFastForward:   pulumi.Bool(true),\n\t\t\t\tAllowRebaseWithMerge:      pulumi.Bool(true),\n\t\t\t\tScopes: azuredevops.BranchPolicyMergeTypesSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMergeTypesSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMergeTypesSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  nil,\n\t\t\t\t\t\tRepositoryRef: pulumi.String(\"refs/heads/releases\"),\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Prefix\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMergeTypesSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BranchPolicyMergeTypes;\nimport com.pulumi.azuredevops.BranchPolicyMergeTypesArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyMergeTypesSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBranchPolicyMergeTypes = new BranchPolicyMergeTypes(\"exampleBranchPolicyMergeTypes\", BranchPolicyMergeTypesArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyMergeTypesSettingsArgs.builder()\n                .allowSquash(true)\n                .allowRebaseAndFastForward(true)\n                .allowBasicNoFastForward(true)\n                .allowRebaseWithMerge(true)\n                .scopes(                \n                    BranchPolicyMergeTypesSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyMergeTypesSettingsScopeArgs.builder()\n                        .repositoryId(null)\n                        .repositoryRef(\"refs/heads/releases\")\n                        .matchType(\"Prefix\")\n                        .build(),\n                    BranchPolicyMergeTypesSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBranchPolicyMergeTypes:\n    type: azuredevops:BranchPolicyMergeTypes\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        allowSquash: true\n        allowRebaseAndFastForward: true\n        allowBasicNoFastForward: true\n        allowRebaseWithMerge: true\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - repositoryId: null\n            repositoryRef: refs/heads/releases\n            matchType: Prefix\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyMergeTypes:BranchPolicyMergeTypes example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMergeTypesSettings:BranchPolicyMergeTypesSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMergeTypesSettings:BranchPolicyMergeTypesSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyMergeTypes resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMergeTypesSettings:BranchPolicyMergeTypesSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/branchPolicyMinReviewers:BranchPolicyMinReviewers":{"description":"Branch policy for reviewers on pull requests. Includes the minimum number of reviewers and other conditions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBranchPolicyMinReviewers = new azuredevops.BranchPolicyMinReviewers(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        reviewerCount: 7,\n        submitterCanVote: false,\n        lastPusherCannotApprove: true,\n        allowCompletionWithRejectsOrWaits: false,\n        onPushResetApprovedVotes: true,\n        onLastIterationRequireVote: false,\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                repositoryId: null,\n                repositoryRef: \"refs/heads/releases\",\n                matchType: \"Prefix\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_branch_policy_min_reviewers = azuredevops.BranchPolicyMinReviewers(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"reviewer_count\": 7,\n        \"submitter_can_vote\": False,\n        \"last_pusher_cannot_approve\": True,\n        \"allow_completion_with_rejects_or_waits\": False,\n        \"on_push_reset_approved_votes\": True,\n        \"on_last_iteration_require_vote\": False,\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"repository_id\": None,\n                \"repository_ref\": \"refs/heads/releases\",\n                \"match_type\": \"Prefix\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBranchPolicyMinReviewers = new AzureDevOps.BranchPolicyMinReviewers(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyMinReviewersSettingsArgs\n        {\n            ReviewerCount = 7,\n            SubmitterCanVote = false,\n            LastPusherCannotApprove = true,\n            AllowCompletionWithRejectsOrWaits = false,\n            OnPushResetApprovedVotes = true,\n            OnLastIterationRequireVote = false,\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyMinReviewersSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyMinReviewersSettingsScopeArgs\n                {\n                    RepositoryId = null,\n                    RepositoryRef = \"refs/heads/releases\",\n                    MatchType = \"Prefix\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyMinReviewersSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyMinReviewers(ctx, \"example\", \u0026azuredevops.BranchPolicyMinReviewersArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyMinReviewersSettingsArgs{\n\t\t\t\tReviewerCount:                     pulumi.Int(7),\n\t\t\t\tSubmitterCanVote:                  pulumi.Bool(false),\n\t\t\t\tLastPusherCannotApprove:           pulumi.Bool(true),\n\t\t\t\tAllowCompletionWithRejectsOrWaits: pulumi.Bool(false),\n\t\t\t\tOnPushResetApprovedVotes:          pulumi.Bool(true),\n\t\t\t\tOnLastIterationRequireVote:        pulumi.Bool(false),\n\t\t\t\tScopes: azuredevops.BranchPolicyMinReviewersSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMinReviewersSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMinReviewersSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  nil,\n\t\t\t\t\t\tRepositoryRef: pulumi.String(\"refs/heads/releases\"),\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Prefix\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyMinReviewersSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BranchPolicyMinReviewers;\nimport com.pulumi.azuredevops.BranchPolicyMinReviewersArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyMinReviewersSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBranchPolicyMinReviewers = new BranchPolicyMinReviewers(\"exampleBranchPolicyMinReviewers\", BranchPolicyMinReviewersArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyMinReviewersSettingsArgs.builder()\n                .reviewerCount(7)\n                .submitterCanVote(false)\n                .lastPusherCannotApprove(true)\n                .allowCompletionWithRejectsOrWaits(false)\n                .onPushResetApprovedVotes(true)\n                .onLastIterationRequireVote(false)\n                .scopes(                \n                    BranchPolicyMinReviewersSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyMinReviewersSettingsScopeArgs.builder()\n                        .repositoryId(null)\n                        .repositoryRef(\"refs/heads/releases\")\n                        .matchType(\"Prefix\")\n                        .build(),\n                    BranchPolicyMinReviewersSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBranchPolicyMinReviewers:\n    type: azuredevops:BranchPolicyMinReviewers\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        reviewerCount: 7\n        submitterCanVote: false\n        lastPusherCannotApprove: true\n        allowCompletionWithRejectsOrWaits: false\n        onPushResetApprovedVotes: true\n        onLastIterationRequireVote: false\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - repositoryId: null\n            repositoryRef: refs/heads/releases\n            matchType: Prefix\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyMinReviewers:BranchPolicyMinReviewers example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMinReviewersSettings:BranchPolicyMinReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below.. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMinReviewersSettings:BranchPolicyMinReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below.. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyMinReviewers resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyMinReviewersSettings:BranchPolicyMinReviewersSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below.. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/branchPolicyStatusCheck:BranchPolicyStatusCheck":{"description":"Manages a status check branch policy within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    features: {\n        testplans: \"disabled\",\n        artifacts: \"disabled\",\n    },\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleUser = new azuredevops.User(\"example\", {\n    principalName: \"mail@email.com\",\n    accountLicenseType: \"basic\",\n});\nconst exampleBranchPolicyStatusCheck = new azuredevops.BranchPolicyStatusCheck(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        name: \"Release\",\n        authorId: exampleUser.id,\n        invalidateOnUpdate: true,\n        applicability: \"conditional\",\n        displayName: \"PreCheck\",\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    features={\n        \"testplans\": \"disabled\",\n        \"artifacts\": \"disabled\",\n    },\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_user = azuredevops.User(\"example\",\n    principal_name=\"mail@email.com\",\n    account_license_type=\"basic\")\nexample_branch_policy_status_check = azuredevops.BranchPolicyStatusCheck(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"name\": \"Release\",\n        \"author_id\": example_user.id,\n        \"invalidate_on_update\": True,\n        \"applicability\": \"conditional\",\n        \"display_name\": \"PreCheck\",\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Features = \n        {\n            { \"testplans\", \"disabled\" },\n            { \"artifacts\", \"disabled\" },\n        },\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleUser = new AzureDevOps.User(\"example\", new()\n    {\n        PrincipalName = \"mail@email.com\",\n        AccountLicenseType = \"basic\",\n    });\n\n    var exampleBranchPolicyStatusCheck = new AzureDevOps.BranchPolicyStatusCheck(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyStatusCheckSettingsArgs\n        {\n            Name = \"Release\",\n            AuthorId = exampleUser.Id,\n            InvalidateOnUpdate = true,\n            Applicability = \"conditional\",\n            DisplayName = \"PreCheck\",\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyStatusCheckSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyStatusCheckSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tFeatures: pulumi.StringMap{\n\t\t\t\t\"testplans\": pulumi.String(\"disabled\"),\n\t\t\t\t\"artifacts\": pulumi.String(\"disabled\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := azuredevops.NewUser(ctx, \"example\", \u0026azuredevops.UserArgs{\n\t\t\tPrincipalName:      pulumi.String(\"mail@email.com\"),\n\t\t\tAccountLicenseType: pulumi.String(\"basic\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyStatusCheck(ctx, \"example\", \u0026azuredevops.BranchPolicyStatusCheckArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyStatusCheckSettingsArgs{\n\t\t\t\tName:               pulumi.String(\"Release\"),\n\t\t\t\tAuthorId:           exampleUser.ID(),\n\t\t\t\tInvalidateOnUpdate: pulumi.Bool(true),\n\t\t\t\tApplicability:      pulumi.String(\"conditional\"),\n\t\t\t\tDisplayName:        pulumi.String(\"PreCheck\"),\n\t\t\t\tScopes: azuredevops.BranchPolicyStatusCheckSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyStatusCheckSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyStatusCheckSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.User;\nimport com.pulumi.azuredevops.UserArgs;\nimport com.pulumi.azuredevops.BranchPolicyStatusCheck;\nimport com.pulumi.azuredevops.BranchPolicyStatusCheckArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyStatusCheckSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .features(Map.ofEntries(\n                Map.entry(\"testplans\", \"disabled\"),\n                Map.entry(\"artifacts\", \"disabled\")\n            ))\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .principalName(\"mail@email.com\")\n            .accountLicenseType(\"basic\")\n            .build());\n\n        var exampleBranchPolicyStatusCheck = new BranchPolicyStatusCheck(\"exampleBranchPolicyStatusCheck\", BranchPolicyStatusCheckArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyStatusCheckSettingsArgs.builder()\n                .name(\"Release\")\n                .authorId(exampleUser.id())\n                .invalidateOnUpdate(true)\n                .applicability(\"conditional\")\n                .displayName(\"PreCheck\")\n                .scopes(                \n                    BranchPolicyStatusCheckSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyStatusCheckSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      features:\n        testplans: disabled\n        artifacts: disabled\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleUser:\n    type: azuredevops:User\n    name: example\n    properties:\n      principalName: mail@email.com\n      accountLicenseType: basic\n  exampleBranchPolicyStatusCheck:\n    type: azuredevops:BranchPolicyStatusCheck\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        name: Release\n        authorId: ${exampleUser.id}\n        invalidateOnUpdate: true\n        applicability: conditional\n        displayName: PreCheck\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyStatusCheck:BranchPolicyStatusCheck example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyStatusCheckSettings:BranchPolicyStatusCheckSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyStatusCheckSettings:BranchPolicyStatusCheckSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyStatusCheck resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyStatusCheckSettings:BranchPolicyStatusCheckSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/branchPolicyWorkItemLinking:BranchPolicyWorkItemLinking":{"description":"Require associations between branches and a work item within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBranchPolicyWorkItemLinking = new azuredevops.BranchPolicyWorkItemLinking(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    settings: {\n        scopes: [\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: exampleGit.defaultBranch,\n                matchType: \"Exact\",\n            },\n            {\n                repositoryId: exampleGit.id,\n                repositoryRef: \"refs/heads/releases\",\n                matchType: \"Prefix\",\n            },\n            {\n                matchType: \"DefaultBranch\",\n            },\n        ],\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_branch_policy_work_item_linking = azuredevops.BranchPolicyWorkItemLinking(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    settings={\n        \"scopes\": [\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": example_git.default_branch,\n                \"match_type\": \"Exact\",\n            },\n            {\n                \"repository_id\": example_git.id,\n                \"repository_ref\": \"refs/heads/releases\",\n                \"match_type\": \"Prefix\",\n            },\n            {\n                \"match_type\": \"DefaultBranch\",\n            },\n        ],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBranchPolicyWorkItemLinking = new AzureDevOps.BranchPolicyWorkItemLinking(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        Settings = new AzureDevOps.Inputs.BranchPolicyWorkItemLinkingSettingsArgs\n        {\n            Scopes = new[]\n            {\n                new AzureDevOps.Inputs.BranchPolicyWorkItemLinkingSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = exampleGit.DefaultBranch,\n                    MatchType = \"Exact\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyWorkItemLinkingSettingsScopeArgs\n                {\n                    RepositoryId = exampleGit.Id,\n                    RepositoryRef = \"refs/heads/releases\",\n                    MatchType = \"Prefix\",\n                },\n                new AzureDevOps.Inputs.BranchPolicyWorkItemLinkingSettingsScopeArgs\n                {\n                    MatchType = \"DefaultBranch\",\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBranchPolicyWorkItemLinking(ctx, \"example\", \u0026azuredevops.BranchPolicyWorkItemLinkingArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tSettings: \u0026azuredevops.BranchPolicyWorkItemLinkingSettingsArgs{\n\t\t\t\tScopes: azuredevops.BranchPolicyWorkItemLinkingSettingsScopeArray{\n\t\t\t\t\t\u0026azuredevops.BranchPolicyWorkItemLinkingSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: exampleGit.DefaultBranch,\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Exact\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyWorkItemLinkingSettingsScopeArgs{\n\t\t\t\t\t\tRepositoryId:  exampleGit.ID(),\n\t\t\t\t\t\tRepositoryRef: pulumi.String(\"refs/heads/releases\"),\n\t\t\t\t\t\tMatchType:     pulumi.String(\"Prefix\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026azuredevops.BranchPolicyWorkItemLinkingSettingsScopeArgs{\n\t\t\t\t\t\tMatchType: pulumi.String(\"DefaultBranch\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BranchPolicyWorkItemLinking;\nimport com.pulumi.azuredevops.BranchPolicyWorkItemLinkingArgs;\nimport com.pulumi.azuredevops.inputs.BranchPolicyWorkItemLinkingSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBranchPolicyWorkItemLinking = new BranchPolicyWorkItemLinking(\"exampleBranchPolicyWorkItemLinking\", BranchPolicyWorkItemLinkingArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .settings(BranchPolicyWorkItemLinkingSettingsArgs.builder()\n                .scopes(                \n                    BranchPolicyWorkItemLinkingSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(exampleGit.defaultBranch())\n                        .matchType(\"Exact\")\n                        .build(),\n                    BranchPolicyWorkItemLinkingSettingsScopeArgs.builder()\n                        .repositoryId(exampleGit.id())\n                        .repositoryRef(\"refs/heads/releases\")\n                        .matchType(\"Prefix\")\n                        .build(),\n                    BranchPolicyWorkItemLinkingSettingsScopeArgs.builder()\n                        .matchType(\"DefaultBranch\")\n                        .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBranchPolicyWorkItemLinking:\n    type: azuredevops:BranchPolicyWorkItemLinking\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      settings:\n        scopes:\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: ${exampleGit.defaultBranch}\n            matchType: Exact\n          - repositoryId: ${exampleGit.id}\n            repositoryRef: refs/heads/releases\n            matchType: Prefix\n          - matchType: DefaultBranch\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/branchPolicyWorkItemLinking:BranchPolicyWorkItemLinking example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyWorkItemLinkingSettings:BranchPolicyWorkItemLinkingSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"required":["projectId","settings"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyWorkItemLinkingSettings:BranchPolicyWorkItemLinkingSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"requiredInputs":["projectId","settings"],"stateInputs":{"description":"Input properties used for looking up and filtering BranchPolicyWorkItemLinking resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"settings":{"$ref":"#/types/azuredevops:index/BranchPolicyWorkItemLinkingSettings:BranchPolicyWorkItemLinkingSettings","description":"A \u003cspan pulumi-lang-nodejs=\"`settings`\" pulumi-lang-dotnet=\"`Settings`\" pulumi-lang-go=\"`settings`\" pulumi-lang-python=\"`settings`\" pulumi-lang-yaml=\"`settings`\" pulumi-lang-java=\"`settings`\"\u003e`settings`\u003c/span\u003e block as defined below. Configuration for the policy. This block must be defined exactly once.\n"}},"type":"object"}},"azuredevops:index/buildDefinition:BuildDefinition":{"description":"Manages a Build Definition within Azure DevOps.\n\n## Example Usage\n\n### Azure DevOps\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Pipeline Variables\",\n    description: \"Managed by Pulumi\",\n    allowAccess: true,\n    variables: [{\n        name: \"FOO\",\n        value: \"BAR\",\n    }],\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: example.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: false,\n    },\n    schedules: [{\n        branchFilters: [{\n            includes: [\"master\"],\n            excludes: [\n                \"test\",\n                \"regression\",\n            ],\n        }],\n        daysToBuilds: [\n            \"Wed\",\n            \"Sun\",\n        ],\n        scheduleOnlyWithChanges: true,\n        startHours: 10,\n        startMinutes: 59,\n        timeZone: \"(UTC) Coordinated Universal Time\",\n    }],\n    repository: {\n        repoType: \"TfsGit\",\n        repoId: exampleGit.id,\n        branchName: exampleGit.defaultBranch,\n        ymlPath: \"azure-pipelines.yml\",\n    },\n    variableGroups: [exampleVariableGroup.id],\n    variables: [\n        {\n            name: \"PipelineVariable\",\n            value: \"Go Microsoft!\",\n        },\n        {\n            name: \"PipelineSecret\",\n            secretValue: \"ZGV2cw\",\n            isSecret: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Pipeline Variables\",\n    description=\"Managed by Pulumi\",\n    allow_access=True,\n    variables=[{\n        \"name\": \"FOO\",\n        \"value\": \"BAR\",\n    }])\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example.id,\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": False,\n    },\n    schedules=[{\n        \"branch_filters\": [{\n            \"includes\": [\"master\"],\n            \"excludes\": [\n                \"test\",\n                \"regression\",\n            ],\n        }],\n        \"days_to_builds\": [\n            \"Wed\",\n            \"Sun\",\n        ],\n        \"schedule_only_with_changes\": True,\n        \"start_hours\": 10,\n        \"start_minutes\": 59,\n        \"time_zone\": \"(UTC) Coordinated Universal Time\",\n    }],\n    repository={\n        \"repo_type\": \"TfsGit\",\n        \"repo_id\": example_git.id,\n        \"branch_name\": example_git.default_branch,\n        \"yml_path\": \"azure-pipelines.yml\",\n    },\n    variable_groups=[example_variable_group.id],\n    variables=[\n        {\n            \"name\": \"PipelineVariable\",\n            \"value\": \"Go Microsoft!\",\n        },\n        {\n            \"name\": \"PipelineSecret\",\n            \"secret_value\": \"ZGV2cw\",\n            \"is_secret\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Pipeline Variables\",\n        Description = \"Managed by Pulumi\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"FOO\",\n                Value = \"BAR\",\n            },\n        },\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = false,\n        },\n        Schedules = new[]\n        {\n            new AzureDevOps.Inputs.BuildDefinitionScheduleArgs\n            {\n                BranchFilters = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionScheduleBranchFilterArgs\n                    {\n                        Includes = new[]\n                        {\n                            \"master\",\n                        },\n                        Excludes = new[]\n                        {\n                            \"test\",\n                            \"regression\",\n                        },\n                    },\n                },\n                DaysToBuilds = new[]\n                {\n                    \"Wed\",\n                    \"Sun\",\n                },\n                ScheduleOnlyWithChanges = true,\n                StartHours = 10,\n                StartMinutes = 59,\n                TimeZone = \"(UTC) Coordinated Universal Time\",\n            },\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"TfsGit\",\n            RepoId = exampleGit.Id,\n            BranchName = exampleGit.DefaultBranch,\n            YmlPath = \"azure-pipelines.yml\",\n        },\n        VariableGroups = new[]\n        {\n            exampleVariableGroup.Id,\n        },\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.BuildDefinitionVariableArgs\n            {\n                Name = \"PipelineVariable\",\n                Value = \"Go Microsoft!\",\n            },\n            new AzureDevOps.Inputs.BuildDefinitionVariableArgs\n            {\n                Name = \"PipelineSecret\",\n                SecretValue = \"ZGV2cw\",\n                IsSecret = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVariableGroup, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Pipeline Variables\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"FOO\"),\n\t\t\t\t\tValue: pulumi.String(\"BAR\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(false),\n\t\t\t},\n\t\t\tSchedules: azuredevops.BuildDefinitionScheduleArray{\n\t\t\t\t\u0026azuredevops.BuildDefinitionScheduleArgs{\n\t\t\t\t\tBranchFilters: azuredevops.BuildDefinitionScheduleBranchFilterArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionScheduleBranchFilterArgs{\n\t\t\t\t\t\t\tIncludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"master\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tExcludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"regression\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDaysToBuilds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Wed\"),\n\t\t\t\t\t\tpulumi.String(\"Sun\"),\n\t\t\t\t\t},\n\t\t\t\t\tScheduleOnlyWithChanges: pulumi.Bool(true),\n\t\t\t\t\tStartHours:              pulumi.Int(10),\n\t\t\t\t\tStartMinutes:            pulumi.Int(59),\n\t\t\t\t\tTimeZone:                pulumi.String(\"(UTC) Coordinated Universal Time\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:   pulumi.String(\"TfsGit\"),\n\t\t\t\tRepoId:     exampleGit.ID(),\n\t\t\t\tBranchName: exampleGit.DefaultBranch,\n\t\t\t\tYmlPath:    pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t},\n\t\t\tVariableGroups: pulumi.IntArray{\n\t\t\t\texampleVariableGroup.ID(),\n\t\t\t},\n\t\t\tVariables: azuredevops.BuildDefinitionVariableArray{\n\t\t\t\t\u0026azuredevops.BuildDefinitionVariableArgs{\n\t\t\t\t\tName:  pulumi.String(\"PipelineVariable\"),\n\t\t\t\t\tValue: pulumi.String(\"Go Microsoft!\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.BuildDefinitionVariableArgs{\n\t\t\t\t\tName:        pulumi.String(\"PipelineSecret\"),\n\t\t\t\t\tSecretValue: pulumi.String(\"ZGV2cw\"),\n\t\t\t\t\tIsSecret:    pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionScheduleArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Pipeline Variables\")\n            .description(\"Managed by Pulumi\")\n            .allowAccess(true)\n            .variables(VariableGroupVariableArgs.builder()\n                .name(\"FOO\")\n                .value(\"BAR\")\n                .build())\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(false)\n                .build())\n            .schedules(BuildDefinitionScheduleArgs.builder()\n                .branchFilters(BuildDefinitionScheduleBranchFilterArgs.builder()\n                    .includes(\"master\")\n                    .excludes(                    \n                        \"test\",\n                        \"regression\")\n                    .build())\n                .daysToBuilds(                \n                    \"Wed\",\n                    \"Sun\")\n                .scheduleOnlyWithChanges(true)\n                .startHours(10)\n                .startMinutes(59)\n                .timeZone(\"(UTC) Coordinated Universal Time\")\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"TfsGit\")\n                .repoId(exampleGit.id())\n                .branchName(exampleGit.defaultBranch())\n                .ymlPath(\"azure-pipelines.yml\")\n                .build())\n            .variableGroups(exampleVariableGroup.id())\n            .variables(            \n                BuildDefinitionVariableArgs.builder()\n                    .name(\"PipelineVariable\")\n                    .value(\"Go Microsoft!\")\n                    .build(),\n                BuildDefinitionVariableArgs.builder()\n                    .name(\"PipelineSecret\")\n                    .secretValue(\"ZGV2cw\")\n                    .isSecret(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Pipeline Variables\n      description: Managed by Pulumi\n      allowAccess: true\n      variables:\n        - name: FOO\n          value: BAR\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: false\n      schedules:\n        - branchFilters:\n            - includes:\n                - master\n              excludes:\n                - test\n                - regression\n          daysToBuilds:\n            - Wed\n            - Sun\n          scheduleOnlyWithChanges: true\n          startHours: 10\n          startMinutes: 59\n          timeZone: (UTC) Coordinated Universal Time\n      repository:\n        repoType: TfsGit\n        repoId: ${exampleGit.id}\n        branchName: ${exampleGit.defaultBranch}\n        ymlPath: azure-pipelines.yml\n      variableGroups:\n        - ${exampleVariableGroup.id}\n      variables:\n        - name: PipelineVariable\n          value: Go Microsoft!\n        - name: PipelineSecret\n          secretValue: ZGV2cw\n          isSecret: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### GitHub Enterprise\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleServiceEndpointGitHubEnterprise = new azuredevops.ServiceEndpointGitHubEnterprise(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub Enterprise\",\n    url: \"https://github.contoso.com\",\n    description: \"Managed by Pulumi\",\n    authPersonal: {\n        personalAccessToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: example.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: false,\n    },\n    repository: {\n        repoType: \"GitHubEnterprise\",\n        repoId: \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        githubEnterpriseUrl: \"https://github.company.com\",\n        branchName: \"master\",\n        ymlPath: \"azure-pipelines.yml\",\n        serviceConnectionId: exampleServiceEndpointGitHubEnterprise.id,\n    },\n    schedules: [{\n        branchFilters: [{\n            includes: [\"main\"],\n            excludes: [\n                \"test\",\n                \"regression\",\n            ],\n        }],\n        daysToBuilds: [\n            \"Wed\",\n            \"Sun\",\n        ],\n        scheduleOnlyWithChanges: true,\n        startHours: 10,\n        startMinutes: 59,\n        timeZone: \"(UTC) Coordinated Universal Time\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_service_endpoint_git_hub_enterprise = azuredevops.ServiceEndpointGitHubEnterprise(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub Enterprise\",\n    url=\"https://github.contoso.com\",\n    description=\"Managed by Pulumi\",\n    auth_personal={\n        \"personal_access_token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    })\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example.id,\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": False,\n    },\n    repository={\n        \"repo_type\": \"GitHubEnterprise\",\n        \"repo_id\": \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        \"github_enterprise_url\": \"https://github.company.com\",\n        \"branch_name\": \"master\",\n        \"yml_path\": \"azure-pipelines.yml\",\n        \"service_connection_id\": example_service_endpoint_git_hub_enterprise.id,\n    },\n    schedules=[{\n        \"branch_filters\": [{\n            \"includes\": [\"main\"],\n            \"excludes\": [\n                \"test\",\n                \"regression\",\n            ],\n        }],\n        \"days_to_builds\": [\n            \"Wed\",\n            \"Sun\",\n        ],\n        \"schedule_only_with_changes\": True,\n        \"start_hours\": 10,\n        \"start_minutes\": 59,\n        \"time_zone\": \"(UTC) Coordinated Universal Time\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleServiceEndpointGitHubEnterprise = new AzureDevOps.ServiceEndpointGitHubEnterprise(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub Enterprise\",\n        Url = \"https://github.contoso.com\",\n        Description = \"Managed by Pulumi\",\n        AuthPersonal = new AzureDevOps.Inputs.ServiceEndpointGitHubEnterpriseAuthPersonalArgs\n        {\n            PersonalAccessToken = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = false,\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"GitHubEnterprise\",\n            RepoId = \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n            GithubEnterpriseUrl = \"https://github.company.com\",\n            BranchName = \"master\",\n            YmlPath = \"azure-pipelines.yml\",\n            ServiceConnectionId = exampleServiceEndpointGitHubEnterprise.Id,\n        },\n        Schedules = new[]\n        {\n            new AzureDevOps.Inputs.BuildDefinitionScheduleArgs\n            {\n                BranchFilters = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionScheduleBranchFilterArgs\n                    {\n                        Includes = new[]\n                        {\n                            \"main\",\n                        },\n                        Excludes = new[]\n                        {\n                            \"test\",\n                            \"regression\",\n                        },\n                    },\n                },\n                DaysToBuilds = new[]\n                {\n                    \"Wed\",\n                    \"Sun\",\n                },\n                ScheduleOnlyWithChanges = true,\n                StartHours = 10,\n                StartMinutes = 59,\n                TimeZone = \"(UTC) Coordinated Universal Time\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGitHubEnterprise, err := azuredevops.NewServiceEndpointGitHubEnterprise(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubEnterpriseArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub Enterprise\"),\n\t\t\tUrl:                 pulumi.String(\"https://github.contoso.com\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tAuthPersonal: \u0026azuredevops.ServiceEndpointGitHubEnterpriseAuthPersonalArgs{\n\t\t\t\tPersonalAccessToken: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:            pulumi.String(\"GitHubEnterprise\"),\n\t\t\t\tRepoId:              pulumi.String(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\"),\n\t\t\t\tGithubEnterpriseUrl: pulumi.String(\"https://github.company.com\"),\n\t\t\t\tBranchName:          pulumi.String(\"master\"),\n\t\t\t\tYmlPath:             pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t\tServiceConnectionId: exampleServiceEndpointGitHubEnterprise.ID(),\n\t\t\t},\n\t\t\tSchedules: azuredevops.BuildDefinitionScheduleArray{\n\t\t\t\t\u0026azuredevops.BuildDefinitionScheduleArgs{\n\t\t\t\t\tBranchFilters: azuredevops.BuildDefinitionScheduleBranchFilterArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionScheduleBranchFilterArgs{\n\t\t\t\t\t\t\tIncludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"main\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tExcludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\t\t\t\t\tpulumi.String(\"regression\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tDaysToBuilds: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Wed\"),\n\t\t\t\t\t\tpulumi.String(\"Sun\"),\n\t\t\t\t\t},\n\t\t\t\t\tScheduleOnlyWithChanges: pulumi.Bool(true),\n\t\t\t\t\tStartHours:              pulumi.Int(10),\n\t\t\t\t\tStartMinutes:            pulumi.Int(59),\n\t\t\t\t\tTimeZone:                pulumi.String(\"(UTC) Coordinated Universal Time\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterprise;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterpriseArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointGitHubEnterpriseAuthPersonalArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionScheduleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleServiceEndpointGitHubEnterprise = new ServiceEndpointGitHubEnterprise(\"exampleServiceEndpointGitHubEnterprise\", ServiceEndpointGitHubEnterpriseArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub Enterprise\")\n            .url(\"https://github.contoso.com\")\n            .description(\"Managed by Pulumi\")\n            .authPersonal(ServiceEndpointGitHubEnterpriseAuthPersonalArgs.builder()\n                .personalAccessToken(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(false)\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"GitHubEnterprise\")\n                .repoId(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\")\n                .githubEnterpriseUrl(\"https://github.company.com\")\n                .branchName(\"master\")\n                .ymlPath(\"azure-pipelines.yml\")\n                .serviceConnectionId(exampleServiceEndpointGitHubEnterprise.id())\n                .build())\n            .schedules(BuildDefinitionScheduleArgs.builder()\n                .branchFilters(BuildDefinitionScheduleBranchFilterArgs.builder()\n                    .includes(\"main\")\n                    .excludes(                    \n                        \"test\",\n                        \"regression\")\n                    .build())\n                .daysToBuilds(                \n                    \"Wed\",\n                    \"Sun\")\n                .scheduleOnlyWithChanges(true)\n                .startHours(10)\n                .startMinutes(59)\n                .timeZone(\"(UTC) Coordinated Universal Time\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleServiceEndpointGitHubEnterprise:\n    type: azuredevops:ServiceEndpointGitHubEnterprise\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitHub Enterprise\n      url: https://github.contoso.com\n      description: Managed by Pulumi\n      authPersonal:\n        personalAccessToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: false\n      repository:\n        repoType: GitHubEnterprise\n        repoId: \u003cGitHub Org\u003e/\u003cRepo Name\u003e\n        githubEnterpriseUrl: https://github.company.com\n        branchName: master\n        ymlPath: azure-pipelines.yml\n        serviceConnectionId: ${exampleServiceEndpointGitHubEnterprise.id}\n      schedules:\n        - branchFilters:\n            - includes:\n                - main\n              excludes:\n                - test\n                - regression\n          daysToBuilds:\n            - Wed\n            - Sun\n          scheduleOnlyWithChanges: true\n          startHours: 10\n          startMinutes: 59\n          timeZone: (UTC) Coordinated Universal Time\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Build Completion Trigger\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.BuildDefinition(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: false,\n    },\n    repository: {\n        repoType: \"GitHubEnterprise\",\n        repoId: \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        githubEnterpriseUrl: \"https://github.company.com\",\n        branchName: \"main\",\n        ymlPath: \"azure-pipelines.yml\",\n        serviceConnectionId: exampleAzuredevopsServiceendpointGithubEnterprise.id,\n    },\n    buildCompletionTriggers: [{\n        buildDefinitionId: 10,\n        branchFilters: [{\n            includes: [\"main\"],\n            excludes: [\"test\"],\n        }],\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.BuildDefinition(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": False,\n    },\n    repository={\n        \"repo_type\": \"GitHubEnterprise\",\n        \"repo_id\": \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        \"github_enterprise_url\": \"https://github.company.com\",\n        \"branch_name\": \"main\",\n        \"yml_path\": \"azure-pipelines.yml\",\n        \"service_connection_id\": example_azuredevops_serviceendpoint_github_enterprise[\"id\"],\n    },\n    build_completion_triggers=[{\n        \"build_definition_id\": 10,\n        \"branch_filters\": [{\n            \"includes\": [\"main\"],\n            \"excludes\": [\"test\"],\n        }],\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = false,\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"GitHubEnterprise\",\n            RepoId = \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n            GithubEnterpriseUrl = \"https://github.company.com\",\n            BranchName = \"main\",\n            YmlPath = \"azure-pipelines.yml\",\n            ServiceConnectionId = exampleAzuredevopsServiceendpointGithubEnterprise.Id,\n        },\n        BuildCompletionTriggers = new[]\n        {\n            new AzureDevOps.Inputs.BuildDefinitionBuildCompletionTriggerArgs\n            {\n                BuildDefinitionId = 10,\n                BranchFilters = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionBuildCompletionTriggerBranchFilterArgs\n                    {\n                        Includes = new[]\n                        {\n                            \"main\",\n                        },\n                        Excludes = new[]\n                        {\n                            \"test\",\n                        },\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:            pulumi.String(\"GitHubEnterprise\"),\n\t\t\t\tRepoId:              pulumi.String(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\"),\n\t\t\t\tGithubEnterpriseUrl: pulumi.String(\"https://github.company.com\"),\n\t\t\t\tBranchName:          pulumi.String(\"main\"),\n\t\t\t\tYmlPath:             pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t\tServiceConnectionId: pulumi.Any(exampleAzuredevopsServiceendpointGithubEnterprise.Id),\n\t\t\t},\n\t\t\tBuildCompletionTriggers: azuredevops.BuildDefinitionBuildCompletionTriggerArray{\n\t\t\t\t\u0026azuredevops.BuildDefinitionBuildCompletionTriggerArgs{\n\t\t\t\t\tBuildDefinitionId: pulumi.Int(10),\n\t\t\t\t\tBranchFilters: azuredevops.BuildDefinitionBuildCompletionTriggerBranchFilterArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionBuildCompletionTriggerBranchFilterArgs{\n\t\t\t\t\t\t\tIncludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"main\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tExcludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"test\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionBuildCompletionTriggerArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new BuildDefinition(\"example\", BuildDefinitionArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(false)\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"GitHubEnterprise\")\n                .repoId(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\")\n                .githubEnterpriseUrl(\"https://github.company.com\")\n                .branchName(\"main\")\n                .ymlPath(\"azure-pipelines.yml\")\n                .serviceConnectionId(exampleAzuredevopsServiceendpointGithubEnterprise.id())\n                .build())\n            .buildCompletionTriggers(BuildDefinitionBuildCompletionTriggerArgs.builder()\n                .buildDefinitionId(10)\n                .branchFilters(BuildDefinitionBuildCompletionTriggerBranchFilterArgs.builder()\n                    .includes(\"main\")\n                    .excludes(\"test\")\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:BuildDefinition\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: false\n      repository:\n        repoType: GitHubEnterprise\n        repoId: \u003cGitHub Org\u003e/\u003cRepo Name\u003e\n        githubEnterpriseUrl: https://github.company.com\n        branchName: main\n        ymlPath: azure-pipelines.yml\n        serviceConnectionId: ${exampleAzuredevopsServiceendpointGithubEnterprise.id}\n      buildCompletionTriggers:\n        - buildDefinitionId: 10\n          branchFilters:\n            - includes:\n                - main\n              excludes:\n                - test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Pull Request Trigger\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getServiceEndpointGithub({\n    projectId: exampleAzuredevopsProject.id,\n    serviceEndpointId: \"00000000-0000-0000-0000-000000000000\",\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: exampleAzuredevopsProject2.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: false,\n    },\n    repository: {\n        repoType: \"GitHub\",\n        repoId: \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        branchName: \"main\",\n        ymlPath: \"azure-pipelines.yml\",\n        serviceConnectionId: example.then(example =\u003e example.id),\n    },\n    pullRequestTrigger: {\n        override: {\n            branchFilters: [{\n                includes: [\"main\"],\n            }],\n        },\n        forks: {\n            enabled: false,\n            shareSecrets: false,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_service_endpoint_github(project_id=example_azuredevops_project[\"id\"],\n    service_endpoint_id=\"00000000-0000-0000-0000-000000000000\")\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example_azuredevops_project2[\"id\"],\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": False,\n    },\n    repository={\n        \"repo_type\": \"GitHub\",\n        \"repo_id\": \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n        \"branch_name\": \"main\",\n        \"yml_path\": \"azure-pipelines.yml\",\n        \"service_connection_id\": example.id,\n    },\n    pull_request_trigger={\n        \"override\": {\n            \"branch_filters\": [{\n                \"includes\": [\"main\"],\n            }],\n        },\n        \"forks\": {\n            \"enabled\": False,\n            \"share_secrets\": False,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetServiceEndpointGithub.Invoke(new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        ServiceEndpointId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject2.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = false,\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"GitHub\",\n            RepoId = \"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\",\n            BranchName = \"main\",\n            YmlPath = \"azure-pipelines.yml\",\n            ServiceConnectionId = example.Apply(getServiceEndpointGithubResult =\u003e getServiceEndpointGithubResult.Id),\n        },\n        PullRequestTrigger = new AzureDevOps.Inputs.BuildDefinitionPullRequestTriggerArgs\n        {\n            Override = new AzureDevOps.Inputs.BuildDefinitionPullRequestTriggerOverrideArgs\n            {\n                BranchFilters = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionPullRequestTriggerOverrideBranchFilterArgs\n                    {\n                        Includes = new[]\n                        {\n                            \"main\",\n                        },\n                    },\n                },\n            },\n            Forks = new AzureDevOps.Inputs.BuildDefinitionPullRequestTriggerForksArgs\n            {\n                Enabled = false,\n                ShareSecrets = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetServiceEndpointGithub(ctx, \u0026azuredevops.GetServiceEndpointGithubArgs{\n\t\t\tProjectId:         exampleAzuredevopsProject.Id,\n\t\t\tServiceEndpointId: pulumi.StringRef(\"00000000-0000-0000-0000-000000000000\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject2.Id),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:            pulumi.String(\"GitHub\"),\n\t\t\t\tRepoId:              pulumi.String(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\"),\n\t\t\t\tBranchName:          pulumi.String(\"main\"),\n\t\t\t\tYmlPath:             pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t\tServiceConnectionId: pulumi.String(example.Id),\n\t\t\t},\n\t\t\tPullRequestTrigger: \u0026azuredevops.BuildDefinitionPullRequestTriggerArgs{\n\t\t\t\tOverride: \u0026azuredevops.BuildDefinitionPullRequestTriggerOverrideArgs{\n\t\t\t\t\tBranchFilters: azuredevops.BuildDefinitionPullRequestTriggerOverrideBranchFilterArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionPullRequestTriggerOverrideBranchFilterArgs{\n\t\t\t\t\t\t\tIncludes: pulumi.StringArray{\n\t\t\t\t\t\t\t\tpulumi.String(\"main\"),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tForks: \u0026azuredevops.BuildDefinitionPullRequestTriggerForksArgs{\n\t\t\t\t\tEnabled:      pulumi.Bool(false),\n\t\t\t\t\tShareSecrets: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetServiceEndpointGithubArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionPullRequestTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionPullRequestTriggerOverrideArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionPullRequestTriggerForksArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getServiceEndpointGithub(GetServiceEndpointGithubArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .serviceEndpointId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(exampleAzuredevopsProject2.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(false)\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"GitHub\")\n                .repoId(\"\u003cGitHub Org\u003e/\u003cRepo Name\u003e\")\n                .branchName(\"main\")\n                .ymlPath(\"azure-pipelines.yml\")\n                .serviceConnectionId(example.id())\n                .build())\n            .pullRequestTrigger(BuildDefinitionPullRequestTriggerArgs.builder()\n                .override(BuildDefinitionPullRequestTriggerOverrideArgs.builder()\n                    .branchFilters(BuildDefinitionPullRequestTriggerOverrideBranchFilterArgs.builder()\n                        .includes(\"main\")\n                        .build())\n                    .build())\n                .forks(BuildDefinitionPullRequestTriggerForksArgs.builder()\n                    .enabled(false)\n                    .shareSecrets(false)\n                    .build())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${exampleAzuredevopsProject2.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: false\n      repository:\n        repoType: GitHub\n        repoId: \u003cGitHub Org\u003e/\u003cRepo Name\u003e\n        branchName: main\n        ymlPath: azure-pipelines.yml\n        serviceConnectionId: ${example.id}\n      pullRequestTrigger:\n        override:\n          branchFilters:\n            - includes:\n                - main\n        forks:\n          enabled: false\n          shareSecrets: false\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getServiceEndpointGithub\n      arguments:\n        projectId: ${exampleAzuredevopsProject.id}\n        serviceEndpointId: 00000000-0000-0000-0000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Other Git and Agent Jobs\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServiceEndpointGenericGit(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    repositoryUrl: \"https://gitlab.com/example/example.git\",\n    password: \"token\",\n    serviceEndpointName: \"Example Generic Git\",\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: exampleAzuredevopsProject2.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: false,\n    },\n    repository: {\n        repoType: \"Git\",\n        repoId: example.repositoryUrl,\n        branchName: \"refs/heads/main\",\n        url: example.repositoryUrl,\n        serviceConnectionId: example.id,\n    },\n    jobs: [\n        {\n            name: \"Agent Job1\",\n            refName: \"agent_job1\",\n            condition: \"succeededOrFailed()\",\n            target: {\n                type: \"AgentJob\",\n                executionOptions: {\n                    type: \"None\",\n                },\n            },\n        },\n        {\n            name: \"Agent Job2\",\n            refName: \"agent_job2\",\n            condition: \"succeededOrFailed()\",\n            dependencies: [{\n                scope: \"agent_job1\",\n            }],\n            target: {\n                type: \"AgentJob\",\n                demands: [\"git\"],\n                executionOptions: {\n                    type: \"Multi-Configuration\",\n                    continueOnError: true,\n                    multipliers: \"multipliers\",\n                    maxConcurrency: 2,\n                },\n            },\n        },\n        {\n            name: \"Agentless Job1\",\n            refName: \"agentless_job1\",\n            condition: \"succeeded()\",\n            target: {\n                type: \"AgentlessJob\",\n                executionOptions: {\n                    type: \"None\",\n                },\n            },\n        },\n        {\n            name: \"Agentless Job2\",\n            refName: \"agentless_job2\",\n            condition: \"succeeded()\",\n            jobAuthorizationScope: \"project\",\n            dependencies: [\n                {\n                    scope: \"agent_job2\",\n                },\n                {\n                    scope: \"agentless_job1\",\n                },\n            ],\n            target: {\n                type: \"AgentlessJob\",\n                executionOptions: {\n                    type: \"Multi-Configuration\",\n                    continueOnError: true,\n                    multipliers: \"multipliers\",\n                },\n            },\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServiceEndpointGenericGit(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    repository_url=\"https://gitlab.com/example/example.git\",\n    password=\"token\",\n    service_endpoint_name=\"Example Generic Git\")\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example_azuredevops_project2[\"id\"],\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": False,\n    },\n    repository={\n        \"repo_type\": \"Git\",\n        \"repo_id\": example.repository_url,\n        \"branch_name\": \"refs/heads/main\",\n        \"url\": example.repository_url,\n        \"service_connection_id\": example.id,\n    },\n    jobs=[\n        {\n            \"name\": \"Agent Job1\",\n            \"ref_name\": \"agent_job1\",\n            \"condition\": \"succeededOrFailed()\",\n            \"target\": {\n                \"type\": \"AgentJob\",\n                \"execution_options\": {\n                    \"type\": \"None\",\n                },\n            },\n        },\n        {\n            \"name\": \"Agent Job2\",\n            \"ref_name\": \"agent_job2\",\n            \"condition\": \"succeededOrFailed()\",\n            \"dependencies\": [{\n                \"scope\": \"agent_job1\",\n            }],\n            \"target\": {\n                \"type\": \"AgentJob\",\n                \"demands\": [\"git\"],\n                \"execution_options\": {\n                    \"type\": \"Multi-Configuration\",\n                    \"continue_on_error\": True,\n                    \"multipliers\": \"multipliers\",\n                    \"max_concurrency\": 2,\n                },\n            },\n        },\n        {\n            \"name\": \"Agentless Job1\",\n            \"ref_name\": \"agentless_job1\",\n            \"condition\": \"succeeded()\",\n            \"target\": {\n                \"type\": \"AgentlessJob\",\n                \"execution_options\": {\n                    \"type\": \"None\",\n                },\n            },\n        },\n        {\n            \"name\": \"Agentless Job2\",\n            \"ref_name\": \"agentless_job2\",\n            \"condition\": \"succeeded()\",\n            \"job_authorization_scope\": \"project\",\n            \"dependencies\": [\n                {\n                    \"scope\": \"agent_job2\",\n                },\n                {\n                    \"scope\": \"agentless_job1\",\n                },\n            ],\n            \"target\": {\n                \"type\": \"AgentlessJob\",\n                \"execution_options\": {\n                    \"type\": \"Multi-Configuration\",\n                    \"continue_on_error\": True,\n                    \"multipliers\": \"multipliers\",\n                },\n            },\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServiceEndpointGenericGit(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        RepositoryUrl = \"https://gitlab.com/example/example.git\",\n        Password = \"token\",\n        ServiceEndpointName = \"Example Generic Git\",\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject2.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = false,\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"Git\",\n            RepoId = example.RepositoryUrl,\n            BranchName = \"refs/heads/main\",\n            Url = example.RepositoryUrl,\n            ServiceConnectionId = example.Id,\n        },\n        Jobs = new[]\n        {\n            new AzureDevOps.Inputs.BuildDefinitionJobArgs\n            {\n                Name = \"Agent Job1\",\n                RefName = \"agent_job1\",\n                Condition = \"succeededOrFailed()\",\n                Target = new AzureDevOps.Inputs.BuildDefinitionJobTargetArgs\n                {\n                    Type = \"AgentJob\",\n                    ExecutionOptions = new AzureDevOps.Inputs.BuildDefinitionJobTargetExecutionOptionsArgs\n                    {\n                        Type = \"None\",\n                    },\n                },\n            },\n            new AzureDevOps.Inputs.BuildDefinitionJobArgs\n            {\n                Name = \"Agent Job2\",\n                RefName = \"agent_job2\",\n                Condition = \"succeededOrFailed()\",\n                Dependencies = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionJobDependencyArgs\n                    {\n                        Scope = \"agent_job1\",\n                    },\n                },\n                Target = new AzureDevOps.Inputs.BuildDefinitionJobTargetArgs\n                {\n                    Type = \"AgentJob\",\n                    Demands = new[]\n                    {\n                        \"git\",\n                    },\n                    ExecutionOptions = new AzureDevOps.Inputs.BuildDefinitionJobTargetExecutionOptionsArgs\n                    {\n                        Type = \"Multi-Configuration\",\n                        ContinueOnError = true,\n                        Multipliers = \"multipliers\",\n                        MaxConcurrency = 2,\n                    },\n                },\n            },\n            new AzureDevOps.Inputs.BuildDefinitionJobArgs\n            {\n                Name = \"Agentless Job1\",\n                RefName = \"agentless_job1\",\n                Condition = \"succeeded()\",\n                Target = new AzureDevOps.Inputs.BuildDefinitionJobTargetArgs\n                {\n                    Type = \"AgentlessJob\",\n                    ExecutionOptions = new AzureDevOps.Inputs.BuildDefinitionJobTargetExecutionOptionsArgs\n                    {\n                        Type = \"None\",\n                    },\n                },\n            },\n            new AzureDevOps.Inputs.BuildDefinitionJobArgs\n            {\n                Name = \"Agentless Job2\",\n                RefName = \"agentless_job2\",\n                Condition = \"succeeded()\",\n                JobAuthorizationScope = \"project\",\n                Dependencies = new[]\n                {\n                    new AzureDevOps.Inputs.BuildDefinitionJobDependencyArgs\n                    {\n                        Scope = \"agent_job2\",\n                    },\n                    new AzureDevOps.Inputs.BuildDefinitionJobDependencyArgs\n                    {\n                        Scope = \"agentless_job1\",\n                    },\n                },\n                Target = new AzureDevOps.Inputs.BuildDefinitionJobTargetArgs\n                {\n                    Type = \"AgentlessJob\",\n                    ExecutionOptions = new AzureDevOps.Inputs.BuildDefinitionJobTargetExecutionOptionsArgs\n                    {\n                        Type = \"Multi-Configuration\",\n                        ContinueOnError = true,\n                        Multipliers = \"multipliers\",\n                    },\n                },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewServiceEndpointGenericGit(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericGitArgs{\n\t\t\tProjectId:           pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tRepositoryUrl:       pulumi.String(\"https://gitlab.com/example/example.git\"),\n\t\t\tPassword:            pulumi.String(\"token\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic Git\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject2.Id),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(false),\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:            pulumi.String(\"Git\"),\n\t\t\t\tRepoId:              example.RepositoryUrl,\n\t\t\t\tBranchName:          pulumi.String(\"refs/heads/main\"),\n\t\t\t\tUrl:                 example.RepositoryUrl,\n\t\t\t\tServiceConnectionId: example.ID(),\n\t\t\t},\n\t\t\tJobs: azuredevops.BuildDefinitionJobArray{\n\t\t\t\t\u0026azuredevops.BuildDefinitionJobArgs{\n\t\t\t\t\tName:      pulumi.String(\"Agent Job1\"),\n\t\t\t\t\tRefName:   pulumi.String(\"agent_job1\"),\n\t\t\t\t\tCondition: pulumi.String(\"succeededOrFailed()\"),\n\t\t\t\t\tTarget: \u0026azuredevops.BuildDefinitionJobTargetArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AgentJob\"),\n\t\t\t\t\t\tExecutionOptions: \u0026azuredevops.BuildDefinitionJobTargetExecutionOptionsArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"None\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.BuildDefinitionJobArgs{\n\t\t\t\t\tName:      pulumi.String(\"Agent Job2\"),\n\t\t\t\t\tRefName:   pulumi.String(\"agent_job2\"),\n\t\t\t\t\tCondition: pulumi.String(\"succeededOrFailed()\"),\n\t\t\t\t\tDependencies: azuredevops.BuildDefinitionJobDependencyArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionJobDependencyArgs{\n\t\t\t\t\t\t\tScope: pulumi.String(\"agent_job1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTarget: \u0026azuredevops.BuildDefinitionJobTargetArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AgentJob\"),\n\t\t\t\t\t\tDemands: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"git\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tExecutionOptions: \u0026azuredevops.BuildDefinitionJobTargetExecutionOptionsArgs{\n\t\t\t\t\t\t\tType:            pulumi.String(\"Multi-Configuration\"),\n\t\t\t\t\t\t\tContinueOnError: pulumi.Bool(true),\n\t\t\t\t\t\t\tMultipliers:     pulumi.String(\"multipliers\"),\n\t\t\t\t\t\t\tMaxConcurrency:  pulumi.Int(2),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.BuildDefinitionJobArgs{\n\t\t\t\t\tName:      pulumi.String(\"Agentless Job1\"),\n\t\t\t\t\tRefName:   pulumi.String(\"agentless_job1\"),\n\t\t\t\t\tCondition: pulumi.String(\"succeeded()\"),\n\t\t\t\t\tTarget: \u0026azuredevops.BuildDefinitionJobTargetArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AgentlessJob\"),\n\t\t\t\t\t\tExecutionOptions: \u0026azuredevops.BuildDefinitionJobTargetExecutionOptionsArgs{\n\t\t\t\t\t\t\tType: pulumi.String(\"None\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.BuildDefinitionJobArgs{\n\t\t\t\t\tName:                  pulumi.String(\"Agentless Job2\"),\n\t\t\t\t\tRefName:               pulumi.String(\"agentless_job2\"),\n\t\t\t\t\tCondition:             pulumi.String(\"succeeded()\"),\n\t\t\t\t\tJobAuthorizationScope: pulumi.String(\"project\"),\n\t\t\t\t\tDependencies: azuredevops.BuildDefinitionJobDependencyArray{\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionJobDependencyArgs{\n\t\t\t\t\t\t\tScope: pulumi.String(\"agent_job2\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\u0026azuredevops.BuildDefinitionJobDependencyArgs{\n\t\t\t\t\t\t\tScope: pulumi.String(\"agentless_job1\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tTarget: \u0026azuredevops.BuildDefinitionJobTargetArgs{\n\t\t\t\t\t\tType: pulumi.String(\"AgentlessJob\"),\n\t\t\t\t\t\tExecutionOptions: \u0026azuredevops.BuildDefinitionJobTargetExecutionOptionsArgs{\n\t\t\t\t\t\t\tType:            pulumi.String(\"Multi-Configuration\"),\n\t\t\t\t\t\t\tContinueOnError: pulumi.Bool(true),\n\t\t\t\t\t\t\tMultipliers:     pulumi.String(\"multipliers\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGit;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGitArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionJobArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionJobTargetArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionJobTargetExecutionOptionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServiceEndpointGenericGit(\"example\", ServiceEndpointGenericGitArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .repositoryUrl(\"https://gitlab.com/example/example.git\")\n            .password(\"token\")\n            .serviceEndpointName(\"Example Generic Git\")\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(exampleAzuredevopsProject2.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(false)\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"Git\")\n                .repoId(example.repositoryUrl())\n                .branchName(\"refs/heads/main\")\n                .url(example.repositoryUrl())\n                .serviceConnectionId(example.id())\n                .build())\n            .jobs(            \n                BuildDefinitionJobArgs.builder()\n                    .name(\"Agent Job1\")\n                    .refName(\"agent_job1\")\n                    .condition(\"succeededOrFailed()\")\n                    .target(BuildDefinitionJobTargetArgs.builder()\n                        .type(\"AgentJob\")\n                        .executionOptions(BuildDefinitionJobTargetExecutionOptionsArgs.builder()\n                            .type(\"None\")\n                            .build())\n                        .build())\n                    .build(),\n                BuildDefinitionJobArgs.builder()\n                    .name(\"Agent Job2\")\n                    .refName(\"agent_job2\")\n                    .condition(\"succeededOrFailed()\")\n                    .dependencies(BuildDefinitionJobDependencyArgs.builder()\n                        .scope(\"agent_job1\")\n                        .build())\n                    .target(BuildDefinitionJobTargetArgs.builder()\n                        .type(\"AgentJob\")\n                        .demands(\"git\")\n                        .executionOptions(BuildDefinitionJobTargetExecutionOptionsArgs.builder()\n                            .type(\"Multi-Configuration\")\n                            .continueOnError(true)\n                            .multipliers(\"multipliers\")\n                            .maxConcurrency(2)\n                            .build())\n                        .build())\n                    .build(),\n                BuildDefinitionJobArgs.builder()\n                    .name(\"Agentless Job1\")\n                    .refName(\"agentless_job1\")\n                    .condition(\"succeeded()\")\n                    .target(BuildDefinitionJobTargetArgs.builder()\n                        .type(\"AgentlessJob\")\n                        .executionOptions(BuildDefinitionJobTargetExecutionOptionsArgs.builder()\n                            .type(\"None\")\n                            .build())\n                        .build())\n                    .build(),\n                BuildDefinitionJobArgs.builder()\n                    .name(\"Agentless Job2\")\n                    .refName(\"agentless_job2\")\n                    .condition(\"succeeded()\")\n                    .jobAuthorizationScope(\"project\")\n                    .dependencies(                    \n                        BuildDefinitionJobDependencyArgs.builder()\n                            .scope(\"agent_job2\")\n                            .build(),\n                        BuildDefinitionJobDependencyArgs.builder()\n                            .scope(\"agentless_job1\")\n                            .build())\n                    .target(BuildDefinitionJobTargetArgs.builder()\n                        .type(\"AgentlessJob\")\n                        .executionOptions(BuildDefinitionJobTargetExecutionOptionsArgs.builder()\n                            .type(\"Multi-Configuration\")\n                            .continueOnError(true)\n                            .multipliers(\"multipliers\")\n                            .build())\n                        .build())\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServiceEndpointGenericGit\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      repositoryUrl: https://gitlab.com/example/example.git\n      password: token\n      serviceEndpointName: Example Generic Git\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${exampleAzuredevopsProject2.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: false\n      repository:\n        repoType: Git\n        repoId: ${example.repositoryUrl}\n        branchName: refs/heads/main\n        url: ${example.repositoryUrl}\n        serviceConnectionId: ${example.id}\n      jobs:\n        - name: Agent Job1\n          refName: agent_job1\n          condition: succeededOrFailed()\n          target:\n            type: AgentJob\n            executionOptions:\n              type: None\n        - name: Agent Job2\n          refName: agent_job2\n          condition: succeededOrFailed()\n          dependencies:\n            - scope: agent_job1\n          target:\n            type: AgentJob\n            demands:\n              - git\n            executionOptions:\n              type: Multi-Configuration\n              continueOnError: true\n              multipliers: multipliers\n              maxConcurrency: 2\n        - name: Agentless Job1\n          refName: agentless_job1\n          condition: succeeded()\n          target:\n            type: AgentlessJob\n            executionOptions:\n              type: None\n        - name: Agentless Job2\n          refName: agentless_job2\n          condition: succeeded()\n          jobAuthorizationScope: project\n          dependencies:\n            - scope: agent_job2\n            - scope: agentless_job1\n          target:\n            type: AgentlessJob\n            executionOptions:\n              type: Multi-Configuration\n              continueOnError: true\n              multipliers: multipliers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Remarks\n\nThe path attribute can not end in `\\` unless the path is the root value of `\\`. \n\nValid path values (yaml encoded) include:\n- `\\\\`\n- `\\\\ExampleFolder`\n- `\\\\Nested\\\\Example Folder`\n\nThe value of `\\\\ExampleFolder\\\\` would be invalid.\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Build Definitions](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/definitions?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Build Definitions can be imported using the project name/definitions Id or by the project Guid/definitions Id, e.g.\n\n```sh\nterraform import azuredevops_build_definition.example \"Example Project\"/10\n```\n\nor\n\n```sh\n$ pulumi import azuredevops:index/buildDefinition:BuildDefinition example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"agentPoolName":{"type":"string","description":"The agent pool that should execute the build. Defaults to `Azure Pipelines`.\n"},"agentSpecification":{"type":"string","description":"The Agent Specification to run the pipelines. Required when \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `Git`. Example: `windows-2019`, `windows-latest`, `macos-13` etc.\n"},"buildCompletionTriggers":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionBuildCompletionTrigger:BuildDefinitionBuildCompletionTrigger"},"description":"A \u003cspan pulumi-lang-nodejs=\"`buildCompletionTrigger`\" pulumi-lang-dotnet=\"`BuildCompletionTrigger`\" pulumi-lang-go=\"`buildCompletionTrigger`\" pulumi-lang-python=\"`build_completion_trigger`\" pulumi-lang-yaml=\"`buildCompletionTrigger`\" pulumi-lang-java=\"`buildCompletionTrigger`\"\u003e`build_completion_trigger`\u003c/span\u003e block as documented below.\n"},"ciTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTrigger:BuildDefinitionCiTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`ciTrigger`\" pulumi-lang-dotnet=\"`CiTrigger`\" pulumi-lang-go=\"`ciTrigger`\" pulumi-lang-python=\"`ci_trigger`\" pulumi-lang-yaml=\"`ciTrigger`\" pulumi-lang-java=\"`ciTrigger`\"\u003e`ci_trigger`\u003c/span\u003e block as documented below.\n"},"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionFeature:BuildDefinitionFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n"},"jobAuthorizationScope":{"type":"string","description":"The job authorization scope for builds queued against this definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e, `projectCollection`. Defaults to `projectCollection`.\n"},"jobs":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionJob:BuildDefinitionJob"},"description":"A \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e blocks as documented below.\n\n\u003e **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e are classic pipelines, you need to enable the classic pipeline feature for your organization to use this feature.\n"},"name":{"type":"string","description":"The name of the build definition.\n"},"path":{"type":"string","description":"The folder path of the build definition.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n"},"pullRequestTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTrigger:BuildDefinitionPullRequestTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`pullRequestTrigger`\" pulumi-lang-dotnet=\"`PullRequestTrigger`\" pulumi-lang-go=\"`pullRequestTrigger`\" pulumi-lang-python=\"`pull_request_trigger`\" pulumi-lang-yaml=\"`pullRequestTrigger`\" pulumi-lang-java=\"`pullRequestTrigger`\"\u003e`pull_request_trigger`\u003c/span\u003e block as documented below.\n"},"queueStatus":{"type":"string","description":"The queue status of the build definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"repository":{"$ref":"#/types/azuredevops:index/BuildDefinitionRepository:BuildDefinitionRepository","description":"A \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e block as documented below.\n"},"revision":{"type":"integer","description":"The revision of the build definition\n"},"schedules":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionSchedule:BuildDefinitionSchedule"}},"variableGroups":{"type":"array","items":{"type":"integer"},"description":"A list of variable group IDs (integers) to link to the build definition.\n"},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionVariable:BuildDefinitionVariable"},"description":"A list of \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks, as documented below.\n"}},"required":["name","projectId","repository","revision"],"inputProperties":{"agentPoolName":{"type":"string","description":"The agent pool that should execute the build. Defaults to `Azure Pipelines`.\n"},"agentSpecification":{"type":"string","description":"The Agent Specification to run the pipelines. Required when \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `Git`. Example: `windows-2019`, `windows-latest`, `macos-13` etc.\n"},"buildCompletionTriggers":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionBuildCompletionTrigger:BuildDefinitionBuildCompletionTrigger"},"description":"A \u003cspan pulumi-lang-nodejs=\"`buildCompletionTrigger`\" pulumi-lang-dotnet=\"`BuildCompletionTrigger`\" pulumi-lang-go=\"`buildCompletionTrigger`\" pulumi-lang-python=\"`build_completion_trigger`\" pulumi-lang-yaml=\"`buildCompletionTrigger`\" pulumi-lang-java=\"`buildCompletionTrigger`\"\u003e`build_completion_trigger`\u003c/span\u003e block as documented below.\n"},"ciTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTrigger:BuildDefinitionCiTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`ciTrigger`\" pulumi-lang-dotnet=\"`CiTrigger`\" pulumi-lang-go=\"`ciTrigger`\" pulumi-lang-python=\"`ci_trigger`\" pulumi-lang-yaml=\"`ciTrigger`\" pulumi-lang-java=\"`ciTrigger`\"\u003e`ci_trigger`\u003c/span\u003e block as documented below.\n"},"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionFeature:BuildDefinitionFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n"},"jobAuthorizationScope":{"type":"string","description":"The job authorization scope for builds queued against this definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e, `projectCollection`. Defaults to `projectCollection`.\n"},"jobs":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionJob:BuildDefinitionJob"},"description":"A \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e blocks as documented below.\n\n\u003e **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e are classic pipelines, you need to enable the classic pipeline feature for your organization to use this feature.\n"},"name":{"type":"string","description":"The name of the build definition.\n"},"path":{"type":"string","description":"The folder path of the build definition.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true},"pullRequestTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTrigger:BuildDefinitionPullRequestTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`pullRequestTrigger`\" pulumi-lang-dotnet=\"`PullRequestTrigger`\" pulumi-lang-go=\"`pullRequestTrigger`\" pulumi-lang-python=\"`pull_request_trigger`\" pulumi-lang-yaml=\"`pullRequestTrigger`\" pulumi-lang-java=\"`pullRequestTrigger`\"\u003e`pull_request_trigger`\u003c/span\u003e block as documented below.\n"},"queueStatus":{"type":"string","description":"The queue status of the build definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"repository":{"$ref":"#/types/azuredevops:index/BuildDefinitionRepository:BuildDefinitionRepository","description":"A \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e block as documented below.\n"},"schedules":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionSchedule:BuildDefinitionSchedule"}},"variableGroups":{"type":"array","items":{"type":"integer"},"description":"A list of variable group IDs (integers) to link to the build definition.\n"},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionVariable:BuildDefinitionVariable"},"description":"A list of \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks, as documented below.\n"}},"requiredInputs":["projectId","repository"],"stateInputs":{"description":"Input properties used for looking up and filtering BuildDefinition resources.\n","properties":{"agentPoolName":{"type":"string","description":"The agent pool that should execute the build. Defaults to `Azure Pipelines`.\n"},"agentSpecification":{"type":"string","description":"The Agent Specification to run the pipelines. Required when \u003cspan pulumi-lang-nodejs=\"`repoType`\" pulumi-lang-dotnet=\"`RepoType`\" pulumi-lang-go=\"`repoType`\" pulumi-lang-python=\"`repo_type`\" pulumi-lang-yaml=\"`repoType`\" pulumi-lang-java=\"`repoType`\"\u003e`repo_type`\u003c/span\u003e is `Git`. Example: `windows-2019`, `windows-latest`, `macos-13` etc.\n"},"buildCompletionTriggers":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionBuildCompletionTrigger:BuildDefinitionBuildCompletionTrigger"},"description":"A \u003cspan pulumi-lang-nodejs=\"`buildCompletionTrigger`\" pulumi-lang-dotnet=\"`BuildCompletionTrigger`\" pulumi-lang-go=\"`buildCompletionTrigger`\" pulumi-lang-python=\"`build_completion_trigger`\" pulumi-lang-yaml=\"`buildCompletionTrigger`\" pulumi-lang-java=\"`buildCompletionTrigger`\"\u003e`build_completion_trigger`\u003c/span\u003e block as documented below.\n"},"ciTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionCiTrigger:BuildDefinitionCiTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`ciTrigger`\" pulumi-lang-dotnet=\"`CiTrigger`\" pulumi-lang-go=\"`ciTrigger`\" pulumi-lang-python=\"`ci_trigger`\" pulumi-lang-yaml=\"`ciTrigger`\" pulumi-lang-java=\"`ciTrigger`\"\u003e`ci_trigger`\u003c/span\u003e block as documented below.\n"},"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionFeature:BuildDefinitionFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n"},"jobAuthorizationScope":{"type":"string","description":"The job authorization scope for builds queued against this definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`project`\" pulumi-lang-dotnet=\"`Project`\" pulumi-lang-go=\"`project`\" pulumi-lang-python=\"`project`\" pulumi-lang-yaml=\"`project`\" pulumi-lang-java=\"`project`\"\u003e`project`\u003c/span\u003e, `projectCollection`. Defaults to `projectCollection`.\n"},"jobs":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionJob:BuildDefinitionJob"},"description":"A \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e blocks as documented below.\n\n\u003e **NOTE:** The \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e are classic pipelines, you need to enable the classic pipeline feature for your organization to use this feature.\n"},"name":{"type":"string","description":"The name of the build definition.\n"},"path":{"type":"string","description":"The folder path of the build definition.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true},"pullRequestTrigger":{"$ref":"#/types/azuredevops:index/BuildDefinitionPullRequestTrigger:BuildDefinitionPullRequestTrigger","description":"A \u003cspan pulumi-lang-nodejs=\"`pullRequestTrigger`\" pulumi-lang-dotnet=\"`PullRequestTrigger`\" pulumi-lang-go=\"`pullRequestTrigger`\" pulumi-lang-python=\"`pull_request_trigger`\" pulumi-lang-yaml=\"`pullRequestTrigger`\" pulumi-lang-java=\"`pullRequestTrigger`\"\u003e`pull_request_trigger`\u003c/span\u003e block as documented below.\n"},"queueStatus":{"type":"string","description":"The queue status of the build definition. Possible values are: \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`paused`\" pulumi-lang-dotnet=\"`Paused`\" pulumi-lang-go=\"`paused`\" pulumi-lang-python=\"`paused`\" pulumi-lang-yaml=\"`paused`\" pulumi-lang-java=\"`paused`\"\u003e`paused`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e.\n"},"repository":{"$ref":"#/types/azuredevops:index/BuildDefinitionRepository:BuildDefinitionRepository","description":"A \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e block as documented below.\n"},"revision":{"type":"integer","description":"The revision of the build definition\n"},"schedules":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionSchedule:BuildDefinitionSchedule"}},"variableGroups":{"type":"array","items":{"type":"integer"},"description":"A list of variable group IDs (integers) to link to the build definition.\n"},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/BuildDefinitionVariable:BuildDefinitionVariable"},"description":"A list of \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks, as documented below.\n"}},"type":"object"}},"azuredevops:index/buildDefinitionPermissions:BuildDefinitionPermissions":{"description":"Manages permissions for a Build Definition\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: example.id,\n    name: \"Example Build Definition\",\n    path: \"\\\\ExampleFolder\",\n    ciTrigger: {\n        useYaml: true,\n    },\n    repository: {\n        repoType: \"TfsGit\",\n        repoId: exampleGit.id,\n        branchName: exampleGit.defaultBranch,\n        ymlPath: \"azure-pipelines.yml\",\n    },\n});\nconst exampleBuildDefinitionPermissions = new azuredevops.BuildDefinitionPermissions(\"example\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    buildDefinitionId: exampleBuildDefinition.id,\n    permissions: {\n        ViewBuilds: \"Allow\",\n        EditBuildQuality: \"Deny\",\n        DeleteBuilds: \"Deny\",\n        StopBuilds: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example.id,\n    name=\"Example Build Definition\",\n    path=\"\\\\ExampleFolder\",\n    ci_trigger={\n        \"use_yaml\": True,\n    },\n    repository={\n        \"repo_type\": \"TfsGit\",\n        \"repo_id\": example_git.id,\n        \"branch_name\": example_git.default_branch,\n        \"yml_path\": \"azure-pipelines.yml\",\n    })\nexample_build_definition_permissions = azuredevops.BuildDefinitionPermissions(\"example\",\n    project_id=example.id,\n    principal=example_readers.id,\n    build_definition_id=example_build_definition.id,\n    permissions={\n        \"ViewBuilds\": \"Allow\",\n        \"EditBuildQuality\": \"Deny\",\n        \"DeleteBuilds\": \"Deny\",\n        \"StopBuilds\": \"Allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Build Definition\",\n        Path = \"\\\\ExampleFolder\",\n        CiTrigger = new AzureDevOps.Inputs.BuildDefinitionCiTriggerArgs\n        {\n            UseYaml = true,\n        },\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"TfsGit\",\n            RepoId = exampleGit.Id,\n            BranchName = exampleGit.DefaultBranch,\n            YmlPath = \"azure-pipelines.yml\",\n        },\n    });\n\n    var exampleBuildDefinitionPermissions = new AzureDevOps.BuildDefinitionPermissions(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        BuildDefinitionId = exampleBuildDefinition.Id,\n        Permissions = \n        {\n            { \"ViewBuilds\", \"Allow\" },\n            { \"EditBuildQuality\", \"Deny\" },\n            { \"DeleteBuilds\", \"Deny\" },\n            { \"StopBuilds\", \"Allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleBuildDefinition, err := azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Build Definition\"),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tCiTrigger: \u0026azuredevops.BuildDefinitionCiTriggerArgs{\n\t\t\t\tUseYaml: pulumi.Bool(true),\n\t\t\t},\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType:   pulumi.String(\"TfsGit\"),\n\t\t\t\tRepoId:     exampleGit.ID(),\n\t\t\t\tBranchName: exampleGit.DefaultBranch,\n\t\t\t\tYmlPath:    pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildDefinitionPermissions(ctx, \"example\", \u0026azuredevops.BuildDefinitionPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tBuildDefinitionId: exampleBuildDefinition.ID(),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"ViewBuilds\":       pulumi.String(\"Allow\"),\n\t\t\t\t\"EditBuildQuality\": pulumi.String(\"Deny\"),\n\t\t\t\t\"DeleteBuilds\":     pulumi.String(\"Deny\"),\n\t\t\t\t\"StopBuilds\":       pulumi.String(\"Allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionCiTriggerArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.BuildDefinitionPermissions;\nimport com.pulumi.azuredevops.BuildDefinitionPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Build Definition\")\n            .path(\"\\\\ExampleFolder\")\n            .ciTrigger(BuildDefinitionCiTriggerArgs.builder()\n                .useYaml(true)\n                .build())\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"TfsGit\")\n                .repoId(exampleGit.id())\n                .branchName(exampleGit.defaultBranch())\n                .ymlPath(\"azure-pipelines.yml\")\n                .build())\n            .build());\n\n        var exampleBuildDefinitionPermissions = new BuildDefinitionPermissions(\"exampleBuildDefinitionPermissions\", BuildDefinitionPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .buildDefinitionId(exampleBuildDefinition.id())\n            .permissions(Map.ofEntries(\n                Map.entry(\"ViewBuilds\", \"Allow\"),\n                Map.entry(\"EditBuildQuality\", \"Deny\"),\n                Map.entry(\"DeleteBuilds\", \"Deny\"),\n                Map.entry(\"StopBuilds\", \"Allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Build Definition\n      path: \\ExampleFolder\n      ciTrigger:\n        useYaml: true\n      repository:\n        repoType: TfsGit\n        repoId: ${exampleGit.id}\n        branchName: ${exampleGit.defaultBranch}\n        ymlPath: azure-pipelines.yml\n  exampleBuildDefinitionPermissions:\n    type: azuredevops:BuildDefinitionPermissions\n    name: example\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      buildDefinitionId: ${exampleBuildDefinition.id}\n      permissions:\n        ViewBuilds: Allow\n        EditBuildQuality: Deny\n        DeleteBuilds: Deny\n        StopBuilds: Allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"buildDefinitionId":{"type":"string","description":"The id of the build definition to assign the permissions.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                               | Description                           |\n|------------------------------------------|---------------------------------------|\n| ViewBuilds                               | View builds                           |\n| EditBuildQuality                         | Edit build quality                    |\n| RetainIndefinitely                       | Retain indefinitely                   |\n| DeleteBuilds                             | Delete builds                         |\n| ManageBuildQualities                     | Manage build qualities                |\n| DestroyBuilds                            | Destroy builds                        |\n| UpdateBuildInformation                   | Update build information              |\n| QueueBuilds                              | Queue builds                          |\n| ManageBuildQueue                         | Manage build queue                    |\n| StopBuilds                               | Stop builds                           |\n| ViewBuildDefinition                      | View build pipeline                   |\n| EditBuildDefinition                      | Edit build pipeline                   |\n| DeleteBuildDefinition                    | Delete build pipeline                 |\n| OverrideBuildCheckInValidation           | Override check-in validation by build |\n| AdministerBuildPermissions               | Administer build permissions          |\n| CreateBuildDefinition                    | Create build pipeline                 |\n| EditPipelineQueueConfigurationPermission | Edit queue build configuration        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"required":["buildDefinitionId","permissions","principal","projectId"],"inputProperties":{"buildDefinitionId":{"type":"string","description":"The id of the build definition to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                               | Description                           |\n|------------------------------------------|---------------------------------------|\n| ViewBuilds                               | View builds                           |\n| EditBuildQuality                         | Edit build quality                    |\n| RetainIndefinitely                       | Retain indefinitely                   |\n| DeleteBuilds                             | Delete builds                         |\n| ManageBuildQualities                     | Manage build qualities                |\n| DestroyBuilds                            | Destroy builds                        |\n| UpdateBuildInformation                   | Update build information              |\n| QueueBuilds                              | Queue builds                          |\n| ManageBuildQueue                         | Manage build queue                    |\n| StopBuilds                               | Stop builds                           |\n| ViewBuildDefinition                      | View build pipeline                   |\n| EditBuildDefinition                      | Edit build pipeline                   |\n| DeleteBuildDefinition                    | Delete build pipeline                 |\n| OverrideBuildCheckInValidation           | Override check-in validation by build |\n| AdministerBuildPermissions               | Administer build permissions          |\n| CreateBuildDefinition                    | Create build pipeline                 |\n| EditPipelineQueueConfigurationPermission | Edit queue build configuration        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"requiredInputs":["buildDefinitionId","permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering BuildDefinitionPermissions resources.\n","properties":{"buildDefinitionId":{"type":"string","description":"The id of the build definition to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                               | Description                           |\n|------------------------------------------|---------------------------------------|\n| ViewBuilds                               | View builds                           |\n| EditBuildQuality                         | Edit build quality                    |\n| RetainIndefinitely                       | Retain indefinitely                   |\n| DeleteBuilds                             | Delete builds                         |\n| ManageBuildQualities                     | Manage build qualities                |\n| DestroyBuilds                            | Destroy builds                        |\n| UpdateBuildInformation                   | Update build information              |\n| QueueBuilds                              | Queue builds                          |\n| ManageBuildQueue                         | Manage build queue                    |\n| StopBuilds                               | Stop builds                           |\n| ViewBuildDefinition                      | View build pipeline                   |\n| EditBuildDefinition                      | Edit build pipeline                   |\n| DeleteBuildDefinition                    | Delete build pipeline                 |\n| OverrideBuildCheckInValidation           | Override check-in validation by build |\n| AdministerBuildPermissions               | Administer build permissions          |\n| CreateBuildDefinition                    | Create build pipeline                 |\n| EditPipelineQueueConfigurationPermission | Edit queue build configuration        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/buildFolder:BuildFolder":{"description":"Manages a Build Folder.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleBuildFolder = new azuredevops.BuildFolder(\"example\", {\n    projectId: example.id,\n    path: \"\\\\ExampleFolder\",\n    description: \"ExampleFolder description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_build_folder = azuredevops.BuildFolder(\"example\",\n    project_id=example.id,\n    path=\"\\\\ExampleFolder\",\n    description=\"ExampleFolder description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleBuildFolder = new AzureDevOps.BuildFolder(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"\\\\ExampleFolder\",\n        Description = \"ExampleFolder description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildFolder(ctx, \"example\", \u0026azuredevops.BuildFolderArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tPath:        pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tDescription: pulumi.String(\"ExampleFolder description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.BuildFolder;\nimport com.pulumi.azuredevops.BuildFolderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleBuildFolder = new BuildFolder(\"exampleBuildFolder\", BuildFolderArgs.builder()\n            .projectId(example.id())\n            .path(\"\\\\ExampleFolder\")\n            .description(\"ExampleFolder description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleBuildFolder:\n    type: azuredevops:BuildFolder\n    name: example\n    properties:\n      projectId: ${example.id}\n      path: \\ExampleFolder\n      description: ExampleFolder description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBuild Folders can be imported using the `project name/path` or `project id/path`, e.g.\n\n```sh\nterraform import azuredevops_build_folder.example \"Example Project/\\\\ExampleFolder\"\n```\n\nor\n\n```sh\n$ pulumi import azuredevops:index/buildFolder:BuildFolder example 00000000-0000-0000-0000-000000000000/\\\\ExampleFolder\n```\n\n","properties":{"description":{"type":"string","description":"Folder Description.\n"},"path":{"type":"string","description":"The folder path.\n"},"projectId":{"type":"string","description":"The ID of the project in which the folder will be created.\n"}},"required":["path","projectId"],"inputProperties":{"description":{"type":"string","description":"Folder Description.\n"},"path":{"type":"string","description":"The folder path.\n"},"projectId":{"type":"string","description":"The ID of the project in which the folder will be created.\n","willReplaceOnChanges":true}},"requiredInputs":["path","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering BuildFolder resources.\n","properties":{"description":{"type":"string","description":"Folder Description.\n"},"path":{"type":"string","description":"The folder path.\n"},"projectId":{"type":"string","description":"The ID of the project in which the folder will be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/buildFolderPermissions:BuildFolderPermissions":{"description":"Manages permissions for a Build Folder\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Example Usage\n\n### Set specific folder permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst exampleBuildFolder = new azuredevops.BuildFolder(\"example\", {\n    projectId: example.id,\n    path: \"\\\\ExampleFolder\",\n    description: \"ExampleFolder description\",\n});\nconst exampleBuildFolderPermissions = new azuredevops.BuildFolderPermissions(\"example\", {\n    projectId: example.id,\n    path: \"\\\\ExampleFolder\",\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        ViewBuilds: \"Allow\",\n        EditBuildQuality: \"Allow\",\n        RetainIndefinitely: \"Allow\",\n        DeleteBuilds: \"Deny\",\n        ManageBuildQualities: \"Deny\",\n        DestroyBuilds: \"Deny\",\n        UpdateBuildInformation: \"Deny\",\n        QueueBuilds: \"Allow\",\n        ManageBuildQueue: \"Deny\",\n        StopBuilds: \"Allow\",\n        ViewBuildDefinition: \"Allow\",\n        EditBuildDefinition: \"Deny\",\n        DeleteBuildDefinition: \"Deny\",\n        AdministerBuildPermissions: \"NotSet\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_build_folder = azuredevops.BuildFolder(\"example\",\n    project_id=example.id,\n    path=\"\\\\ExampleFolder\",\n    description=\"ExampleFolder description\")\nexample_build_folder_permissions = azuredevops.BuildFolderPermissions(\"example\",\n    project_id=example.id,\n    path=\"\\\\ExampleFolder\",\n    principal=example_readers.id,\n    permissions={\n        \"ViewBuilds\": \"Allow\",\n        \"EditBuildQuality\": \"Allow\",\n        \"RetainIndefinitely\": \"Allow\",\n        \"DeleteBuilds\": \"Deny\",\n        \"ManageBuildQualities\": \"Deny\",\n        \"DestroyBuilds\": \"Deny\",\n        \"UpdateBuildInformation\": \"Deny\",\n        \"QueueBuilds\": \"Allow\",\n        \"ManageBuildQueue\": \"Deny\",\n        \"StopBuilds\": \"Allow\",\n        \"ViewBuildDefinition\": \"Allow\",\n        \"EditBuildDefinition\": \"Deny\",\n        \"DeleteBuildDefinition\": \"Deny\",\n        \"AdministerBuildPermissions\": \"NotSet\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var exampleBuildFolder = new AzureDevOps.BuildFolder(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"\\\\ExampleFolder\",\n        Description = \"ExampleFolder description\",\n    });\n\n    var exampleBuildFolderPermissions = new AzureDevOps.BuildFolderPermissions(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"\\\\ExampleFolder\",\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"ViewBuilds\", \"Allow\" },\n            { \"EditBuildQuality\", \"Allow\" },\n            { \"RetainIndefinitely\", \"Allow\" },\n            { \"DeleteBuilds\", \"Deny\" },\n            { \"ManageBuildQualities\", \"Deny\" },\n            { \"DestroyBuilds\", \"Deny\" },\n            { \"UpdateBuildInformation\", \"Deny\" },\n            { \"QueueBuilds\", \"Allow\" },\n            { \"ManageBuildQueue\", \"Deny\" },\n            { \"StopBuilds\", \"Allow\" },\n            { \"ViewBuildDefinition\", \"Allow\" },\n            { \"EditBuildDefinition\", \"Deny\" },\n            { \"DeleteBuildDefinition\", \"Deny\" },\n            { \"AdministerBuildPermissions\", \"NotSet\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewBuildFolder(ctx, \"example\", \u0026azuredevops.BuildFolderArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tPath:        pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tDescription: pulumi.String(\"ExampleFolder description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewBuildFolderPermissions(ctx, \"example\", \u0026azuredevops.BuildFolderPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPath:      pulumi.String(\"\\\\ExampleFolder\"),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"ViewBuilds\":                 pulumi.String(\"Allow\"),\n\t\t\t\t\"EditBuildQuality\":           pulumi.String(\"Allow\"),\n\t\t\t\t\"RetainIndefinitely\":         pulumi.String(\"Allow\"),\n\t\t\t\t\"DeleteBuilds\":               pulumi.String(\"Deny\"),\n\t\t\t\t\"ManageBuildQualities\":       pulumi.String(\"Deny\"),\n\t\t\t\t\"DestroyBuilds\":              pulumi.String(\"Deny\"),\n\t\t\t\t\"UpdateBuildInformation\":     pulumi.String(\"Deny\"),\n\t\t\t\t\"QueueBuilds\":                pulumi.String(\"Allow\"),\n\t\t\t\t\"ManageBuildQueue\":           pulumi.String(\"Deny\"),\n\t\t\t\t\"StopBuilds\":                 pulumi.String(\"Allow\"),\n\t\t\t\t\"ViewBuildDefinition\":        pulumi.String(\"Allow\"),\n\t\t\t\t\"EditBuildDefinition\":        pulumi.String(\"Deny\"),\n\t\t\t\t\"DeleteBuildDefinition\":      pulumi.String(\"Deny\"),\n\t\t\t\t\"AdministerBuildPermissions\": pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.BuildFolder;\nimport com.pulumi.azuredevops.BuildFolderArgs;\nimport com.pulumi.azuredevops.BuildFolderPermissions;\nimport com.pulumi.azuredevops.BuildFolderPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var exampleBuildFolder = new BuildFolder(\"exampleBuildFolder\", BuildFolderArgs.builder()\n            .projectId(example.id())\n            .path(\"\\\\ExampleFolder\")\n            .description(\"ExampleFolder description\")\n            .build());\n\n        var exampleBuildFolderPermissions = new BuildFolderPermissions(\"exampleBuildFolderPermissions\", BuildFolderPermissionsArgs.builder()\n            .projectId(example.id())\n            .path(\"\\\\ExampleFolder\")\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"ViewBuilds\", \"Allow\"),\n                Map.entry(\"EditBuildQuality\", \"Allow\"),\n                Map.entry(\"RetainIndefinitely\", \"Allow\"),\n                Map.entry(\"DeleteBuilds\", \"Deny\"),\n                Map.entry(\"ManageBuildQualities\", \"Deny\"),\n                Map.entry(\"DestroyBuilds\", \"Deny\"),\n                Map.entry(\"UpdateBuildInformation\", \"Deny\"),\n                Map.entry(\"QueueBuilds\", \"Allow\"),\n                Map.entry(\"ManageBuildQueue\", \"Deny\"),\n                Map.entry(\"StopBuilds\", \"Allow\"),\n                Map.entry(\"ViewBuildDefinition\", \"Allow\"),\n                Map.entry(\"EditBuildDefinition\", \"Deny\"),\n                Map.entry(\"DeleteBuildDefinition\", \"Deny\"),\n                Map.entry(\"AdministerBuildPermissions\", \"NotSet\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleBuildFolder:\n    type: azuredevops:BuildFolder\n    name: example\n    properties:\n      projectId: ${example.id}\n      path: \\ExampleFolder\n      description: ExampleFolder description\n  exampleBuildFolderPermissions:\n    type: azuredevops:BuildFolderPermissions\n    name: example\n    properties:\n      projectId: ${example.id}\n      path: \\ExampleFolder\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        ViewBuilds: Allow\n        EditBuildQuality: Allow\n        RetainIndefinitely: Allow\n        DeleteBuilds: Deny\n        ManageBuildQualities: Deny\n        DestroyBuilds: Deny\n        UpdateBuildInformation: Deny\n        QueueBuilds: Allow\n        ManageBuildQueue: Deny\n        StopBuilds: Allow\n        ViewBuildDefinition: Allow\n        EditBuildDefinition: Deny\n        DeleteBuildDefinition: Deny\n        AdministerBuildPermissions: NotSet\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### Set root folder permissions\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst exampleBuildFolderPermissions = new azuredevops.BuildFolderPermissions(\"example\", {\n    projectId: example.id,\n    path: \"\\\\\",\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        RetainIndefinitely: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_build_folder_permissions = azuredevops.BuildFolderPermissions(\"example\",\n    project_id=example.id,\n    path=\"\\\\\",\n    principal=example_readers.id,\n    permissions={\n        \"RetainIndefinitely\": \"Allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var exampleBuildFolderPermissions = new AzureDevOps.BuildFolderPermissions(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"\\\\\",\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"RetainIndefinitely\", \"Allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewBuildFolderPermissions(ctx, \"example\", \u0026azuredevops.BuildFolderPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPath:      pulumi.String(\"\\\\\"),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"RetainIndefinitely\": pulumi.String(\"Allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.BuildFolderPermissions;\nimport com.pulumi.azuredevops.BuildFolderPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var exampleBuildFolderPermissions = new BuildFolderPermissions(\"exampleBuildFolderPermissions\", BuildFolderPermissionsArgs.builder()\n            .projectId(example.id())\n            .path(\"\\\\\")\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.of(\"RetainIndefinitely\", \"Allow\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleBuildFolderPermissions:\n    type: azuredevops:BuildFolderPermissions\n    name: example\n    properties:\n      projectId: ${example.id}\n      path: \\\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        RetainIndefinitely: Allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"path":{"type":"string","description":"The folder path to assign the permissions.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                     | Description                           |\n|--------------------------------|---------------------------------------|\n| ViewBuilds                     | View builds                           |\n| EditBuildQuality               | Edit build quality                    |\n| RetainIndefinitely             | Retain indefinitely                   |\n| DeleteBuilds                   | Delete builds                         |\n| ManageBuildQualities           | Manage build qualities                |\n| DestroyBuilds                  | Destroy builds                        |\n| UpdateBuildInformation         | Update build information              |\n| QueueBuilds                    | Queue builds                          |\n| ManageBuildQueue               | Manage build queue                    |\n| StopBuilds                     | Stop builds                           |\n| ViewBuildDefinition            | View build pipeline                   |\n| EditBuildDefinition            | Edit build pipeline                   |\n| DeleteBuildDefinition          | Delete build pipeline                 |\n| OverrideBuildCheckInValidation | Override check-in validation by build |\n| AdministerBuildPermissions     | Administer build permissions          |\n| CreateBuildDefinition          | Create build pipeline                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"required":["path","permissions","principal","projectId"],"inputProperties":{"path":{"type":"string","description":"The folder path to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                     | Description                           |\n|--------------------------------|---------------------------------------|\n| ViewBuilds                     | View builds                           |\n| EditBuildQuality               | Edit build quality                    |\n| RetainIndefinitely             | Retain indefinitely                   |\n| DeleteBuilds                   | Delete builds                         |\n| ManageBuildQualities           | Manage build qualities                |\n| DestroyBuilds                  | Destroy builds                        |\n| UpdateBuildInformation         | Update build information              |\n| QueueBuilds                    | Queue builds                          |\n| ManageBuildQueue               | Manage build queue                    |\n| StopBuilds                     | Stop builds                           |\n| ViewBuildDefinition            | View build pipeline                   |\n| EditBuildDefinition            | Edit build pipeline                   |\n| DeleteBuildDefinition          | Delete build pipeline                 |\n| OverrideBuildCheckInValidation | Override check-in validation by build |\n| AdministerBuildPermissions     | Administer build permissions          |\n| CreateBuildDefinition          | Create build pipeline                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"requiredInputs":["path","permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering BuildFolderPermissions resources.\n","properties":{"path":{"type":"string","description":"The folder path to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission                     | Description                           |\n|--------------------------------|---------------------------------------|\n| ViewBuilds                     | View builds                           |\n| EditBuildQuality               | Edit build quality                    |\n| RetainIndefinitely             | Retain indefinitely                   |\n| DeleteBuilds                   | Delete builds                         |\n| ManageBuildQualities           | Manage build qualities                |\n| DestroyBuilds                  | Destroy builds                        |\n| UpdateBuildInformation         | Update build information              |\n| QueueBuilds                    | Queue builds                          |\n| ManageBuildQueue               | Manage build queue                    |\n| StopBuilds                     | Stop builds                           |\n| ViewBuildDefinition            | View build pipeline                   |\n| EditBuildDefinition            | Edit build pipeline                   |\n| DeleteBuildDefinition          | Delete build pipeline                 |\n| OverrideBuildCheckInValidation | Override check-in validation by build |\n| AdministerBuildPermissions     | Administer build permissions          |\n| CreateBuildDefinition          | Create build pipeline                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/checkApproval:CheckApproval":{"description":"Manages a Approval Check.\n\n## Example Usage\n\n### Protect an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleGroup = new azuredevops.Group(\"example\", {displayName: \"some-azdo-group\"});\nconst exampleCheckApproval = new azuredevops.CheckApproval(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleEnvironment.id,\n    targetResourceType: \"environment\",\n    requesterCanApprove: true,\n    approvers: [exampleGroup.originId],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_group = azuredevops.Group(\"example\", display_name=\"some-azdo-group\")\nexample_check_approval = azuredevops.CheckApproval(\"example\",\n    project_id=example.id,\n    target_resource_id=example_environment.id,\n    target_resource_type=\"environment\",\n    requester_can_approve=True,\n    approvers=[example_group.origin_id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleGroup = new AzureDevOps.Group(\"example\", new()\n    {\n        DisplayName = \"some-azdo-group\",\n    });\n\n    var exampleCheckApproval = new AzureDevOps.CheckApproval(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleEnvironment.Id,\n        TargetResourceType = \"environment\",\n        RequesterCanApprove = true,\n        Approvers = new[]\n        {\n            exampleGroup.OriginId,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := azuredevops.NewGroup(ctx, \"example\", \u0026azuredevops.GroupArgs{\n\t\t\tDisplayName: pulumi.String(\"some-azdo-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckApproval(ctx, \"example\", \u0026azuredevops.CheckApprovalArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tTargetResourceId:    exampleEnvironment.ID(),\n\t\t\tTargetResourceType:  pulumi.String(\"environment\"),\n\t\t\tRequesterCanApprove: pulumi.Bool(true),\n\t\t\tApprovers: pulumi.StringArray{\n\t\t\t\texampleGroup.OriginId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.Group;\nimport com.pulumi.azuredevops.GroupArgs;\nimport com.pulumi.azuredevops.CheckApproval;\nimport com.pulumi.azuredevops.CheckApprovalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n            .displayName(\"some-azdo-group\")\n            .build());\n\n        var exampleCheckApproval = new CheckApproval(\"exampleCheckApproval\", CheckApprovalArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleEnvironment.id())\n            .targetResourceType(\"environment\")\n            .requesterCanApprove(true)\n            .approvers(exampleGroup.originId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleGroup:\n    type: azuredevops:Group\n    name: example\n    properties:\n      displayName: some-azdo-group\n  exampleCheckApproval:\n    type: azuredevops:CheckApproval\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleEnvironment.id}\n      targetResourceType: environment\n      requesterCanApprove: true\n      approvers:\n        - ${exampleGroup.originId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"approvers":{"type":"array","items":{"type":"string"},"description":"Specifies a list of approver IDs.\n"},"instructions":{"type":"string","description":"The instructions for the approvers.\n"},"minimumRequiredApprovers":{"type":"integer","description":"The minimum number of approvers. This property is applicable when there is more than 1 approver.\n"},"projectId":{"type":"string","description":"The project ID. Changing this forces a new Approval Check to be created.\n"},"requesterCanApprove":{"type":"boolean","description":"Can the requestor approve? Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Approval Check to be created.\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Approval Check to be created.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the approval.  Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"required":["approvers","projectId","targetResourceId","targetResourceType","version"],"inputProperties":{"approvers":{"type":"array","items":{"type":"string"},"description":"Specifies a list of approver IDs.\n"},"instructions":{"type":"string","description":"The instructions for the approvers.\n"},"minimumRequiredApprovers":{"type":"integer","description":"The minimum number of approvers. This property is applicable when there is more than 1 approver.\n"},"projectId":{"type":"string","description":"The project ID. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"requesterCanApprove":{"type":"boolean","description":"Can the requestor approve? Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the approval.  Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"}},"requiredInputs":["approvers","projectId","targetResourceId","targetResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckApproval resources.\n","properties":{"approvers":{"type":"array","items":{"type":"string"},"description":"Specifies a list of approver IDs.\n"},"instructions":{"type":"string","description":"The instructions for the approvers.\n"},"minimumRequiredApprovers":{"type":"integer","description":"The minimum number of approvers. This property is applicable when there is more than 1 approver.\n"},"projectId":{"type":"string","description":"The project ID. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"requesterCanApprove":{"type":"boolean","description":"Can the requestor approve? Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Approval Check to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the approval.  Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"type":"object"}},"azuredevops:index/checkBranchControl:CheckBranchControl":{"description":"Manages a branch control check on a resource within Azure DevOps.\n\n## Example Usage\n\n### Protect a service connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleCheckBranchControl = new azuredevops.CheckBranchControl(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleServiceEndpointGeneric.id,\n    targetResourceType: \"endpoint\",\n    allowedBranches: \"refs/heads/main, refs/heads/features/*\",\n    timeout: 1440,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic\",\n    description=\"Managed by Pulumi\")\nexample_check_branch_control = azuredevops.CheckBranchControl(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_service_endpoint_generic.id,\n    target_resource_type=\"endpoint\",\n    allowed_branches=\"refs/heads/main, refs/heads/features/*\",\n    timeout=1440)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleCheckBranchControl = new AzureDevOps.CheckBranchControl(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleServiceEndpointGeneric.Id,\n        TargetResourceType = \"endpoint\",\n        AllowedBranches = \"refs/heads/main, refs/heads/features/*\",\n        Timeout = 1440,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGeneric, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBranchControl(ctx, \"example\", \u0026azuredevops.CheckBranchControlArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleServiceEndpointGeneric.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"endpoint\"),\n\t\t\tAllowedBranches:    pulumi.String(\"refs/heads/main, refs/heads/features/*\"),\n\t\t\tTimeout:            pulumi.Int(1440),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport com.pulumi.azuredevops.CheckBranchControl;\nimport com.pulumi.azuredevops.CheckBranchControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleCheckBranchControl = new CheckBranchControl(\"exampleCheckBranchControl\", CheckBranchControlArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleServiceEndpointGeneric.id())\n            .targetResourceType(\"endpoint\")\n            .allowedBranches(\"refs/heads/main, refs/heads/features/*\")\n            .timeout(1440)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      username: username\n      password: password\n      serviceEndpointName: Example Generic\n      description: Managed by Pulumi\n  exampleCheckBranchControl:\n    type: azuredevops:CheckBranchControl\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleServiceEndpointGeneric.id}\n      targetResourceType: endpoint\n      allowedBranches: refs/heads/main, refs/heads/features/*\n      timeout: 1440\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleCheckBranchControl = new azuredevops.CheckBranchControl(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleEnvironment.id,\n    targetResourceType: \"environment\",\n    allowedBranches: \"refs/heads/main, refs/heads/features/*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_check_branch_control = azuredevops.CheckBranchControl(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_environment.id,\n    target_resource_type=\"environment\",\n    allowed_branches=\"refs/heads/main, refs/heads/features/*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleCheckBranchControl = new AzureDevOps.CheckBranchControl(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleEnvironment.Id,\n        TargetResourceType = \"environment\",\n        AllowedBranches = \"refs/heads/main, refs/heads/features/*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBranchControl(ctx, \"example\", \u0026azuredevops.CheckBranchControlArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleEnvironment.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"environment\"),\n\t\t\tAllowedBranches:    pulumi.String(\"refs/heads/main, refs/heads/features/*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.CheckBranchControl;\nimport com.pulumi.azuredevops.CheckBranchControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleCheckBranchControl = new CheckBranchControl(\"exampleCheckBranchControl\", CheckBranchControlArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleEnvironment.id())\n            .targetResourceType(\"environment\")\n            .allowedBranches(\"refs/heads/main, refs/heads/features/*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleCheckBranchControl:\n    type: azuredevops:CheckBranchControl\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleEnvironment.id}\n      targetResourceType: environment\n      allowedBranches: refs/heads/main, refs/heads/features/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an agent queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst examplePool = new azuredevops.Pool(\"example\", {name: \"example-pool\"});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    projectId: example.id,\n    agentPoolId: examplePool.id,\n});\nconst exampleCheckBranchControl = new azuredevops.CheckBranchControl(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleQueue.id,\n    targetResourceType: \"queue\",\n    allowedBranches: \"refs/heads/main, refs/heads/features/*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_pool = azuredevops.Pool(\"example\", name=\"example-pool\")\nexample_queue = azuredevops.Queue(\"example\",\n    project_id=example.id,\n    agent_pool_id=example_pool.id)\nexample_check_branch_control = azuredevops.CheckBranchControl(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_queue.id,\n    target_resource_type=\"queue\",\n    allowed_branches=\"refs/heads/main, refs/heads/features/*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var examplePool = new AzureDevOps.Pool(\"example\", new()\n    {\n        Name = \"example-pool\",\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        ProjectId = example.Id,\n        AgentPoolId = examplePool.Id,\n    });\n\n    var exampleCheckBranchControl = new AzureDevOps.CheckBranchControl(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleQueue.Id,\n        TargetResourceType = \"queue\",\n        AllowedBranches = \"refs/heads/main, refs/heads/features/*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := azuredevops.NewPool(ctx, \"example\", \u0026azuredevops.PoolArgs{\n\t\t\tName: pulumi.String(\"example-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tAgentPoolId: examplePool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBranchControl(ctx, \"example\", \u0026azuredevops.CheckBranchControlArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleQueue.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"queue\"),\n\t\t\tAllowedBranches:    pulumi.String(\"refs/heads/main, refs/heads/features/*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Pool;\nimport com.pulumi.azuredevops.PoolArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport com.pulumi.azuredevops.CheckBranchControl;\nimport com.pulumi.azuredevops.CheckBranchControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var examplePool = new Pool(\"examplePool\", PoolArgs.builder()\n            .name(\"example-pool\")\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .projectId(example.id())\n            .agentPoolId(examplePool.id())\n            .build());\n\n        var exampleCheckBranchControl = new CheckBranchControl(\"exampleCheckBranchControl\", CheckBranchControlArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleQueue.id())\n            .targetResourceType(\"queue\")\n            .allowedBranches(\"refs/heads/main, refs/heads/features/*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  examplePool:\n    type: azuredevops:Pool\n    name: example\n    properties:\n      name: example-pool\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      projectId: ${example.id}\n      agentPoolId: ${examplePool.id}\n  exampleCheckBranchControl:\n    type: azuredevops:CheckBranchControl\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleQueue.id}\n      targetResourceType: queue\n      allowedBranches: refs/heads/main, refs/heads/features/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect a repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleCheckBranchControl = new azuredevops.CheckBranchControl(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: pulumi.interpolate`${example.id}.${exampleGit.id}`,\n    targetResourceType: \"repository\",\n    allowedBranches: \"refs/heads/main, refs/heads/features/*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_check_branch_control = azuredevops.CheckBranchControl(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=pulumi.Output.all(\n        exampleId=example.id,\n        exampleGitId=example_git.id\n).apply(lambda resolved_outputs: f\"{resolved_outputs['exampleId']}.{resolved_outputs['exampleGitId']}\")\n,\n    target_resource_type=\"repository\",\n    allowed_branches=\"refs/heads/main, refs/heads/features/*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleCheckBranchControl = new AzureDevOps.CheckBranchControl(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = Output.Tuple(example.Id, exampleGit.Id).Apply(values =\u003e\n        {\n            var exampleId = values.Item1;\n            var exampleGitId = values.Item2;\n            return $\"{exampleId}.{exampleGitId}\";\n        }),\n        TargetResourceType = \"repository\",\n        AllowedBranches = \"refs/heads/main, refs/heads/features/*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBranchControl(ctx, \"example\", \u0026azuredevops.CheckBranchControlArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tDisplayName: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId: pulumi.All(example.ID(), exampleGit.ID()).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleId := _args[0].(string)\n\t\t\t\texampleGitId := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v.%v\", exampleId, exampleGitId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTargetResourceType: pulumi.String(\"repository\"),\n\t\t\tAllowedBranches:    pulumi.String(\"refs/heads/main, refs/heads/features/*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.CheckBranchControl;\nimport com.pulumi.azuredevops.CheckBranchControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleCheckBranchControl = new CheckBranchControl(\"exampleCheckBranchControl\", CheckBranchControlArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(Output.tuple(example.id(), exampleGit.id()).applyValue(values -\u003e {\n                var exampleId = values.t1;\n                var exampleGitId = values.t2;\n                return String.format(\"%s.%s\", exampleId,exampleGitId);\n            }))\n            .targetResourceType(\"repository\")\n            .allowedBranches(\"refs/heads/main, refs/heads/features/*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      initialization:\n        initType: Clean\n  exampleCheckBranchControl:\n    type: azuredevops:CheckBranchControl\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${example.id}.${exampleGit.id}\n      targetResourceType: repository\n      allowedBranches: refs/heads/main, refs/heads/features/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect a variable group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    description: \"Example Variable Group Description\",\n    allowAccess: true,\n    variables: [\n        {\n            name: \"key1\",\n            value: \"val1\",\n        },\n        {\n            name: \"key2\",\n            secretValue: \"val2\",\n            isSecret: true,\n        },\n    ],\n});\nconst exampleCheckBranchControl = new azuredevops.CheckBranchControl(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleVariableGroup.id,\n    targetResourceType: \"variablegroup\",\n    allowedBranches: \"refs/heads/main, refs/heads/features/*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    description=\"Example Variable Group Description\",\n    allow_access=True,\n    variables=[\n        {\n            \"name\": \"key1\",\n            \"value\": \"val1\",\n        },\n        {\n            \"name\": \"key2\",\n            \"secret_value\": \"val2\",\n            \"is_secret\": True,\n        },\n    ])\nexample_check_branch_control = azuredevops.CheckBranchControl(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_variable_group.id,\n    target_resource_type=\"variablegroup\",\n    allowed_branches=\"refs/heads/main, refs/heads/features/*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        Description = \"Example Variable Group Description\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n                Value = \"val1\",\n            },\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key2\",\n                SecretValue = \"val2\",\n                IsSecret = true,\n            },\n        },\n    });\n\n    var exampleCheckBranchControl = new AzureDevOps.CheckBranchControl(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleVariableGroup.Id,\n        TargetResourceType = \"variablegroup\",\n        AllowedBranches = \"refs/heads/main, refs/heads/features/*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVariableGroup, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tDescription: pulumi.String(\"Example Variable Group Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"val1\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:        pulumi.String(\"key2\"),\n\t\t\t\t\tSecretValue: pulumi.String(\"val2\"),\n\t\t\t\t\tIsSecret:    pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBranchControl(ctx, \"example\", \u0026azuredevops.CheckBranchControlArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleVariableGroup.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"variablegroup\"),\n\t\t\tAllowedBranches:    pulumi.String(\"refs/heads/main, refs/heads/features/*\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport com.pulumi.azuredevops.CheckBranchControl;\nimport com.pulumi.azuredevops.CheckBranchControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .description(\"Example Variable Group Description\")\n            .allowAccess(true)\n            .variables(            \n                VariableGroupVariableArgs.builder()\n                    .name(\"key1\")\n                    .value(\"val1\")\n                    .build(),\n                VariableGroupVariableArgs.builder()\n                    .name(\"key2\")\n                    .secretValue(\"val2\")\n                    .isSecret(true)\n                    .build())\n            .build());\n\n        var exampleCheckBranchControl = new CheckBranchControl(\"exampleCheckBranchControl\", CheckBranchControlArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleVariableGroup.id())\n            .targetResourceType(\"variablegroup\")\n            .allowedBranches(\"refs/heads/main, refs/heads/features/*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      description: Example Variable Group Description\n      allowAccess: true\n      variables:\n        - name: key1\n          value: val1\n        - name: key2\n          secretValue: val2\n          isSecret: true\n  exampleCheckBranchControl:\n    type: azuredevops:CheckBranchControl\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleVariableGroup.id}\n      targetResourceType: variablegroup\n      allowedBranches: refs/heads/main, refs/heads/features/*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Define approvals and checks](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops\u0026tabs=check-pass)\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"allowedBranches":{"type":"string","description":"The branches allowed to use the resource. Specify a comma separated list of allowed branches in `refs/heads/branch_name` format. To allow deployments from all branches, specify ` * ` . `refs/heads/features/* , refs/heads/releases/*` restricts deployments to all branches under features/ or releases/ . Defaults to `*`.\n"},"displayName":{"type":"string","description":"The name of the branch control check displayed in the web UI.\n"},"ignoreUnknownProtectionStatus":{"type":"boolean","description":"Allow deployment from branches for which protection status could not be obtained. Only relevant when\u003cspan pulumi-lang-nodejs=\" verifyBranchProtection \" pulumi-lang-dotnet=\" VerifyBranchProtection \" pulumi-lang-go=\" verifyBranchProtection \" pulumi-lang-python=\" verify_branch_protection \" pulumi-lang-yaml=\" verifyBranchProtection \" pulumi-lang-java=\" verifyBranchProtection \"\u003e verify_branch_protection \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the branch control check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"verifyBranchProtection":{"type":"boolean","description":"Validate the branches being deployed are protected. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"required":["projectId","targetResourceId","targetResourceType","version"],"inputProperties":{"allowedBranches":{"type":"string","description":"The branches allowed to use the resource. Specify a comma separated list of allowed branches in `refs/heads/branch_name` format. To allow deployments from all branches, specify ` * ` . `refs/heads/features/* , refs/heads/releases/*` restricts deployments to all branches under features/ or releases/ . Defaults to `*`.\n"},"displayName":{"type":"string","description":"The name of the branch control check displayed in the web UI.\n"},"ignoreUnknownProtectionStatus":{"type":"boolean","description":"Allow deployment from branches for which protection status could not be obtained. Only relevant when\u003cspan pulumi-lang-nodejs=\" verifyBranchProtection \" pulumi-lang-dotnet=\" VerifyBranchProtection \" pulumi-lang-go=\" verifyBranchProtection \" pulumi-lang-python=\" verify_branch_protection \" pulumi-lang-yaml=\" verifyBranchProtection \" pulumi-lang-java=\" verifyBranchProtection \"\u003e verify_branch_protection \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n","willReplaceOnChanges":true},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the branch control check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"verifyBranchProtection":{"type":"boolean","description":"Validate the branches being deployed are protected. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["projectId","targetResourceId","targetResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckBranchControl resources.\n","properties":{"allowedBranches":{"type":"string","description":"The branches allowed to use the resource. Specify a comma separated list of allowed branches in `refs/heads/branch_name` format. To allow deployments from all branches, specify ` * ` . `refs/heads/features/* , refs/heads/releases/*` restricts deployments to all branches under features/ or releases/ . Defaults to `*`.\n"},"displayName":{"type":"string","description":"The name of the branch control check displayed in the web UI.\n"},"ignoreUnknownProtectionStatus":{"type":"boolean","description":"Allow deployment from branches for which protection status could not be obtained. Only relevant when\u003cspan pulumi-lang-nodejs=\" verifyBranchProtection \" pulumi-lang-dotnet=\" VerifyBranchProtection \" pulumi-lang-go=\" verifyBranchProtection \" pulumi-lang-python=\" verify_branch_protection \" pulumi-lang-yaml=\" verifyBranchProtection \" pulumi-lang-java=\" verifyBranchProtection \"\u003e verify_branch_protection \u003c/span\u003eis \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n","willReplaceOnChanges":true},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the branch control check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"verifyBranchProtection":{"type":"boolean","description":"Validate the branches being deployed are protected. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"type":"object"}},"azuredevops:index/checkBusinessHours:CheckBusinessHours":{"description":"Manages a business hours check on a resource within Azure DevOps.\n\n## Example Usage\n\n### Protect a service connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleCheckBusinessHours = new azuredevops.CheckBusinessHours(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleServiceEndpointGeneric.id,\n    targetResourceType: \"endpoint\",\n    startTime: \"07:00\",\n    endTime: \"15:30\",\n    timeZone: \"UTC\",\n    monday: true,\n    tuesday: true,\n    timeout: 1440,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic\",\n    description=\"Managed by Pulumi\")\nexample_check_business_hours = azuredevops.CheckBusinessHours(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_service_endpoint_generic.id,\n    target_resource_type=\"endpoint\",\n    start_time=\"07:00\",\n    end_time=\"15:30\",\n    time_zone=\"UTC\",\n    monday=True,\n    tuesday=True,\n    timeout=1440)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleCheckBusinessHours = new AzureDevOps.CheckBusinessHours(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleServiceEndpointGeneric.Id,\n        TargetResourceType = \"endpoint\",\n        StartTime = \"07:00\",\n        EndTime = \"15:30\",\n        TimeZone = \"UTC\",\n        Monday = true,\n        Tuesday = true,\n        Timeout = 1440,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGeneric, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBusinessHours(ctx, \"example\", \u0026azuredevops.CheckBusinessHoursArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleServiceEndpointGeneric.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"endpoint\"),\n\t\t\tStartTime:          pulumi.String(\"07:00\"),\n\t\t\tEndTime:            pulumi.String(\"15:30\"),\n\t\t\tTimeZone:           pulumi.String(\"UTC\"),\n\t\t\tMonday:             pulumi.Bool(true),\n\t\t\tTuesday:            pulumi.Bool(true),\n\t\t\tTimeout:            pulumi.Int(1440),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport com.pulumi.azuredevops.CheckBusinessHours;\nimport com.pulumi.azuredevops.CheckBusinessHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleCheckBusinessHours = new CheckBusinessHours(\"exampleCheckBusinessHours\", CheckBusinessHoursArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleServiceEndpointGeneric.id())\n            .targetResourceType(\"endpoint\")\n            .startTime(\"07:00\")\n            .endTime(\"15:30\")\n            .timeZone(\"UTC\")\n            .monday(true)\n            .tuesday(true)\n            .timeout(1440)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      username: username\n      password: password\n      serviceEndpointName: Example Generic\n      description: Managed by Pulumi\n  exampleCheckBusinessHours:\n    type: azuredevops:CheckBusinessHours\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleServiceEndpointGeneric.id}\n      targetResourceType: endpoint\n      startTime: 07:00\n      endTime: 15:30\n      timeZone: UTC\n      monday: true\n      tuesday: true\n      timeout: 1440\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleCheckBusinessHours = new azuredevops.CheckBusinessHours(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleEnvironment.id,\n    targetResourceType: \"environment\",\n    startTime: \"07:00\",\n    endTime: \"15:30\",\n    timeZone: \"UTC\",\n    monday: true,\n    tuesday: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_check_business_hours = azuredevops.CheckBusinessHours(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_environment.id,\n    target_resource_type=\"environment\",\n    start_time=\"07:00\",\n    end_time=\"15:30\",\n    time_zone=\"UTC\",\n    monday=True,\n    tuesday=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleCheckBusinessHours = new AzureDevOps.CheckBusinessHours(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleEnvironment.Id,\n        TargetResourceType = \"environment\",\n        StartTime = \"07:00\",\n        EndTime = \"15:30\",\n        TimeZone = \"UTC\",\n        Monday = true,\n        Tuesday = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBusinessHours(ctx, \"example\", \u0026azuredevops.CheckBusinessHoursArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleEnvironment.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"environment\"),\n\t\t\tStartTime:          pulumi.String(\"07:00\"),\n\t\t\tEndTime:            pulumi.String(\"15:30\"),\n\t\t\tTimeZone:           pulumi.String(\"UTC\"),\n\t\t\tMonday:             pulumi.Bool(true),\n\t\t\tTuesday:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.CheckBusinessHours;\nimport com.pulumi.azuredevops.CheckBusinessHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleCheckBusinessHours = new CheckBusinessHours(\"exampleCheckBusinessHours\", CheckBusinessHoursArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleEnvironment.id())\n            .targetResourceType(\"environment\")\n            .startTime(\"07:00\")\n            .endTime(\"15:30\")\n            .timeZone(\"UTC\")\n            .monday(true)\n            .tuesday(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleCheckBusinessHours:\n    type: azuredevops:CheckBusinessHours\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleEnvironment.id}\n      targetResourceType: environment\n      startTime: 07:00\n      endTime: 15:30\n      timeZone: UTC\n      monday: true\n      tuesday: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an agent queue\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst examplePool = new azuredevops.Pool(\"example\", {name: \"example-pool\"});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    projectId: example.id,\n    agentPoolId: examplePool.id,\n});\nconst exampleCheckBusinessHours = new azuredevops.CheckBusinessHours(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleQueue.id,\n    targetResourceType: \"queue\",\n    startTime: \"07:00\",\n    endTime: \"15:30\",\n    timeZone: \"UTC\",\n    monday: true,\n    tuesday: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_pool = azuredevops.Pool(\"example\", name=\"example-pool\")\nexample_queue = azuredevops.Queue(\"example\",\n    project_id=example.id,\n    agent_pool_id=example_pool.id)\nexample_check_business_hours = azuredevops.CheckBusinessHours(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_queue.id,\n    target_resource_type=\"queue\",\n    start_time=\"07:00\",\n    end_time=\"15:30\",\n    time_zone=\"UTC\",\n    monday=True,\n    tuesday=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var examplePool = new AzureDevOps.Pool(\"example\", new()\n    {\n        Name = \"example-pool\",\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        ProjectId = example.Id,\n        AgentPoolId = examplePool.Id,\n    });\n\n    var exampleCheckBusinessHours = new AzureDevOps.CheckBusinessHours(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleQueue.Id,\n        TargetResourceType = \"queue\",\n        StartTime = \"07:00\",\n        EndTime = \"15:30\",\n        TimeZone = \"UTC\",\n        Monday = true,\n        Tuesday = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := azuredevops.NewPool(ctx, \"example\", \u0026azuredevops.PoolArgs{\n\t\t\tName: pulumi.String(\"example-pool\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tAgentPoolId: examplePool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBusinessHours(ctx, \"example\", \u0026azuredevops.CheckBusinessHoursArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleQueue.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"queue\"),\n\t\t\tStartTime:          pulumi.String(\"07:00\"),\n\t\t\tEndTime:            pulumi.String(\"15:30\"),\n\t\t\tTimeZone:           pulumi.String(\"UTC\"),\n\t\t\tMonday:             pulumi.Bool(true),\n\t\t\tTuesday:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Pool;\nimport com.pulumi.azuredevops.PoolArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport com.pulumi.azuredevops.CheckBusinessHours;\nimport com.pulumi.azuredevops.CheckBusinessHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var examplePool = new Pool(\"examplePool\", PoolArgs.builder()\n            .name(\"example-pool\")\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .projectId(example.id())\n            .agentPoolId(examplePool.id())\n            .build());\n\n        var exampleCheckBusinessHours = new CheckBusinessHours(\"exampleCheckBusinessHours\", CheckBusinessHoursArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleQueue.id())\n            .targetResourceType(\"queue\")\n            .startTime(\"07:00\")\n            .endTime(\"15:30\")\n            .timeZone(\"UTC\")\n            .monday(true)\n            .tuesday(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  examplePool:\n    type: azuredevops:Pool\n    name: example\n    properties:\n      name: example-pool\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      projectId: ${example.id}\n      agentPoolId: ${examplePool.id}\n  exampleCheckBusinessHours:\n    type: azuredevops:CheckBusinessHours\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleQueue.id}\n      targetResourceType: queue\n      startTime: 07:00\n      endTime: 15:30\n      timeZone: UTC\n      monday: true\n      tuesday: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect a repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleCheckBusinessHours = new azuredevops.CheckBusinessHours(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: pulumi.interpolate`${example.id}.${exampleGit.id}`,\n    targetResourceType: \"repository\",\n    startTime: \"07:00\",\n    endTime: \"15:30\",\n    timeZone: \"UTC\",\n    monday: true,\n    tuesday: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_check_business_hours = azuredevops.CheckBusinessHours(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=pulumi.Output.all(\n        exampleId=example.id,\n        exampleGitId=example_git.id\n).apply(lambda resolved_outputs: f\"{resolved_outputs['exampleId']}.{resolved_outputs['exampleGitId']}\")\n,\n    target_resource_type=\"repository\",\n    start_time=\"07:00\",\n    end_time=\"15:30\",\n    time_zone=\"UTC\",\n    monday=True,\n    tuesday=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleCheckBusinessHours = new AzureDevOps.CheckBusinessHours(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = Output.Tuple(example.Id, exampleGit.Id).Apply(values =\u003e\n        {\n            var exampleId = values.Item1;\n            var exampleGitId = values.Item2;\n            return $\"{exampleId}.{exampleGitId}\";\n        }),\n        TargetResourceType = \"repository\",\n        StartTime = \"07:00\",\n        EndTime = \"15:30\",\n        TimeZone = \"UTC\",\n        Monday = true,\n        Tuesday = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBusinessHours(ctx, \"example\", \u0026azuredevops.CheckBusinessHoursArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tDisplayName: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId: pulumi.All(example.ID(), exampleGit.ID()).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleId := _args[0].(string)\n\t\t\t\texampleGitId := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v.%v\", exampleId, exampleGitId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTargetResourceType: pulumi.String(\"repository\"),\n\t\t\tStartTime:          pulumi.String(\"07:00\"),\n\t\t\tEndTime:            pulumi.String(\"15:30\"),\n\t\t\tTimeZone:           pulumi.String(\"UTC\"),\n\t\t\tMonday:             pulumi.Bool(true),\n\t\t\tTuesday:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.CheckBusinessHours;\nimport com.pulumi.azuredevops.CheckBusinessHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleCheckBusinessHours = new CheckBusinessHours(\"exampleCheckBusinessHours\", CheckBusinessHoursArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(Output.tuple(example.id(), exampleGit.id()).applyValue(values -\u003e {\n                var exampleId = values.t1;\n                var exampleGitId = values.t2;\n                return String.format(\"%s.%s\", exampleId,exampleGitId);\n            }))\n            .targetResourceType(\"repository\")\n            .startTime(\"07:00\")\n            .endTime(\"15:30\")\n            .timeZone(\"UTC\")\n            .monday(true)\n            .tuesday(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      initialization:\n        initType: Clean\n  exampleCheckBusinessHours:\n    type: azuredevops:CheckBusinessHours\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${example.id}.${exampleGit.id}\n      targetResourceType: repository\n      startTime: 07:00\n      endTime: 15:30\n      timeZone: UTC\n      monday: true\n      tuesday: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect a variable group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    description: \"Example Variable Group Description\",\n    allowAccess: true,\n    variables: [\n        {\n            name: \"key1\",\n            value: \"val1\",\n        },\n        {\n            name: \"key2\",\n            secretValue: \"val2\",\n            isSecret: true,\n        },\n    ],\n});\nconst exampleCheckBusinessHours = new azuredevops.CheckBusinessHours(\"example\", {\n    projectId: example.id,\n    displayName: \"Managed by Pulumi\",\n    targetResourceId: exampleVariableGroup.id,\n    targetResourceType: \"variablegroup\",\n    startTime: \"07:00\",\n    endTime: \"15:30\",\n    timeZone: \"UTC\",\n    monday: true,\n    tuesday: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    description=\"Example Variable Group Description\",\n    allow_access=True,\n    variables=[\n        {\n            \"name\": \"key1\",\n            \"value\": \"val1\",\n        },\n        {\n            \"name\": \"key2\",\n            \"secret_value\": \"val2\",\n            \"is_secret\": True,\n        },\n    ])\nexample_check_business_hours = azuredevops.CheckBusinessHours(\"example\",\n    project_id=example.id,\n    display_name=\"Managed by Pulumi\",\n    target_resource_id=example_variable_group.id,\n    target_resource_type=\"variablegroup\",\n    start_time=\"07:00\",\n    end_time=\"15:30\",\n    time_zone=\"UTC\",\n    monday=True,\n    tuesday=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        Description = \"Example Variable Group Description\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n                Value = \"val1\",\n            },\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key2\",\n                SecretValue = \"val2\",\n                IsSecret = true,\n            },\n        },\n    });\n\n    var exampleCheckBusinessHours = new AzureDevOps.CheckBusinessHours(\"example\", new()\n    {\n        ProjectId = example.Id,\n        DisplayName = \"Managed by Pulumi\",\n        TargetResourceId = exampleVariableGroup.Id,\n        TargetResourceType = \"variablegroup\",\n        StartTime = \"07:00\",\n        EndTime = \"15:30\",\n        TimeZone = \"UTC\",\n        Monday = true,\n        Tuesday = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVariableGroup, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tDescription: pulumi.String(\"Example Variable Group Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"val1\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:        pulumi.String(\"key2\"),\n\t\t\t\t\tSecretValue: pulumi.String(\"val2\"),\n\t\t\t\t\tIsSecret:    pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckBusinessHours(ctx, \"example\", \u0026azuredevops.CheckBusinessHoursArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tDisplayName:        pulumi.String(\"Managed by Pulumi\"),\n\t\t\tTargetResourceId:   exampleVariableGroup.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"variablegroup\"),\n\t\t\tStartTime:          pulumi.String(\"07:00\"),\n\t\t\tEndTime:            pulumi.String(\"15:30\"),\n\t\t\tTimeZone:           pulumi.String(\"UTC\"),\n\t\t\tMonday:             pulumi.Bool(true),\n\t\t\tTuesday:            pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport com.pulumi.azuredevops.CheckBusinessHours;\nimport com.pulumi.azuredevops.CheckBusinessHoursArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .description(\"Example Variable Group Description\")\n            .allowAccess(true)\n            .variables(            \n                VariableGroupVariableArgs.builder()\n                    .name(\"key1\")\n                    .value(\"val1\")\n                    .build(),\n                VariableGroupVariableArgs.builder()\n                    .name(\"key2\")\n                    .secretValue(\"val2\")\n                    .isSecret(true)\n                    .build())\n            .build());\n\n        var exampleCheckBusinessHours = new CheckBusinessHours(\"exampleCheckBusinessHours\", CheckBusinessHoursArgs.builder()\n            .projectId(example.id())\n            .displayName(\"Managed by Pulumi\")\n            .targetResourceId(exampleVariableGroup.id())\n            .targetResourceType(\"variablegroup\")\n            .startTime(\"07:00\")\n            .endTime(\"15:30\")\n            .timeZone(\"UTC\")\n            .monday(true)\n            .tuesday(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      description: Example Variable Group Description\n      allowAccess: true\n      variables:\n        - name: key1\n          value: val1\n        - name: key2\n          secretValue: val2\n          isSecret: true\n  exampleCheckBusinessHours:\n    type: azuredevops:CheckBusinessHours\n    name: example\n    properties:\n      projectId: ${example.id}\n      displayName: Managed by Pulumi\n      targetResourceId: ${exampleVariableGroup.id}\n      targetResourceType: variablegroup\n      startTime: 07:00\n      endTime: 15:30\n      timeZone: UTC\n      monday: true\n      tuesday: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Define approvals and checks](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops\u0026tabs=check-pass)\n\n## Supported Time Zones\n\n- AUS Central Standard Time\n- AUS Eastern Standard Time\n- Afghanistan Standard Time\n- Alaskan Standard Time\n- Aleutian Standard Time\n- Altai Standard Time\n- Arab Standard Time\n- Arabian Standard Time\n- Arabic Standard Time\n- Argentina Standard Time\n- Astrakhan Standard Time\n- Atlantic Standard Time\n- Aus Central W. Standard Time\n- Azerbaijan Standard Time\n- Azores Standard Time\n- Bahia Standard Time\n- Bangladesh Standard Time\n- Belarus Standard Time\n- Bougainville Standard Time\n- Canada Central Standard Time\n- Cape Verde Standard Time\n- Caucasus Standard Time\n- Cen. Australia Standard Time\n- Central America Standard Time\n- Central Asia Standard Time\n- Central Brazilian Standard Time\n- Central Europe Standard Time\n- Central European Standard Time\n- Central Pacific Standard Time\n- Central Standard Time (Mexico)\n- Central Standard Time\n- Chatham Islands Standard Time\n- China Standard Time\n- Cuba Standard Time\n- Dateline Standard Time\n- E. Africa Standard Time\n- E. Australia Standard Time\n- E. Europe Standard Time\n- E. South America Standard Time\n- Easter Island Standard Time\n- Eastern Standard Time (Mexico)\n- Eastern Standard Time\n- Egypt Standard Time\n- Ekaterinburg Standard Time\n- FLE Standard Time\n- Fiji Standard Time\n- GMT Standard Time\n- GTB Standard Time\n- Georgian Standard Time\n- Greenland Standard Time\n- Greenwich Standard Time\n- Haiti Standard Time\n- Hawaiian Standard Time\n- India Standard Time\n- Iran Standard Time\n- Israel Standard Time\n- Jordan Standard Time\n- Kaliningrad Standard Time\n- Kamchatka Standard Time\n- Korea Standard Time\n- Libya Standard Time\n- Line Islands Standard Time\n- Lord Howe Standard Time\n- Magadan Standard Time\n- Magallanes Standard Time\n- Marquesas Standard Time\n- Mauritius Standard Time\n- Mid-Atlantic Standard Time\n- Middle East Standard Time\n- Montevideo Standard Time\n- Morocco Standard Time\n- Mountain Standard Time (Mexico)\n- Mountain Standard Time\n- Myanmar Standard Time\n- N. Central Asia Standard Time\n- Namibia Standard Time\n- Nepal Standard Time\n- New Zealand Standard Time\n- Newfoundland Standard Time\n- Norfolk Standard Time\n- North Asia East Standard Time\n- North Asia Standard Time\n- North Korea Standard Time\n- Omsk Standard Time\n- Pacific SA Standard Time\n- Pacific Standard Time (Mexico)\n- Pacific Standard Time\n- Pakistan Standard Time\n- Paraguay Standard Time\n- Qyzylorda Standard Time\n- Romance Standard Time\n- Russia Time Zone 10\n- Russia Time Zone 11\n- Russia Time Zone 3\n- Russian Standard Time\n- SA Eastern Standard Time\n- SA Pacific Standard Time\n- SA Western Standard Time\n- SE Asia Standard Time\n- Saint Pierre Standard Time\n- Sakhalin Standard Time\n- Samoa Standard Time\n- Sao Tome Standard Time\n- Saratov Standard Time\n- Singapore Standard Time\n- South Africa Standard Time\n- South Sudan Standard Time\n- Sri Lanka Standard Time\n- Sudan Standard Time\n- Syria Standard Time\n- Taipei Standard Time\n- Tasmania Standard Time\n- Tocantins Standard Time\n- Tokyo Standard Time\n- Tomsk Standard Time\n- Tonga Standard Time\n- Transbaikal Standard Time\n- Turkey Standard Time\n- Turks And Caicos Standard Time\n- US Eastern Standard Time\n- US Mountain Standard Time\n- UTC\n- UTC+12\n- UTC+13\n- UTC-02\n- UTC-08\n- UTC-09\n- UTC-11\n- Ulaanbaatar Standard Time\n- Venezuela Standard Time\n- Vladivostok Standard Time\n- Volgograd Standard Time\n- W. Australia Standard Time\n- W. Central Africa Standard Time\n- W. Europe Standard Time\n- W. Mongolia Standard Time\n- West Asia Standard Time\n- West Bank Standard Time\n- West Pacific Standard Time\n- Yakutsk Standard Time\n- Yukon Standard Time\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"displayName":{"type":"string","description":"The name of the business hours check displayed in the web UI.\n"},"endTime":{"type":"string","description":"The end of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"friday":{"type":"boolean","description":"This check will pass on Fridays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"monday":{"type":"boolean","description":"This check will pass on Mondays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n"},"saturday":{"type":"boolean","description":"This check will pass on Saturdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"startTime":{"type":"string","description":"The beginning of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"sunday":{"type":"boolean","description":"This check will pass on Sundays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n"},"thursday":{"type":"boolean","description":"This check will pass on Thursdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"timeZone":{"type":"string","description":"The time zone this check will be evaluated in. See below for supported values.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the business hours check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"tuesday":{"type":"boolean","description":"This check will pass on Tuesday. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"},"wednesday":{"type":"boolean","description":"This check will pass on Wednesdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"required":["endTime","projectId","startTime","targetResourceId","targetResourceType","timeZone","version"],"inputProperties":{"displayName":{"type":"string","description":"The name of the business hours check displayed in the web UI.\n"},"endTime":{"type":"string","description":"The end of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"friday":{"type":"boolean","description":"This check will pass on Fridays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"monday":{"type":"boolean","description":"This check will pass on Mondays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n","willReplaceOnChanges":true},"saturday":{"type":"boolean","description":"This check will pass on Saturdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"startTime":{"type":"string","description":"The beginning of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"sunday":{"type":"boolean","description":"This check will pass on Sundays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n","willReplaceOnChanges":true},"thursday":{"type":"boolean","description":"This check will pass on Thursdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"timeZone":{"type":"string","description":"The time zone this check will be evaluated in. See below for supported values.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the business hours check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"tuesday":{"type":"boolean","description":"This check will pass on Tuesday. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"wednesday":{"type":"boolean","description":"This check will pass on Wednesdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"requiredInputs":["endTime","projectId","startTime","targetResourceId","targetResourceType","timeZone"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckBusinessHours resources.\n","properties":{"displayName":{"type":"string","description":"The name of the business hours check displayed in the web UI.\n"},"endTime":{"type":"string","description":"The end of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"friday":{"type":"boolean","description":"This check will pass on Fridays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"monday":{"type":"boolean","description":"This check will pass on Mondays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The project ID.\n","willReplaceOnChanges":true},"saturday":{"type":"boolean","description":"This check will pass on Saturdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"startTime":{"type":"string","description":"The beginning of the time period that this check will be allowed to pass, specified as 24-hour time with leading zeros.\n"},"sunday":{"type":"boolean","description":"This check will pass on Sundays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e.\n","willReplaceOnChanges":true},"thursday":{"type":"boolean","description":"This check will pass on Thursdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"timeZone":{"type":"string","description":"The time zone this check will be evaluated in. See below for supported values.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the business hours check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"tuesday":{"type":"boolean","description":"This check will pass on Tuesday. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"},"wednesday":{"type":"boolean","description":"This check will pass on Wednesdays. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/checkExclusiveLock:CheckExclusiveLock":{"description":"Manages a Exclusive Lock Check.\n\nAdding an exclusive lock will only allow a single stage to utilize this resource at a time. If multiple stages are waiting on the lock, only the latest will run. All others will be canceled.\n\n## Example Usage\n\n### Add Exclusive Lock to an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleCheckExclusiveLock = new azuredevops.CheckExclusiveLock(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleServiceEndpointGeneric.id,\n    targetResourceType: \"endpoint\",\n    timeout: 43200,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic\",\n    description=\"Managed by Pulumi\")\nexample_check_exclusive_lock = azuredevops.CheckExclusiveLock(\"example\",\n    project_id=example.id,\n    target_resource_id=example_service_endpoint_generic.id,\n    target_resource_type=\"endpoint\",\n    timeout=43200)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleCheckExclusiveLock = new AzureDevOps.CheckExclusiveLock(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleServiceEndpointGeneric.Id,\n        TargetResourceType = \"endpoint\",\n        Timeout = 43200,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGeneric, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckExclusiveLock(ctx, \"example\", \u0026azuredevops.CheckExclusiveLockArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tTargetResourceId:   exampleServiceEndpointGeneric.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"endpoint\"),\n\t\t\tTimeout:            pulumi.Int(43200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport com.pulumi.azuredevops.CheckExclusiveLock;\nimport com.pulumi.azuredevops.CheckExclusiveLockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleCheckExclusiveLock = new CheckExclusiveLock(\"exampleCheckExclusiveLock\", CheckExclusiveLockArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleServiceEndpointGeneric.id())\n            .targetResourceType(\"endpoint\")\n            .timeout(43200)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      username: username\n      password: password\n      serviceEndpointName: Example Generic\n      description: Managed by Pulumi\n  exampleCheckExclusiveLock:\n    type: azuredevops:CheckExclusiveLock\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleServiceEndpointGeneric.id}\n      targetResourceType: endpoint\n      timeout: 43200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleCheckExclusiveLock = new azuredevops.CheckExclusiveLock(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleEnvironment.id,\n    targetResourceType: \"environment\",\n    timeout: 43200,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_check_exclusive_lock = azuredevops.CheckExclusiveLock(\"example\",\n    project_id=example.id,\n    target_resource_id=example_environment.id,\n    target_resource_type=\"environment\",\n    timeout=43200)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleCheckExclusiveLock = new AzureDevOps.CheckExclusiveLock(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleEnvironment.Id,\n        TargetResourceType = \"environment\",\n        Timeout = 43200,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckExclusiveLock(ctx, \"example\", \u0026azuredevops.CheckExclusiveLockArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tTargetResourceId:   exampleEnvironment.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"environment\"),\n\t\t\tTimeout:            pulumi.Int(43200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.CheckExclusiveLock;\nimport com.pulumi.azuredevops.CheckExclusiveLockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleCheckExclusiveLock = new CheckExclusiveLock(\"exampleCheckExclusiveLock\", CheckExclusiveLockArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleEnvironment.id())\n            .targetResourceType(\"environment\")\n            .timeout(43200)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleCheckExclusiveLock:\n    type: azuredevops:CheckExclusiveLock\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleEnvironment.id}\n      targetResourceType: environment\n      timeout: 43200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect a repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleCheckExclusiveLock = new azuredevops.CheckExclusiveLock(\"example\", {\n    projectId: example.id,\n    targetResourceId: pulumi.interpolate`${example.id}.${exampleGit.id}`,\n    targetResourceType: \"repository\",\n    timeout: 43200,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_check_exclusive_lock = azuredevops.CheckExclusiveLock(\"example\",\n    project_id=example.id,\n    target_resource_id=pulumi.Output.all(\n        exampleId=example.id,\n        exampleGitId=example_git.id\n).apply(lambda resolved_outputs: f\"{resolved_outputs['exampleId']}.{resolved_outputs['exampleGitId']}\")\n,\n    target_resource_type=\"repository\",\n    timeout=43200)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleCheckExclusiveLock = new AzureDevOps.CheckExclusiveLock(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = Output.Tuple(example.Id, exampleGit.Id).Apply(values =\u003e\n        {\n            var exampleId = values.Item1;\n            var exampleGitId = values.Item2;\n            return $\"{exampleId}.{exampleGitId}\";\n        }),\n        TargetResourceType = \"repository\",\n        Timeout = 43200,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckExclusiveLock(ctx, \"example\", \u0026azuredevops.CheckExclusiveLockArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tTargetResourceId: pulumi.All(example.ID(), exampleGit.ID()).ApplyT(func(_args []interface{}) (string, error) {\n\t\t\t\texampleId := _args[0].(string)\n\t\t\t\texampleGitId := _args[1].(string)\n\t\t\t\treturn fmt.Sprintf(\"%v.%v\", exampleId, exampleGitId), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t\tTargetResourceType: pulumi.String(\"repository\"),\n\t\t\tTimeout:            pulumi.Int(43200),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.CheckExclusiveLock;\nimport com.pulumi.azuredevops.CheckExclusiveLockArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleCheckExclusiveLock = new CheckExclusiveLock(\"exampleCheckExclusiveLock\", CheckExclusiveLockArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(Output.tuple(example.id(), exampleGit.id()).applyValue(values -\u003e {\n                var exampleId = values.t1;\n                var exampleGitId = values.t2;\n                return String.format(\"%s.%s\", exampleId,exampleGitId);\n            }))\n            .targetResourceType(\"repository\")\n            .timeout(43200)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleCheckExclusiveLock:\n    type: azuredevops:CheckExclusiveLock\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${example.id}.${exampleGit.id}\n      targetResourceType: repository\n      timeout: 43200\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Exclusive Lock Check to be created.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Exclusive Lock to be created.\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Exclusive Lock to be created.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the exclusive lock. Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"required":["projectId","targetResourceId","targetResourceType","version"],"inputProperties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Exclusive Lock Check to be created.\n","willReplaceOnChanges":true},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Exclusive Lock to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Exclusive Lock to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the exclusive lock. Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"}},"requiredInputs":["projectId","targetResourceId","targetResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckExclusiveLock resources.\n","properties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Exclusive Lock Check to be created.\n","willReplaceOnChanges":true},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Exclusive Lock to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Exclusive Lock to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the exclusive lock. Defaults to \u003cspan pulumi-lang-nodejs=\"`43200`\" pulumi-lang-dotnet=\"`43200`\" pulumi-lang-go=\"`43200`\" pulumi-lang-python=\"`43200`\" pulumi-lang-yaml=\"`43200`\" pulumi-lang-java=\"`43200`\"\u003e`43200`\u003c/span\u003e.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"type":"object"}},"azuredevops:index/checkRequiredTemplate:CheckRequiredTemplate":{"description":"Manages a Required Template Check.\n\n## Example Usage\n\n### Protect a service connection\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleCheckRequiredTemplate = new azuredevops.CheckRequiredTemplate(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleServiceEndpointGeneric.id,\n    targetResourceType: \"endpoint\",\n    requiredTemplates: [{\n        repositoryType: \"azuregit\",\n        repositoryName: \"project/repository\",\n        repositoryRef: \"refs/heads/main\",\n        templatePath: \"template/path.yml\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic\",\n    description=\"Managed by Pulumi\")\nexample_check_required_template = azuredevops.CheckRequiredTemplate(\"example\",\n    project_id=example.id,\n    target_resource_id=example_service_endpoint_generic.id,\n    target_resource_type=\"endpoint\",\n    required_templates=[{\n        \"repository_type\": \"azuregit\",\n        \"repository_name\": \"project/repository\",\n        \"repository_ref\": \"refs/heads/main\",\n        \"template_path\": \"template/path.yml\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleCheckRequiredTemplate = new AzureDevOps.CheckRequiredTemplate(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleServiceEndpointGeneric.Id,\n        TargetResourceType = \"endpoint\",\n        RequiredTemplates = new[]\n        {\n            new AzureDevOps.Inputs.CheckRequiredTemplateRequiredTemplateArgs\n            {\n                RepositoryType = \"azuregit\",\n                RepositoryName = \"project/repository\",\n                RepositoryRef = \"refs/heads/main\",\n                TemplatePath = \"template/path.yml\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGeneric, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckRequiredTemplate(ctx, \"example\", \u0026azuredevops.CheckRequiredTemplateArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tTargetResourceId:   exampleServiceEndpointGeneric.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"endpoint\"),\n\t\t\tRequiredTemplates: azuredevops.CheckRequiredTemplateRequiredTemplateArray{\n\t\t\t\t\u0026azuredevops.CheckRequiredTemplateRequiredTemplateArgs{\n\t\t\t\t\tRepositoryType: pulumi.String(\"azuregit\"),\n\t\t\t\t\tRepositoryName: pulumi.String(\"project/repository\"),\n\t\t\t\t\tRepositoryRef:  pulumi.String(\"refs/heads/main\"),\n\t\t\t\t\tTemplatePath:   pulumi.String(\"template/path.yml\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport com.pulumi.azuredevops.CheckRequiredTemplate;\nimport com.pulumi.azuredevops.CheckRequiredTemplateArgs;\nimport com.pulumi.azuredevops.inputs.CheckRequiredTemplateRequiredTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleCheckRequiredTemplate = new CheckRequiredTemplate(\"exampleCheckRequiredTemplate\", CheckRequiredTemplateArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleServiceEndpointGeneric.id())\n            .targetResourceType(\"endpoint\")\n            .requiredTemplates(CheckRequiredTemplateRequiredTemplateArgs.builder()\n                .repositoryType(\"azuregit\")\n                .repositoryName(\"project/repository\")\n                .repositoryRef(\"refs/heads/main\")\n                .templatePath(\"template/path.yml\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      username: username\n      password: password\n      serviceEndpointName: Example Generic\n      description: Managed by Pulumi\n  exampleCheckRequiredTemplate:\n    type: azuredevops:CheckRequiredTemplate\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleServiceEndpointGeneric.id}\n      targetResourceType: endpoint\n      requiredTemplates:\n        - repositoryType: azuregit\n          repositoryName: project/repository\n          repositoryRef: refs/heads/main\n          templatePath: template/path.yml\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Protect an environment\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleCheckRequiredTemplate = new azuredevops.CheckRequiredTemplate(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleEnvironment.id,\n    targetResourceType: \"environment\",\n    requiredTemplates: [\n        {\n            repositoryName: \"project/repository\",\n            repositoryRef: \"refs/heads/main\",\n            templatePath: \"template/path.yml\",\n        },\n        {\n            repositoryName: \"project/repository\",\n            repositoryRef: \"refs/heads/main\",\n            templatePath: \"template/alternate-path.yml\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_check_required_template = azuredevops.CheckRequiredTemplate(\"example\",\n    project_id=example.id,\n    target_resource_id=example_environment.id,\n    target_resource_type=\"environment\",\n    required_templates=[\n        {\n            \"repository_name\": \"project/repository\",\n            \"repository_ref\": \"refs/heads/main\",\n            \"template_path\": \"template/path.yml\",\n        },\n        {\n            \"repository_name\": \"project/repository\",\n            \"repository_ref\": \"refs/heads/main\",\n            \"template_path\": \"template/alternate-path.yml\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleCheckRequiredTemplate = new AzureDevOps.CheckRequiredTemplate(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleEnvironment.Id,\n        TargetResourceType = \"environment\",\n        RequiredTemplates = new[]\n        {\n            new AzureDevOps.Inputs.CheckRequiredTemplateRequiredTemplateArgs\n            {\n                RepositoryName = \"project/repository\",\n                RepositoryRef = \"refs/heads/main\",\n                TemplatePath = \"template/path.yml\",\n            },\n            new AzureDevOps.Inputs.CheckRequiredTemplateRequiredTemplateArgs\n            {\n                RepositoryName = \"project/repository\",\n                RepositoryRef = \"refs/heads/main\",\n                TemplatePath = \"template/alternate-path.yml\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckRequiredTemplate(ctx, \"example\", \u0026azuredevops.CheckRequiredTemplateArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tTargetResourceId:   exampleEnvironment.ID(),\n\t\t\tTargetResourceType: pulumi.String(\"environment\"),\n\t\t\tRequiredTemplates: azuredevops.CheckRequiredTemplateRequiredTemplateArray{\n\t\t\t\t\u0026azuredevops.CheckRequiredTemplateRequiredTemplateArgs{\n\t\t\t\t\tRepositoryName: pulumi.String(\"project/repository\"),\n\t\t\t\t\tRepositoryRef:  pulumi.String(\"refs/heads/main\"),\n\t\t\t\t\tTemplatePath:   pulumi.String(\"template/path.yml\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.CheckRequiredTemplateRequiredTemplateArgs{\n\t\t\t\t\tRepositoryName: pulumi.String(\"project/repository\"),\n\t\t\t\t\tRepositoryRef:  pulumi.String(\"refs/heads/main\"),\n\t\t\t\t\tTemplatePath:   pulumi.String(\"template/alternate-path.yml\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.CheckRequiredTemplate;\nimport com.pulumi.azuredevops.CheckRequiredTemplateArgs;\nimport com.pulumi.azuredevops.inputs.CheckRequiredTemplateRequiredTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleCheckRequiredTemplate = new CheckRequiredTemplate(\"exampleCheckRequiredTemplate\", CheckRequiredTemplateArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleEnvironment.id())\n            .targetResourceType(\"environment\")\n            .requiredTemplates(            \n                CheckRequiredTemplateRequiredTemplateArgs.builder()\n                    .repositoryName(\"project/repository\")\n                    .repositoryRef(\"refs/heads/main\")\n                    .templatePath(\"template/path.yml\")\n                    .build(),\n                CheckRequiredTemplateRequiredTemplateArgs.builder()\n                    .repositoryName(\"project/repository\")\n                    .repositoryRef(\"refs/heads/main\")\n                    .templatePath(\"template/alternate-path.yml\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleCheckRequiredTemplate:\n    type: azuredevops:CheckRequiredTemplate\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleEnvironment.id}\n      targetResourceType: environment\n      requiredTemplates:\n        - repositoryName: project/repository\n          repositoryRef: refs/heads/main\n          templatePath: template/path.yml\n        - repositoryName: project/repository\n          repositoryRef: refs/heads/main\n          templatePath: template/alternate-path.yml\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Required Template Check to be created.\n"},"requiredTemplates":{"type":"array","items":{"$ref":"#/types/azuredevops:index/CheckRequiredTemplateRequiredTemplate:CheckRequiredTemplateRequiredTemplate"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`requiredTemplate`\" pulumi-lang-dotnet=\"`RequiredTemplate`\" pulumi-lang-go=\"`requiredTemplate`\" pulumi-lang-python=\"`required_template`\" pulumi-lang-yaml=\"`requiredTemplate`\" pulumi-lang-java=\"`requiredTemplate`\"\u003e`required_template`\u003c/span\u003e blocks documented below.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Required Template Check to be created.\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Required Template Check to be created.\n"},"version":{"type":"integer","description":"The version of the check.\n"}},"required":["projectId","requiredTemplates","targetResourceId","targetResourceType","version"],"inputProperties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true},"requiredTemplates":{"type":"array","items":{"$ref":"#/types/azuredevops:index/CheckRequiredTemplateRequiredTemplate:CheckRequiredTemplateRequiredTemplate"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`requiredTemplate`\" pulumi-lang-dotnet=\"`RequiredTemplate`\" pulumi-lang-go=\"`requiredTemplate`\" pulumi-lang-python=\"`required_template`\" pulumi-lang-yaml=\"`requiredTemplate`\" pulumi-lang-java=\"`requiredTemplate`\"\u003e`required_template`\u003c/span\u003e blocks documented below.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","requiredTemplates","targetResourceId","targetResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckRequiredTemplate resources.\n","properties":{"projectId":{"type":"string","description":"The project ID. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true},"requiredTemplates":{"type":"array","items":{"$ref":"#/types/azuredevops:index/CheckRequiredTemplateRequiredTemplate:CheckRequiredTemplateRequiredTemplate"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`requiredTemplate`\" pulumi-lang-dotnet=\"`RequiredTemplate`\" pulumi-lang-go=\"`requiredTemplate`\" pulumi-lang-python=\"`required_template`\" pulumi-lang-yaml=\"`requiredTemplate`\" pulumi-lang-java=\"`requiredTemplate`\"\u003e`required_template`\u003c/span\u003e blocks documented below.\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Valid values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new Required Template Check to be created.\n","willReplaceOnChanges":true},"version":{"type":"integer","description":"The version of the check.\n"}},"type":"object"}},"azuredevops:index/checkRestApi:CheckRestApi":{"description":"Manages a Rest API check on a resource within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    serviceEndpointName: \"Example Generic\",\n    username: \"username\",\n    password: \"password\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleAzure = new azuredevops.ServiceEndpointGeneric(\"example_azure\", {\n    projectId: example.id,\n    serverUrl: \"https://dev.azure.com/\",\n    serviceEndpointName: \"Example Generic Azure\",\n    username: \"username\",\n    password: \"dummy\",\n});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    allowAccess: true,\n    variables: [{\n        name: \"FOO\",\n        value: \"BAR\",\n    }],\n});\nconst exampleCheckRestApi = new azuredevops.CheckRestApi(\"example\", {\n    projectId: example.id,\n    targetResourceId: exampleServiceEndpointGeneric.id,\n    targetResourceType: \"endpoint\",\n    displayName: \"Example REST API Check\",\n    connectedServiceNameSelector: \"connectedServiceName\",\n    connectedServiceName: exampleAzure.serviceEndpointName,\n    method: \"POST\",\n    headers: \"{\\\"contentType\\\":\\\"application/json\\\"}\",\n    body: \"{\\\"params\\\":\\\"value\\\"}\",\n    completionEvent: \"ApiResponse\",\n    successCriteria: \"eq(root['status'], '200')\",\n    urlSuffix: \"user/1\",\n    retryInterval: 4000,\n    variableGroupName: exampleVariableGroup.name,\n    timeout: 40000,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    service_endpoint_name=\"Example Generic\",\n    username=\"username\",\n    password=\"password\",\n    description=\"Managed by Pulumi\")\nexample_azure = azuredevops.ServiceEndpointGeneric(\"example_azure\",\n    project_id=example.id,\n    server_url=\"https://dev.azure.com/\",\n    service_endpoint_name=\"Example Generic Azure\",\n    username=\"username\",\n    password=\"dummy\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    allow_access=True,\n    variables=[{\n        \"name\": \"FOO\",\n        \"value\": \"BAR\",\n    }])\nexample_check_rest_api = azuredevops.CheckRestApi(\"example\",\n    project_id=example.id,\n    target_resource_id=example_service_endpoint_generic.id,\n    target_resource_type=\"endpoint\",\n    display_name=\"Example REST API Check\",\n    connected_service_name_selector=\"connectedServiceName\",\n    connected_service_name=example_azure.service_endpoint_name,\n    method=\"POST\",\n    headers=\"{\\\"contentType\\\":\\\"application/json\\\"}\",\n    body=\"{\\\"params\\\":\\\"value\\\"}\",\n    completion_event=\"ApiResponse\",\n    success_criteria=\"eq(root['status'], '200')\",\n    url_suffix=\"user/1\",\n    retry_interval=4000,\n    variable_group_name=example_variable_group.name,\n    timeout=40000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        ServiceEndpointName = \"Example Generic\",\n        Username = \"username\",\n        Password = \"password\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleAzure = new AzureDevOps.ServiceEndpointGeneric(\"example_azure\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://dev.azure.com/\",\n        ServiceEndpointName = \"Example Generic Azure\",\n        Username = \"username\",\n        Password = \"dummy\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"FOO\",\n                Value = \"BAR\",\n            },\n        },\n    });\n\n    var exampleCheckRestApi = new AzureDevOps.CheckRestApi(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TargetResourceId = exampleServiceEndpointGeneric.Id,\n        TargetResourceType = \"endpoint\",\n        DisplayName = \"Example REST API Check\",\n        ConnectedServiceNameSelector = \"connectedServiceName\",\n        ConnectedServiceName = exampleAzure.ServiceEndpointName,\n        Method = \"POST\",\n        Headers = \"{\\\"contentType\\\":\\\"application/json\\\"}\",\n        Body = \"{\\\"params\\\":\\\"value\\\"}\",\n        CompletionEvent = \"ApiResponse\",\n        SuccessCriteria = \"eq(root['status'], '200')\",\n        UrlSuffix = \"user/1\",\n        RetryInterval = 4000,\n        VariableGroupName = exampleVariableGroup.Name,\n        Timeout = 40000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointGeneric, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleAzure, err := azuredevops.NewServiceEndpointGeneric(ctx, \"example_azure\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://dev.azure.com/\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic Azure\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"dummy\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVariableGroup, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"FOO\"),\n\t\t\t\t\tValue: pulumi.String(\"BAR\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewCheckRestApi(ctx, \"example\", \u0026azuredevops.CheckRestApiArgs{\n\t\t\tProjectId:                    example.ID(),\n\t\t\tTargetResourceId:             exampleServiceEndpointGeneric.ID(),\n\t\t\tTargetResourceType:           pulumi.String(\"endpoint\"),\n\t\t\tDisplayName:                  pulumi.String(\"Example REST API Check\"),\n\t\t\tConnectedServiceNameSelector: pulumi.String(\"connectedServiceName\"),\n\t\t\tConnectedServiceName:         exampleAzure.ServiceEndpointName,\n\t\t\tMethod:                       pulumi.String(\"POST\"),\n\t\t\tHeaders:                      pulumi.String(\"{\\\"contentType\\\":\\\"application/json\\\"}\"),\n\t\t\tBody:                         pulumi.String(\"{\\\"params\\\":\\\"value\\\"}\"),\n\t\t\tCompletionEvent:              pulumi.String(\"ApiResponse\"),\n\t\t\tSuccessCriteria:              pulumi.String(\"eq(root['status'], '200')\"),\n\t\t\tUrlSuffix:                    pulumi.String(\"user/1\"),\n\t\t\tRetryInterval:                pulumi.Int(4000),\n\t\t\tVariableGroupName:            exampleVariableGroup.Name,\n\t\t\tTimeout:                      pulumi.Int(40000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport com.pulumi.azuredevops.CheckRestApi;\nimport com.pulumi.azuredevops.CheckRestApiArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .serviceEndpointName(\"Example Generic\")\n            .username(\"username\")\n            .password(\"password\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleAzure = new ServiceEndpointGeneric(\"exampleAzure\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://dev.azure.com/\")\n            .serviceEndpointName(\"Example Generic Azure\")\n            .username(\"username\")\n            .password(\"dummy\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .allowAccess(true)\n            .variables(VariableGroupVariableArgs.builder()\n                .name(\"FOO\")\n                .value(\"BAR\")\n                .build())\n            .build());\n\n        var exampleCheckRestApi = new CheckRestApi(\"exampleCheckRestApi\", CheckRestApiArgs.builder()\n            .projectId(example.id())\n            .targetResourceId(exampleServiceEndpointGeneric.id())\n            .targetResourceType(\"endpoint\")\n            .displayName(\"Example REST API Check\")\n            .connectedServiceNameSelector(\"connectedServiceName\")\n            .connectedServiceName(exampleAzure.serviceEndpointName())\n            .method(\"POST\")\n            .headers(\"{\\\"contentType\\\":\\\"application/json\\\"}\")\n            .body(\"{\\\"params\\\":\\\"value\\\"}\")\n            .completionEvent(\"ApiResponse\")\n            .successCriteria(\"eq(root['status'], '200')\")\n            .urlSuffix(\"user/1\")\n            .retryInterval(4000)\n            .variableGroupName(exampleVariableGroup.name())\n            .timeout(40000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      serviceEndpointName: Example Generic\n      username: username\n      password: password\n      description: Managed by Pulumi\n  exampleAzure:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example_azure\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://dev.azure.com/\n      serviceEndpointName: Example Generic Azure\n      username: username\n      password: dummy\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      allowAccess: true\n      variables:\n        - name: FOO\n          value: BAR\n  exampleCheckRestApi:\n    type: azuredevops:CheckRestApi\n    name: example\n    properties:\n      projectId: ${example.id}\n      targetResourceId: ${exampleServiceEndpointGeneric.id}\n      targetResourceType: endpoint\n      displayName: Example REST API Check\n      connectedServiceNameSelector: connectedServiceName\n      connectedServiceName: ${exampleAzure.serviceEndpointName}\n      method: POST\n      headers: '{\"contentType\":\"application/json\"}'\n      body: '{\"params\":\"value\"}'\n      completionEvent: ApiResponse\n      successCriteria: eq(root['status'], '200')\n      urlSuffix: user/1\n      retryInterval: 4000\n      variableGroupName: ${exampleVariableGroup.name}\n      timeout: '40000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Define approvals and checks](https://learn.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops\u0026tabs=check-pass)\n\n## Import\n\nImporting this resource is not supported.\n\n","properties":{"body":{"type":"string","description":"The Rest API request body.\n"},"completionEvent":{"type":"string","description":"The completion event of the Rest API call. Possible values: `Callback`, `ApiResponse`. Defaults to `Callback`.\n"},"connectedServiceName":{"type":"string","description":"The name of the Service Connection.\n"},"connectedServiceNameSelector":{"type":"string","description":"The type of the Service Connection used to invoke the REST API. Possible values: `connectedServiceName`(**Generic** type service connection) and `connectedServiceNameARM`(**Azure Resource Manager** type service connection).\n"},"displayName":{"type":"string","description":"The Name of the Rest API check.\n"},"headers":{"type":"string","description":"The headers of the request in JSON format.\n"},"method":{"type":"string","description":"The HTTP method of the request. Possible values: `OPTIONS`, `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `PATCH`\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new resource to be created.\n"},"retryInterval":{"type":"integer","description":"The time between evaluations (minutes). \n\n~\u003e**NOTE** 1. The retry times should less them 10 based on the timeout. For example: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e or no less then \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n\u003cbr\u003e2. \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e is not required when `completion_event=Callback`.\n"},"successCriteria":{"type":"string","description":"The Criteria which defines when to pass the task. No criteria means response content does not influence the result.\n\n~\u003e**NOTE** \u003cspan pulumi-lang-nodejs=\"`successCriteria`\" pulumi-lang-dotnet=\"`SuccessCriteria`\" pulumi-lang-go=\"`successCriteria`\" pulumi-lang-python=\"`success_criteria`\" pulumi-lang-yaml=\"`successCriteria`\" pulumi-lang-java=\"`successCriteria`\"\u003e`success_criteria`\u003c/span\u003e is used when `completion_event=ApiResponse`\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new resource to be created\n"},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new resource to be created.\n"},"timeout":{"type":"integer","description":"The timeout in minutes for the Rest API check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"urlSuffix":{"type":"string","description":"The URL suffix and parameters.\n"},"variableGroupName":{"type":"string","description":"The name of the Variable Group.\n"},"version":{"type":"integer","description":"The version of the Rest API check.\n"}},"required":["connectedServiceName","connectedServiceNameSelector","displayName","method","projectId","targetResourceId","targetResourceType","version"],"inputProperties":{"body":{"type":"string","description":"The Rest API request body.\n"},"completionEvent":{"type":"string","description":"The completion event of the Rest API call. Possible values: `Callback`, `ApiResponse`. Defaults to `Callback`.\n"},"connectedServiceName":{"type":"string","description":"The name of the Service Connection.\n"},"connectedServiceNameSelector":{"type":"string","description":"The type of the Service Connection used to invoke the REST API. Possible values: `connectedServiceName`(**Generic** type service connection) and `connectedServiceNameARM`(**Azure Resource Manager** type service connection).\n"},"displayName":{"type":"string","description":"The Name of the Rest API check.\n"},"headers":{"type":"string","description":"The headers of the request in JSON format.\n"},"method":{"type":"string","description":"The HTTP method of the request. Possible values: `OPTIONS`, `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `PATCH`\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"retryInterval":{"type":"integer","description":"The time between evaluations (minutes). \n\n~\u003e**NOTE** 1. The retry times should less them 10 based on the timeout. For example: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e or no less then \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n\u003cbr\u003e2. \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e is not required when `completion_event=Callback`.\n"},"successCriteria":{"type":"string","description":"The Criteria which defines when to pass the task. No criteria means response content does not influence the result.\n\n~\u003e**NOTE** \u003cspan pulumi-lang-nodejs=\"`successCriteria`\" pulumi-lang-dotnet=\"`SuccessCriteria`\" pulumi-lang-go=\"`successCriteria`\" pulumi-lang-python=\"`success_criteria`\" pulumi-lang-yaml=\"`successCriteria`\" pulumi-lang-java=\"`successCriteria`\"\u003e`success_criteria`\u003c/span\u003e is used when `completion_event=ApiResponse`\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the Rest API check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"urlSuffix":{"type":"string","description":"The URL suffix and parameters.\n"},"variableGroupName":{"type":"string","description":"The name of the Variable Group.\n"}},"requiredInputs":["connectedServiceName","connectedServiceNameSelector","displayName","method","projectId","targetResourceId","targetResourceType"],"stateInputs":{"description":"Input properties used for looking up and filtering CheckRestApi resources.\n","properties":{"body":{"type":"string","description":"The Rest API request body.\n"},"completionEvent":{"type":"string","description":"The completion event of the Rest API call. Possible values: `Callback`, `ApiResponse`. Defaults to `Callback`.\n"},"connectedServiceName":{"type":"string","description":"The name of the Service Connection.\n"},"connectedServiceNameSelector":{"type":"string","description":"The type of the Service Connection used to invoke the REST API. Possible values: `connectedServiceName`(**Generic** type service connection) and `connectedServiceNameARM`(**Azure Resource Manager** type service connection).\n"},"displayName":{"type":"string","description":"The Name of the Rest API check.\n"},"headers":{"type":"string","description":"The headers of the request in JSON format.\n"},"method":{"type":"string","description":"The HTTP method of the request. Possible values: `OPTIONS`, `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `TRACE`, `PATCH`\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"retryInterval":{"type":"integer","description":"The time between evaluations (minutes). \n\n~\u003e**NOTE** 1. The retry times should less them 10 based on the timeout. For example: \u003cspan pulumi-lang-nodejs=\"`timeout`\" pulumi-lang-dotnet=\"`Timeout`\" pulumi-lang-go=\"`timeout`\" pulumi-lang-python=\"`timeout`\" pulumi-lang-yaml=\"`timeout`\" pulumi-lang-java=\"`timeout`\"\u003e`timeout`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`4000`\" pulumi-lang-dotnet=\"`4000`\" pulumi-lang-go=\"`4000`\" pulumi-lang-python=\"`4000`\" pulumi-lang-yaml=\"`4000`\" pulumi-lang-java=\"`4000`\"\u003e`4000`\u003c/span\u003e then \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e should be \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e or no less then \u003cspan pulumi-lang-nodejs=\"`400`\" pulumi-lang-dotnet=\"`400`\" pulumi-lang-go=\"`400`\" pulumi-lang-python=\"`400`\" pulumi-lang-yaml=\"`400`\" pulumi-lang-java=\"`400`\"\u003e`400`\u003c/span\u003e.\n\u003cbr\u003e2. \u003cspan pulumi-lang-nodejs=\"`retryInterval`\" pulumi-lang-dotnet=\"`RetryInterval`\" pulumi-lang-go=\"`retryInterval`\" pulumi-lang-python=\"`retry_interval`\" pulumi-lang-yaml=\"`retryInterval`\" pulumi-lang-java=\"`retryInterval`\"\u003e`retry_interval`\u003c/span\u003e is not required when `completion_event=Callback`.\n"},"successCriteria":{"type":"string","description":"The Criteria which defines when to pass the task. No criteria means response content does not influence the result.\n\n~\u003e**NOTE** \u003cspan pulumi-lang-nodejs=\"`successCriteria`\" pulumi-lang-dotnet=\"`SuccessCriteria`\" pulumi-lang-go=\"`successCriteria`\" pulumi-lang-python=\"`success_criteria`\" pulumi-lang-yaml=\"`successCriteria`\" pulumi-lang-java=\"`successCriteria`\"\u003e`success_criteria`\u003c/span\u003e is used when `completion_event=ApiResponse`\n"},"targetResourceId":{"type":"string","description":"The ID of the resource being protected by the check. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"targetResourceType":{"type":"string","description":"The type of resource being protected by the check. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securefile`\" pulumi-lang-dotnet=\"`Securefile`\" pulumi-lang-go=\"`securefile`\" pulumi-lang-python=\"`securefile`\" pulumi-lang-yaml=\"`securefile`\" pulumi-lang-java=\"`securefile`\"\u003e`securefile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"timeout":{"type":"integer","description":"The timeout in minutes for the Rest API check. Defaults to \u003cspan pulumi-lang-nodejs=\"`1440`\" pulumi-lang-dotnet=\"`1440`\" pulumi-lang-go=\"`1440`\" pulumi-lang-python=\"`1440`\" pulumi-lang-yaml=\"`1440`\" pulumi-lang-java=\"`1440`\"\u003e`1440`\u003c/span\u003e.\n"},"urlSuffix":{"type":"string","description":"The URL suffix and parameters.\n"},"variableGroupName":{"type":"string","description":"The name of the Variable Group.\n"},"version":{"type":"integer","description":"The version of the Rest API check.\n"}},"type":"object"}},"azuredevops:index/dashboard:Dashboard":{"description":"Manages Dashboard within Azure DevOps project.\n\n\u003e **NOTE:** Project level Dashboard allows to be created with the same name. Dashboard held by a team must have a different name.\n\n## Example Usage\n\n### Manage Project dashboard\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleDashboard = new azuredevops.Dashboard(\"example\", {\n    projectId: example.id,\n    name: \"Example dashboard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    description=\"Managed by Pulumi\")\nexample_dashboard = azuredevops.Dashboard(\"example\",\n    project_id=example.id,\n    name=\"Example dashboard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleDashboard = new AzureDevOps.Dashboard(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example dashboard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:        pulumi.String(\"Example Project\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewDashboard(ctx, \"example\", \u0026azuredevops.DashboardArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example dashboard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Dashboard;\nimport com.pulumi.azuredevops.DashboardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleDashboard = new Dashboard(\"exampleDashboard\", DashboardArgs.builder()\n            .projectId(example.id())\n            .name(\"Example dashboard\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      description: Managed by Pulumi\n  exampleDashboard:\n    type: azuredevops:Dashboard\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example dashboard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Manage Team dashboard\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleTeam = new azuredevops.Team(\"example\", {\n    projectId: example.id,\n    name: \"Example team\",\n});\nconst exampleDashboard = new azuredevops.Dashboard(\"example\", {\n    projectId: example.id,\n    name: \"Example dashboard\",\n    teamId: exampleTeam.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    description=\"Managed by Pulumi\")\nexample_team = azuredevops.Team(\"example\",\n    project_id=example.id,\n    name=\"Example team\")\nexample_dashboard = azuredevops.Dashboard(\"example\",\n    project_id=example.id,\n    name=\"Example dashboard\",\n    team_id=example_team.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleTeam = new AzureDevOps.Team(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example team\",\n    });\n\n    var exampleDashboard = new AzureDevOps.Dashboard(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example dashboard\",\n        TeamId = exampleTeam.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:        pulumi.String(\"Example Project\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleTeam, err := azuredevops.NewTeam(ctx, \"example\", \u0026azuredevops.TeamArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewDashboard(ctx, \"example\", \u0026azuredevops.DashboardArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example dashboard\"),\n\t\t\tTeamId:    exampleTeam.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Team;\nimport com.pulumi.azuredevops.TeamArgs;\nimport com.pulumi.azuredevops.Dashboard;\nimport com.pulumi.azuredevops.DashboardArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleTeam = new Team(\"exampleTeam\", TeamArgs.builder()\n            .projectId(example.id())\n            .name(\"Example team\")\n            .build());\n\n        var exampleDashboard = new Dashboard(\"exampleDashboard\", DashboardArgs.builder()\n            .projectId(example.id())\n            .name(\"Example dashboard\")\n            .teamId(exampleTeam.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      description: Managed by Pulumi\n  exampleTeam:\n    type: azuredevops:Team\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example team\n  exampleDashboard:\n    type: azuredevops:Dashboard\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example dashboard\n      teamId: ${exampleTeam.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps dashboards REST API 7.1 - Dashboard ](https://learn.microsoft.com/en-us/rest/api/azure/devops/dashboard/dashboards?view=azure-devops-rest-7.1)\n\n## Import\n\nAzure DevOps Dashboard can be imported using the `projectId/dasboardId` or `projectId/teamId/dasboardId`\n\n```sh\n$ pulumi import azuredevops:index/dashboard:Dashboard dashboard 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\nor \n\n```sh\n$ pulumi import azuredevops:index/dashboard:Dashboard dashboard 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"description":{"type":"string","description":"The description of the dashboard.\n"},"name":{"type":"string","description":"The name of the Dashboard.\n"},"ownerId":{"type":"string","description":"The owner of the Dashboard, could be the project or a team.\n"},"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n"},"refreshInterval":{"type":"integer","description":"The interval for client to automatically refresh the dashboard. Expressed in minutes. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"teamId":{"type":"string","description":"The ID of the Team.\n"}},"required":["name","ownerId","projectId"],"inputProperties":{"description":{"type":"string","description":"The description of the dashboard.\n"},"name":{"type":"string","description":"The name of the Dashboard.\n"},"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"refreshInterval":{"type":"integer","description":"The interval for client to automatically refresh the dashboard. Expressed in minutes. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Dashboard resources.\n","properties":{"description":{"type":"string","description":"The description of the dashboard.\n"},"name":{"type":"string","description":"The name of the Dashboard.\n"},"ownerId":{"type":"string","description":"The owner of the Dashboard, could be the project or a team.\n"},"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"refreshInterval":{"type":"integer","description":"The interval for client to automatically refresh the dashboard. Expressed in minutes. Possible values are: \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/deploymentGroup:DeploymentGroup":{"description":"Manages a Deployment Group used by classic release pipelines.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleDeploymentGroup = new azuredevops.DeploymentGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Deployment Group\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_deployment_group = azuredevops.DeploymentGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Deployment Group\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleDeploymentGroup = new AzureDevOps.DeploymentGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Deployment Group\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewDeploymentGroup(ctx, \"example\", \u0026azuredevops.DeploymentGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Deployment Group\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.DeploymentGroup;\nimport com.pulumi.azuredevops.DeploymentGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleDeploymentGroup = new DeploymentGroup(\"exampleDeploymentGroup\", DeploymentGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Deployment Group\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleDeploymentGroup:\n    type: azuredevops:DeploymentGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Deployment Group\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Deployment Groups](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/deployment-groups?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Deployment Groups can be imported using the project ID and deployment group ID, e.g.:\n\n```sh\n$ pulumi import azuredevops:index/deploymentGroup:DeploymentGroup example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"description":{"type":"string","description":"A description for the Deployment Group. Defaults to `\"\"`.\n"},"machineCount":{"type":"integer","description":"The number of deployment targets in the Deployment Group.\n"},"name":{"type":"string","description":"The name of the Deployment Group.\n"},"poolId":{"type":"integer","description":"The ID of the deployment pool in which deployment agents are registered. If not specified, a new pool will be created. Changing this forces a new Deployment Group to be created.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Deployment Group to be created.\n"}},"required":["machineCount","name","poolId","projectId"],"inputProperties":{"description":{"type":"string","description":"A description for the Deployment Group. Defaults to `\"\"`.\n"},"name":{"type":"string","description":"The name of the Deployment Group.\n"},"poolId":{"type":"integer","description":"The ID of the deployment pool in which deployment agents are registered. If not specified, a new pool will be created. Changing this forces a new Deployment Group to be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Deployment Group to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering DeploymentGroup resources.\n","properties":{"description":{"type":"string","description":"A description for the Deployment Group. Defaults to `\"\"`.\n"},"machineCount":{"type":"integer","description":"The number of deployment targets in the Deployment Group.\n"},"name":{"type":"string","description":"The name of the Deployment Group.\n"},"poolId":{"type":"integer","description":"The ID of the deployment pool in which deployment agents are registered. If not specified, a new pool will be created. Changing this forces a new Deployment Group to be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Deployment Group to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/elasticPool:ElasticPool":{"description":"Manages Elastic pool within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Azure Connection\",\n    description: \"Managed by Pulumi\",\n    serviceEndpointAuthenticationScheme: \"ServicePrincipal\",\n    credentials: {\n        serviceprincipalid: \"00000000-0000-0000-0000-000000000000\",\n        serviceprincipalkey: \"00000000-0000-0000-0000-000000000000\",\n    },\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Subscription Name\",\n});\nconst exampleElasticPool = new azuredevops.ElasticPool(\"example\", {\n    name: \"Example Elastic Pool\",\n    serviceEndpointId: exampleServiceEndpointAzureRM.id,\n    serviceEndpointScope: example.id,\n    desiredIdle: 2,\n    maxCapacity: 3,\n    azureResourceId: \"/subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Azure Connection\",\n    description=\"Managed by Pulumi\",\n    service_endpoint_authentication_scheme=\"ServicePrincipal\",\n    credentials={\n        \"serviceprincipalid\": \"00000000-0000-0000-0000-000000000000\",\n        \"serviceprincipalkey\": \"00000000-0000-0000-0000-000000000000\",\n    },\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Subscription Name\")\nexample_elastic_pool = azuredevops.ElasticPool(\"example\",\n    name=\"Example Elastic Pool\",\n    service_endpoint_id=example_service_endpoint_azure_rm.id,\n    service_endpoint_scope=example.id,\n    desired_idle=2,\n    max_capacity=3,\n    azure_resource_id=\"/subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Azure Connection\",\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointAuthenticationScheme = \"ServicePrincipal\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureRMCredentialsArgs\n        {\n            Serviceprincipalid = \"00000000-0000-0000-0000-000000000000\",\n            Serviceprincipalkey = \"00000000-0000-0000-0000-000000000000\",\n        },\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Subscription Name\",\n    });\n\n    var exampleElasticPool = new AzureDevOps.ElasticPool(\"example\", new()\n    {\n        Name = \"Example Elastic Pool\",\n        ServiceEndpointId = exampleServiceEndpointAzureRM.Id,\n        ServiceEndpointScope = example.Id,\n        DesiredIdle = 2,\n        MaxCapacity = 3,\n        AzureResourceId = \"/subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointAzureRM, err := azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example Azure Connection\"),\n\t\t\tDescription:                         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"ServicePrincipal\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureRMCredentialsArgs{\n\t\t\t\tServiceprincipalid:  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\tServiceprincipalkey: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t\tAzurermSpnTenantid:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName: pulumi.String(\"Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewElasticPool(ctx, \"example\", \u0026azuredevops.ElasticPoolArgs{\n\t\t\tName:                 pulumi.String(\"Example Elastic Pool\"),\n\t\t\tServiceEndpointId:    exampleServiceEndpointAzureRM.ID(),\n\t\t\tServiceEndpointScope: example.ID(),\n\t\t\tDesiredIdle:          pulumi.Int(2),\n\t\t\tMaxCapacity:          pulumi.Int(3),\n\t\t\tAzureResourceId:      pulumi.String(\"/subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureRMCredentialsArgs;\nimport com.pulumi.azuredevops.ElasticPool;\nimport com.pulumi.azuredevops.ElasticPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Azure Connection\")\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointAuthenticationScheme(\"ServicePrincipal\")\n            .credentials(ServiceEndpointAzureRMCredentialsArgs.builder()\n                .serviceprincipalid(\"00000000-0000-0000-0000-000000000000\")\n                .serviceprincipalkey(\"00000000-0000-0000-0000-000000000000\")\n                .build())\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Subscription Name\")\n            .build());\n\n        var exampleElasticPool = new ElasticPool(\"exampleElasticPool\", ElasticPoolArgs.builder()\n            .name(\"Example Elastic Pool\")\n            .serviceEndpointId(exampleServiceEndpointAzureRM.id())\n            .serviceEndpointScope(example.id())\n            .desiredIdle(2)\n            .maxCapacity(3)\n            .azureResourceId(\"/subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Azure Connection\n      description: Managed by Pulumi\n      serviceEndpointAuthenticationScheme: ServicePrincipal\n      credentials:\n        serviceprincipalid: 00000000-0000-0000-0000-000000000000\n        serviceprincipalkey: 00000000-0000-0000-0000-000000000000\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Subscription Name\n  exampleElasticPool:\n    type: azuredevops:ElasticPool\n    name: example\n    properties:\n      name: Example Elastic Pool\n      serviceEndpointId: ${exampleServiceEndpointAzureRM.id}\n      serviceEndpointScope: ${example.id}\n      desiredIdle: 2\n      maxCapacity: 3\n      azureResourceId: /subscriptions/\u003cSubscription Id\u003e/resourceGroups/\u003cResource Name\u003e/providers/Microsoft.Compute/virtualMachineScaleSets/\u003cVMSS Name\u003e\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Elastic Pools](https://learn.microsoft.com/en-us/rest/api/azure/devops/distributedtask/elasticpools/create?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Agent Pools can be imported using the Elastic pool ID, e.g.\n\n```sh\n$ pulumi import azuredevops:index/elasticPool:ElasticPool example 0\n```\n\n","properties":{"agentInteractiveUi":{"type":"boolean","description":"Set whether agents should be configured to run with interactive UI. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"azureResourceId":{"type":"string","description":"The ID of the Azure resource.\n"},"desiredIdle":{"type":"integer","description":"Number of agents to keep on standby.\n"},"maxCapacity":{"type":"integer","description":"Maximum number of virtual machines in the scale set.\n"},"name":{"type":"string","description":"The name of the Elastic pool.\n"},"projectId":{"type":"string","description":"The ID of the project where a new Elastic Pool will be created.\n"},"recycleAfterEachUse":{"type":"boolean","description":"Tear down virtual machines after every use. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"serviceEndpointId":{"type":"string","description":"The ID of Service Endpoint used to connect to Azure.\n"},"serviceEndpointScope":{"type":"string","description":"The Project ID of Service Endpoint belongs to.\n"},"timeToLiveMinutes":{"type":"integer","description":"Delay in minutes before deleting excess idle agents. Defaults to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"required":["azureResourceId","desiredIdle","maxCapacity","name","serviceEndpointId","serviceEndpointScope"],"inputProperties":{"agentInteractiveUi":{"type":"boolean","description":"Set whether agents should be configured to run with interactive UI. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"azureResourceId":{"type":"string","description":"The ID of the Azure resource.\n"},"desiredIdle":{"type":"integer","description":"Number of agents to keep on standby.\n"},"maxCapacity":{"type":"integer","description":"Maximum number of virtual machines in the scale set.\n"},"name":{"type":"string","description":"The name of the Elastic pool.\n"},"projectId":{"type":"string","description":"The ID of the project where a new Elastic Pool will be created.\n"},"recycleAfterEachUse":{"type":"boolean","description":"Tear down virtual machines after every use. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"serviceEndpointId":{"type":"string","description":"The ID of Service Endpoint used to connect to Azure.\n"},"serviceEndpointScope":{"type":"string","description":"The Project ID of Service Endpoint belongs to.\n"},"timeToLiveMinutes":{"type":"integer","description":"Delay in minutes before deleting excess idle agents. Defaults to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"requiredInputs":["azureResourceId","desiredIdle","maxCapacity","serviceEndpointId","serviceEndpointScope"],"stateInputs":{"description":"Input properties used for looking up and filtering ElasticPool resources.\n","properties":{"agentInteractiveUi":{"type":"boolean","description":"Set whether agents should be configured to run with interactive UI. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"azureResourceId":{"type":"string","description":"The ID of the Azure resource.\n"},"desiredIdle":{"type":"integer","description":"Number of agents to keep on standby.\n"},"maxCapacity":{"type":"integer","description":"Maximum number of virtual machines in the scale set.\n"},"name":{"type":"string","description":"The name of the Elastic pool.\n"},"projectId":{"type":"string","description":"The ID of the project where a new Elastic Pool will be created.\n"},"recycleAfterEachUse":{"type":"boolean","description":"Tear down virtual machines after every use. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"serviceEndpointId":{"type":"string","description":"The ID of Service Endpoint used to connect to Azure.\n"},"serviceEndpointScope":{"type":"string","description":"The Project ID of Service Endpoint belongs to.\n"},"timeToLiveMinutes":{"type":"integer","description":"Delay in minutes before deleting excess idle agents. Defaults to \u003cspan pulumi-lang-nodejs=\"`30`\" pulumi-lang-dotnet=\"`30`\" pulumi-lang-go=\"`30`\" pulumi-lang-python=\"`30`\" pulumi-lang-yaml=\"`30`\" pulumi-lang-java=\"`30`\"\u003e`30`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/environment:Environment":{"description":"Manages an Environment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Environments](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/environments?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Environments can be imported using the project ID and environment ID, e.g.:\n\n```sh\n$ pulumi import azuredevops:index/environment:Environment example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"description":{"type":"string","description":"A description for the Environment.\n"},"name":{"type":"string","description":"The name which should be used for this Environment.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Environment to be created.\n"}},"required":["name","projectId"],"inputProperties":{"description":{"type":"string","description":"A description for the Environment.\n"},"name":{"type":"string","description":"The name which should be used for this Environment.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Environment to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Environment resources.\n","properties":{"description":{"type":"string","description":"A description for the Environment.\n"},"name":{"type":"string","description":"The name which should be used for this Environment.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Environment to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/environmentResourceKubernetes:EnvironmentResourceKubernetes":{"description":"Manages a Kubernetes Resource for an Environment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n});\nconst exampleServiceEndpointKubernetes = new azuredevops.ServiceEndpointKubernetes(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Kubernetes\",\n    apiserverUrl: \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorizationType: \"AzureSubscription\",\n    azureSubscriptions: [{\n        subscriptionId: \"00000000-0000-0000-0000-000000000000\",\n        subscriptionName: \"Example\",\n        tenantId: \"00000000-0000-0000-0000-000000000000\",\n        resourcegroupId: \"example-rg\",\n        namespace: \"default\",\n        clusterName: \"example-aks\",\n    }],\n});\nconst exampleEnvironmentResourceKubernetes = new azuredevops.EnvironmentResourceKubernetes(\"example\", {\n    projectId: example.id,\n    environmentId: exampleEnvironment.id,\n    serviceEndpointId: exampleServiceEndpointKubernetes.id,\n    name: \"Example\",\n    namespace: \"default\",\n    clusterName: \"example-aks\",\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\")\nexample_service_endpoint_kubernetes = azuredevops.ServiceEndpointKubernetes(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Kubernetes\",\n    apiserver_url=\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorization_type=\"AzureSubscription\",\n    azure_subscriptions=[{\n        \"subscription_id\": \"00000000-0000-0000-0000-000000000000\",\n        \"subscription_name\": \"Example\",\n        \"tenant_id\": \"00000000-0000-0000-0000-000000000000\",\n        \"resourcegroup_id\": \"example-rg\",\n        \"namespace\": \"default\",\n        \"cluster_name\": \"example-aks\",\n    }])\nexample_environment_resource_kubernetes = azuredevops.EnvironmentResourceKubernetes(\"example\",\n    project_id=example.id,\n    environment_id=example_environment.id,\n    service_endpoint_id=example_service_endpoint_kubernetes.id,\n    name=\"Example\",\n    namespace=\"default\",\n    cluster_name=\"example-aks\",\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n    });\n\n    var exampleServiceEndpointKubernetes = new AzureDevOps.ServiceEndpointKubernetes(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Kubernetes\",\n        ApiserverUrl = \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n        AuthorizationType = \"AzureSubscription\",\n        AzureSubscriptions = new[]\n        {\n            new AzureDevOps.Inputs.ServiceEndpointKubernetesAzureSubscriptionArgs\n            {\n                SubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n                SubscriptionName = \"Example\",\n                TenantId = \"00000000-0000-0000-0000-000000000000\",\n                ResourcegroupId = \"example-rg\",\n                Namespace = \"default\",\n                ClusterName = \"example-aks\",\n            },\n        },\n    });\n\n    var exampleEnvironmentResourceKubernetes = new AzureDevOps.EnvironmentResourceKubernetes(\"example\", new()\n    {\n        ProjectId = example.Id,\n        EnvironmentId = exampleEnvironment.Id,\n        ServiceEndpointId = exampleServiceEndpointKubernetes.Id,\n        Name = \"Example\",\n        Namespace = \"default\",\n        ClusterName = \"example-aks\",\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointKubernetes, err := azuredevops.NewServiceEndpointKubernetes(ctx, \"example\", \u0026azuredevops.ServiceEndpointKubernetesArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Kubernetes\"),\n\t\t\tApiserverUrl:        pulumi.String(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\"),\n\t\t\tAuthorizationType:   pulumi.String(\"AzureSubscription\"),\n\t\t\tAzureSubscriptions: azuredevops.ServiceEndpointKubernetesAzureSubscriptionArray{\n\t\t\t\t\u0026azuredevops.ServiceEndpointKubernetesAzureSubscriptionArgs{\n\t\t\t\t\tSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\t\tSubscriptionName: pulumi.String(\"Example\"),\n\t\t\t\t\tTenantId:         pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\t\tResourcegroupId:  pulumi.String(\"example-rg\"),\n\t\t\t\t\tNamespace:        pulumi.String(\"default\"),\n\t\t\t\t\tClusterName:      pulumi.String(\"example-aks\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewEnvironmentResourceKubernetes(ctx, \"example\", \u0026azuredevops.EnvironmentResourceKubernetesArgs{\n\t\t\tProjectId:         example.ID(),\n\t\t\tEnvironmentId:     exampleEnvironment.ID(),\n\t\t\tServiceEndpointId: exampleServiceEndpointKubernetes.ID(),\n\t\t\tName:              pulumi.String(\"Example\"),\n\t\t\tNamespace:         pulumi.String(\"default\"),\n\t\t\tClusterName:       pulumi.String(\"example-aks\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.ServiceEndpointKubernetes;\nimport com.pulumi.azuredevops.ServiceEndpointKubernetesArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointKubernetesAzureSubscriptionArgs;\nimport com.pulumi.azuredevops.EnvironmentResourceKubernetes;\nimport com.pulumi.azuredevops.EnvironmentResourceKubernetesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .build());\n\n        var exampleServiceEndpointKubernetes = new ServiceEndpointKubernetes(\"exampleServiceEndpointKubernetes\", ServiceEndpointKubernetesArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Kubernetes\")\n            .apiserverUrl(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\")\n            .authorizationType(\"AzureSubscription\")\n            .azureSubscriptions(ServiceEndpointKubernetesAzureSubscriptionArgs.builder()\n                .subscriptionId(\"00000000-0000-0000-0000-000000000000\")\n                .subscriptionName(\"Example\")\n                .tenantId(\"00000000-0000-0000-0000-000000000000\")\n                .resourcegroupId(\"example-rg\")\n                .namespace(\"default\")\n                .clusterName(\"example-aks\")\n                .build())\n            .build());\n\n        var exampleEnvironmentResourceKubernetes = new EnvironmentResourceKubernetes(\"exampleEnvironmentResourceKubernetes\", EnvironmentResourceKubernetesArgs.builder()\n            .projectId(example.id())\n            .environmentId(exampleEnvironment.id())\n            .serviceEndpointId(exampleServiceEndpointKubernetes.id())\n            .name(\"Example\")\n            .namespace(\"default\")\n            .clusterName(\"example-aks\")\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n  exampleServiceEndpointKubernetes:\n    type: azuredevops:ServiceEndpointKubernetes\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Kubernetes\n      apiserverUrl: https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\n      authorizationType: AzureSubscription\n      azureSubscriptions:\n        - subscriptionId: 00000000-0000-0000-0000-000000000000\n          subscriptionName: Example\n          tenantId: 00000000-0000-0000-0000-000000000000\n          resourcegroupId: example-rg\n          namespace: default\n          clusterName: example-aks\n  exampleEnvironmentResourceKubernetes:\n    type: azuredevops:EnvironmentResourceKubernetes\n    name: example\n    properties:\n      projectId: ${example.id}\n      environmentId: ${exampleEnvironment.id}\n      serviceEndpointId: ${exampleServiceEndpointKubernetes.id}\n      name: Example\n      namespace: default\n      clusterName: example-aks\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 6.0 - Kubernetes](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/kubernetes?view=azure-devops-rest-6.0)\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"clusterName":{"type":"string","description":"A cluster name for the Kubernetes Resource.\n"},"environmentId":{"type":"integer","description":"The ID of the environment under which to create the Kubernetes Resource.\n"},"name":{"type":"string","description":"The name for the Kubernetes Resource.\n"},"namespace":{"type":"string","description":"The namespace for the Kubernetes Resource.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"The ID of the service endpoint to associate with the Kubernetes Resource.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A set of tags for the Kubernetes Resource.\n"}},"required":["environmentId","name","namespace","projectId","serviceEndpointId"],"inputProperties":{"clusterName":{"type":"string","description":"A cluster name for the Kubernetes Resource.\n","willReplaceOnChanges":true},"environmentId":{"type":"integer","description":"The ID of the environment under which to create the Kubernetes Resource.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name for the Kubernetes Resource.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace for the Kubernetes Resource.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointId":{"type":"string","description":"The ID of the service endpoint to associate with the Kubernetes Resource.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A set of tags for the Kubernetes Resource.\n","willReplaceOnChanges":true}},"requiredInputs":["environmentId","namespace","projectId","serviceEndpointId"],"stateInputs":{"description":"Input properties used for looking up and filtering EnvironmentResourceKubernetes resources.\n","properties":{"clusterName":{"type":"string","description":"A cluster name for the Kubernetes Resource.\n","willReplaceOnChanges":true},"environmentId":{"type":"integer","description":"The ID of the environment under which to create the Kubernetes Resource.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name for the Kubernetes Resource.\n","willReplaceOnChanges":true},"namespace":{"type":"string","description":"The namespace for the Kubernetes Resource.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointId":{"type":"string","description":"The ID of the service endpoint to associate with the Kubernetes Resource.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A set of tags for the Kubernetes Resource.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/extension:Extension":{"description":"Manages extension within Azure DevOps organization.\n\n## Example Usage\n\n### Install Extension\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Extension(\"example\", {\n    extensionId: \"extension ID\",\n    publisherId: \"publisher ID\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Extension(\"example\",\n    extension_id=\"extension ID\",\n    publisher_id=\"publisher ID\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Extension(\"example\", new()\n    {\n        ExtensionId = \"extension ID\",\n        PublisherId = \"publisher ID\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewExtension(ctx, \"example\", \u0026azuredevops.ExtensionArgs{\n\t\t\tExtensionId: pulumi.String(\"extension ID\"),\n\t\t\tPublisherId: pulumi.String(\"publisher ID\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Extension;\nimport com.pulumi.azuredevops.ExtensionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Extension(\"example\", ExtensionArgs.builder()\n            .extensionId(\"extension ID\")\n            .publisherId(\"publisher ID\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Extension\n    properties:\n      extensionId: extension ID\n      publisherId: publisher ID\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [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)\n\n## Import\n\nAzure DevOps Extension can be imported using the publisher ID and extension ID:\n\n```sh\n$ pulumi import azuredevops:index/extension:Extension example publisherId/extensionId\n```\n\n","properties":{"disabled":{"type":"boolean","description":"Whether to disable the extension.\n"},"extensionId":{"type":"string","description":"The Azure DevOps Marketplace extension identifier, for example `vss-code-search`.\n"},"extensionName":{"type":"string","description":"The name of the extension.\n"},"publisherId":{"type":"string","description":"The Azure DevOps Marketplace publisher identifier, for example \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e.\n"},"publisherName":{"type":"string","description":"The name of the publisher.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"List of all oauth scopes required by this extension.\n"},"version":{"type":"string","description":"The version of the extension.\n"}},"required":["disabled","extensionId","extensionName","publisherId","publisherName","scopes","version"],"inputProperties":{"disabled":{"type":"boolean","description":"Whether to disable the extension.\n"},"extensionId":{"type":"string","description":"The Azure DevOps Marketplace extension identifier, for example `vss-code-search`.\n","willReplaceOnChanges":true},"publisherId":{"type":"string","description":"The Azure DevOps Marketplace publisher identifier, for example \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e.\n","willReplaceOnChanges":true},"version":{"type":"string","description":"The version of the extension.\n"}},"requiredInputs":["extensionId","publisherId"],"stateInputs":{"description":"Input properties used for looking up and filtering Extension resources.\n","properties":{"disabled":{"type":"boolean","description":"Whether to disable the extension.\n"},"extensionId":{"type":"string","description":"The Azure DevOps Marketplace extension identifier, for example `vss-code-search`.\n","willReplaceOnChanges":true},"extensionName":{"type":"string","description":"The name of the extension.\n"},"publisherId":{"type":"string","description":"The Azure DevOps Marketplace publisher identifier, for example \u003cspan pulumi-lang-nodejs=\"`ms`\" pulumi-lang-dotnet=\"`Ms`\" pulumi-lang-go=\"`ms`\" pulumi-lang-python=\"`ms`\" pulumi-lang-yaml=\"`ms`\" pulumi-lang-java=\"`ms`\"\u003e`ms`\u003c/span\u003e.\n","willReplaceOnChanges":true},"publisherName":{"type":"string","description":"The name of the publisher.\n"},"scopes":{"type":"array","items":{"type":"string"},"description":"List of all oauth scopes required by this extension.\n"},"version":{"type":"string","description":"The version of the extension.\n"}},"type":"object"}},"azuredevops:index/feed:Feed":{"description":"Manages Feed within Azure DevOps organization.\n\n## Example Usage\n\n### Create Feed in the scope of whole Organization\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Feed(\"example\", {name: \"examplefeed\"});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Feed(\"example\", name=\"examplefeed\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"examplefeed\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName: pulumi.String(\"examplefeed\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Feed(\"example\", FeedArgs.builder()\n            .name(\"examplefeed\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Feed\n    properties:\n      name: examplefeed\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Feed in the scope of a Project\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleFeed = new azuredevops.Feed(\"example\", {\n    name: \"examplefeed\",\n    projectId: example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_feed = azuredevops.Feed(\"example\",\n    name=\"examplefeed\",\n    project_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleFeed = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"examplefeed\",\n        ProjectId = example.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName:      pulumi.String(\"examplefeed\"),\n\t\t\tProjectId: example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleFeed = new Feed(\"exampleFeed\", FeedArgs.builder()\n            .name(\"examplefeed\")\n            .projectId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleFeed:\n    type: azuredevops:Feed\n    name: example\n    properties:\n      name: examplefeed\n      projectId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Feed with Soft Delete\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Feed(\"example\", {\n    name: \"examplefeed\",\n    features: [{\n        permanentDelete: false,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Feed(\"example\",\n    name=\"examplefeed\",\n    features=[{\n        \"permanent_delete\": False,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"examplefeed\",\n        Features = new[]\n        {\n            new AzureDevOps.Inputs.FeedFeatureArgs\n            {\n                PermanentDelete = false,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName: pulumi.String(\"examplefeed\"),\n\t\t\tFeatures: azuredevops.FeedFeatureArray{\n\t\t\t\t\u0026azuredevops.FeedFeatureArgs{\n\t\t\t\t\tPermanentDelete: pulumi.Bool(false),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport com.pulumi.azuredevops.inputs.FeedFeatureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Feed(\"example\", FeedArgs.builder()\n            .name(\"examplefeed\")\n            .features(FeedFeatureArgs.builder()\n                .permanentDelete(false)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Feed\n    properties:\n      name: examplefeed\n      features:\n        - permanentDelete: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Relevant Links\n\n- [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)\n\n## Import\n\nAzure DevOps Feed can be imported using the Project ID and Feed ID or Feed ID e.g.:\n\n```sh\n$ pulumi import azuredevops:index/feed:Feed example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\nor \n\n```sh\n$ pulumi import azuredevops:index/feed:Feed example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/FeedFeature:FeedFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n\n\u003e **Note** *Because of ADO limitations feed name can be **reserved** for up to 15 minutes after permanent delete of the feed*\n"},"name":{"type":"string","description":"The name of the Feed.\n"},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n"}},"required":["name"],"inputProperties":{"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/FeedFeature:FeedFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n\n\u003e **Note** *Because of ADO limitations feed name can be **reserved** for up to 15 minutes after permanent delete of the feed*\n"},"name":{"type":"string","description":"The name of the Feed.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Feed resources.\n","properties":{"features":{"type":"array","items":{"$ref":"#/types/azuredevops:index/FeedFeature:FeedFeature"},"description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e blocks as documented below.\n\n\u003e **Note** *Because of ADO limitations feed name can be **reserved** for up to 15 minutes after permanent delete of the feed*\n"},"name":{"type":"string","description":"The name of the Feed.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/feedPermission:FeedPermission":{"description":"Manages creation of the Feed Permission within Azure DevOps organization.\n\n## Example Usage\n\n### Create Feed Permission\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleGroup = new azuredevops.Group(\"example\", {\n    scope: example.id,\n    displayName: \"Example group\",\n    description: \"Example description\",\n});\nconst exampleFeed = new azuredevops.Feed(\"example\", {name: \"examplefeed\"});\nconst permission = new azuredevops.FeedPermission(\"permission\", {\n    feedId: exampleFeed.id,\n    role: \"reader\",\n    identityDescriptor: exampleGroup.descriptor,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_group = azuredevops.Group(\"example\",\n    scope=example.id,\n    display_name=\"Example group\",\n    description=\"Example description\")\nexample_feed = azuredevops.Feed(\"example\", name=\"examplefeed\")\npermission = azuredevops.FeedPermission(\"permission\",\n    feed_id=example_feed.id,\n    role=\"reader\",\n    identity_descriptor=example_group.descriptor)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGroup = new AzureDevOps.Group(\"example\", new()\n    {\n        Scope = example.Id,\n        DisplayName = \"Example group\",\n        Description = \"Example description\",\n    });\n\n    var exampleFeed = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"examplefeed\",\n    });\n\n    var permission = new AzureDevOps.FeedPermission(\"permission\", new()\n    {\n        FeedId = exampleFeed.Id,\n        Role = \"reader\",\n        IdentityDescriptor = exampleGroup.Descriptor,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := azuredevops.NewGroup(ctx, \"example\", \u0026azuredevops.GroupArgs{\n\t\t\tScope:       example.ID(),\n\t\t\tDisplayName: pulumi.String(\"Example group\"),\n\t\t\tDescription: pulumi.String(\"Example description\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFeed, err := azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName: pulumi.String(\"examplefeed\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewFeedPermission(ctx, \"permission\", \u0026azuredevops.FeedPermissionArgs{\n\t\t\tFeedId:             exampleFeed.ID(),\n\t\t\tRole:               pulumi.String(\"reader\"),\n\t\t\tIdentityDescriptor: exampleGroup.Descriptor,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Group;\nimport com.pulumi.azuredevops.GroupArgs;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport com.pulumi.azuredevops.FeedPermission;\nimport com.pulumi.azuredevops.FeedPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n            .scope(example.id())\n            .displayName(\"Example group\")\n            .description(\"Example description\")\n            .build());\n\n        var exampleFeed = new Feed(\"exampleFeed\", FeedArgs.builder()\n            .name(\"examplefeed\")\n            .build());\n\n        var permission = new FeedPermission(\"permission\", FeedPermissionArgs.builder()\n            .feedId(exampleFeed.id())\n            .role(\"reader\")\n            .identityDescriptor(exampleGroup.descriptor())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGroup:\n    type: azuredevops:Group\n    name: example\n    properties:\n      scope: ${example.id}\n      displayName: Example group\n      description: Example description\n  exampleFeed:\n    type: azuredevops:Feed\n    name: example\n    properties:\n      name: examplefeed\n  permission:\n    type: azuredevops:FeedPermission\n    properties:\n      feedId: ${exampleFeed.id}\n      role: reader\n      identityDescriptor: ${exampleGroup.descriptor}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Relevant Links\n\n- [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)\n\n## Import\n\nAzure DevOps Feed Permission can be imported using the `Project ID/Feed ID/Identity Descriptor` or `Feed ID/Identity Descriptor` e.g.:\n\n```sh\n$ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\nor \n\n```sh\n$ pulumi import azuredevops:index/feedPermission:FeedPermission permission 00000000-0000-0000-0000-000000000000/vssgp.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\n","properties":{"displayName":{"type":"string","description":"The display name of the assignment\n"},"feedId":{"type":"string","description":"The ID of the Feed.\n"},"identityDescriptor":{"type":"string","description":"The Descriptor of identity you want to assign a role.\n"},"identityId":{"type":"string","description":"The ID of the identity.\n"},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n"},"role":{"type":"string","description":"The role to be assigned. Possible values are: \u003cspan pulumi-lang-nodejs=\"`reader`\" pulumi-lang-dotnet=\"`Reader`\" pulumi-lang-go=\"`reader`\" pulumi-lang-python=\"`reader`\" pulumi-lang-yaml=\"`reader`\" pulumi-lang-java=\"`reader`\"\u003e`reader`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`contributor`\" pulumi-lang-dotnet=\"`Contributor`\" pulumi-lang-go=\"`contributor`\" pulumi-lang-python=\"`contributor`\" pulumi-lang-yaml=\"`contributor`\" pulumi-lang-java=\"`contributor`\"\u003e`contributor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`collaborator`\" pulumi-lang-dotnet=\"`Collaborator`\" pulumi-lang-go=\"`collaborator`\" pulumi-lang-python=\"`collaborator`\" pulumi-lang-yaml=\"`collaborator`\" pulumi-lang-java=\"`collaborator`\"\u003e`collaborator`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`administrator`\" pulumi-lang-dotnet=\"`Administrator`\" pulumi-lang-go=\"`administrator`\" pulumi-lang-python=\"`administrator`\" pulumi-lang-yaml=\"`administrator`\" pulumi-lang-java=\"`administrator`\"\u003e`administrator`\u003c/span\u003e\n"}},"required":["feedId","identityDescriptor","identityId","role"],"inputProperties":{"displayName":{"type":"string","description":"The display name of the assignment\n"},"feedId":{"type":"string","description":"The ID of the Feed.\n","willReplaceOnChanges":true},"identityDescriptor":{"type":"string","description":"The Descriptor of identity you want to assign a role.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role to be assigned. Possible values are: \u003cspan pulumi-lang-nodejs=\"`reader`\" pulumi-lang-dotnet=\"`Reader`\" pulumi-lang-go=\"`reader`\" pulumi-lang-python=\"`reader`\" pulumi-lang-yaml=\"`reader`\" pulumi-lang-java=\"`reader`\"\u003e`reader`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`contributor`\" pulumi-lang-dotnet=\"`Contributor`\" pulumi-lang-go=\"`contributor`\" pulumi-lang-python=\"`contributor`\" pulumi-lang-yaml=\"`contributor`\" pulumi-lang-java=\"`contributor`\"\u003e`contributor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`collaborator`\" pulumi-lang-dotnet=\"`Collaborator`\" pulumi-lang-go=\"`collaborator`\" pulumi-lang-python=\"`collaborator`\" pulumi-lang-yaml=\"`collaborator`\" pulumi-lang-java=\"`collaborator`\"\u003e`collaborator`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`administrator`\" pulumi-lang-dotnet=\"`Administrator`\" pulumi-lang-go=\"`administrator`\" pulumi-lang-python=\"`administrator`\" pulumi-lang-yaml=\"`administrator`\" pulumi-lang-java=\"`administrator`\"\u003e`administrator`\u003c/span\u003e\n"}},"requiredInputs":["feedId","identityDescriptor","role"],"stateInputs":{"description":"Input properties used for looking up and filtering FeedPermission resources.\n","properties":{"displayName":{"type":"string","description":"The display name of the assignment\n"},"feedId":{"type":"string","description":"The ID of the Feed.\n","willReplaceOnChanges":true},"identityDescriptor":{"type":"string","description":"The Descriptor of identity you want to assign a role.\n","willReplaceOnChanges":true},"identityId":{"type":"string","description":"The ID of the identity.\n"},"projectId":{"type":"string","description":"The ID of the Project Feed is created in. If not specified, feed will be created at the organization level.\n","willReplaceOnChanges":true},"role":{"type":"string","description":"The role to be assigned. Possible values are: \u003cspan pulumi-lang-nodejs=\"`reader`\" pulumi-lang-dotnet=\"`Reader`\" pulumi-lang-go=\"`reader`\" pulumi-lang-python=\"`reader`\" pulumi-lang-yaml=\"`reader`\" pulumi-lang-java=\"`reader`\"\u003e`reader`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`contributor`\" pulumi-lang-dotnet=\"`Contributor`\" pulumi-lang-go=\"`contributor`\" pulumi-lang-python=\"`contributor`\" pulumi-lang-yaml=\"`contributor`\" pulumi-lang-java=\"`contributor`\"\u003e`contributor`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`collaborator`\" pulumi-lang-dotnet=\"`Collaborator`\" pulumi-lang-go=\"`collaborator`\" pulumi-lang-python=\"`collaborator`\" pulumi-lang-yaml=\"`collaborator`\" pulumi-lang-java=\"`collaborator`\"\u003e`collaborator`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`administrator`\" pulumi-lang-dotnet=\"`Administrator`\" pulumi-lang-go=\"`administrator`\" pulumi-lang-python=\"`administrator`\" pulumi-lang-yaml=\"`administrator`\" pulumi-lang-java=\"`administrator`\"\u003e`administrator`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/feedRetentionPolicy:FeedRetentionPolicy":{"description":"Manages the Feed Retention Policy within Azure DevOps.\n\n## Example Usage\n\n### Project Feed\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleFeed = new azuredevops.Feed(\"example\", {\n    name: \"ExampleFeed\",\n    projectId: example.id,\n});\nconst exampleFeedRetentionPolicy = new azuredevops.FeedRetentionPolicy(\"example\", {\n    projectId: example.id,\n    feedId: exampleFeed.id,\n    countLimit: 20,\n    daysToKeepRecentlyDownloadedPackages: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_feed = azuredevops.Feed(\"example\",\n    name=\"ExampleFeed\",\n    project_id=example.id)\nexample_feed_retention_policy = azuredevops.FeedRetentionPolicy(\"example\",\n    project_id=example.id,\n    feed_id=example_feed.id,\n    count_limit=20,\n    days_to_keep_recently_downloaded_packages=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleFeed = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"ExampleFeed\",\n        ProjectId = example.Id,\n    });\n\n    var exampleFeedRetentionPolicy = new AzureDevOps.FeedRetentionPolicy(\"example\", new()\n    {\n        ProjectId = example.Id,\n        FeedId = exampleFeed.Id,\n        CountLimit = 20,\n        DaysToKeepRecentlyDownloadedPackages = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleFeed, err := azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName:      pulumi.String(\"ExampleFeed\"),\n\t\t\tProjectId: example.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewFeedRetentionPolicy(ctx, \"example\", \u0026azuredevops.FeedRetentionPolicyArgs{\n\t\t\tProjectId:                            example.ID(),\n\t\t\tFeedId:                               exampleFeed.ID(),\n\t\t\tCountLimit:                           pulumi.Int(20),\n\t\t\tDaysToKeepRecentlyDownloadedPackages: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport com.pulumi.azuredevops.FeedRetentionPolicy;\nimport com.pulumi.azuredevops.FeedRetentionPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleFeed = new Feed(\"exampleFeed\", FeedArgs.builder()\n            .name(\"ExampleFeed\")\n            .projectId(example.id())\n            .build());\n\n        var exampleFeedRetentionPolicy = new FeedRetentionPolicy(\"exampleFeedRetentionPolicy\", FeedRetentionPolicyArgs.builder()\n            .projectId(example.id())\n            .feedId(exampleFeed.id())\n            .countLimit(20)\n            .daysToKeepRecentlyDownloadedPackages(30)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleFeed:\n    type: azuredevops:Feed\n    name: example\n    properties:\n      name: ExampleFeed\n      projectId: ${example.id}\n  exampleFeedRetentionPolicy:\n    type: azuredevops:FeedRetentionPolicy\n    name: example\n    properties:\n      projectId: ${example.id}\n      feedId: ${exampleFeed.id}\n      countLimit: 20\n      daysToKeepRecentlyDownloadedPackages: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Organization Feed\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Feed(\"example\", {name: \"examplefeed\"});\nconst exampleFeedRetentionPolicy = new azuredevops.FeedRetentionPolicy(\"example\", {\n    feedId: example.id,\n    countLimit: 20,\n    daysToKeepRecentlyDownloadedPackages: 30,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Feed(\"example\", name=\"examplefeed\")\nexample_feed_retention_policy = azuredevops.FeedRetentionPolicy(\"example\",\n    feed_id=example.id,\n    count_limit=20,\n    days_to_keep_recently_downloaded_packages=30)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Feed(\"example\", new()\n    {\n        Name = \"examplefeed\",\n    });\n\n    var exampleFeedRetentionPolicy = new AzureDevOps.FeedRetentionPolicy(\"example\", new()\n    {\n        FeedId = example.Id,\n        CountLimit = 20,\n        DaysToKeepRecentlyDownloadedPackages = 30,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewFeed(ctx, \"example\", \u0026azuredevops.FeedArgs{\n\t\t\tName: pulumi.String(\"examplefeed\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewFeedRetentionPolicy(ctx, \"example\", \u0026azuredevops.FeedRetentionPolicyArgs{\n\t\t\tFeedId:                               example.ID(),\n\t\t\tCountLimit:                           pulumi.Int(20),\n\t\t\tDaysToKeepRecentlyDownloadedPackages: pulumi.Int(30),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Feed;\nimport com.pulumi.azuredevops.FeedArgs;\nimport com.pulumi.azuredevops.FeedRetentionPolicy;\nimport com.pulumi.azuredevops.FeedRetentionPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Feed(\"example\", FeedArgs.builder()\n            .name(\"examplefeed\")\n            .build());\n\n        var exampleFeedRetentionPolicy = new FeedRetentionPolicy(\"exampleFeedRetentionPolicy\", FeedRetentionPolicyArgs.builder()\n            .feedId(example.id())\n            .countLimit(20)\n            .daysToKeepRecentlyDownloadedPackages(30)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Feed\n    properties:\n      name: examplefeed\n  exampleFeedRetentionPolicy:\n    type: azuredevops:FeedRetentionPolicy\n    name: example\n    properties:\n      feedId: ${example.id}\n      countLimit: 20\n      daysToKeepRecentlyDownloadedPackages: 30\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [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)\n\n## Import\n\nAzure DevOps Feed Retention Policy can be imported using the Project ID and Feed ID or Feed ID e.g.:\n\n```sh\n$ pulumi import azuredevops:index/feedRetentionPolicy:FeedRetentionPolicy example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\nor \n\n```sh\n$ pulumi import azuredevops:index/feedRetentionPolicy:FeedRetentionPolicy example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"countLimit":{"type":"integer","description":"The maximum number of versions per package.\n"},"daysToKeepRecentlyDownloadedPackages":{"type":"integer","description":"The days to keep recently downloaded packages.\n"},"feedId":{"type":"string","description":"The ID of the Feed. Changing this forces a new resource to be created.\n"},"projectId":{"type":"string","description":"The ID of the Project. If not specified, Feed will be created at the organization level. Changing this forces a new resource to be created.\n"}},"required":["countLimit","daysToKeepRecentlyDownloadedPackages","feedId"],"inputProperties":{"countLimit":{"type":"integer","description":"The maximum number of versions per package.\n"},"daysToKeepRecentlyDownloadedPackages":{"type":"integer","description":"The days to keep recently downloaded packages.\n"},"feedId":{"type":"string","description":"The ID of the Feed. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project. If not specified, Feed will be created at the organization level. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["countLimit","daysToKeepRecentlyDownloadedPackages","feedId"],"stateInputs":{"description":"Input properties used for looking up and filtering FeedRetentionPolicy resources.\n","properties":{"countLimit":{"type":"integer","description":"The maximum number of versions per package.\n"},"daysToKeepRecentlyDownloadedPackages":{"type":"integer","description":"The days to keep recently downloaded packages.\n"},"feedId":{"type":"string","description":"The ID of the Feed. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project. If not specified, Feed will be created at the organization level. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/git:Git":{"description":"Manages a git repository within Azure DevOps.\n\n\n~\u003e**NOTE** Importing an existing repository and running `pulumi preview` will detect a difference on the \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e block. The \u003cspan pulumi-lang-nodejs=\"`plan`\" pulumi-lang-dotnet=\"`Plan`\" pulumi-lang-go=\"`plan`\" pulumi-lang-python=\"`plan`\" pulumi-lang-yaml=\"`plan`\" pulumi-lang-java=\"`plan`\"\u003e`plan`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`apply`\" pulumi-lang-dotnet=\"`Apply`\" pulumi-lang-go=\"`apply`\" pulumi-lang-python=\"`apply`\" pulumi-lang-yaml=\"`apply`\" pulumi-lang-java=\"`apply`\"\u003e`apply`\u003c/span\u003e will then attempt to update the repository based on the \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e configurations. It may be necessary to ignore the \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e block from \u003cspan pulumi-lang-nodejs=\"`plan`\" pulumi-lang-dotnet=\"`Plan`\" pulumi-lang-go=\"`plan`\" pulumi-lang-python=\"`plan`\" pulumi-lang-yaml=\"`plan`\" pulumi-lang-java=\"`plan`\"\u003e`plan`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`apply`\" pulumi-lang-dotnet=\"`Apply`\" pulumi-lang-go=\"`apply`\" pulumi-lang-python=\"`apply`\" pulumi-lang-yaml=\"`apply`\" pulumi-lang-java=\"`apply`\"\u003e`apply`\u003c/span\u003e to support configuring existing repositories imported into Terraform state.\u003cbr\u003e\n\n~\u003e**NOTE** 1. `initialization.init_type` is `Uninitialized`: Changing \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceUrl`\" pulumi-lang-dotnet=\"`SourceUrl`\" pulumi-lang-go=\"`sourceUrl`\" pulumi-lang-python=\"`source_url`\" pulumi-lang-yaml=\"`sourceUrl`\" pulumi-lang-java=\"`sourceUrl`\"\u003e`source_url`\u003c/span\u003e will not recreate the repository, but initialize the repository.   \u003cbr\u003e2. `initialization.init_type` is not `Uninitialized`:\n\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;1) Updating \u003cspan pulumi-lang-nodejs=\"`initType`\" pulumi-lang-dotnet=\"`InitType`\" pulumi-lang-go=\"`initType`\" pulumi-lang-python=\"`init_type`\" pulumi-lang-yaml=\"`initType`\" pulumi-lang-java=\"`initType`\"\u003e`init_type`\u003c/span\u003e will recreate the repository\n\u003cbr\u003e\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;2) Updating \u003cspan pulumi-lang-nodejs=\"`sourceType`\" pulumi-lang-dotnet=\"`SourceType`\" pulumi-lang-go=\"`sourceType`\" pulumi-lang-python=\"`source_type`\" pulumi-lang-yaml=\"`sourceType`\" pulumi-lang-java=\"`sourceType`\"\u003e`source_type`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`sourceUrl`\" pulumi-lang-dotnet=\"`SourceUrl`\" pulumi-lang-go=\"`sourceUrl`\" pulumi-lang-python=\"`source_url`\" pulumi-lang-yaml=\"`sourceUrl`\" pulumi-lang-java=\"`sourceUrl`\"\u003e`source_url`\u003c/span\u003e will recreate the repository\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    defaultBranch: \"refs/heads/main\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    default_branch=\"refs/heads/main\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        DefaultBranch = \"refs/heads/main\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"Example Git Repository\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/main\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .defaultBranch(\"refs/heads/main\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      defaultBranch: refs/heads/main\n      initialization:\n        initType: Clean\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n### Create Git repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      initialization:\n        initType: Clean\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Configure existing Git repository imported into Terraform state\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    defaultBranch: \"refs/heads/main\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    default_branch=\"refs/heads/main\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        DefaultBranch = \"refs/heads/main\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"Example Git Repository\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/main\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .defaultBranch(\"refs/heads/main\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      defaultBranch: refs/heads/main\n      initialization:\n        initType: Clean\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Fork of another Azure DevOps Git repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    defaultBranch: \"refs/heads/main\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_fork = new azuredevops.Git(\"example-fork\", {\n    projectId: example.id,\n    name: \"Example Fork Repository\",\n    parentRepositoryId: exampleGit.id,\n    initialization: {\n        initType: \"Fork\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    default_branch=\"refs/heads/main\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_fork = azuredevops.Git(\"example-fork\",\n    project_id=example.id,\n    name=\"Example Fork Repository\",\n    parent_repository_id=example_git.id,\n    initialization={\n        \"init_type\": \"Fork\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        DefaultBranch = \"refs/heads/main\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_fork = new AzureDevOps.Git(\"example-fork\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Fork Repository\",\n        ParentRepositoryId = exampleGit.Id,\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Fork\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"Example Git Repository\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/main\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example-fork\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:          example.ID(),\n\t\t\tName:               pulumi.String(\"Example Fork Repository\"),\n\t\t\tParentRepositoryId: exampleGit.ID(),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Fork\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .defaultBranch(\"refs/heads/main\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var example_fork = new Git(\"example-fork\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Fork Repository\")\n            .parentRepositoryId(exampleGit.id())\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Fork\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      defaultBranch: refs/heads/main\n      initialization:\n        initType: Clean\n  example-fork:\n    type: azuredevops:Git\n    properties:\n      projectId: ${example.id}\n      name: Example Fork Repository\n      parentRepositoryId: ${exampleGit.id}\n      initialization:\n        initType: Fork\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create Import from another Git repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    defaultBranch: \"refs/heads/main\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_import = new azuredevops.Git(\"example-import\", {\n    projectId: example.id,\n    name: \"Example Import Repository\",\n    initialization: {\n        initType: \"Import\",\n        sourceType: \"Git\",\n        sourceUrl: \"https://github.com/microsoft/terraform-provider-azuredevops.git\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    default_branch=\"refs/heads/main\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_import = azuredevops.Git(\"example-import\",\n    project_id=example.id,\n    name=\"Example Import Repository\",\n    initialization={\n        \"init_type\": \"Import\",\n        \"source_type\": \"Git\",\n        \"source_url\": \"https://github.com/microsoft/terraform-provider-azuredevops.git\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        DefaultBranch = \"refs/heads/main\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_import = new AzureDevOps.Git(\"example-import\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Import Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Import\",\n            SourceType = \"Git\",\n            SourceUrl = \"https://github.com/microsoft/terraform-provider-azuredevops.git\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"Example Git Repository\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/main\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example-import\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Import Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType:   pulumi.String(\"Import\"),\n\t\t\t\tSourceType: pulumi.String(\"Git\"),\n\t\t\t\tSourceUrl:  pulumi.String(\"https://github.com/microsoft/terraform-provider-azuredevops.git\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .defaultBranch(\"refs/heads/main\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var example_import = new Git(\"example-import\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Import Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Import\")\n                .sourceType(\"Git\")\n                .sourceUrl(\"https://github.com/microsoft/terraform-provider-azuredevops.git\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      defaultBranch: refs/heads/main\n      initialization:\n        initType: Clean\n  example-import:\n    type: azuredevops:Git\n    properties:\n      projectId: ${example.id}\n      name: Example Import Repository\n      initialization:\n        initType: Import\n        sourceType: Git\n        sourceUrl: https://github.com/microsoft/terraform-provider-azuredevops.git\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Import from a Private Repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    defaultBranch: \"refs/heads/main\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_serviceendpoint = new azuredevops.ServiceEndpointGenericGit(\"example-serviceendpoint\", {\n    projectId: example.id,\n    repositoryUrl: \"https://dev.azure.com/org/project/_git/repository\",\n    username: \"username\",\n    password: \"\u003cpassword\u003e/\u003cPAT\u003e\",\n    serviceEndpointName: \"Example Generic Git\",\n    description: \"Managed by Pulumi\",\n});\n// with service connection\nconst example_import = new azuredevops.Git(\"example-import\", {\n    projectId: example.id,\n    name: \"Example Import Existing Repository\",\n    initialization: {\n        initType: \"Import\",\n        sourceType: \"Git\",\n        sourceUrl: \"https://dev.azure.com/example-org/private-repository.git\",\n        serviceConnectionId: example_serviceendpoint.id,\n    },\n});\n// with username/password\nconst example_import2 = new azuredevops.Git(\"example-import2\", {\n    projectId: example.id,\n    name: \"Example Import Existing Repository\",\n    initialization: {\n        initType: \"Import\",\n        sourceType: \"Git\",\n        sourceUrl: \"https://dev.azure.com/example-org/private-repository.git\",\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    default_branch=\"refs/heads/main\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_serviceendpoint = azuredevops.ServiceEndpointGenericGit(\"example-serviceendpoint\",\n    project_id=example.id,\n    repository_url=\"https://dev.azure.com/org/project/_git/repository\",\n    username=\"username\",\n    password=\"\u003cpassword\u003e/\u003cPAT\u003e\",\n    service_endpoint_name=\"Example Generic Git\",\n    description=\"Managed by Pulumi\")\n# with service connection\nexample_import = azuredevops.Git(\"example-import\",\n    project_id=example.id,\n    name=\"Example Import Existing Repository\",\n    initialization={\n        \"init_type\": \"Import\",\n        \"source_type\": \"Git\",\n        \"source_url\": \"https://dev.azure.com/example-org/private-repository.git\",\n        \"service_connection_id\": example_serviceendpoint.id,\n    })\n# with username/password\nexample_import2 = azuredevops.Git(\"example-import2\",\n    project_id=example.id,\n    name=\"Example Import Existing Repository\",\n    initialization={\n        \"init_type\": \"Import\",\n        \"source_type\": \"Git\",\n        \"source_url\": \"https://dev.azure.com/example-org/private-repository.git\",\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        DefaultBranch = \"refs/heads/main\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_serviceendpoint = new AzureDevOps.ServiceEndpointGenericGit(\"example-serviceendpoint\", new()\n    {\n        ProjectId = example.Id,\n        RepositoryUrl = \"https://dev.azure.com/org/project/_git/repository\",\n        Username = \"username\",\n        Password = \"\u003cpassword\u003e/\u003cPAT\u003e\",\n        ServiceEndpointName = \"Example Generic Git\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    // with service connection\n    var example_import = new AzureDevOps.Git(\"example-import\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Import Existing Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Import\",\n            SourceType = \"Git\",\n            SourceUrl = \"https://dev.azure.com/example-org/private-repository.git\",\n            ServiceConnectionId = example_serviceendpoint.Id,\n        },\n    });\n\n    // with username/password\n    var example_import2 = new AzureDevOps.Git(\"example-import2\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Import Existing Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Import\",\n            SourceType = \"Git\",\n            SourceUrl = \"https://dev.azure.com/example-org/private-repository.git\",\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"Example Git Repository\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/main\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_serviceendpoint, err := azuredevops.NewServiceEndpointGenericGit(ctx, \"example-serviceendpoint\", \u0026azuredevops.ServiceEndpointGenericGitArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tRepositoryUrl:       pulumi.String(\"https://dev.azure.com/org/project/_git/repository\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"\u003cpassword\u003e/\u003cPAT\u003e\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic Git\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// with service connection\n\t\t_, err = azuredevops.NewGit(ctx, \"example-import\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Import Existing Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType:            pulumi.String(\"Import\"),\n\t\t\t\tSourceType:          pulumi.String(\"Git\"),\n\t\t\t\tSourceUrl:           pulumi.String(\"https://dev.azure.com/example-org/private-repository.git\"),\n\t\t\t\tServiceConnectionId: example_serviceendpoint.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// with username/password\n\t\t_, err = azuredevops.NewGit(ctx, \"example-import2\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Import Existing Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType:   pulumi.String(\"Import\"),\n\t\t\t\tSourceType: pulumi.String(\"Git\"),\n\t\t\t\tSourceUrl:  pulumi.String(\"https://dev.azure.com/example-org/private-repository.git\"),\n\t\t\t\tUsername:   pulumi.String(\"username\"),\n\t\t\t\tPassword:   pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGit;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .defaultBranch(\"refs/heads/main\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var example_serviceendpoint = new ServiceEndpointGenericGit(\"example-serviceendpoint\", ServiceEndpointGenericGitArgs.builder()\n            .projectId(example.id())\n            .repositoryUrl(\"https://dev.azure.com/org/project/_git/repository\")\n            .username(\"username\")\n            .password(\"\u003cpassword\u003e/\u003cPAT\u003e\")\n            .serviceEndpointName(\"Example Generic Git\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        // with service connection\n        var example_import = new Git(\"example-import\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Import Existing Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Import\")\n                .sourceType(\"Git\")\n                .sourceUrl(\"https://dev.azure.com/example-org/private-repository.git\")\n                .serviceConnectionId(example_serviceendpoint.id())\n                .build())\n            .build());\n\n        // with username/password\n        var example_import2 = new Git(\"example-import2\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Import Existing Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Import\")\n                .sourceType(\"Git\")\n                .sourceUrl(\"https://dev.azure.com/example-org/private-repository.git\")\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      defaultBranch: refs/heads/main\n      initialization:\n        initType: Clean\n  example-serviceendpoint:\n    type: azuredevops:ServiceEndpointGenericGit\n    properties:\n      projectId: ${example.id}\n      repositoryUrl: https://dev.azure.com/org/project/_git/repository\n      username: username\n      password: \u003cpassword\u003e/\u003cPAT\u003e\n      serviceEndpointName: Example Generic Git\n      description: Managed by Pulumi\n  # with service connection\n  example-import:\n    type: azuredevops:Git\n    properties:\n      projectId: ${example.id}\n      name: Example Import Existing Repository\n      initialization:\n        initType: Import\n        sourceType: Git\n        sourceUrl: https://dev.azure.com/example-org/private-repository.git\n        serviceConnectionId: ${[\"example-serviceendpoint\"].id}\n  # with username/password\n  example-import2:\n    type: azuredevops:Git\n    properties:\n      projectId: ${example.id}\n      name: Example Import Existing Repository\n      initialization:\n        initType: Import\n        sourceType: Git\n        sourceUrl: https://dev.azure.com/example-org/private-repository.git\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Disable a Git repository\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    disabled: true,\n    initialization: {\n        initType: \"Clean\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    disabled=True,\n    initialization={\n        \"init_type\": \"Clean\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Disabled = true,\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tDisabled:  pulumi.Bool(true),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .disabled(true)\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      disabled: true\n      initialization:\n        initType: Clean\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Git Repositories](https://docs.microsoft.com/en-us/rest/api/azure/devops/git/repositories?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Code**: Read, Create, \u0026 Manage.\n\n## Import\n\nAzure DevOps Repositories can be imported using the repo name or by the repo Guid e.g.\n\n```sh\n$ pulumi import azuredevops:index/git:Git example projectName/repoName\n```\n\nor\n\n```sh\n$ pulumi import azuredevops:index/git:Git example projectName/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"defaultBranch":{"type":"string","description":"The ref of the default branch. Will be used as the branch name for initialized repositories.\n"},"disabled":{"type":"boolean","description":"The ability to disable or enable the repository. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"initialization":{"$ref":"#/types/azuredevops:index/GitInitialization:GitInitialization","description":"A \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e block as documented below.\n"},"isFork":{"type":"boolean","description":"True if the repository was created as a fork.\n"},"name":{"type":"string","description":"The name of the git repository.\n"},"parentRepositoryId":{"type":"string","description":"The ID of a Git project from which a fork is to be created.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n"},"remoteUrl":{"type":"string","description":"Git HTTPS URL of the repository\n"},"size":{"type":"integer","description":"Size in bytes.\n"},"sshUrl":{"type":"string","description":"Git SSH URL of the repository.\n"},"url":{"type":"string","description":"REST API URL of the repository.\n"},"webUrl":{"type":"string","description":"Web link to the repository.\n"}},"required":["defaultBranch","initialization","isFork","name","projectId","remoteUrl","size","sshUrl","url","webUrl"],"inputProperties":{"defaultBranch":{"type":"string","description":"The ref of the default branch. Will be used as the branch name for initialized repositories.\n"},"disabled":{"type":"boolean","description":"The ability to disable or enable the repository. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"initialization":{"$ref":"#/types/azuredevops:index/GitInitialization:GitInitialization","description":"A \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e block as documented below.\n"},"name":{"type":"string","description":"The name of the git repository.\n"},"parentRepositoryId":{"type":"string","description":"The ID of a Git project from which a fork is to be created.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true}},"requiredInputs":["initialization","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Git resources.\n","properties":{"defaultBranch":{"type":"string","description":"The ref of the default branch. Will be used as the branch name for initialized repositories.\n"},"disabled":{"type":"boolean","description":"The ability to disable or enable the repository. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"initialization":{"$ref":"#/types/azuredevops:index/GitInitialization:GitInitialization","description":"A \u003cspan pulumi-lang-nodejs=\"`initialization`\" pulumi-lang-dotnet=\"`Initialization`\" pulumi-lang-go=\"`initialization`\" pulumi-lang-python=\"`initialization`\" pulumi-lang-yaml=\"`initialization`\" pulumi-lang-java=\"`initialization`\"\u003e`initialization`\u003c/span\u003e block as documented below.\n"},"isFork":{"type":"boolean","description":"True if the repository was created as a fork.\n"},"name":{"type":"string","description":"The name of the git repository.\n"},"parentRepositoryId":{"type":"string","description":"The ID of a Git project from which a fork is to be created.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true},"remoteUrl":{"type":"string","description":"Git HTTPS URL of the repository\n"},"size":{"type":"integer","description":"Size in bytes.\n"},"sshUrl":{"type":"string","description":"Git SSH URL of the repository.\n"},"url":{"type":"string","description":"REST API URL of the repository.\n"},"webUrl":{"type":"string","description":"Web link to the repository.\n"}},"type":"object"}},"azuredevops:index/gitPermissions:GitPermissions":{"description":"Manages permissions for Git repositories.\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Permission levels\n\nPermission for Git Repositories within Azure DevOps can be applied on three different levels.\nThose levels are reflected by specifying (or omitting) values for the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositoryId`\" pulumi-lang-dotnet=\"`RepositoryId`\" pulumi-lang-go=\"`repositoryId`\" pulumi-lang-python=\"`repository_id`\" pulumi-lang-yaml=\"`repositoryId`\" pulumi-lang-java=\"`repositoryId`\"\u003e`repository_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`branchName`\" pulumi-lang-dotnet=\"`BranchName`\" pulumi-lang-go=\"`branchName`\" pulumi-lang-python=\"`branch_name`\" pulumi-lang-yaml=\"`branchName`\" pulumi-lang-java=\"`branchName`\"\u003e`branch_name`\u003c/span\u003e.\n\n### Project level\n\nPermissions for all Git Repositories inside a project (existing or newly created ones) are specified, if only the argument \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e has a value.\n\n#### Example usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_permissions = new azuredevops.GitPermissions(\"example-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        CreateRepository: \"Deny\",\n        DeleteRepository: \"Deny\",\n        RenameRepository: \"NotSet\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_permissions = azuredevops.GitPermissions(\"example-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"CreateRepository\": \"Deny\",\n        \"DeleteRepository\": \"Deny\",\n        \"RenameRepository\": \"NotSet\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_permissions = new AzureDevOps.GitPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"CreateRepository\", \"Deny\" },\n            { \"DeleteRepository\", \"Deny\" },\n            { \"RenameRepository\", \"NotSet\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CreateRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"DeleteRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"RenameRepository\": pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.GitPermissions;\nimport com.pulumi.azuredevops.GitPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_permissions = new GitPermissions(\"example-permissions\", GitPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"CreateRepository\", \"Deny\"),\n                Map.entry(\"DeleteRepository\", \"Deny\"),\n                Map.entry(\"RenameRepository\", \"NotSet\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        CreateRepository: Deny\n        DeleteRepository: Deny\n        RenameRepository: NotSet\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Repository level\n\nPermissions for a specific Git Repository and all existing or newly created branches are specified if the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`repositoryId`\" pulumi-lang-dotnet=\"`RepositoryId`\" pulumi-lang-go=\"`repositoryId`\" pulumi-lang-python=\"`repository_id`\" pulumi-lang-yaml=\"`repositoryId`\" pulumi-lang-java=\"`repositoryId`\"\u003e`repository_id`\u003c/span\u003e are set.\n\n#### Example usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_group = azuredevops.getGroup({\n    name: \"Project Collection Administrators\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_permissions = new azuredevops.GitPermissions(\"example-permissions\", {\n    projectId: exampleGit.projectId,\n    repositoryId: exampleGit.id,\n    principal: example_group.then(example_group =\u003e example_group.id),\n    permissions: {\n        RemoveOthersLocks: \"Allow\",\n        ManagePermissions: \"Deny\",\n        CreateTag: \"Deny\",\n        CreateBranch: \"NotSet\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_group = azuredevops.get_group(name=\"Project Collection Administrators\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_permissions = azuredevops.GitPermissions(\"example-permissions\",\n    project_id=example_git.project_id,\n    repository_id=example_git.id,\n    principal=example_group.id,\n    permissions={\n        \"RemoveOthersLocks\": \"Allow\",\n        \"ManagePermissions\": \"Deny\",\n        \"CreateTag\": \"Deny\",\n        \"CreateBranch\": \"NotSet\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_group = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Project Collection Administrators\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_permissions = new AzureDevOps.GitPermissions(\"example-permissions\", new()\n    {\n        ProjectId = exampleGit.ProjectId,\n        RepositoryId = exampleGit.Id,\n        Principal = example_group.Apply(example_group =\u003e example_group.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"RemoveOthersLocks\", \"Allow\" },\n            { \"ManagePermissions\", \"Deny\" },\n            { \"CreateTag\", \"Deny\" },\n            { \"CreateBranch\", \"NotSet\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_group, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Project Collection Administrators\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId:    exampleGit.ProjectId,\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tPrincipal:    pulumi.String(example_group.Id),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"RemoveOthersLocks\": pulumi.String(\"Allow\"),\n\t\t\t\t\"ManagePermissions\": pulumi.String(\"Deny\"),\n\t\t\t\t\"CreateTag\":         pulumi.String(\"Deny\"),\n\t\t\t\t\"CreateBranch\":      pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.GitPermissions;\nimport com.pulumi.azuredevops.GitPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-group = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Project Collection Administrators\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var example_permissions = new GitPermissions(\"example-permissions\", GitPermissionsArgs.builder()\n            .projectId(exampleGit.projectId())\n            .repositoryId(exampleGit.id())\n            .principal(example_group.id())\n            .permissions(Map.ofEntries(\n                Map.entry(\"RemoveOthersLocks\", \"Allow\"),\n                Map.entry(\"ManagePermissions\", \"Deny\"),\n                Map.entry(\"CreateTag\", \"Deny\"),\n                Map.entry(\"CreateBranch\", \"NotSet\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      initialization:\n        initType: Clean\n  example-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${exampleGit.projectId}\n      repositoryId: ${exampleGit.id}\n      principal: ${[\"example-group\"].id}\n      permissions:\n        RemoveOthersLocks: Allow\n        ManagePermissions: Deny\n        CreateTag: Deny\n        CreateBranch: NotSet\nvariables:\n  example-group:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Project Collection Administrators\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Branch level\n\nPermissions for a specific branch inside a Git Repository are specified if all above mentioned the arguments are set.\n\n#### Example usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Empty Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_group = azuredevops.getGroup({\n    name: \"Project Collection Administrators\",\n});\nconst example_permissions = new azuredevops.GitPermissions(\"example-permissions\", {\n    projectId: exampleGit.projectId,\n    repositoryId: exampleGit.id,\n    branchName: \"refs/heads/master\",\n    principal: example_group.then(example_group =\u003e example_group.id),\n    permissions: {\n        RemoveOthersLocks: \"Allow\",\n        ForcePush: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Empty Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_group = azuredevops.get_group(name=\"Project Collection Administrators\")\nexample_permissions = azuredevops.GitPermissions(\"example-permissions\",\n    project_id=example_git.project_id,\n    repository_id=example_git.id,\n    branch_name=\"refs/heads/master\",\n    principal=example_group.id,\n    permissions={\n        \"RemoveOthersLocks\": \"Allow\",\n        \"ForcePush\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Empty Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_group = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Project Collection Administrators\",\n    });\n\n    var example_permissions = new AzureDevOps.GitPermissions(\"example-permissions\", new()\n    {\n        ProjectId = exampleGit.ProjectId,\n        RepositoryId = exampleGit.Id,\n        BranchName = \"refs/heads/master\",\n        Principal = example_group.Apply(example_group =\u003e example_group.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"RemoveOthersLocks\", \"Allow\" },\n            { \"ForcePush\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Empty Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_group, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Project Collection Administrators\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId:    exampleGit.ProjectId,\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tBranchName:   pulumi.String(\"refs/heads/master\"),\n\t\t\tPrincipal:    pulumi.String(example_group.Id),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"RemoveOthersLocks\": pulumi.String(\"Allow\"),\n\t\t\t\t\"ForcePush\":         pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.GitPermissions;\nimport com.pulumi.azuredevops.GitPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Empty Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        final var example-group = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Project Collection Administrators\")\n            .build());\n\n        var example_permissions = new GitPermissions(\"example-permissions\", GitPermissionsArgs.builder()\n            .projectId(exampleGit.projectId())\n            .repositoryId(exampleGit.id())\n            .branchName(\"refs/heads/master\")\n            .principal(example_group.id())\n            .permissions(Map.ofEntries(\n                Map.entry(\"RemoveOthersLocks\", \"Allow\"),\n                Map.entry(\"ForcePush\", \"Deny\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Empty Git Repository\n      initialization:\n        initType: Clean\n  example-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${exampleGit.projectId}\n      repositoryId: ${exampleGit.id}\n      branchName: refs/heads/master\n      principal: ${[\"example-group\"].id}\n      permissions:\n        RemoveOthersLocks: Allow\n        ForcePush: Deny\nvariables:\n  example-group:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Project Collection Administrators\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst example_project_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_project_contributors = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Contributors\",\n});\nconst example_project_administrators = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Project administrators\",\n});\nconst example_permissions = new azuredevops.GitPermissions(\"example-permissions\", {\n    projectId: example.id,\n    principal: example_project_readers.apply(example_project_readers =\u003e example_project_readers.id),\n    permissions: {\n        CreateRepository: \"Deny\",\n        DeleteRepository: \"Deny\",\n        RenameRepository: \"NotSet\",\n    },\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"TestRepo\",\n    defaultBranch: \"refs/heads/master\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst example_repo_permissions = new azuredevops.GitPermissions(\"example-repo-permissions\", {\n    projectId: exampleGit.projectId,\n    repositoryId: exampleGit.id,\n    principal: example_project_administrators.apply(example_project_administrators =\u003e example_project_administrators.id),\n    permissions: {\n        RemoveOthersLocks: \"Allow\",\n        ManagePermissions: \"Deny\",\n        CreateTag: \"Deny\",\n        CreateBranch: \"NotSet\",\n    },\n});\nconst example_branch_permissions = new azuredevops.GitPermissions(\"example-branch-permissions\", {\n    projectId: exampleGit.projectId,\n    repositoryId: exampleGit.id,\n    branchName: \"master\",\n    principal: example_project_contributors.apply(example_project_contributors =\u003e example_project_contributors.id),\n    permissions: {\n        RemoveOthersLocks: \"Allow\",\n        ForcePush: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_project_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_project_contributors = azuredevops.get_group_output(project_id=example.id,\n    name=\"Contributors\")\nexample_project_administrators = azuredevops.get_group_output(project_id=example.id,\n    name=\"Project administrators\")\nexample_permissions = azuredevops.GitPermissions(\"example-permissions\",\n    project_id=example.id,\n    principal=example_project_readers.id,\n    permissions={\n        \"CreateRepository\": \"Deny\",\n        \"DeleteRepository\": \"Deny\",\n        \"RenameRepository\": \"NotSet\",\n    })\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"TestRepo\",\n    default_branch=\"refs/heads/master\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repo_permissions = azuredevops.GitPermissions(\"example-repo-permissions\",\n    project_id=example_git.project_id,\n    repository_id=example_git.id,\n    principal=example_project_administrators.id,\n    permissions={\n        \"RemoveOthersLocks\": \"Allow\",\n        \"ManagePermissions\": \"Deny\",\n        \"CreateTag\": \"Deny\",\n        \"CreateBranch\": \"NotSet\",\n    })\nexample_branch_permissions = azuredevops.GitPermissions(\"example-branch-permissions\",\n    project_id=example_git.project_id,\n    repository_id=example_git.id,\n    branch_name=\"master\",\n    principal=example_project_contributors.id,\n    permissions={\n        \"RemoveOthersLocks\": \"Allow\",\n        \"ForcePush\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_project_contributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Contributors\",\n    });\n\n    var example_project_administrators = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Project administrators\",\n    });\n\n    var example_permissions = new AzureDevOps.GitPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_project_readers.Apply(example_project_readers =\u003e example_project_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"CreateRepository\", \"Deny\" },\n            { \"DeleteRepository\", \"Deny\" },\n            { \"RenameRepository\", \"NotSet\" },\n        },\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"TestRepo\",\n        DefaultBranch = \"refs/heads/master\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var example_repo_permissions = new AzureDevOps.GitPermissions(\"example-repo-permissions\", new()\n    {\n        ProjectId = exampleGit.ProjectId,\n        RepositoryId = exampleGit.Id,\n        Principal = example_project_administrators.Apply(example_project_administrators =\u003e example_project_administrators.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"RemoveOthersLocks\", \"Allow\" },\n            { \"ManagePermissions\", \"Deny\" },\n            { \"CreateTag\", \"Deny\" },\n            { \"CreateBranch\", \"NotSet\" },\n        },\n    });\n\n    var example_branch_permissions = new AzureDevOps.GitPermissions(\"example-branch-permissions\", new()\n    {\n        ProjectId = exampleGit.ProjectId,\n        RepositoryId = exampleGit.Id,\n        BranchName = \"master\",\n        Principal = example_project_contributors.Apply(example_project_contributors =\u003e example_project_contributors.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"RemoveOthersLocks\", \"Allow\" },\n            { \"ForcePush\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\texample_project_contributors := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Contributors\"),\n\t\t}, nil)\n\t\texample_project_administrators := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Project administrators\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_project_readers.ApplyT(func(example_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_project_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CreateRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"DeleteRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"RenameRepository\": pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tName:          pulumi.String(\"TestRepo\"),\n\t\t\tDefaultBranch: pulumi.String(\"refs/heads/master\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-repo-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId:    exampleGit.ProjectId,\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tPrincipal: pulumi.String(example_project_administrators.ApplyT(func(example_project_administrators azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_project_administrators.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"RemoveOthersLocks\": pulumi.String(\"Allow\"),\n\t\t\t\t\"ManagePermissions\": pulumi.String(\"Deny\"),\n\t\t\t\t\"CreateTag\":         pulumi.String(\"Deny\"),\n\t\t\t\t\"CreateBranch\":      pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitPermissions(ctx, \"example-branch-permissions\", \u0026azuredevops.GitPermissionsArgs{\n\t\t\tProjectId:    exampleGit.ProjectId,\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tBranchName:   pulumi.String(\"master\"),\n\t\t\tPrincipal: pulumi.String(example_project_contributors.ApplyT(func(example_project_contributors azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_project_contributors.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"RemoveOthersLocks\": pulumi.String(\"Allow\"),\n\t\t\t\t\"ForcePush\":         pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.GitPermissions;\nimport com.pulumi.azuredevops.GitPermissionsArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        final var example-project-contributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        final var example-project-administrators = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Project administrators\")\n            .build());\n\n        var example_permissions = new GitPermissions(\"example-permissions\", GitPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_project_readers.applyValue(_example_project_readers -\u003e _example_project_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"CreateRepository\", \"Deny\"),\n                Map.entry(\"DeleteRepository\", \"Deny\"),\n                Map.entry(\"RenameRepository\", \"NotSet\")\n            ))\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"TestRepo\")\n            .defaultBranch(\"refs/heads/master\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var example_repo_permissions = new GitPermissions(\"example-repo-permissions\", GitPermissionsArgs.builder()\n            .projectId(exampleGit.projectId())\n            .repositoryId(exampleGit.id())\n            .principal(example_project_administrators.applyValue(_example_project_administrators -\u003e _example_project_administrators.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"RemoveOthersLocks\", \"Allow\"),\n                Map.entry(\"ManagePermissions\", \"Deny\"),\n                Map.entry(\"CreateTag\", \"Deny\"),\n                Map.entry(\"CreateBranch\", \"NotSet\")\n            ))\n            .build());\n\n        var example_branch_permissions = new GitPermissions(\"example-branch-permissions\", GitPermissionsArgs.builder()\n            .projectId(exampleGit.projectId())\n            .repositoryId(exampleGit.id())\n            .branchName(\"master\")\n            .principal(example_project_contributors.applyValue(_example_project_contributors -\u003e _example_project_contributors.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"RemoveOthersLocks\", \"Allow\"),\n                Map.entry(\"ForcePush\", \"Deny\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  example-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-project-readers\"].id}\n      permissions:\n        CreateRepository: Deny\n        DeleteRepository: Deny\n        RenameRepository: NotSet\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: TestRepo\n      defaultBranch: refs/heads/master\n      initialization:\n        initType: Clean\n  example-repo-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${exampleGit.projectId}\n      repositoryId: ${exampleGit.id}\n      principal: ${[\"example-project-administrators\"].id}\n      permissions:\n        RemoveOthersLocks: Allow\n        ManagePermissions: Deny\n        CreateTag: Deny\n        CreateBranch: NotSet\n  example-branch-permissions:\n    type: azuredevops:GitPermissions\n    properties:\n      projectId: ${exampleGit.projectId}\n      repositoryId: ${exampleGit.id}\n      branchName: master\n      principal: ${[\"example-project-contributors\"].id}\n      permissions:\n        RemoveOthersLocks: Allow\n        ForcePush: Deny\nvariables:\n  example-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n  example-project-contributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n  example-project-administrators:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Project administrators\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"branchName":{"type":"string","description":"The name of the branch to assign the permissions.\n\n\u003e **Note** To assign permissions to a branch, the \u003cspan pulumi-lang-nodejs=\"`repositoryId`\" pulumi-lang-dotnet=\"`RepositoryId`\" pulumi-lang-go=\"`repositoryId`\" pulumi-lang-python=\"`repository_id`\" pulumi-lang-yaml=\"`repositoryId`\" pulumi-lang-java=\"`repositoryId`\"\u003e`repository_id`\u003c/span\u003e must be set as well.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions             | Description                                            |\n|-------------------------|--------------------------------------------------------|\n| Administer              | Administer                                             |\n| GenericRead             | Read                                                   |\n| GenericContribute       | Contribute                                             |\n| ForcePush               | Force push (rewrite history, delete branches and tags) |\n| CreateBranch            | Create branch                                          |\n| CreateTag               | Create tag                                             |\n| ManageNote              | Manage notes                                           |\n| PolicyExempt            | Bypass policies when pushing                           |\n| CreateRepository        | Create repository                                      |\n| DeleteRepository        | Delete repository                                      |\n| RenameRepository        | Rename repository                                      |\n| EditPolicies            | Edit policies                                          |\n| RemoveOthersLocks       | Remove others' locks                                   |\n| ManagePermissions       | Manage permissions                                     |\n| PullRequestContribute   | Contribute to pull requests                            |\n| PullRequestBypassPolicy | Bypass policies when completing pull requests          |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n\n\u003e **Note**  The \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e of the user/group not the `ID`. Some resources in this provider use the \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e\nas resource ID. It is recommended to check before use.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"repositoryId":{"type":"string","description":"The ID of the GIT repository to assign the permissions\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"branchName":{"type":"string","description":"The name of the branch to assign the permissions.\n\n\u003e **Note** To assign permissions to a branch, the \u003cspan pulumi-lang-nodejs=\"`repositoryId`\" pulumi-lang-dotnet=\"`RepositoryId`\" pulumi-lang-go=\"`repositoryId`\" pulumi-lang-python=\"`repository_id`\" pulumi-lang-yaml=\"`repositoryId`\" pulumi-lang-java=\"`repositoryId`\"\u003e`repository_id`\u003c/span\u003e must be set as well.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions             | Description                                            |\n|-------------------------|--------------------------------------------------------|\n| Administer              | Administer                                             |\n| GenericRead             | Read                                                   |\n| GenericContribute       | Contribute                                             |\n| ForcePush               | Force push (rewrite history, delete branches and tags) |\n| CreateBranch            | Create branch                                          |\n| CreateTag               | Create tag                                             |\n| ManageNote              | Manage notes                                           |\n| PolicyExempt            | Bypass policies when pushing                           |\n| CreateRepository        | Create repository                                      |\n| DeleteRepository        | Delete repository                                      |\n| RenameRepository        | Rename repository                                      |\n| EditPolicies            | Edit policies                                          |\n| RemoveOthersLocks       | Remove others' locks                                   |\n| ManagePermissions       | Manage permissions                                     |\n| PullRequestContribute   | Contribute to pull requests                            |\n| PullRequestBypassPolicy | Bypass policies when completing pull requests          |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n\n\u003e **Note**  The \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e of the user/group not the `ID`. Some resources in this provider use the \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e\nas resource ID. It is recommended to check before use.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"repositoryId":{"type":"string","description":"The ID of the GIT repository to assign the permissions\n","willReplaceOnChanges":true}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering GitPermissions resources.\n","properties":{"branchName":{"type":"string","description":"The name of the branch to assign the permissions.\n\n\u003e **Note** To assign permissions to a branch, the \u003cspan pulumi-lang-nodejs=\"`repositoryId`\" pulumi-lang-dotnet=\"`RepositoryId`\" pulumi-lang-go=\"`repositoryId`\" pulumi-lang-python=\"`repository_id`\" pulumi-lang-yaml=\"`repositoryId`\" pulumi-lang-java=\"`repositoryId`\"\u003e`repository_id`\u003c/span\u003e must be set as well.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions             | Description                                            |\n|-------------------------|--------------------------------------------------------|\n| Administer              | Administer                                             |\n| GenericRead             | Read                                                   |\n| GenericContribute       | Contribute                                             |\n| ForcePush               | Force push (rewrite history, delete branches and tags) |\n| CreateBranch            | Create branch                                          |\n| CreateTag               | Create tag                                             |\n| ManageNote              | Manage notes                                           |\n| PolicyExempt            | Bypass policies when pushing                           |\n| CreateRepository        | Create repository                                      |\n| DeleteRepository        | Delete repository                                      |\n| RenameRepository        | Rename repository                                      |\n| EditPolicies            | Edit policies                                          |\n| RemoveOthersLocks       | Remove others' locks                                   |\n| ManagePermissions       | Manage permissions                                     |\n| PullRequestContribute   | Contribute to pull requests                            |\n| PullRequestBypassPolicy | Bypass policies when completing pull requests          |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n\n\u003e **Note**  The \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e of the user/group not the `ID`. Some resources in this provider use the \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e\nas resource ID. It is recommended to check before use.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"repositoryId":{"type":"string","description":"The ID of the GIT repository to assign the permissions\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/gitRepositoryBranch:GitRepositoryBranch":{"description":"Manages a Git Repository Branch.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleGitRepositoryBranch = new azuredevops.GitRepositoryBranch(\"example\", {\n    repositoryId: exampleGit.id,\n    name: \"example-branch-name\",\n    refBranch: exampleGit.defaultBranch,\n});\nconst exampleFromCommitId = new azuredevops.GitRepositoryBranch(\"example_from_commit_id\", {\n    repositoryId: exampleGit.id,\n    name: \"example-from-commit-id\",\n    refCommitId: exampleGitRepositoryBranch.lastCommitId,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_git_repository_branch = azuredevops.GitRepositoryBranch(\"example\",\n    repository_id=example_git.id,\n    name=\"example-branch-name\",\n    ref_branch=example_git.default_branch)\nexample_from_commit_id = azuredevops.GitRepositoryBranch(\"example_from_commit_id\",\n    repository_id=example_git.id,\n    name=\"example-from-commit-id\",\n    ref_commit_id=example_git_repository_branch.last_commit_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleGitRepositoryBranch = new AzureDevOps.GitRepositoryBranch(\"example\", new()\n    {\n        RepositoryId = exampleGit.Id,\n        Name = \"example-branch-name\",\n        RefBranch = exampleGit.DefaultBranch,\n    });\n\n    var exampleFromCommitId = new AzureDevOps.GitRepositoryBranch(\"example_from_commit_id\", new()\n    {\n        RepositoryId = exampleGit.Id,\n        Name = \"example-from-commit-id\",\n        RefCommitId = exampleGitRepositoryBranch.LastCommitId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGitRepositoryBranch, err := azuredevops.NewGitRepositoryBranch(ctx, \"example\", \u0026azuredevops.GitRepositoryBranchArgs{\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tName:         pulumi.String(\"example-branch-name\"),\n\t\t\tRefBranch:    exampleGit.DefaultBranch,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitRepositoryBranch(ctx, \"example_from_commit_id\", \u0026azuredevops.GitRepositoryBranchArgs{\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tName:         pulumi.String(\"example-from-commit-id\"),\n\t\t\tRefCommitId:  exampleGitRepositoryBranch.LastCommitId,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.GitRepositoryBranch;\nimport com.pulumi.azuredevops.GitRepositoryBranchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleGitRepositoryBranch = new GitRepositoryBranch(\"exampleGitRepositoryBranch\", GitRepositoryBranchArgs.builder()\n            .repositoryId(exampleGit.id())\n            .name(\"example-branch-name\")\n            .refBranch(exampleGit.defaultBranch())\n            .build());\n\n        var exampleFromCommitId = new GitRepositoryBranch(\"exampleFromCommitId\", GitRepositoryBranchArgs.builder()\n            .repositoryId(exampleGit.id())\n            .name(\"example-from-commit-id\")\n            .refCommitId(exampleGitRepositoryBranch.lastCommitId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      initialization:\n        initType: Clean\n  exampleGitRepositoryBranch:\n    type: azuredevops:GitRepositoryBranch\n    name: example\n    properties:\n      repositoryId: ${exampleGit.id}\n      name: example-branch-name\n      refBranch: ${exampleGit.defaultBranch}\n  exampleFromCommitId:\n    type: azuredevops:GitRepositoryBranch\n    name: example_from_commit_id\n    properties:\n      repositoryId: ${exampleGit.id}\n      name: example-from-commit-id\n      refCommitId: ${exampleGitRepositoryBranch.lastCommitId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Git Repository Branch can be imported using the `repository ID:branchName`.\n\n```sh\n$ pulumi import azuredevops:index/gitRepositoryBranch:GitRepositoryBranch example \"00000000-0000-0000-0000-000000000000:main\"\n```\n\n","properties":{"lastCommitId":{"type":"string","description":"The commit object ID of last commit on the branch.\n"},"name":{"type":"string","description":"The name of the branch in short format not prefixed with `refs/heads/`.\n"},"refBranch":{"type":"string","description":"The reference to the source branch to create the branch from, in `\u003cname\u003e` or `refs/heads/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n"},"refCommitId":{"type":"string","description":"The commit object ID to create the branch from. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e.\n"},"refTag":{"type":"string","description":"The reference to the tag to create the branch from, in `\u003cname\u003e` or `refs/tags/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n"},"repositoryId":{"type":"string","description":"The ID of the repository the branch is created against.\n"}},"required":["lastCommitId","name","repositoryId"],"inputProperties":{"name":{"type":"string","description":"The name of the branch in short format not prefixed with `refs/heads/`.\n","willReplaceOnChanges":true},"refBranch":{"type":"string","description":"The reference to the source branch to create the branch from, in `\u003cname\u003e` or `refs/heads/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"refCommitId":{"type":"string","description":"The commit object ID to create the branch from. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e.\n","willReplaceOnChanges":true},"refTag":{"type":"string","description":"The reference to the tag to create the branch from, in `\u003cname\u003e` or `refs/tags/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"repositoryId":{"type":"string","description":"The ID of the repository the branch is created against.\n","willReplaceOnChanges":true}},"requiredInputs":["repositoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering GitRepositoryBranch resources.\n","properties":{"lastCommitId":{"type":"string","description":"The commit object ID of last commit on the branch.\n"},"name":{"type":"string","description":"The name of the branch in short format not prefixed with `refs/heads/`.\n","willReplaceOnChanges":true},"refBranch":{"type":"string","description":"The reference to the source branch to create the branch from, in `\u003cname\u003e` or `refs/heads/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"refCommitId":{"type":"string","description":"The commit object ID to create the branch from. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refTag`\" pulumi-lang-dotnet=\"`RefTag`\" pulumi-lang-go=\"`refTag`\" pulumi-lang-python=\"`ref_tag`\" pulumi-lang-yaml=\"`refTag`\" pulumi-lang-java=\"`refTag`\"\u003e`ref_tag`\u003c/span\u003e.\n","willReplaceOnChanges":true},"refTag":{"type":"string","description":"The reference to the tag to create the branch from, in `\u003cname\u003e` or `refs/tags/\u003cname\u003e` format. Conflict with \u003cspan pulumi-lang-nodejs=\"`refBranch`\" pulumi-lang-dotnet=\"`RefBranch`\" pulumi-lang-go=\"`refBranch`\" pulumi-lang-python=\"`ref_branch`\" pulumi-lang-yaml=\"`refBranch`\" pulumi-lang-java=\"`refBranch`\"\u003e`ref_branch`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`refCommitId`\" pulumi-lang-dotnet=\"`RefCommitId`\" pulumi-lang-go=\"`refCommitId`\" pulumi-lang-python=\"`ref_commit_id`\" pulumi-lang-yaml=\"`refCommitId`\" pulumi-lang-java=\"`refCommitId`\"\u003e`ref_commit_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"repositoryId":{"type":"string","description":"The ID of the repository the branch is created against.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/gitRepositoryFile:GitRepositoryFile":{"description":"Manage files within an Azure DevOps Git repository.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleGitRepositoryFile = new azuredevops.GitRepositoryFile(\"example\", {\n    repositoryId: exampleGit.id,\n    file: \".gitignore\",\n    content: \"**/*.tfstate\",\n    branch: \"refs/heads/master\",\n    commitMessage: \"First commit\",\n    overwriteOnCreate: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_git_repository_file = azuredevops.GitRepositoryFile(\"example\",\n    repository_id=example_git.id,\n    file=\".gitignore\",\n    content=\"**/*.tfstate\",\n    branch=\"refs/heads/master\",\n    commit_message=\"First commit\",\n    overwrite_on_create=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleGitRepositoryFile = new AzureDevOps.GitRepositoryFile(\"example\", new()\n    {\n        RepositoryId = exampleGit.Id,\n        File = \".gitignore\",\n        Content = \"**/*.tfstate\",\n        Branch = \"refs/heads/master\",\n        CommitMessage = \"First commit\",\n        OverwriteOnCreate = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitRepositoryFile(ctx, \"example\", \u0026azuredevops.GitRepositoryFileArgs{\n\t\t\tRepositoryId:      exampleGit.ID(),\n\t\t\tFile:              pulumi.String(\".gitignore\"),\n\t\t\tContent:           pulumi.String(\"**/*.tfstate\"),\n\t\t\tBranch:            pulumi.String(\"refs/heads/master\"),\n\t\t\tCommitMessage:     pulumi.String(\"First commit\"),\n\t\t\tOverwriteOnCreate: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.GitRepositoryFile;\nimport com.pulumi.azuredevops.GitRepositoryFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleGitRepositoryFile = new GitRepositoryFile(\"exampleGitRepositoryFile\", GitRepositoryFileArgs.builder()\n            .repositoryId(exampleGit.id())\n            .file(\".gitignore\")\n            .content(\"**/*.tfstate\")\n            .branch(\"refs/heads/master\")\n            .commitMessage(\"First commit\")\n            .overwriteOnCreate(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      initialization:\n        initType: Clean\n  exampleGitRepositoryFile:\n    type: azuredevops:GitRepositoryFile\n    name: example\n    properties:\n      repositoryId: ${exampleGit.id}\n      file: .gitignore\n      content: '**/*.tfstate'\n      branch: refs/heads/master\n      commitMessage: First commit\n      overwriteOnCreate: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Author Email Pattern\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Git Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyAuthorEmailPattern = new azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    authorEmailPatterns: [\"auhtor@test.com\"],\n    repositoryIds: [exampleGit.id],\n});\nconst exampleGitRepositoryFile = new azuredevops.GitRepositoryFile(\"example\", {\n    repositoryId: exampleGit.id,\n    file: \".gitignore\",\n    content: \"**/*.tfstate\",\n    branch: \"refs/heads/master\",\n    commitMessage: \"First commit\",\n    overwriteOnCreate: false,\n    authorName: \"authorname\",\n    authorEmail: \"auhtor@test.com\",\n}, {\n    dependsOn: [exampleRepositoryPolicyAuthorEmailPattern],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Git Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_author_email_pattern = azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    author_email_patterns=[\"auhtor@test.com\"],\n    repository_ids=[example_git.id])\nexample_git_repository_file = azuredevops.GitRepositoryFile(\"example\",\n    repository_id=example_git.id,\n    file=\".gitignore\",\n    content=\"**/*.tfstate\",\n    branch=\"refs/heads/master\",\n    commit_message=\"First commit\",\n    overwrite_on_create=False,\n    author_name=\"authorname\",\n    author_email=\"auhtor@test.com\",\n    opts = pulumi.ResourceOptions(depends_on=[example_repository_policy_author_email_pattern]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Git Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyAuthorEmailPattern = new AzureDevOps.RepositoryPolicyAuthorEmailPattern(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        AuthorEmailPatterns = new[]\n        {\n            \"auhtor@test.com\",\n        },\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n    var exampleGitRepositoryFile = new AzureDevOps.GitRepositoryFile(\"example\", new()\n    {\n        RepositoryId = exampleGit.Id,\n        File = \".gitignore\",\n        Content = \"**/*.tfstate\",\n        Branch = \"refs/heads/master\",\n        CommitMessage = \"First commit\",\n        OverwriteOnCreate = false,\n        AuthorName = \"authorname\",\n        AuthorEmail = \"auhtor@test.com\",\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            exampleRepositoryPolicyAuthorEmailPattern,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Git Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleRepositoryPolicyAuthorEmailPattern, err := azuredevops.NewRepositoryPolicyAuthorEmailPattern(ctx, \"example\", \u0026azuredevops.RepositoryPolicyAuthorEmailPatternArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tAuthorEmailPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"auhtor@test.com\"),\n\t\t\t},\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewGitRepositoryFile(ctx, \"example\", \u0026azuredevops.GitRepositoryFileArgs{\n\t\t\tRepositoryId:      exampleGit.ID(),\n\t\t\tFile:              pulumi.String(\".gitignore\"),\n\t\t\tContent:           pulumi.String(\"**/*.tfstate\"),\n\t\t\tBranch:            pulumi.String(\"refs/heads/master\"),\n\t\t\tCommitMessage:     pulumi.String(\"First commit\"),\n\t\t\tOverwriteOnCreate: pulumi.Bool(false),\n\t\t\tAuthorName:        pulumi.String(\"authorname\"),\n\t\t\tAuthorEmail:       pulumi.String(\"auhtor@test.com\"),\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\texampleRepositoryPolicyAuthorEmailPattern,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPattern;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPatternArgs;\nimport com.pulumi.azuredevops.GitRepositoryFile;\nimport com.pulumi.azuredevops.GitRepositoryFileArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Git Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyAuthorEmailPattern = new RepositoryPolicyAuthorEmailPattern(\"exampleRepositoryPolicyAuthorEmailPattern\", RepositoryPolicyAuthorEmailPatternArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .authorEmailPatterns(\"auhtor@test.com\")\n            .repositoryIds(exampleGit.id())\n            .build());\n\n        var exampleGitRepositoryFile = new GitRepositoryFile(\"exampleGitRepositoryFile\", GitRepositoryFileArgs.builder()\n            .repositoryId(exampleGit.id())\n            .file(\".gitignore\")\n            .content(\"**/*.tfstate\")\n            .branch(\"refs/heads/master\")\n            .commitMessage(\"First commit\")\n            .overwriteOnCreate(false)\n            .authorName(\"authorname\")\n            .authorEmail(\"auhtor@test.com\")\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(exampleRepositoryPolicyAuthorEmailPattern)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Git Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyAuthorEmailPattern:\n    type: azuredevops:RepositoryPolicyAuthorEmailPattern\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      authorEmailPatterns:\n        - auhtor@test.com\n      repositoryIds:\n        - ${exampleGit.id}\n  exampleGitRepositoryFile:\n    type: azuredevops:GitRepositoryFile\n    name: example\n    properties:\n      repositoryId: ${exampleGit.id}\n      file: .gitignore\n      content: '**/*.tfstate'\n      branch: refs/heads/master\n      commitMessage: First commit\n      overwriteOnCreate: false\n      authorName: authorname\n      authorEmail: auhtor@test.com\n    options:\n      dependsOn:\n        - ${exampleRepositoryPolicyAuthorEmailPattern}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Git API](https://docs.microsoft.com/en-us/rest/api/azure/devops/git/?view=azure-devops-rest-7.0)\n\n## Import\n\nRepository files can be imported using a combination of the `repository ID` and \u003cspan pulumi-lang-nodejs=\"`file`\" pulumi-lang-dotnet=\"`File`\" pulumi-lang-go=\"`file`\" pulumi-lang-python=\"`file`\" pulumi-lang-yaml=\"`file`\" pulumi-lang-java=\"`file`\"\u003e`file`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import azuredevops:index/gitRepositoryFile:GitRepositoryFile example 00000000-0000-0000-0000-000000000000/.gitignore\n```\n\nTo import a file from a branch other than \u003cspan pulumi-lang-nodejs=\"`master`\" pulumi-lang-dotnet=\"`Master`\" pulumi-lang-go=\"`master`\" pulumi-lang-python=\"`master`\" pulumi-lang-yaml=\"`master`\" pulumi-lang-java=\"`master`\"\u003e`master`\u003c/span\u003e, append `:` and the branch name, e.g.\n\n```sh\n$ pulumi import azuredevops:index/gitRepositoryFile:GitRepositoryFile example 00000000-0000-0000-0000-000000000000/.gitignore:refs/heads/master\n```\n\n","properties":{"authorEmail":{"type":"string","description":"The email of the author.\n"},"authorName":{"type":"string","description":"The name of the author.\n"},"branch":{"type":"string","description":"Git branch (defaults to `refs/heads/master`). The branch must already exist, it will not be created if it does not already exist.\n"},"commitMessage":{"type":"string","description":"Commit message when adding or updating the managed file.\n"},"committerEmail":{"type":"string","description":"The email of the committer.\n"},"committerName":{"type":"string","description":"The name of the committer.\n"},"content":{"type":"string","description":"The file content.\n"},"file":{"type":"string","description":"The path of the file to manage.\n"},"overwriteOnCreate":{"type":"boolean","description":"Enable overwriting existing files (defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e).\n"},"repositoryId":{"type":"string","description":"The ID of the Git repository.\n"}},"required":["authorEmail","authorName","commitMessage","committerEmail","committerName","content","file","repositoryId"],"inputProperties":{"authorEmail":{"type":"string","description":"The email of the author.\n"},"authorName":{"type":"string","description":"The name of the author.\n"},"branch":{"type":"string","description":"Git branch (defaults to `refs/heads/master`). The branch must already exist, it will not be created if it does not already exist.\n","willReplaceOnChanges":true},"commitMessage":{"type":"string","description":"Commit message when adding or updating the managed file.\n"},"committerEmail":{"type":"string","description":"The email of the committer.\n"},"committerName":{"type":"string","description":"The name of the committer.\n"},"content":{"type":"string","description":"The file content.\n"},"file":{"type":"string","description":"The path of the file to manage.\n","willReplaceOnChanges":true},"overwriteOnCreate":{"type":"boolean","description":"Enable overwriting existing files (defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e).\n"},"repositoryId":{"type":"string","description":"The ID of the Git repository.\n","willReplaceOnChanges":true}},"requiredInputs":["content","file","repositoryId"],"stateInputs":{"description":"Input properties used for looking up and filtering GitRepositoryFile resources.\n","properties":{"authorEmail":{"type":"string","description":"The email of the author.\n"},"authorName":{"type":"string","description":"The name of the author.\n"},"branch":{"type":"string","description":"Git branch (defaults to `refs/heads/master`). The branch must already exist, it will not be created if it does not already exist.\n","willReplaceOnChanges":true},"commitMessage":{"type":"string","description":"Commit message when adding or updating the managed file.\n"},"committerEmail":{"type":"string","description":"The email of the committer.\n"},"committerName":{"type":"string","description":"The name of the committer.\n"},"content":{"type":"string","description":"The file content.\n"},"file":{"type":"string","description":"The path of the file to manage.\n","willReplaceOnChanges":true},"overwriteOnCreate":{"type":"boolean","description":"Enable overwriting existing files (defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e).\n"},"repositoryId":{"type":"string","description":"The ID of the Git repository.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/group:Group":{"description":"Manages a group within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_contributors = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Contributors\",\n});\nconst exampleGroup = new azuredevops.Group(\"example\", {\n    scope: example.id,\n    displayName: \"Example group\",\n    description: \"Example description\",\n    members: [\n        example_readers.apply(example_readers =\u003e example_readers.descriptor),\n        example_contributors.apply(example_contributors =\u003e example_contributors.descriptor),\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_contributors = azuredevops.get_group_output(project_id=example.id,\n    name=\"Contributors\")\nexample_group = azuredevops.Group(\"example\",\n    scope=example.id,\n    display_name=\"Example group\",\n    description=\"Example description\",\n    members=[\n        example_readers.descriptor,\n        example_contributors.descriptor,\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_contributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Contributors\",\n    });\n\n    var exampleGroup = new AzureDevOps.Group(\"example\", new()\n    {\n        Scope = example.Id,\n        DisplayName = \"Example group\",\n        Description = \"Example description\",\n        Members = new[]\n        {\n            example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n            example_contributors.Apply(example_contributors =\u003e example_contributors.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\texample_contributors := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Contributors\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewGroup(ctx, \"example\", \u0026azuredevops.GroupArgs{\n\t\t\tScope:       example.ID(),\n\t\t\tDisplayName: pulumi.String(\"Example group\"),\n\t\t\tDescription: pulumi.String(\"Example description\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_readers.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t\tpulumi.String(example_contributors.ApplyT(func(example_contributors azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_contributors.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Group;\nimport com.pulumi.azuredevops.GroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        final var example-contributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n            .scope(example.id())\n            .displayName(\"Example group\")\n            .description(\"Example description\")\n            .members(            \n                example_readers.applyValue(_example_readers -\u003e _example_readers.descriptor()),\n                example_contributors.applyValue(_example_contributors -\u003e _example_contributors.descriptor()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n  exampleGroup:\n    type: azuredevops:Group\n    name: example\n    properties:\n      scope: ${example.id}\n      displayName: Example group\n      description: Example description\n      members:\n        - ${[\"example-readers\"].descriptor}\n        - ${[\"example-contributors\"].descriptor}\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n  example-contributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Groups](https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/groups?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: Read, Write, \u0026 Manage\n\n## Import\n\nAzure DevOps groups can be imported using the group identity descriptor, e.g.\n\n```sh\n$ pulumi import azuredevops:index/group:Group example aadgp.Uy0xLTktMTU1MTM3NDI0NS0xMjA0NDAwOTY5LTI0MDI5ODY0MTMtMjE3OTQwODYxNi0zLTIxNjc2NjQyNTMtMzI1Nzg0NDI4OS0yMjU4MjcwOTc0LTI2MDYxODY2NDU\n```\n\n","properties":{"description":{"type":"string","description":"The Description of the Project.\n"},"descriptor":{"type":"string","description":"The identity (subject) descriptor of the Group.\n"},"displayName":{"type":"string","description":"The name of a new Azure DevOps group that is not backed by an external provider. The \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"This represents the name of the container of origin for a graph member.\n"},"groupId":{"type":"string","description":"The ID of the Group.\n"},"mail":{"type":"string","description":"The mail address as a reference to an existing group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e.\n"},"members":{"type":"array","items":{"type":"string"},"description":"The member of the Group.\n\n\u003e **NOTE:** It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership`\" pulumi-lang-dotnet=\"`azuredevops.GroupMembership`\" pulumi-lang-go=\"`GroupMembership`\" pulumi-lang-python=\"`GroupMembership`\" pulumi-lang-yaml=\"`azuredevops.GroupMembership`\" pulumi-lang-java=\"`azuredevops.GroupMembership`\"\u003e`azuredevops.GroupMembership`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier (ex:AD, AAD, MSA)\n"},"originId":{"type":"string","description":"The OriginID as a reference to a group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e.\n"},"principalName":{"type":"string","description":"This is the PrincipalName of this graph member from the source provider.\n"},"scope":{"type":"string","description":"The scope of the group. A descriptor referencing the scope (collection, project) in which the group should be created. If omitted, will be created in the scope of the enclosing account or organization.x\n"},"subjectKind":{"type":"string","description":"This field identifies the type of the graph subject (ex: Group, Scope, User).\n"},"url":{"type":"string","description":"This url is the full route to the source resource of this graph subject.\n"}},"required":["descriptor","displayName","domain","groupId","mail","members","origin","originId","principalName","subjectKind","url"],"inputProperties":{"description":{"type":"string","description":"The Description of the Project.\n"},"displayName":{"type":"string","description":"The name of a new Azure DevOps group that is not backed by an external provider. The \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e.\n"},"mail":{"type":"string","description":"The mail address as a reference to an existing group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"The member of the Group.\n\n\u003e **NOTE:** It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership`\" pulumi-lang-dotnet=\"`azuredevops.GroupMembership`\" pulumi-lang-go=\"`GroupMembership`\" pulumi-lang-python=\"`GroupMembership`\" pulumi-lang-yaml=\"`azuredevops.GroupMembership`\" pulumi-lang-java=\"`azuredevops.GroupMembership`\"\u003e`azuredevops.GroupMembership`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n"},"originId":{"type":"string","description":"The OriginID as a reference to a group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"The scope of the group. A descriptor referencing the scope (collection, project) in which the group should be created. If omitted, will be created in the scope of the enclosing account or organization.x\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"description":{"type":"string","description":"The Description of the Project.\n"},"descriptor":{"type":"string","description":"The identity (subject) descriptor of the Group.\n"},"displayName":{"type":"string","description":"The name of a new Azure DevOps group that is not backed by an external provider. The \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e.\n"},"domain":{"type":"string","description":"This represents the name of the container of origin for a graph member.\n"},"groupId":{"type":"string","description":"The ID of the Group.\n"},"mail":{"type":"string","description":"The mail address as a reference to an existing group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"The member of the Group.\n\n\u003e **NOTE:** It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership`\" pulumi-lang-dotnet=\"`azuredevops.GroupMembership`\" pulumi-lang-go=\"`GroupMembership`\" pulumi-lang-python=\"`GroupMembership`\" pulumi-lang-yaml=\"`azuredevops.GroupMembership`\" pulumi-lang-java=\"`azuredevops.GroupMembership`\"\u003e`azuredevops.GroupMembership`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier (ex:AD, AAD, MSA)\n"},"originId":{"type":"string","description":"The OriginID as a reference to a group from an external AD or AAD backed provider. The \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`mail`\" pulumi-lang-dotnet=\"`Mail`\" pulumi-lang-go=\"`mail`\" pulumi-lang-python=\"`mail`\" pulumi-lang-yaml=\"`mail`\" pulumi-lang-java=\"`mail`\"\u003e`mail`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`displayName`\" pulumi-lang-dotnet=\"`DisplayName`\" pulumi-lang-go=\"`displayName`\" pulumi-lang-python=\"`display_name`\" pulumi-lang-yaml=\"`displayName`\" pulumi-lang-java=\"`displayName`\"\u003e`display_name`\u003c/span\u003e arguments cannot be used simultaneously with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"This is the PrincipalName of this graph member from the source provider.\n"},"scope":{"type":"string","description":"The scope of the group. A descriptor referencing the scope (collection, project) in which the group should be created. If omitted, will be created in the scope of the enclosing account or organization.x\n","willReplaceOnChanges":true},"subjectKind":{"type":"string","description":"This field identifies the type of the graph subject (ex: Group, Scope, User).\n"},"url":{"type":"string","description":"This url is the full route to the source resource of this graph subject.\n"}},"type":"object"}},"azuredevops:index/groupEntitlement:GroupEntitlement":{"description":"Manages a group entitlement within Azure DevOps.\n\n## Example Usage\n\n### With an Azure DevOps local group managed by this resource\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.GroupEntitlement(\"example\", {displayName: \"Group Name\"});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.GroupEntitlement(\"example\", display_name=\"Group Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.GroupEntitlement(\"example\", new()\n    {\n        DisplayName = \"Group Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewGroupEntitlement(ctx, \"example\", \u0026azuredevops.GroupEntitlementArgs{\n\t\t\tDisplayName: pulumi.String(\"Group Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.GroupEntitlement;\nimport com.pulumi.azuredevops.GroupEntitlementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new GroupEntitlement(\"example\", GroupEntitlementArgs.builder()\n            .displayName(\"Group Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:GroupEntitlement\n    properties:\n      displayName: Group Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With group origin ID\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.GroupEntitlement(\"example\", {\n    origin: \"aad\",\n    originId: \"00000000-0000-0000-0000-000000000000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.GroupEntitlement(\"example\",\n    origin=\"aad\",\n    origin_id=\"00000000-0000-0000-0000-000000000000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.GroupEntitlement(\"example\", new()\n    {\n        Origin = \"aad\",\n        OriginId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewGroupEntitlement(ctx, \"example\", \u0026azuredevops.GroupEntitlementArgs{\n\t\t\tOrigin:   pulumi.String(\"aad\"),\n\t\t\tOriginId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.GroupEntitlement;\nimport com.pulumi.azuredevops.GroupEntitlementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new GroupEntitlement(\"example\", GroupEntitlementArgs.builder()\n            .origin(\"aad\")\n            .originId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:GroupEntitlement\n    properties:\n      origin: aad\n      originId: 00000000-0000-0000-0000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Group Entitlements](https://learn.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/group-entitlements?view=azure-devops-rest-7.1)\n- [Programmatic mapping of access levels](https://docs.microsoft.com/en-us/azure/devops/organizations/security/access-levels?view=azure-devops#programmatic-mapping-of-access-levels)\n\n## PAT Permissions Required\n\n- **Member Entitlement Management**: Read \u0026 Write\n\n## Import\n\nThe resource allows the import via the ID of a group entitlement, which is a UUID.\n\n```sh\n$ pulumi import azuredevops:index/groupEntitlement:GroupEntitlement example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition, the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the group graph subject.\n"},"displayName":{"type":"string","description":"The display name is the name used in Azure DevOps UI. Cannot be set together with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.). Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e.\n\n\u003e **NOTE:** A existing group in Azure AD can only be referenced by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n"},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically, a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n"},"principalName":{"type":"string","description":"The principal name of a graph member on Azure DevOps\n"}},"required":["descriptor","displayName","origin","originId","principalName"],"inputProperties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition, the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"displayName":{"type":"string","description":"The display name is the name used in Azure DevOps UI. Cannot be set together with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n","willReplaceOnChanges":true},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.). Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e.\n\n\u003e **NOTE:** A existing group in Azure AD can only be referenced by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically, a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering GroupEntitlement resources.\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition, the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the group graph subject.\n"},"displayName":{"type":"string","description":"The display name is the name used in Azure DevOps UI. Cannot be set together with \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n","willReplaceOnChanges":true},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.). Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e.\n\n\u003e **NOTE:** A existing group in Azure AD can only be referenced by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically, a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"The principal name of a graph member on Azure DevOps\n"}},"type":"object"}},"azuredevops:index/groupMembership:GroupMembership":{"description":"Manages group membership within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst exampleUser = new azuredevops.User(\"example\", {principalName: \"foo@contoso.com\"});\nconst example = azuredevops.getGroupOutput({\n    projectId: exampleProject.id,\n    name: \"Build Administrators\",\n});\nconst exampleGroupMembership = new azuredevops.GroupMembership(\"example\", {\n    group: example.apply(example =\u003e example.descriptor),\n    members: [exampleUser.descriptor],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\", name=\"Example Project\")\nexample_user = azuredevops.User(\"example\", principal_name=\"foo@contoso.com\")\nexample = azuredevops.get_group_output(project_id=example_project.id,\n    name=\"Build Administrators\")\nexample_group_membership = azuredevops.GroupMembership(\"example\",\n    group=example.descriptor,\n    members=[example_user.descriptor])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleUser = new AzureDevOps.User(\"example\", new()\n    {\n        PrincipalName = \"foo@contoso.com\",\n    });\n\n    var example = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Build Administrators\",\n    });\n\n    var exampleGroupMembership = new AzureDevOps.GroupMembership(\"example\", new()\n    {\n        Group = example.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n        Members = new[]\n        {\n            exampleUser.Descriptor,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUser, err := azuredevops.NewUser(ctx, \"example\", \u0026azuredevops.UserArgs{\n\t\t\tPrincipalName: pulumi.String(\"foo@contoso.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: exampleProject.ID(),\n\t\t\tName:      pulumi.String(\"Build Administrators\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewGroupMembership(ctx, \"example\", \u0026azuredevops.GroupMembershipArgs{\n\t\t\tGroup: pulumi.String(example.ApplyT(func(example azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example.Descriptor, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\texampleUser.Descriptor,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.User;\nimport com.pulumi.azuredevops.UserArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.GroupMembership;\nimport com.pulumi.azuredevops.GroupMembershipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleUser = new User(\"exampleUser\", UserArgs.builder()\n            .principalName(\"foo@contoso.com\")\n            .build());\n\n        final var example = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Build Administrators\")\n            .build());\n\n        var exampleGroupMembership = new GroupMembership(\"exampleGroupMembership\", GroupMembershipArgs.builder()\n            .group(example.applyValue(_example -\u003e _example.descriptor()))\n            .members(exampleUser.descriptor())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n  exampleUser:\n    type: azuredevops:User\n    name: example\n    properties:\n      principalName: foo@contoso.com\n  exampleGroupMembership:\n    type: azuredevops:GroupMembership\n    name: example\n    properties:\n      group: ${example.descriptor}\n      members:\n        - ${exampleUser.descriptor}\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${exampleProject.id}\n        name: Build Administrators\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Memberships](https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/memberships?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Deployment Groups**: Read \u0026 Manage\n","properties":{"group":{"type":"string","description":"The descriptor of the group being managed.\n"},"members":{"type":"array","items":{"type":"string"},"description":"A list of user or group descriptors that will become members of the group.\n\n\u003e **NOTE** 1. It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership \" pulumi-lang-dotnet=\"`azuredevops.GroupMembership \" pulumi-lang-go=\"`GroupMembership \" pulumi-lang-python=\"`GroupMembership \" pulumi-lang-yaml=\"`azuredevops.GroupMembership \" pulumi-lang-java=\"`azuredevops.GroupMembership \"\u003e`azuredevops.GroupMembership \u003c/span\u003eresource` via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n\u003cbr\u003e2. The \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e uses \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e as the identifier not Resource ID or others.\n"},"mode":{"type":"string","description":"The mode how the resource manages group members.\n\n~\u003e**NOTE** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced group\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n\u003cbr\u003e3. To clear all members from a group, specify an empty list of descriptors in the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attribute and set the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e member to \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e.\n"}},"required":["group","members"],"inputProperties":{"group":{"type":"string","description":"The descriptor of the group being managed.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"A list of user or group descriptors that will become members of the group.\n\n\u003e **NOTE** 1. It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership \" pulumi-lang-dotnet=\"`azuredevops.GroupMembership \" pulumi-lang-go=\"`GroupMembership \" pulumi-lang-python=\"`GroupMembership \" pulumi-lang-yaml=\"`azuredevops.GroupMembership \" pulumi-lang-java=\"`azuredevops.GroupMembership \"\u003e`azuredevops.GroupMembership \u003c/span\u003eresource` via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n\u003cbr\u003e2. The \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e uses \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e as the identifier not Resource ID or others.\n"},"mode":{"type":"string","description":"The mode how the resource manages group members.\n\n~\u003e**NOTE** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced group\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n\u003cbr\u003e3. To clear all members from a group, specify an empty list of descriptors in the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attribute and set the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e member to \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e.\n"}},"requiredInputs":["group","members"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMembership resources.\n","properties":{"group":{"type":"string","description":"The descriptor of the group being managed.\n","willReplaceOnChanges":true},"members":{"type":"array","items":{"type":"string"},"description":"A list of user or group descriptors that will become members of the group.\n\n\u003e **NOTE** 1. It's possible to define group members both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.GroupMembership \" pulumi-lang-dotnet=\"`azuredevops.GroupMembership \" pulumi-lang-go=\"`GroupMembership \" pulumi-lang-python=\"`GroupMembership \" pulumi-lang-yaml=\"`azuredevops.GroupMembership \" pulumi-lang-java=\"`azuredevops.GroupMembership \"\u003e`azuredevops.GroupMembership \u003c/span\u003eresource` via the members block and by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Group`\" pulumi-lang-dotnet=\"`azuredevops.Group`\" pulumi-lang-go=\"`Group`\" pulumi-lang-python=\"`Group`\" pulumi-lang-yaml=\"`azuredevops.Group`\" pulumi-lang-java=\"`azuredevops.Group`\"\u003e`azuredevops.Group`\u003c/span\u003e resource. However it's not possible to use both methods to manage group members, since there'll be conflicts.\n\u003cbr\u003e2. The \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e uses \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e as the identifier not Resource ID or others.\n"},"mode":{"type":"string","description":"The mode how the resource manages group members.\n\n~\u003e**NOTE** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced group\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n\u003cbr\u003e3. To clear all members from a group, specify an empty list of descriptors in the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e attribute and set the \u003cspan pulumi-lang-nodejs=\"`mode`\" pulumi-lang-dotnet=\"`Mode`\" pulumi-lang-go=\"`mode`\" pulumi-lang-python=\"`mode`\" pulumi-lang-yaml=\"`mode`\" pulumi-lang-java=\"`mode`\"\u003e`mode`\u003c/span\u003e member to \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/iterativePermissions:IterativePermissions":{"description":"Manages permissions for an Iteration (Sprint)\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Permission levels\n\nPermission for Iterations within Azure DevOps can be applied on two different levels.\nThose levels are reflected by specifying (or omitting) values for the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_root_permissions = new azuredevops.IterativePermissions(\"example-root-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        CREATE_CHILDREN: \"Deny\",\n        GENERIC_READ: \"NotSet\",\n        DELETE: \"Deny\",\n    },\n});\nconst example_iteration_permissions = new azuredevops.IterativePermissions(\"example-iteration-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    path: \"Iteration 1\",\n    permissions: {\n        CREATE_CHILDREN: \"Allow\",\n        GENERIC_READ: \"NotSet\",\n        DELETE: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_root_permissions = azuredevops.IterativePermissions(\"example-root-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"CREATE_CHILDREN\": \"Deny\",\n        \"GENERIC_READ\": \"NotSet\",\n        \"DELETE\": \"Deny\",\n    })\nexample_iteration_permissions = azuredevops.IterativePermissions(\"example-iteration-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    path=\"Iteration 1\",\n    permissions={\n        \"CREATE_CHILDREN\": \"Allow\",\n        \"GENERIC_READ\": \"NotSet\",\n        \"DELETE\": \"Allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_root_permissions = new AzureDevOps.IterativePermissions(\"example-root-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"CREATE_CHILDREN\", \"Deny\" },\n            { \"GENERIC_READ\", \"NotSet\" },\n            { \"DELETE\", \"Deny\" },\n        },\n    });\n\n    var example_iteration_permissions = new AzureDevOps.IterativePermissions(\"example-iteration-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Path = \"Iteration 1\",\n        Permissions = \n        {\n            { \"CREATE_CHILDREN\", \"Allow\" },\n            { \"GENERIC_READ\", \"NotSet\" },\n            { \"DELETE\", \"Allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewIterativePermissions(ctx, \"example-root-permissions\", \u0026azuredevops.IterativePermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CREATE_CHILDREN\": pulumi.String(\"Deny\"),\n\t\t\t\t\"GENERIC_READ\":    pulumi.String(\"NotSet\"),\n\t\t\t\t\"DELETE\":          pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewIterativePermissions(ctx, \"example-iteration-permissions\", \u0026azuredevops.IterativePermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPath: pulumi.String(\"Iteration 1\"),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CREATE_CHILDREN\": pulumi.String(\"Allow\"),\n\t\t\t\t\"GENERIC_READ\":    pulumi.String(\"NotSet\"),\n\t\t\t\t\"DELETE\":          pulumi.String(\"Allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.IterativePermissions;\nimport com.pulumi.azuredevops.IterativePermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_root_permissions = new IterativePermissions(\"example-root-permissions\", IterativePermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"CREATE_CHILDREN\", \"Deny\"),\n                Map.entry(\"GENERIC_READ\", \"NotSet\"),\n                Map.entry(\"DELETE\", \"Deny\")\n            ))\n            .build());\n\n        var example_iteration_permissions = new IterativePermissions(\"example-iteration-permissions\", IterativePermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .path(\"Iteration 1\")\n            .permissions(Map.ofEntries(\n                Map.entry(\"CREATE_CHILDREN\", \"Allow\"),\n                Map.entry(\"GENERIC_READ\", \"NotSet\"),\n                Map.entry(\"DELETE\", \"Allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-root-permissions:\n    type: azuredevops:IterativePermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        CREATE_CHILDREN: Deny\n        GENERIC_READ: NotSet\n        DELETE: Deny\n  example-iteration-permissions:\n    type: azuredevops:IterativePermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      path: Iteration 1\n      permissions:\n        CREATE_CHILDREN: Allow\n        GENERIC_READ: NotSet\n        DELETE: Allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission      | Description                    |\n|-----------------|--------------------------------|\n| GENERIC_READ    | View permissions for this node |\n| GENERIC_WRITE   | Edit this node                 |\n| CREATE_CHILDREN | Create child nodes             |\n| DELETE          | Delete this node               |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission      | Description                    |\n|-----------------|--------------------------------|\n| GENERIC_READ    | View permissions for this node |\n| GENERIC_WRITE   | Edit this node                 |\n| CREATE_CHILDREN | Create child nodes             |\n| DELETE          | Delete this node               |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering IterativePermissions resources.\n","properties":{"path":{"type":"string","description":"The name of the branch to assign the permissions.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission      | Description                    |\n|-----------------|--------------------------------|\n| GENERIC_READ    | View permissions for this node |\n| GENERIC_WRITE   | Edit this node                 |\n| CREATE_CHILDREN | Create child nodes             |\n| DELETE          | Delete this node               |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/libraryPermissions:LibraryPermissions":{"description":"Manages permissions for a Library\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst project = new azuredevops.Project(\"project\", {\n    name: \"Testing\",\n    description: \"Testing-description\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst tf_project_readers = azuredevops.getGroupOutput({\n    projectId: project.id,\n    name: \"Readers\",\n});\nconst permissions = new azuredevops.LibraryPermissions(\"permissions\", {\n    projectId: project.id,\n    principal: tf_project_readers.apply(tf_project_readers =\u003e tf_project_readers.id),\n    permissions: {\n        View: \"allow\",\n        Administer: \"allow\",\n        Use: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nproject = azuredevops.Project(\"project\",\n    name=\"Testing\",\n    description=\"Testing-description\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\ntf_project_readers = azuredevops.get_group_output(project_id=project.id,\n    name=\"Readers\")\npermissions = azuredevops.LibraryPermissions(\"permissions\",\n    project_id=project.id,\n    principal=tf_project_readers.id,\n    permissions={\n        \"View\": \"allow\",\n        \"Administer\": \"allow\",\n        \"Use\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = new AzureDevOps.Project(\"project\", new()\n    {\n        Name = \"Testing\",\n        Description = \"Testing-description\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var tf_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = project.Id,\n        Name = \"Readers\",\n    });\n\n    var permissions = new AzureDevOps.LibraryPermissions(\"permissions\", new()\n    {\n        ProjectId = project.Id,\n        Principal = tf_project_readers.Apply(tf_project_readers =\u003e tf_project_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"View\", \"allow\" },\n            { \"Administer\", \"allow\" },\n            { \"Use\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := azuredevops.NewProject(ctx, \"project\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Testing\"),\n\t\t\tDescription:      pulumi.String(\"Testing-description\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttf_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewLibraryPermissions(ctx, \"permissions\", \u0026azuredevops.LibraryPermissionsArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tPrincipal: pulumi.String(tf_project_readers.ApplyT(func(tf_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026tf_project_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"View\":       pulumi.String(\"allow\"),\n\t\t\t\t\"Administer\": pulumi.String(\"allow\"),\n\t\t\t\t\"Use\":        pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.LibraryPermissions;\nimport com.pulumi.azuredevops.LibraryPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"Testing\")\n            .description(\"Testing-description\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        final var tf-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(project.id())\n            .name(\"Readers\")\n            .build());\n\n        var permissions = new LibraryPermissions(\"permissions\", LibraryPermissionsArgs.builder()\n            .projectId(project.id())\n            .principal(tf_project_readers.applyValue(_tf_project_readers -\u003e _tf_project_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"View\", \"allow\"),\n                Map.entry(\"Administer\", \"allow\"),\n                Map.entry(\"Use\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: azuredevops:Project\n    properties:\n      name: Testing\n      description: Testing-description\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  permissions:\n    type: azuredevops:LibraryPermissions\n    properties:\n      projectId: ${project.id}\n      principal: ${[\"tf-project-readers\"].id}\n      permissions:\n        View: allow\n        Administer: allow\n        Use: allow\nvariables:\n  tf-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${project.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Roles\n\nThe Azure DevOps UI uses roles to assign permissions for the Library.\n\n| Role          | Allowed Permissions   |\n|---------------|-----------------------|\n| Reader        | View                  |\n| Creator       | View, Create          |\n| User          | View, Use             |\n| Administrator | View, Use, Administer |\n\n## Relevant Links\n\n* [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)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering LibraryPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/pipelineAuthorization:PipelineAuthorization":{"description":"Manage pipeline access permissions to resources.\n\n\u003e **Note** This resource is a replacement for \u003cspan pulumi-lang-nodejs=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-dotnet=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-go=\"`ResourceAuthorization`\" pulumi-lang-python=\"`ResourceAuthorization`\" pulumi-lang-yaml=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-java=\"`azuredevops.ResourceAuthorization`\"\u003e`azuredevops.ResourceAuthorization`\u003c/span\u003e.  Pipeline authorizations managed by \u003cspan pulumi-lang-nodejs=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-dotnet=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-go=\"`ResourceAuthorization`\" pulumi-lang-python=\"`ResourceAuthorization`\" pulumi-lang-yaml=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-java=\"`azuredevops.ResourceAuthorization`\"\u003e`azuredevops.ResourceAuthorization`\u003c/span\u003e can also be managed by this resource.\n\n\u003e **Note** If both \"All Pipeline Authorization\" and \"Custom Pipeline Authorization\" are configured, \"All Pipeline Authorization\" has higher priority.\n\n\n## Example Usage\n\n### Authorization for all pipelines\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst examplePool = new azuredevops.Pool(\"example\", {\n    name: \"Example Pool\",\n    autoProvision: false,\n    autoUpdate: false,\n});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    projectId: example.id,\n    agentPoolId: examplePool.id,\n});\nconst examplePipelineAuthorization = new azuredevops.PipelineAuthorization(\"example\", {\n    projectId: example.id,\n    resourceId: exampleQueue.id,\n    type: \"queue\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_pool = azuredevops.Pool(\"example\",\n    name=\"Example Pool\",\n    auto_provision=False,\n    auto_update=False)\nexample_queue = azuredevops.Queue(\"example\",\n    project_id=example.id,\n    agent_pool_id=example_pool.id)\nexample_pipeline_authorization = azuredevops.PipelineAuthorization(\"example\",\n    project_id=example.id,\n    resource_id=example_queue.id,\n    type=\"queue\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var examplePool = new AzureDevOps.Pool(\"example\", new()\n    {\n        Name = \"Example Pool\",\n        AutoProvision = false,\n        AutoUpdate = false,\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        ProjectId = example.Id,\n        AgentPoolId = examplePool.Id,\n    });\n\n    var examplePipelineAuthorization = new AzureDevOps.PipelineAuthorization(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ResourceId = exampleQueue.Id,\n        Type = \"queue\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := azuredevops.NewPool(ctx, \"example\", \u0026azuredevops.PoolArgs{\n\t\t\tName:          pulumi.String(\"Example Pool\"),\n\t\t\tAutoProvision: pulumi.Bool(false),\n\t\t\tAutoUpdate:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tAgentPoolId: examplePool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewPipelineAuthorization(ctx, \"example\", \u0026azuredevops.PipelineAuthorizationArgs{\n\t\t\tProjectId:  example.ID(),\n\t\t\tResourceId: exampleQueue.ID(),\n\t\t\tType:       pulumi.String(\"queue\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Pool;\nimport com.pulumi.azuredevops.PoolArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport com.pulumi.azuredevops.PipelineAuthorization;\nimport com.pulumi.azuredevops.PipelineAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var examplePool = new Pool(\"examplePool\", PoolArgs.builder()\n            .name(\"Example Pool\")\n            .autoProvision(false)\n            .autoUpdate(false)\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .projectId(example.id())\n            .agentPoolId(examplePool.id())\n            .build());\n\n        var examplePipelineAuthorization = new PipelineAuthorization(\"examplePipelineAuthorization\", PipelineAuthorizationArgs.builder()\n            .projectId(example.id())\n            .resourceId(exampleQueue.id())\n            .type(\"queue\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  examplePool:\n    type: azuredevops:Pool\n    name: example\n    properties:\n      name: Example Pool\n      autoProvision: false\n      autoUpdate: false\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      projectId: ${example.id}\n      agentPoolId: ${examplePool.id}\n  examplePipelineAuthorization:\n    type: azuredevops:PipelineAuthorization\n    name: example\n    properties:\n      projectId: ${example.id}\n      resourceId: ${exampleQueue.id}\n      type: queue\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authorization for specific pipeline\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst examplePool = new azuredevops.Pool(\"example\", {\n    name: \"Example Pool\",\n    autoProvision: false,\n    autoUpdate: false,\n});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    projectId: exampleProject.id,\n    agentPoolId: examplePool.id,\n});\nconst example = azuredevops.getGitRepositoryOutput({\n    projectId: exampleProject.id,\n    name: \"Example Project\",\n});\nconst exampleBuildDefinition = new azuredevops.BuildDefinition(\"example\", {\n    projectId: exampleProject.id,\n    name: \"Example Pipeline\",\n    repository: {\n        repoType: \"TfsGit\",\n        repoId: example.apply(example =\u003e example.id),\n        ymlPath: \"azure-pipelines.yml\",\n    },\n});\nconst examplePipelineAuthorization = new azuredevops.PipelineAuthorization(\"example\", {\n    projectId: exampleProject.id,\n    resourceId: exampleQueue.id,\n    type: \"queue\",\n    pipelineId: exampleBuildDefinition.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_pool = azuredevops.Pool(\"example\",\n    name=\"Example Pool\",\n    auto_provision=False,\n    auto_update=False)\nexample_queue = azuredevops.Queue(\"example\",\n    project_id=example_project.id,\n    agent_pool_id=example_pool.id)\nexample = azuredevops.get_git_repository_output(project_id=example_project.id,\n    name=\"Example Project\")\nexample_build_definition = azuredevops.BuildDefinition(\"example\",\n    project_id=example_project.id,\n    name=\"Example Pipeline\",\n    repository={\n        \"repo_type\": \"TfsGit\",\n        \"repo_id\": example.id,\n        \"yml_path\": \"azure-pipelines.yml\",\n    })\nexample_pipeline_authorization = azuredevops.PipelineAuthorization(\"example\",\n    project_id=example_project.id,\n    resource_id=example_queue.id,\n    type=\"queue\",\n    pipeline_id=example_build_definition.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var examplePool = new AzureDevOps.Pool(\"example\", new()\n    {\n        Name = \"Example Pool\",\n        AutoProvision = false,\n        AutoUpdate = false,\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        AgentPoolId = examplePool.Id,\n    });\n\n    var example = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Example Project\",\n    });\n\n    var exampleBuildDefinition = new AzureDevOps.BuildDefinition(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Example Pipeline\",\n        Repository = new AzureDevOps.Inputs.BuildDefinitionRepositoryArgs\n        {\n            RepoType = \"TfsGit\",\n            RepoId = example.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id),\n            YmlPath = \"azure-pipelines.yml\",\n        },\n    });\n\n    var examplePipelineAuthorization = new AzureDevOps.PipelineAuthorization(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        ResourceId = exampleQueue.Id,\n        Type = \"queue\",\n        PipelineId = exampleBuildDefinition.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texamplePool, err := azuredevops.NewPool(ctx, \"example\", \u0026azuredevops.PoolArgs{\n\t\t\tName:          pulumi.String(\"Example Pool\"),\n\t\t\tAutoProvision: pulumi.Bool(false),\n\t\t\tAutoUpdate:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tAgentPoolId: examplePool.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := azuredevops.GetGitRepositoryOutput(ctx, azuredevops.GetGitRepositoryOutputArgs{\n\t\t\tProjectId: exampleProject.ID(),\n\t\t\tName:      pulumi.String(\"Example Project\"),\n\t\t}, nil)\n\t\texampleBuildDefinition, err := azuredevops.NewBuildDefinition(ctx, \"example\", \u0026azuredevops.BuildDefinitionArgs{\n\t\t\tProjectId: exampleProject.ID(),\n\t\t\tName:      pulumi.String(\"Example Pipeline\"),\n\t\t\tRepository: \u0026azuredevops.BuildDefinitionRepositoryArgs{\n\t\t\t\tRepoType: pulumi.String(\"TfsGit\"),\n\t\t\t\tRepoId: example.ApplyT(func(example azuredevops.GetGitRepositoryResult) (*string, error) {\n\t\t\t\t\treturn \u0026example.Id, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t\tYmlPath: pulumi.String(\"azure-pipelines.yml\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewPipelineAuthorization(ctx, \"example\", \u0026azuredevops.PipelineAuthorizationArgs{\n\t\t\tProjectId:  exampleProject.ID(),\n\t\t\tResourceId: exampleQueue.ID(),\n\t\t\tType:       pulumi.String(\"queue\"),\n\t\t\tPipelineId: exampleBuildDefinition.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Pool;\nimport com.pulumi.azuredevops.PoolArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.BuildDefinition;\nimport com.pulumi.azuredevops.BuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.BuildDefinitionRepositoryArgs;\nimport com.pulumi.azuredevops.PipelineAuthorization;\nimport com.pulumi.azuredevops.PipelineAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var examplePool = new Pool(\"examplePool\", PoolArgs.builder()\n            .name(\"Example Pool\")\n            .autoProvision(false)\n            .autoUpdate(false)\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .projectId(exampleProject.id())\n            .agentPoolId(examplePool.id())\n            .build());\n\n        final var example = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Example Project\")\n            .build());\n\n        var exampleBuildDefinition = new BuildDefinition(\"exampleBuildDefinition\", BuildDefinitionArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Example Pipeline\")\n            .repository(BuildDefinitionRepositoryArgs.builder()\n                .repoType(\"TfsGit\")\n                .repoId(example.applyValue(_example -\u003e _example.id()))\n                .ymlPath(\"azure-pipelines.yml\")\n                .build())\n            .build());\n\n        var examplePipelineAuthorization = new PipelineAuthorization(\"examplePipelineAuthorization\", PipelineAuthorizationArgs.builder()\n            .projectId(exampleProject.id())\n            .resourceId(exampleQueue.id())\n            .type(\"queue\")\n            .pipelineId(exampleBuildDefinition.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  examplePool:\n    type: azuredevops:Pool\n    name: example\n    properties:\n      name: Example Pool\n      autoProvision: false\n      autoUpdate: false\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      agentPoolId: ${examplePool.id}\n  exampleBuildDefinition:\n    type: azuredevops:BuildDefinition\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      name: Example Pipeline\n      repository:\n        repoType: TfsGit\n        repoId: ${example.id}\n        ymlPath: azure-pipelines.yml\n  examplePipelineAuthorization:\n    type: azuredevops:PipelineAuthorization\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      resourceId: ${exampleQueue.id}\n      type: queue\n      pipelineId: ${exampleBuildDefinition.id}\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${exampleProject.id}\n        name: Example Project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Pipeline Permissions](https://learn.microsoft.com/en-us/rest/api/azure/devops/approvalsandchecks/pipeline-permissions?view=azure-devops-rest-7.1)\n","properties":{"pipelineId":{"type":"integer","description":"The ID of the pipeline. If not configured, all pipelines will be authorized. Changing this forces a new resource to be created.\n"},"pipelineProjectId":{"type":"string","description":"The ID of the project where the pipeline exists. Defaults to \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e if not specified. Changing this forces a new resource to be created\n"},"projectId":{"type":"string","description":"The  ID of the project. Changing this forces a new resource to be created\n"},"resourceId":{"type":"string","description":"The ID of the resource to authorize. Changing this forces a new resource to be created\n"},"type":{"type":"string","description":"The type of the resource to authorize. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e. Changing this forces a new resource to be created\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e is for AzureDevOps repository. To authorize repository other than\nAzure DevOps like GitHub you need to use service connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e)  to connect and authorize.\nTypical process for connecting to GitHub:\n**Pipeline  \u003c----\u003e Service Connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e) \u003c----\u003e GitHub Repository**\n"}},"required":["projectId","resourceId","type"],"inputProperties":{"pipelineId":{"type":"integer","description":"The ID of the pipeline. If not configured, all pipelines will be authorized. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"pipelineProjectId":{"type":"string","description":"The ID of the project where the pipeline exists. Defaults to \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e if not specified. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The  ID of the project. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the resource to authorize. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the resource to authorize. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e. Changing this forces a new resource to be created\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e is for AzureDevOps repository. To authorize repository other than\nAzure DevOps like GitHub you need to use service connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e)  to connect and authorize.\nTypical process for connecting to GitHub:\n**Pipeline  \u003c----\u003e Service Connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e) \u003c----\u003e GitHub Repository**\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","resourceId","type"],"stateInputs":{"description":"Input properties used for looking up and filtering PipelineAuthorization resources.\n","properties":{"pipelineId":{"type":"integer","description":"The ID of the pipeline. If not configured, all pipelines will be authorized. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"pipelineProjectId":{"type":"string","description":"The ID of the project where the pipeline exists. Defaults to \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e if not specified. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The  ID of the project. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the resource to authorize. Changing this forces a new resource to be created\n","willReplaceOnChanges":true},"type":{"type":"string","description":"The type of the resource to authorize. Possible values are: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`environment`\" pulumi-lang-dotnet=\"`Environment`\" pulumi-lang-go=\"`environment`\" pulumi-lang-python=\"`environment`\" pulumi-lang-yaml=\"`environment`\" pulumi-lang-java=\"`environment`\"\u003e`environment`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e. Changing this forces a new resource to be created\n\n\u003e **Note** \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e is for AzureDevOps repository. To authorize repository other than\nAzure DevOps like GitHub you need to use service connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e)  to connect and authorize.\nTypical process for connecting to GitHub:\n**Pipeline  \u003c----\u003e Service Connection(\u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e) \u003c----\u003e GitHub Repository**\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/pool:Pool":{"description":"Manages an agent pool within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Pool(\"example\", {\n    name: \"Example-pool\",\n    autoProvision: false,\n    autoUpdate: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Pool(\"example\",\n    name=\"Example-pool\",\n    auto_provision=False,\n    auto_update=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Pool(\"example\", new()\n    {\n        Name = \"Example-pool\",\n        AutoProvision = false,\n        AutoUpdate = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewPool(ctx, \"example\", \u0026azuredevops.PoolArgs{\n\t\t\tName:          pulumi.String(\"Example-pool\"),\n\t\t\tAutoProvision: pulumi.Bool(false),\n\t\t\tAutoUpdate:    pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Pool;\nimport com.pulumi.azuredevops.PoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Pool(\"example\", PoolArgs.builder()\n            .name(\"Example-pool\")\n            .autoProvision(false)\n            .autoUpdate(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Pool\n    properties:\n      name: Example-pool\n      autoProvision: false\n      autoUpdate: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools?view=azure-devops-rest-7.0)\n\n## Import*\n\n\nAzure DevOps Agent Pools can be imported using the agent pool ID, e.g.\n\n```sh\nterraform import azuredevops_agent_pool.example 0\n```\n","properties":{"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the agent pool.\n"},"poolType":{"type":"string","description":"Specifies whether the agent pool type is Automation or Deployment. Defaults to \u003cspan pulumi-lang-nodejs=\"`automation`\" pulumi-lang-dotnet=\"`Automation`\" pulumi-lang-go=\"`automation`\" pulumi-lang-python=\"`automation`\" pulumi-lang-yaml=\"`automation`\" pulumi-lang-java=\"`automation`\"\u003e`automation`\u003c/span\u003e.\n"}},"required":["name"],"inputProperties":{"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the agent pool.\n"},"poolType":{"type":"string","description":"Specifies whether the agent pool type is Automation or Deployment. Defaults to \u003cspan pulumi-lang-nodejs=\"`automation`\" pulumi-lang-dotnet=\"`Automation`\" pulumi-lang-go=\"`automation`\" pulumi-lang-python=\"`automation`\" pulumi-lang-yaml=\"`automation`\" pulumi-lang-java=\"`automation`\"\u003e`automation`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Pool resources.\n","properties":{"autoProvision":{"type":"boolean","description":"Specifies whether a queue should be automatically provisioned for each project collection. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"autoUpdate":{"type":"boolean","description":"Specifies whether or not agents within the pool should be automatically updated. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"name":{"type":"string","description":"The name of the agent pool.\n"},"poolType":{"type":"string","description":"Specifies whether the agent pool type is Automation or Deployment. Defaults to \u003cspan pulumi-lang-nodejs=\"`automation`\" pulumi-lang-dotnet=\"`Automation`\" pulumi-lang-go=\"`automation`\" pulumi-lang-python=\"`automation`\" pulumi-lang-yaml=\"`automation`\" pulumi-lang-java=\"`automation`\"\u003e`automation`\u003c/span\u003e.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/project:Project":{"description":"Manages a project within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n    features: {\n        testplans: \"disabled\",\n        artifacts: \"disabled\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\",\n    features={\n        \"testplans\": \"disabled\",\n        \"artifacts\": \"disabled\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n        Features = \n        {\n            { \"testplans\", \"disabled\" },\n            { \"artifacts\", \"disabled\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t\tFeatures: pulumi.StringMap{\n\t\t\t\t\"testplans\": pulumi.String(\"disabled\"),\n\t\t\t\t\"artifacts\": pulumi.String(\"disabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .features(Map.ofEntries(\n                Map.entry(\"testplans\", \"disabled\"),\n                Map.entry(\"artifacts\", \"disabled\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n      features:\n        testplans: disabled\n        artifacts: disabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Projects](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: Read, Write, \u0026 Manage\n- **Work Items**: Read\n\n## Import\n\nAzure DevOps Projects can be imported using the project name or by the project Guid, e.g.\n\n```sh\nterraform import azuredevops_project.example \"Example Project\"\n```\n\nor\n\n```sh\n$ pulumi import azuredevops:index/project:Project example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"description":{"type":"string","description":"The Description of the Project.\n*\n"},"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features. Valid features are \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"name":{"type":"string","description":"The Project Name.\n"},"processTemplateId":{"type":"string","description":"The Process Template ID used by the Project.\n"},"versionControl":{"type":"string","description":"Specifies the version control system. Possbile values are: `Git` or `Tfvc`. Defaults to `Git`.\n"},"visibility":{"type":"string","description":"Specifies the visibility of the Project. Possible values are: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"},"workItemTemplate":{"type":"string","description":"Specifies the work item template. Possible values are: `Agile`, `Basic`, `CMMI`, `Scrum` or a custom, pre-existing one. Defaults to `Agile`. An empty string will use the parent organization default.\n"}},"required":["name","processTemplateId"],"inputProperties":{"description":{"type":"string","description":"The Description of the Project.\n*\n"},"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features. Valid features are \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"name":{"type":"string","description":"The Project Name.\n"},"versionControl":{"type":"string","description":"Specifies the version control system. Possbile values are: `Git` or `Tfvc`. Defaults to `Git`.\n","willReplaceOnChanges":true},"visibility":{"type":"string","description":"Specifies the visibility of the Project. Possible values are: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"},"workItemTemplate":{"type":"string","description":"Specifies the work item template. Possible values are: `Agile`, `Basic`, `CMMI`, `Scrum` or a custom, pre-existing one. Defaults to `Agile`. An empty string will use the parent organization default.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"description":{"type":"string","description":"The Description of the Project.\n*\n"},"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features. Valid features are \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"name":{"type":"string","description":"The Project Name.\n"},"processTemplateId":{"type":"string","description":"The Process Template ID used by the Project.\n"},"versionControl":{"type":"string","description":"Specifies the version control system. Possbile values are: `Git` or `Tfvc`. Defaults to `Git`.\n","willReplaceOnChanges":true},"visibility":{"type":"string","description":"Specifies the visibility of the Project. Possible values are: \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`public`\" pulumi-lang-dotnet=\"`Public`\" pulumi-lang-go=\"`public`\" pulumi-lang-python=\"`public`\" pulumi-lang-yaml=\"`public`\" pulumi-lang-java=\"`public`\"\u003e`public`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`private`\" pulumi-lang-dotnet=\"`Private`\" pulumi-lang-go=\"`private`\" pulumi-lang-python=\"`private`\" pulumi-lang-yaml=\"`private`\" pulumi-lang-java=\"`private`\"\u003e`private`\u003c/span\u003e.\n"},"workItemTemplate":{"type":"string","description":"Specifies the work item template. Possible values are: `Agile`, `Basic`, `CMMI`, `Scrum` or a custom, pre-existing one. Defaults to `Agile`. An empty string will use the parent organization default.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/projectFeatures:ProjectFeatures":{"description":"Manages features for Azure DevOps projects\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst example_features = new azuredevops.ProjectFeatures(\"example-features\", {\n    projectId: example.id,\n    features: {\n        testplans: \"disabled\",\n        artifacts: \"enabled\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_features = azuredevops.ProjectFeatures(\"example-features\",\n    project_id=example.id,\n    features={\n        \"testplans\": \"disabled\",\n        \"artifacts\": \"enabled\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_features = new AzureDevOps.ProjectFeatures(\"example-features\", new()\n    {\n        ProjectId = example.Id,\n        Features = \n        {\n            { \"testplans\", \"disabled\" },\n            { \"artifacts\", \"enabled\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewProjectFeatures(ctx, \"example-features\", \u0026azuredevops.ProjectFeaturesArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tFeatures: pulumi.StringMap{\n\t\t\t\t\"testplans\": pulumi.String(\"disabled\"),\n\t\t\t\t\"artifacts\": pulumi.String(\"enabled\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ProjectFeatures;\nimport com.pulumi.azuredevops.ProjectFeaturesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var example_features = new ProjectFeatures(\"example-features\", ProjectFeaturesArgs.builder()\n            .projectId(example.id())\n            .features(Map.ofEntries(\n                Map.entry(\"testplans\", \"disabled\"),\n                Map.entry(\"artifacts\", \"enabled\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  example-features:\n    type: azuredevops:ProjectFeatures\n    properties:\n      projectId: ${example.id}\n      features:\n        testplans: disabled\n        artifacts: enabled\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\nNo official documentation available\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: Read, Write, \u0026 Manage\n\n## Import\n\nAzure DevOps feature settings can be imported using the project id, e.g.\n\n```sh\n$ pulumi import azuredevops:index/projectFeatures:ProjectFeatures example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features.  Valid features \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"projectId":{"type":"string"}},"required":["features","projectId"],"inputProperties":{"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features.  Valid features \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"projectId":{"type":"string","willReplaceOnChanges":true}},"requiredInputs":["features","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectFeatures resources.\n","properties":{"features":{"type":"object","additionalProperties":{"type":"string"},"description":"Defines the status (\u003cspan pulumi-lang-nodejs=\"`enabled`\" pulumi-lang-dotnet=\"`Enabled`\" pulumi-lang-go=\"`enabled`\" pulumi-lang-python=\"`enabled`\" pulumi-lang-yaml=\"`enabled`\" pulumi-lang-java=\"`enabled`\"\u003e`enabled`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`disabled`\" pulumi-lang-dotnet=\"`Disabled`\" pulumi-lang-go=\"`disabled`\" pulumi-lang-python=\"`disabled`\" pulumi-lang-yaml=\"`disabled`\" pulumi-lang-java=\"`disabled`\"\u003e`disabled`\u003c/span\u003e) of the project features.  Valid features \u003cspan pulumi-lang-nodejs=\"`boards`\" pulumi-lang-dotnet=\"`Boards`\" pulumi-lang-go=\"`boards`\" pulumi-lang-python=\"`boards`\" pulumi-lang-yaml=\"`boards`\" pulumi-lang-java=\"`boards`\"\u003e`boards`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`pipelines`\" pulumi-lang-dotnet=\"`Pipelines`\" pulumi-lang-go=\"`pipelines`\" pulumi-lang-python=\"`pipelines`\" pulumi-lang-yaml=\"`pipelines`\" pulumi-lang-java=\"`pipelines`\"\u003e`pipelines`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`testplans`\" pulumi-lang-dotnet=\"`Testplans`\" pulumi-lang-go=\"`testplans`\" pulumi-lang-python=\"`testplans`\" pulumi-lang-yaml=\"`testplans`\" pulumi-lang-java=\"`testplans`\"\u003e`testplans`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`artifacts`\" pulumi-lang-dotnet=\"`Artifacts`\" pulumi-lang-go=\"`artifacts`\" pulumi-lang-python=\"`artifacts`\" pulumi-lang-yaml=\"`artifacts`\" pulumi-lang-java=\"`artifacts`\"\u003e`artifacts`\u003c/span\u003e\n\n| Features     | Possible Values   |\n|--------------|-------------------|\n| boards       | enabled, disabled |\n| repositories | enabled, disabled |\n| pipelines    | enabled, disabled |\n| testplans    | enabled, disabled |\n| artifacts    | enabled, disabled |\n\n\u003e **NOTE:** It's possible to define project features both within the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectFeatures`\" pulumi-lang-dotnet=\"`azuredevops.ProjectFeatures`\" pulumi-lang-go=\"`ProjectFeatures`\" pulumi-lang-python=\"`ProjectFeatures`\" pulumi-lang-yaml=\"`azuredevops.ProjectFeatures`\" pulumi-lang-java=\"`azuredevops.ProjectFeatures`\"\u003e`azuredevops.ProjectFeatures`\u003c/span\u003e resource and\nvia the \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block by using the \u003cspan pulumi-lang-nodejs=\"`azuredevops.Project`\" pulumi-lang-dotnet=\"`azuredevops.Project`\" pulumi-lang-go=\"`Project`\" pulumi-lang-python=\"`Project`\" pulumi-lang-yaml=\"`azuredevops.Project`\" pulumi-lang-java=\"`azuredevops.Project`\"\u003e`azuredevops.Project`\u003c/span\u003e resource.\nHowever it's not possible to use both methods to manage features, since there'll be conflicts.\n"},"projectId":{"type":"string","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/projectPermissions:ProjectPermissions":{"description":"Manages permissions for a AzureDevOps project\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_permission = new azuredevops.ProjectPermissions(\"example-permission\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        DELETE: \"Deny\",\n        EDIT_BUILD_STATUS: \"NotSet\",\n        WORK_ITEM_MOVE: \"Allow\",\n        DELETE_TEST_RESULTS: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_permission = azuredevops.ProjectPermissions(\"example-permission\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"DELETE\": \"Deny\",\n        \"EDIT_BUILD_STATUS\": \"NotSet\",\n        \"WORK_ITEM_MOVE\": \"Allow\",\n        \"DELETE_TEST_RESULTS\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_permission = new AzureDevOps.ProjectPermissions(\"example-permission\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"DELETE\", \"Deny\" },\n            { \"EDIT_BUILD_STATUS\", \"NotSet\" },\n            { \"WORK_ITEM_MOVE\", \"Allow\" },\n            { \"DELETE_TEST_RESULTS\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewProjectPermissions(ctx, \"example-permission\", \u0026azuredevops.ProjectPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"DELETE\":              pulumi.String(\"Deny\"),\n\t\t\t\t\"EDIT_BUILD_STATUS\":   pulumi.String(\"NotSet\"),\n\t\t\t\t\"WORK_ITEM_MOVE\":      pulumi.String(\"Allow\"),\n\t\t\t\t\"DELETE_TEST_RESULTS\": pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.ProjectPermissions;\nimport com.pulumi.azuredevops.ProjectPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_permission = new ProjectPermissions(\"example-permission\", ProjectPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"DELETE\", \"Deny\"),\n                Map.entry(\"EDIT_BUILD_STATUS\", \"NotSet\"),\n                Map.entry(\"WORK_ITEM_MOVE\", \"Allow\"),\n                Map.entry(\"DELETE_TEST_RESULTS\", \"Deny\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  example-permission:\n    type: azuredevops:ProjectPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        DELETE: Deny\n        EDIT_BUILD_STATUS: NotSet\n        WORK_ITEM_MOVE: Allow\n        DELETE_TEST_RESULTS: Deny\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permission                   | Description                                  |\n|------------------------------|----------------------------------------------|\n| GENERIC_READ                 | View project-level information               |\n| GENERIC_WRITE                | Edit project-level information               |\n| DELETE                       | Delete team project                          |\n| PUBLISH_TEST_RESULTS         | Create test runs                             |\n| ADMINISTER_BUILD             | Administer a build                           |\n| START_BUILD                  | Start a build                                |\n| EDIT_BUILD_STATUS            | Edit build quality                           |\n| UPDATE_BUILD                 | Write to build operational store             |\n| DELETE_TEST_RESULTS          | Delete test runs                             |\n| VIEW_TEST_RESULTS            | View test runs                               |\n| MANAGE_TEST_ENVIRONMENTS     | Manage test environments                     |\n| MANAGE_TEST_CONFIGURATIONS   | Manage test configurations                   |\n| WORK_ITEM_DELETE             | Delete and restore work items                |\n| WORK_ITEM_MOVE               | Move work items out of this project          |\n| WORK_ITEM_PERMANENTLY_DELETE | Permanently delete work items                |\n| RENAME                       | Rename team project                          |\n| MANAGE_PROPERTIES            | Manage project properties                    |\n| MANAGE_SYSTEM_PROPERTIES     | Manage system project properties             |\n| BYPASS_PROPERTY_CACHE        | Bypass project property cache                |\n| BYPASS_RULES                 | Bypass rules on work item updates            |\n| SUPPRESS_NOTIFICATIONS       | Suppress notifications for work item updates |\n| UPDATE_VISIBILITY            | Update project visibility                    |\n| CHANGE_PROCESS               | Change process of team project.              |\n| AGILETOOLS_BACKLOG           | Agile backlog management.                    |\n| AGILETOOLS_PLANS             | Agile plans.                                 |\n"},"principal":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permission                   | Description                                  |\n|------------------------------|----------------------------------------------|\n| GENERIC_READ                 | View project-level information               |\n| GENERIC_WRITE                | Edit project-level information               |\n| DELETE                       | Delete team project                          |\n| PUBLISH_TEST_RESULTS         | Create test runs                             |\n| ADMINISTER_BUILD             | Administer a build                           |\n| START_BUILD                  | Start a build                                |\n| EDIT_BUILD_STATUS            | Edit build quality                           |\n| UPDATE_BUILD                 | Write to build operational store             |\n| DELETE_TEST_RESULTS          | Delete test runs                             |\n| VIEW_TEST_RESULTS            | View test runs                               |\n| MANAGE_TEST_ENVIRONMENTS     | Manage test environments                     |\n| MANAGE_TEST_CONFIGURATIONS   | Manage test configurations                   |\n| WORK_ITEM_DELETE             | Delete and restore work items                |\n| WORK_ITEM_MOVE               | Move work items out of this project          |\n| WORK_ITEM_PERMANENTLY_DELETE | Permanently delete work items                |\n| RENAME                       | Rename team project                          |\n| MANAGE_PROPERTIES            | Manage project properties                    |\n| MANAGE_SYSTEM_PROPERTIES     | Manage system project properties             |\n| BYPASS_PROPERTY_CACHE        | Bypass project property cache                |\n| BYPASS_RULES                 | Bypass rules on work item updates            |\n| SUPPRESS_NOTIFICATIONS       | Suppress notifications for work item updates |\n| UPDATE_VISIBILITY            | Update project visibility                    |\n| CHANGE_PROCESS               | Change process of team project.              |\n| AGILETOOLS_BACKLOG           | Agile backlog management.                    |\n| AGILETOOLS_PLANS             | Agile plans.                                 |\n"},"principal":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permission                   | Description                                  |\n|------------------------------|----------------------------------------------|\n| GENERIC_READ                 | View project-level information               |\n| GENERIC_WRITE                | Edit project-level information               |\n| DELETE                       | Delete team project                          |\n| PUBLISH_TEST_RESULTS         | Create test runs                             |\n| ADMINISTER_BUILD             | Administer a build                           |\n| START_BUILD                  | Start a build                                |\n| EDIT_BUILD_STATUS            | Edit build quality                           |\n| UPDATE_BUILD                 | Write to build operational store             |\n| DELETE_TEST_RESULTS          | Delete test runs                             |\n| VIEW_TEST_RESULTS            | View test runs                               |\n| MANAGE_TEST_ENVIRONMENTS     | Manage test environments                     |\n| MANAGE_TEST_CONFIGURATIONS   | Manage test configurations                   |\n| WORK_ITEM_DELETE             | Delete and restore work items                |\n| WORK_ITEM_MOVE               | Move work items out of this project          |\n| WORK_ITEM_PERMANENTLY_DELETE | Permanently delete work items                |\n| RENAME                       | Rename team project                          |\n| MANAGE_PROPERTIES            | Manage project properties                    |\n| MANAGE_SYSTEM_PROPERTIES     | Manage system project properties             |\n| BYPASS_PROPERTY_CACHE        | Bypass project property cache                |\n| BYPASS_RULES                 | Bypass rules on work item updates            |\n| SUPPRESS_NOTIFICATIONS       | Suppress notifications for work item updates |\n| UPDATE_VISIBILITY            | Update project visibility                    |\n| CHANGE_PROCESS               | Change process of team project.              |\n| AGILETOOLS_BACKLOG           | Agile backlog management.                    |\n| AGILETOOLS_PLANS             | Agile plans.                                 |\n"},"principal":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/projectPipelineSettings:ProjectPipelineSettings":{"description":"Manages Pipeline Settings for Azure DevOps projects\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleProjectPipelineSettings = new azuredevops.ProjectPipelineSettings(\"example\", {\n    projectId: example.id,\n    enforceJobScope: true,\n    enforceReferencedRepoScopedToken: false,\n    enforceSettableVar: true,\n    publishPipelineMetadata: false,\n    statusBadgesArePrivate: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_project_pipeline_settings = azuredevops.ProjectPipelineSettings(\"example\",\n    project_id=example.id,\n    enforce_job_scope=True,\n    enforce_referenced_repo_scoped_token=False,\n    enforce_settable_var=True,\n    publish_pipeline_metadata=False,\n    status_badges_are_private=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleProjectPipelineSettings = new AzureDevOps.ProjectPipelineSettings(\"example\", new()\n    {\n        ProjectId = example.Id,\n        EnforceJobScope = true,\n        EnforceReferencedRepoScopedToken = false,\n        EnforceSettableVar = true,\n        PublishPipelineMetadata = false,\n        StatusBadgesArePrivate = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewProjectPipelineSettings(ctx, \"example\", \u0026azuredevops.ProjectPipelineSettingsArgs{\n\t\t\tProjectId:                        example.ID(),\n\t\t\tEnforceJobScope:                  pulumi.Bool(true),\n\t\t\tEnforceReferencedRepoScopedToken: pulumi.Bool(false),\n\t\t\tEnforceSettableVar:               pulumi.Bool(true),\n\t\t\tPublishPipelineMetadata:          pulumi.Bool(false),\n\t\t\tStatusBadgesArePrivate:           pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ProjectPipelineSettings;\nimport com.pulumi.azuredevops.ProjectPipelineSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleProjectPipelineSettings = new ProjectPipelineSettings(\"exampleProjectPipelineSettings\", ProjectPipelineSettingsArgs.builder()\n            .projectId(example.id())\n            .enforceJobScope(true)\n            .enforceReferencedRepoScopedToken(false)\n            .enforceSettableVar(true)\n            .publishPipelineMetadata(false)\n            .statusBadgesArePrivate(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleProjectPipelineSettings:\n    type: azuredevops:ProjectPipelineSettings\n    name: example\n    properties:\n      projectId: ${example.id}\n      enforceJobScope: true\n      enforceReferencedRepoScopedToken: false\n      enforceSettableVar: true\n      publishPipelineMetadata: false\n      statusBadgesArePrivate: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\nNo official documentation available\n\n## PAT Permissions Required\n\n- Full Access\n\n## Import\n\nAzure DevOps feature settings can be imported using the project id, e.g.\n\n```sh\n$ pulumi import azuredevops:index/projectPipelineSettings:ProjectPipelineSettings example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"enforceJobScope":{"type":"boolean","description":"Limit job authorization scope to current project for non-release pipelines.\n"},"enforceJobScopeForRelease":{"type":"boolean","description":"Limit job authorization scope to current project for release pipelines.\n\n\u003e **NOTE:** The settings at the organization will override settings specified on the project.\nFor example, if \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e is true at the organization, the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-dotnet=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-go=\"`ProjectPipelineSettings`\" pulumi-lang-python=\"`ProjectPipelineSettings`\" pulumi-lang-yaml=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-java=\"`azuredevops.ProjectPipelineSettings`\"\u003e`azuredevops.ProjectPipelineSettings`\u003c/span\u003e resource cannot set it to false.\nIn this scenario, the plan will always show that the resource is trying to change \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enforceReferencedRepoScopedToken":{"type":"boolean","description":"Protect access to repositories in YAML pipelines.\n"},"enforceSettableVar":{"type":"boolean","description":"Limit variables that can be set at queue time.\n"},"projectId":{"type":"string","description":"The ID of the project for which the project pipeline settings will be managed.\n"},"publishPipelineMetadata":{"type":"boolean","description":"Publish metadata from pipelines.\n"},"statusBadgesArePrivate":{"type":"boolean","description":"Disable anonymous access to badges.\n"}},"required":["enforceJobScope","enforceJobScopeForRelease","enforceReferencedRepoScopedToken","enforceSettableVar","projectId","publishPipelineMetadata","statusBadgesArePrivate"],"inputProperties":{"enforceJobScope":{"type":"boolean","description":"Limit job authorization scope to current project for non-release pipelines.\n"},"enforceJobScopeForRelease":{"type":"boolean","description":"Limit job authorization scope to current project for release pipelines.\n\n\u003e **NOTE:** The settings at the organization will override settings specified on the project.\nFor example, if \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e is true at the organization, the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-dotnet=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-go=\"`ProjectPipelineSettings`\" pulumi-lang-python=\"`ProjectPipelineSettings`\" pulumi-lang-yaml=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-java=\"`azuredevops.ProjectPipelineSettings`\"\u003e`azuredevops.ProjectPipelineSettings`\u003c/span\u003e resource cannot set it to false.\nIn this scenario, the plan will always show that the resource is trying to change \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enforceReferencedRepoScopedToken":{"type":"boolean","description":"Protect access to repositories in YAML pipelines.\n"},"enforceSettableVar":{"type":"boolean","description":"Limit variables that can be set at queue time.\n"},"projectId":{"type":"string","description":"The ID of the project for which the project pipeline settings will be managed.\n","willReplaceOnChanges":true},"publishPipelineMetadata":{"type":"boolean","description":"Publish metadata from pipelines.\n"},"statusBadgesArePrivate":{"type":"boolean","description":"Disable anonymous access to badges.\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectPipelineSettings resources.\n","properties":{"enforceJobScope":{"type":"boolean","description":"Limit job authorization scope to current project for non-release pipelines.\n"},"enforceJobScopeForRelease":{"type":"boolean","description":"Limit job authorization scope to current project for release pipelines.\n\n\u003e **NOTE:** The settings at the organization will override settings specified on the project.\nFor example, if \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e is true at the organization, the \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-dotnet=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-go=\"`ProjectPipelineSettings`\" pulumi-lang-python=\"`ProjectPipelineSettings`\" pulumi-lang-yaml=\"`azuredevops.ProjectPipelineSettings`\" pulumi-lang-java=\"`azuredevops.ProjectPipelineSettings`\"\u003e`azuredevops.ProjectPipelineSettings`\u003c/span\u003e resource cannot set it to false.\nIn this scenario, the plan will always show that the resource is trying to change \u003cspan pulumi-lang-nodejs=\"`enforceJobScope`\" pulumi-lang-dotnet=\"`EnforceJobScope`\" pulumi-lang-go=\"`enforceJobScope`\" pulumi-lang-python=\"`enforce_job_scope`\" pulumi-lang-yaml=\"`enforceJobScope`\" pulumi-lang-java=\"`enforceJobScope`\"\u003e`enforce_job_scope`\u003c/span\u003e from \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"enforceReferencedRepoScopedToken":{"type":"boolean","description":"Protect access to repositories in YAML pipelines.\n"},"enforceSettableVar":{"type":"boolean","description":"Limit variables that can be set at queue time.\n"},"projectId":{"type":"string","description":"The ID of the project for which the project pipeline settings will be managed.\n","willReplaceOnChanges":true},"publishPipelineMetadata":{"type":"boolean","description":"Publish metadata from pipelines.\n"},"statusBadgesArePrivate":{"type":"boolean","description":"Disable anonymous access to badges.\n"}},"type":"object"}},"azuredevops:index/projectTags:ProjectTags":{"description":"Manages Project Tags within Azure DevOps organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleProjectTags = new azuredevops.ProjectTags(\"example\", {\n    projectId: example.id,\n    tags: [\n        \"tag1\",\n        \"tag2\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_project_tags = azuredevops.ProjectTags(\"example\",\n    project_id=example.id,\n    tags=[\n        \"tag1\",\n        \"tag2\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleProjectTags = new AzureDevOps.ProjectTags(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Tags = new[]\n        {\n            \"tag1\",\n            \"tag2\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewProjectTags(ctx, \"example\", \u0026azuredevops.ProjectTagsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"tag1\"),\n\t\t\t\tpulumi.String(\"tag2\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ProjectTags;\nimport com.pulumi.azuredevops.ProjectTagsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleProjectTags = new ProjectTags(\"exampleProjectTags\", ProjectTagsArgs.builder()\n            .projectId(example.id())\n            .tags(            \n                \"tag1\",\n                \"tag2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleProjectTags:\n    type: azuredevops:ProjectTags\n    name: example\n    properties:\n      projectId: ${example.id}\n      tags:\n        - tag1\n        - tag2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Project Properties](https://learn.microsoft.com/en-us/rest/api/azure/devops/core/projects/get-project-properties?view=azure-devops-rest-7.1\u0026tabs=HTTP)\n\n## Import\n\nAzure DevOps Project Tags can be imported using the Project ID e.g.:\n\n```sh\n$ pulumi import azuredevops:index/projectTags:ProjectTags example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A mapping of tags assigned to the Project.\n"}},"required":["projectId","tags"],"inputProperties":{"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A mapping of tags assigned to the Project.\n"}},"requiredInputs":["projectId","tags"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectTags resources.\n","properties":{"projectId":{"type":"string","description":"The ID of the Project. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"tags":{"type":"array","items":{"type":"string"},"description":"A mapping of tags assigned to the Project.\n"}},"type":"object"}},"azuredevops:index/queue:Queue":{"description":"Manages an agent queue within Azure DevOps. In the UI, this is equivalent to adding an\nOrganization defined pool to a project.\n\nThe created queue is not authorized for use by all pipelines in the project. However,\nthe \u003cspan pulumi-lang-nodejs=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-dotnet=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-go=\"`ResourceAuthorization`\" pulumi-lang-python=\"`ResourceAuthorization`\" pulumi-lang-yaml=\"`azuredevops.ResourceAuthorization`\" pulumi-lang-java=\"`azuredevops.ResourceAuthorization`\"\u003e`azuredevops.ResourceAuthorization`\u003c/span\u003e resource can be used to grant authorization.\n\n## Example Usage\n\n### Creating a Queue from an organization-level pool\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {name: \"Example Project\"});\nconst example = azuredevops.getPool({\n    name: \"example-pool\",\n});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    projectId: exampleProject.id,\n    agentPoolId: example.then(example =\u003e example.id),\n});\n// Grant access to queue to all pipelines in the project\nconst exampleResourceAuthorization = new azuredevops.ResourceAuthorization(\"example\", {\n    projectId: exampleProject.id,\n    resourceId: exampleQueue.id,\n    type: \"queue\",\n    authorized: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\", name=\"Example Project\")\nexample = azuredevops.get_pool(name=\"example-pool\")\nexample_queue = azuredevops.Queue(\"example\",\n    project_id=example_project.id,\n    agent_pool_id=example.id)\n# Grant access to queue to all pipelines in the project\nexample_resource_authorization = azuredevops.ResourceAuthorization(\"example\",\n    project_id=example_project.id,\n    resource_id=example_queue.id,\n    type=\"queue\",\n    authorized=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var example = AzureDevOps.GetPool.Invoke(new()\n    {\n        Name = \"example-pool\",\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        AgentPoolId = example.Apply(getPoolResult =\u003e getPoolResult.Id),\n    });\n\n    // Grant access to queue to all pipelines in the project\n    var exampleResourceAuthorization = new AzureDevOps.ResourceAuthorization(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        ResourceId = exampleQueue.Id,\n        Type = \"queue\",\n        Authorized = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"Example Project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := azuredevops.LookupPool(ctx, \u0026azuredevops.LookupPoolArgs{\n\t\t\tName: \"example-pool\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleQueue, err := azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tAgentPoolId: pulumi.String(example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Grant access to queue to all pipelines in the project\n\t\t_, err = azuredevops.NewResourceAuthorization(ctx, \"example\", \u0026azuredevops.ResourceAuthorizationArgs{\n\t\t\tProjectId:  exampleProject.ID(),\n\t\t\tResourceId: exampleQueue.ID(),\n\t\t\tType:       pulumi.String(\"queue\"),\n\t\t\tAuthorized: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetPoolArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport com.pulumi.azuredevops.ResourceAuthorization;\nimport com.pulumi.azuredevops.ResourceAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var example = AzuredevopsFunctions.getPool(GetPoolArgs.builder()\n            .name(\"example-pool\")\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .projectId(exampleProject.id())\n            .agentPoolId(example.id())\n            .build());\n\n        // Grant access to queue to all pipelines in the project\n        var exampleResourceAuthorization = new ResourceAuthorization(\"exampleResourceAuthorization\", ResourceAuthorizationArgs.builder()\n            .projectId(exampleProject.id())\n            .resourceId(exampleQueue.id())\n            .type(\"queue\")\n            .authorized(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      agentPoolId: ${example.id}\n  # Grant access to queue to all pipelines in the project\n  exampleResourceAuthorization:\n    type: azuredevops:ResourceAuthorization\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      resourceId: ${exampleQueue.id}\n      type: queue\n      authorized: true\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getPool\n      arguments:\n        name: example-pool\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Creating a Queue at the project level (Organization-level permissions not required)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleQueue = new azuredevops.Queue(\"example\", {\n    name: \"example-queue\",\n    projectId: example.then(example =\u003e example.id),\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_queue = azuredevops.Queue(\"example\",\n    name=\"example-queue\",\n    project_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleQueue = new AzureDevOps.Queue(\"example\", new()\n    {\n        Name = \"example-queue\",\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewQueue(ctx, \"example\", \u0026azuredevops.QueueArgs{\n\t\t\tName:      pulumi.String(\"example-queue\"),\n\t\t\tProjectId: pulumi.String(example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.Queue;\nimport com.pulumi.azuredevops.QueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        var exampleQueue = new Queue(\"exampleQueue\", QueueArgs.builder()\n            .name(\"example-queue\")\n            .projectId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleQueue:\n    type: azuredevops:Queue\n    name: example\n    properties:\n      name: example-queue\n      projectId: ${example.id}\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Queues](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/queues?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Agent Pools can be imported using the project ID and agent queue ID, e.g.\n\n```sh\n$ pulumi import azuredevops:index/queue:Queue example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"agentPoolId":{"type":"integer","description":"The ID of the organization agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n\n\u003e **NOTE:** One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e must be specified, but not both.\nWhen \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e is specified, the agent queue name will be derived from the agent pool name.\n"},"name":{"type":"string","description":"The name of the agent queue. Defaults to the ID of the agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which to create the resource.\n"}},"required":["agentPoolId","name","projectId"],"inputProperties":{"agentPoolId":{"type":"integer","description":"The ID of the organization agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n\n\u003e **NOTE:** One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e must be specified, but not both.\nWhen \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e is specified, the agent queue name will be derived from the agent pool name.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the agent queue. Defaults to the ID of the agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project in which to create the resource.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Queue resources.\n","properties":{"agentPoolId":{"type":"integer","description":"The ID of the organization agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e.\n\n\u003e **NOTE:** One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e must be specified, but not both.\nWhen \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e is specified, the agent queue name will be derived from the agent pool name.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The name of the agent queue. Defaults to the ID of the agent pool. Conflicts with \u003cspan pulumi-lang-nodejs=\"`agentPoolId`\" pulumi-lang-dotnet=\"`AgentPoolId`\" pulumi-lang-go=\"`agentPoolId`\" pulumi-lang-python=\"`agent_pool_id`\" pulumi-lang-yaml=\"`agentPoolId`\" pulumi-lang-java=\"`agentPoolId`\"\u003e`agent_pool_id`\u003c/span\u003e.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project in which to create the resource.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/repositoryPolicyAuthorEmailPattern:RepositoryPolicyAuthorEmailPattern":{"description":"Manage author email pattern repository policy within Azure DevOps project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyAuthorEmailPattern = new azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    authorEmailPatterns: [\n        \"user1@test.com\",\n        \"user2@test.com\",\n    ],\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_author_email_pattern = azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    author_email_patterns=[\n        \"user1@test.com\",\n        \"user2@test.com\",\n    ],\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyAuthorEmailPattern = new AzureDevOps.RepositoryPolicyAuthorEmailPattern(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        AuthorEmailPatterns = new[]\n        {\n            \"user1@test.com\",\n            \"user2@test.com\",\n        },\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyAuthorEmailPattern(ctx, \"example\", \u0026azuredevops.RepositoryPolicyAuthorEmailPatternArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tAuthorEmailPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1@test.com\"),\n\t\t\t\tpulumi.String(\"user2@test.com\"),\n\t\t\t},\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPattern;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyAuthorEmailPattern = new RepositoryPolicyAuthorEmailPattern(\"exampleRepositoryPolicyAuthorEmailPattern\", RepositoryPolicyAuthorEmailPatternArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .authorEmailPatterns(            \n                \"user1@test.com\",\n                \"user2@test.com\")\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyAuthorEmailPattern:\n    type: azuredevops:RepositoryPolicyAuthorEmailPattern\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      authorEmailPatterns:\n        - user1@test.com\n        - user2@test.com\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Set project level repository policy\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyAuthorEmailPattern = new azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    authorEmailPatterns: [\n        \"user1@test.com\",\n        \"user2@test.com\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_author_email_pattern = azuredevops.RepositoryPolicyAuthorEmailPattern(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    author_email_patterns=[\n        \"user1@test.com\",\n        \"user2@test.com\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyAuthorEmailPattern = new AzureDevOps.RepositoryPolicyAuthorEmailPattern(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        AuthorEmailPatterns = new[]\n        {\n            \"user1@test.com\",\n            \"user2@test.com\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyAuthorEmailPattern(ctx, \"example\", \u0026azuredevops.RepositoryPolicyAuthorEmailPatternArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tAuthorEmailPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"user1@test.com\"),\n\t\t\t\tpulumi.String(\"user2@test.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPattern;\nimport com.pulumi.azuredevops.RepositoryPolicyAuthorEmailPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyAuthorEmailPattern = new RepositoryPolicyAuthorEmailPattern(\"exampleRepositoryPolicyAuthorEmailPattern\", RepositoryPolicyAuthorEmailPatternArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .authorEmailPatterns(            \n                \"user1@test.com\",\n                \"user2@test.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyAuthorEmailPattern:\n    type: azuredevops:RepositoryPolicyAuthorEmailPattern\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      authorEmailPatterns:\n        - user1@test.com\n        - user2@test.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Branch Policies can be imported using the project ID and policy configuration ID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyAuthorEmailPattern:RepositoryPolicyAuthorEmailPattern example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"authorEmailPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes with a commit author email that does not match the patterns. You can specify exact emails or use wildcards.\n\n~\u003e**NOTE:** Email patterns prefixed with `!` are excluded. Order is important.\n"},"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["authorEmailPatterns","projectId"],"inputProperties":{"authorEmailPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes with a commit author email that does not match the patterns. You can specify exact emails or use wildcards.\n\n~\u003e**NOTE:** Email patterns prefixed with `!` are excluded. Order is important.\n"},"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["authorEmailPatterns","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyAuthorEmailPattern resources.\n","properties":{"authorEmailPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes with a commit author email that does not match the patterns. You can specify exact emails or use wildcards.\n\n~\u003e**NOTE:** Email patterns prefixed with `!` are excluded. Order is important.\n"},"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyCaseEnforcement:RepositoryPolicyCaseEnforcement":{"description":"Manages a case enforcement repository policy within Azure DevOps project.   \n\n\u003e If both project and project policy are enabled, the project policy has high priority.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyCaseEnforcement = new azuredevops.RepositoryPolicyCaseEnforcement(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    enforceConsistentCase: true,\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_case_enforcement = azuredevops.RepositoryPolicyCaseEnforcement(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    enforce_consistent_case=True,\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyCaseEnforcement = new AzureDevOps.RepositoryPolicyCaseEnforcement(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        EnforceConsistentCase = true,\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyCaseEnforcement(ctx, \"example\", \u0026azuredevops.RepositoryPolicyCaseEnforcementArgs{\n\t\t\tProjectId:             example.ID(),\n\t\t\tEnabled:               pulumi.Bool(true),\n\t\t\tBlocking:              pulumi.Bool(true),\n\t\t\tEnforceConsistentCase: pulumi.Bool(true),\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyCaseEnforcement;\nimport com.pulumi.azuredevops.RepositoryPolicyCaseEnforcementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyCaseEnforcement = new RepositoryPolicyCaseEnforcement(\"exampleRepositoryPolicyCaseEnforcement\", RepositoryPolicyCaseEnforcementArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .enforceConsistentCase(true)\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyCaseEnforcement:\n    type: azuredevops:RepositoryPolicyCaseEnforcement\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      enforceConsistentCase: true\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyCaseEnforcement = new azuredevops.RepositoryPolicyCaseEnforcement(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    enforceConsistentCase: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_case_enforcement = azuredevops.RepositoryPolicyCaseEnforcement(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    enforce_consistent_case=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyCaseEnforcement = new AzureDevOps.RepositoryPolicyCaseEnforcement(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        EnforceConsistentCase = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyCaseEnforcement(ctx, \"example\", \u0026azuredevops.RepositoryPolicyCaseEnforcementArgs{\n\t\t\tProjectId:             example.ID(),\n\t\t\tEnabled:               pulumi.Bool(true),\n\t\t\tBlocking:              pulumi.Bool(true),\n\t\t\tEnforceConsistentCase: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyCaseEnforcement;\nimport com.pulumi.azuredevops.RepositoryPolicyCaseEnforcementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyCaseEnforcement = new RepositoryPolicyCaseEnforcement(\"exampleRepositoryPolicyCaseEnforcement\", RepositoryPolicyCaseEnforcementArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .enforceConsistentCase(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyCaseEnforcement:\n    type: azuredevops:RepositoryPolicyCaseEnforcement\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      enforceConsistentCase: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyCaseEnforcement:RepositoryPolicyCaseEnforcement example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enforceConsistentCase":{"type":"boolean","description":"Avoid case-sensitivity conflicts by blocking pushes that change name casing on files, folders, branches, and tags.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["enforceConsistentCase","projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enforceConsistentCase":{"type":"boolean","description":"Avoid case-sensitivity conflicts by blocking pushes that change name casing on files, folders, branches, and tags.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["enforceConsistentCase","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyCaseEnforcement resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enforceConsistentCase":{"type":"boolean","description":"Avoid case-sensitivity conflicts by blocking pushes that change name casing on files, folders, branches, and tags.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyCheckCredentials:RepositoryPolicyCheckCredentials":{"description":"Manage a credentials check repository policy within Azure DevOps project. Block pushes that introduce files, folders, or branch names that include platform reserved names or incompatible characters.\n\n\u003e If both project and project policy are enabled, the project policy has high priority.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyCheckCredentials = new azuredevops.RepositoryPolicyCheckCredentials(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_check_credentials = azuredevops.RepositoryPolicyCheckCredentials(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyCheckCredentials = new AzureDevOps.RepositoryPolicyCheckCredentials(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyCheckCredentials(ctx, \"example\", \u0026azuredevops.RepositoryPolicyCheckCredentialsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyCheckCredentials;\nimport com.pulumi.azuredevops.RepositoryPolicyCheckCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyCheckCredentials = new RepositoryPolicyCheckCredentials(\"exampleRepositoryPolicyCheckCredentials\", RepositoryPolicyCheckCredentialsArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyCheckCredentials:\n    type: azuredevops:RepositoryPolicyCheckCredentials\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyCheckCredentials = new azuredevops.RepositoryPolicyCheckCredentials(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_check_credentials = azuredevops.RepositoryPolicyCheckCredentials(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyCheckCredentials = new AzureDevOps.RepositoryPolicyCheckCredentials(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyCheckCredentials(ctx, \"example\", \u0026azuredevops.RepositoryPolicyCheckCredentialsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyCheckCredentials;\nimport com.pulumi.azuredevops.RepositoryPolicyCheckCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyCheckCredentials = new RepositoryPolicyCheckCredentials(\"exampleRepositoryPolicyCheckCredentials\", RepositoryPolicyCheckCredentialsArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyCheckCredentials:\n    type: azuredevops:RepositoryPolicyCheckCredentials\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyCheckCredentials:RepositoryPolicyCheckCredentials example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyCheckCredentials resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyFilePathPattern:RepositoryPolicyFilePathPattern":{"description":"Manage a file path pattern repository policy within Azure DevOps project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyFilePathPattern = new azuredevops.RepositoryPolicyFilePathPattern(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    filepathPatterns: [\n        \"*.go\",\n        \"/home/test/*.ts\",\n    ],\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_file_path_pattern = azuredevops.RepositoryPolicyFilePathPattern(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    filepath_patterns=[\n        \"*.go\",\n        \"/home/test/*.ts\",\n    ],\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyFilePathPattern = new AzureDevOps.RepositoryPolicyFilePathPattern(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        FilepathPatterns = new[]\n        {\n            \"*.go\",\n            \"/home/test/*.ts\",\n        },\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyFilePathPattern(ctx, \"example\", \u0026azuredevops.RepositoryPolicyFilePathPatternArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tFilepathPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"*.go\"),\n\t\t\t\tpulumi.String(\"/home/test/*.ts\"),\n\t\t\t},\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyFilePathPattern;\nimport com.pulumi.azuredevops.RepositoryPolicyFilePathPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyFilePathPattern = new RepositoryPolicyFilePathPattern(\"exampleRepositoryPolicyFilePathPattern\", RepositoryPolicyFilePathPatternArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .filepathPatterns(            \n                \"*.go\",\n                \"/home/test/*.ts\")\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyFilePathPattern:\n    type: azuredevops:RepositoryPolicyFilePathPattern\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      filepathPatterns:\n        - '*.go'\n        - /home/test/*.ts\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst examplep = new azuredevops.RepositoryPolicyFilePathPattern(\"examplep\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    filepathPatterns: [\n        \"*.go\",\n        \"/home/test/*.ts\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexamplep = azuredevops.RepositoryPolicyFilePathPattern(\"examplep\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    filepath_patterns=[\n        \"*.go\",\n        \"/home/test/*.ts\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var examplep = new AzureDevOps.RepositoryPolicyFilePathPattern(\"examplep\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        FilepathPatterns = new[]\n        {\n            \"*.go\",\n            \"/home/test/*.ts\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyFilePathPattern(ctx, \"examplep\", \u0026azuredevops.RepositoryPolicyFilePathPatternArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tFilepathPatterns: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"*.go\"),\n\t\t\t\tpulumi.String(\"/home/test/*.ts\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyFilePathPattern;\nimport com.pulumi.azuredevops.RepositoryPolicyFilePathPatternArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var examplep = new RepositoryPolicyFilePathPattern(\"examplep\", RepositoryPolicyFilePathPatternArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .filepathPatterns(            \n                \"*.go\",\n                \"/home/test/*.ts\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  examplep:\n    type: azuredevops:RepositoryPolicyFilePathPattern\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      filepathPatterns:\n        - '*.go'\n        - /home/test/*.ts\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyFilePathPattern:RepositoryPolicyFilePathPattern example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"filepathPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes from introducing file paths that match the following patterns. Exact paths begin with \"/\". You can specify exact paths and wildcards. You can also specify multiple paths using \";\" as a separator. Paths prefixed with \"!\" are excluded. Order is important.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["filepathPatterns","projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"filepathPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes from introducing file paths that match the following patterns. Exact paths begin with \"/\". You can specify exact paths and wildcards. You can also specify multiple paths using \";\" as a separator. Paths prefixed with \"!\" are excluded. Order is important.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["filepathPatterns","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyFilePathPattern resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"filepathPatterns":{"type":"array","items":{"type":"string"},"description":"Block pushes from introducing file paths that match the following patterns. Exact paths begin with \"/\". You can specify exact paths and wildcards. You can also specify multiple paths using \";\" as a separator. Paths prefixed with \"!\" are excluded. Order is important.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyMaxFileSize:RepositoryPolicyMaxFileSize":{"description":"Manage a max file size repository policy within Azure DevOps project.\n\n\u003e If both project and project policy are enabled, the repository policy has high priority.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyMaxFileSize = new azuredevops.RepositoryPolicyMaxFileSize(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    maxFileSize: 1,\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_max_file_size = azuredevops.RepositoryPolicyMaxFileSize(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    max_file_size=1,\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyMaxFileSize = new AzureDevOps.RepositoryPolicyMaxFileSize(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        MaxFileSize = 1,\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyMaxFileSize(ctx, \"example\", \u0026azuredevops.RepositoryPolicyMaxFileSizeArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tBlocking:    pulumi.Bool(true),\n\t\t\tMaxFileSize: pulumi.Int(1),\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxFileSize;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxFileSizeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyMaxFileSize = new RepositoryPolicyMaxFileSize(\"exampleRepositoryPolicyMaxFileSize\", RepositoryPolicyMaxFileSizeArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .maxFileSize(1)\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyMaxFileSize:\n    type: azuredevops:RepositoryPolicyMaxFileSize\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      maxFileSize: 1\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyMaxFileSize = new azuredevops.RepositoryPolicyMaxFileSize(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    maxFileSize: 1,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_max_file_size = azuredevops.RepositoryPolicyMaxFileSize(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    max_file_size=1)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyMaxFileSize = new AzureDevOps.RepositoryPolicyMaxFileSize(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        MaxFileSize = 1,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyMaxFileSize(ctx, \"example\", \u0026azuredevops.RepositoryPolicyMaxFileSizeArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tEnabled:     pulumi.Bool(true),\n\t\t\tBlocking:    pulumi.Bool(true),\n\t\t\tMaxFileSize: pulumi.Int(1),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxFileSize;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxFileSizeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyMaxFileSize = new RepositoryPolicyMaxFileSize(\"exampleRepositoryPolicyMaxFileSize\", RepositoryPolicyMaxFileSizeArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .maxFileSize(1)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyMaxFileSize:\n    type: azuredevops:RepositoryPolicyMaxFileSize\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      maxFileSize: 1\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyMaxFileSize:RepositoryPolicyMaxFileSize example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxFileSize":{"type":"integer","description":"Block pushes that contain new or updated files larger than this limit. Possible values are: `1, 2, 5, 10, 50, 100, 200` (MB).\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["maxFileSize","projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxFileSize":{"type":"integer","description":"Block pushes that contain new or updated files larger than this limit. Possible values are: `1, 2, 5, 10, 50, 100, 200` (MB).\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["maxFileSize","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyMaxFileSize resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxFileSize":{"type":"integer","description":"Block pushes that contain new or updated files larger than this limit. Possible values are: `1, 2, 5, 10, 50, 100, 200` (MB).\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyMaxPathLength:RepositoryPolicyMaxPathLength":{"description":"Manage a max path length repository policy within Azure DevOps project.\n\n\u003e If both project and project policy are enabled, the repository policy has high priority.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Sample Repo\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyMaxPathLength = new azuredevops.RepositoryPolicyMaxPathLength(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    maxPathLength: 500,\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Sample Repo\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_max_path_length = azuredevops.RepositoryPolicyMaxPathLength(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    max_path_length=500,\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Sample Repo\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyMaxPathLength = new AzureDevOps.RepositoryPolicyMaxPathLength(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        MaxPathLength = 500,\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Sample Repo\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyMaxPathLength(ctx, \"example\", \u0026azuredevops.RepositoryPolicyMaxPathLengthArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tBlocking:      pulumi.Bool(true),\n\t\t\tMaxPathLength: pulumi.Int(500),\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxPathLength;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxPathLengthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Sample Repo\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyMaxPathLength = new RepositoryPolicyMaxPathLength(\"exampleRepositoryPolicyMaxPathLength\", RepositoryPolicyMaxPathLengthArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .maxPathLength(500)\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Sample Repo\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyMaxPathLength:\n    type: azuredevops:RepositoryPolicyMaxPathLength\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      maxPathLength: 500\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyMaxPathLength = new azuredevops.RepositoryPolicyMaxPathLength(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    maxPathLength: 1000,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_max_path_length = azuredevops.RepositoryPolicyMaxPathLength(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    max_path_length=1000)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyMaxPathLength = new AzureDevOps.RepositoryPolicyMaxPathLength(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        MaxPathLength = 1000,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyMaxPathLength(ctx, \"example\", \u0026azuredevops.RepositoryPolicyMaxPathLengthArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tEnabled:       pulumi.Bool(true),\n\t\t\tBlocking:      pulumi.Bool(true),\n\t\t\tMaxPathLength: pulumi.Int(1000),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxPathLength;\nimport com.pulumi.azuredevops.RepositoryPolicyMaxPathLengthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyMaxPathLength = new RepositoryPolicyMaxPathLength(\"exampleRepositoryPolicyMaxPathLength\", RepositoryPolicyMaxPathLengthArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .maxPathLength(1000)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyMaxPathLength:\n    type: azuredevops:RepositoryPolicyMaxPathLength\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      maxPathLength: 1000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyMaxPathLength:RepositoryPolicyMaxPathLength example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxPathLength":{"type":"integer","description":"Block pushes that introduce paths that exceed the specified length.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["maxPathLength","projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxPathLength":{"type":"integer","description":"Block pushes that introduce paths that exceed the specified length.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["maxPathLength","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyMaxPathLength resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"maxPathLength":{"type":"integer","description":"Block pushes that introduce paths that exceed the specified length.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/repositoryPolicyReservedNames:RepositoryPolicyReservedNames":{"description":"Manage a reserved names repository policy within Azure DevOps project. Block pushes that introduce files, folders, or branch names that include platform reserved names or incompatible characters.\n\n\u003e If both project and project policy are enabled, the project policy has high priority.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleRepositoryPolicyReservedNames = new azuredevops.RepositoryPolicyReservedNames(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n    repositoryIds: [exampleGit.id],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_repository_policy_reserved_names = azuredevops.RepositoryPolicyReservedNames(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True,\n    repository_ids=[example_git.id])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleRepositoryPolicyReservedNames = new AzureDevOps.RepositoryPolicyReservedNames(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n        RepositoryIds = new[]\n        {\n            exampleGit.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyReservedNames(ctx, \"example\", \u0026azuredevops.RepositoryPolicyReservedNamesArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t\tRepositoryIds: pulumi.StringArray{\n\t\t\t\texampleGit.ID(),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyReservedNames;\nimport com.pulumi.azuredevops.RepositoryPolicyReservedNamesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleRepositoryPolicyReservedNames = new RepositoryPolicyReservedNames(\"exampleRepositoryPolicyReservedNames\", RepositoryPolicyReservedNamesArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .repositoryIds(exampleGit.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleRepositoryPolicyReservedNames:\n    type: azuredevops:RepositoryPolicyReservedNames\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n      repositoryIds:\n        - ${exampleGit.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n# Set project level repository policy\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleRepositoryPolicyReservedNames = new azuredevops.RepositoryPolicyReservedNames(\"example\", {\n    projectId: example.id,\n    enabled: true,\n    blocking: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_repository_policy_reserved_names = azuredevops.RepositoryPolicyReservedNames(\"example\",\n    project_id=example.id,\n    enabled=True,\n    blocking=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleRepositoryPolicyReservedNames = new AzureDevOps.RepositoryPolicyReservedNames(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Enabled = true,\n        Blocking = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewRepositoryPolicyReservedNames(ctx, \"example\", \u0026azuredevops.RepositoryPolicyReservedNamesArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tEnabled:   pulumi.Bool(true),\n\t\t\tBlocking:  pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.RepositoryPolicyReservedNames;\nimport com.pulumi.azuredevops.RepositoryPolicyReservedNamesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleRepositoryPolicyReservedNames = new RepositoryPolicyReservedNames(\"exampleRepositoryPolicyReservedNames\", RepositoryPolicyReservedNamesArgs.builder()\n            .projectId(example.id())\n            .enabled(true)\n            .blocking(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleRepositoryPolicyReservedNames:\n    type: azuredevops:RepositoryPolicyReservedNames\n    name: example\n    properties:\n      projectId: ${example.id}\n      enabled: true\n      blocking: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Policy Configurations](https://docs.microsoft.com/en-us/rest/api/azure/devops/policy/configurations?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps repository policies can be imported using the projectID/policyID or projectName/policyID:\n\n```sh\n$ pulumi import azuredevops:index/repositoryPolicyReservedNames:RepositoryPolicyReservedNames example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n"},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"required":["projectId"],"inputProperties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering RepositoryPolicyReservedNames resources.\n","properties":{"blocking":{"type":"boolean","description":"A flag indicating if the policy should be blocking. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"enabled":{"type":"boolean","description":"A flag indicating if the policy should be enabled. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project in which the policy will be created.\n","willReplaceOnChanges":true},"repositoryIds":{"type":"array","items":{"type":"string"},"description":"Control whether the policy is enabled for the repository or the project. If \u003cspan pulumi-lang-nodejs=\"`repositoryIds`\" pulumi-lang-dotnet=\"`RepositoryIds`\" pulumi-lang-go=\"`repositoryIds`\" pulumi-lang-python=\"`repository_ids`\" pulumi-lang-yaml=\"`repositoryIds`\" pulumi-lang-java=\"`repositoryIds`\"\u003e`repository_ids`\u003c/span\u003e not configured, the policy will be set to the project.\n"}},"type":"object"}},"azuredevops:index/resourceAuthorization:ResourceAuthorization":{"description":"Manages authorization of resources, e.g. for access in build pipelines.\n\nCurrently supported resources: service endpoint (aka service connection, endpoint).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointBitBucket = new azuredevops.ServiceEndpointBitBucket(\"example\", {\n    projectId: example.id,\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"example-bitbucket\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleResourceAuthorization = new azuredevops.ResourceAuthorization(\"example\", {\n    projectId: example.id,\n    resourceId: exampleServiceEndpointBitBucket.id,\n    authorized: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_bit_bucket = azuredevops.ServiceEndpointBitBucket(\"example\",\n    project_id=example.id,\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"example-bitbucket\",\n    description=\"Managed by Pulumi\")\nexample_resource_authorization = azuredevops.ResourceAuthorization(\"example\",\n    project_id=example.id,\n    resource_id=example_service_endpoint_bit_bucket.id,\n    authorized=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointBitBucket = new AzureDevOps.ServiceEndpointBitBucket(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"example-bitbucket\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleResourceAuthorization = new AzureDevOps.ResourceAuthorization(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ResourceId = exampleServiceEndpointBitBucket.Id,\n        Authorized = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointBitBucket, err := azuredevops.NewServiceEndpointBitBucket(ctx, \"example\", \u0026azuredevops.ServiceEndpointBitBucketArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"example-bitbucket\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewResourceAuthorization(ctx, \"example\", \u0026azuredevops.ResourceAuthorizationArgs{\n\t\t\tProjectId:  example.ID(),\n\t\t\tResourceId: exampleServiceEndpointBitBucket.ID(),\n\t\t\tAuthorized: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointBitBucket;\nimport com.pulumi.azuredevops.ServiceEndpointBitBucketArgs;\nimport com.pulumi.azuredevops.ResourceAuthorization;\nimport com.pulumi.azuredevops.ResourceAuthorizationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointBitBucket = new ServiceEndpointBitBucket(\"exampleServiceEndpointBitBucket\", ServiceEndpointBitBucketArgs.builder()\n            .projectId(example.id())\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"example-bitbucket\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleResourceAuthorization = new ResourceAuthorization(\"exampleResourceAuthorization\", ResourceAuthorizationArgs.builder()\n            .projectId(example.id())\n            .resourceId(exampleServiceEndpointBitBucket.id())\n            .authorized(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointBitBucket:\n    type: azuredevops:ServiceEndpointBitBucket\n    name: example\n    properties:\n      projectId: ${example.id}\n      username: username\n      password: password\n      serviceEndpointName: example-bitbucket\n      description: Managed by Pulumi\n  exampleResourceAuthorization:\n    type: azuredevops:ResourceAuthorization\n    name: example\n    properties:\n      projectId: ${example.id}\n      resourceId: ${exampleServiceEndpointBitBucket.id}\n      authorized: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Authorize Definition Resource](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/resources/authorize%20definition%20resources?view=azure-devops-rest-7.0)\n","properties":{"authorized":{"type":"boolean","description":"Set to true to allow public access in the project.\n"},"definitionId":{"type":"integer","description":"The ID of the build definition to authorize.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n"},"resourceId":{"type":"string","description":"The ID of the resource to authorize.\n"},"type":{"type":"string","description":"The type of the resource to authorize. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Defaults to value: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e.\n"}},"required":["authorized","projectId","resourceId"],"inputProperties":{"authorized":{"type":"boolean","description":"Set to true to allow public access in the project.\n"},"definitionId":{"type":"integer","description":"The ID of the build definition to authorize.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the resource to authorize.\n"},"type":{"type":"string","description":"The type of the resource to authorize. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Defaults to value: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e.\n"}},"requiredInputs":["authorized","projectId","resourceId"],"stateInputs":{"description":"Input properties used for looking up and filtering ResourceAuthorization resources.\n","properties":{"authorized":{"type":"boolean","description":"Set to true to allow public access in the project.\n"},"definitionId":{"type":"integer","description":"The ID of the build definition to authorize.\n"},"projectId":{"type":"string","description":"The project ID or project name.\n","willReplaceOnChanges":true},"resourceId":{"type":"string","description":"The ID of the resource to authorize.\n"},"type":{"type":"string","description":"The type of the resource to authorize. Possible values: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`queue`\" pulumi-lang-dotnet=\"`Queue`\" pulumi-lang-go=\"`queue`\" pulumi-lang-python=\"`queue`\" pulumi-lang-yaml=\"`queue`\" pulumi-lang-java=\"`queue`\"\u003e`queue`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`variablegroup`\" pulumi-lang-dotnet=\"`Variablegroup`\" pulumi-lang-go=\"`variablegroup`\" pulumi-lang-python=\"`variablegroup`\" pulumi-lang-yaml=\"`variablegroup`\" pulumi-lang-java=\"`variablegroup`\"\u003e`variablegroup`\u003c/span\u003e. Defaults to value: \u003cspan pulumi-lang-nodejs=\"`endpoint`\" pulumi-lang-dotnet=\"`Endpoint`\" pulumi-lang-go=\"`endpoint`\" pulumi-lang-python=\"`endpoint`\" pulumi-lang-yaml=\"`endpoint`\" pulumi-lang-java=\"`endpoint`\"\u003e`endpoint`\u003c/span\u003e.\n"}},"type":"object"},"aliases":[{"type":"azuredevops:Security/resourceAuthorization:ResourceAuthorization"}]},"azuredevops:index/securityPermissions:SecurityPermissions":{"description":"Manages permissions for Azure DevOps security namespaces. This is a generic permissions resource that can be used to manage permissions for any security namespace in Azure DevOps.\n\n\u003e **Note** This is a low-level generic permissions resource. For specific resource types, consider using the dedicated permission resources such as \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectPermissions`\" pulumi-lang-dotnet=\"`azuredevops.ProjectPermissions`\" pulumi-lang-go=\"`ProjectPermissions`\" pulumi-lang-python=\"`ProjectPermissions`\" pulumi-lang-yaml=\"`azuredevops.ProjectPermissions`\" pulumi-lang-java=\"`azuredevops.ProjectPermissions`\"\u003e`azuredevops.ProjectPermissions`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azuredevops.GitPermissions`\" pulumi-lang-dotnet=\"`azuredevops.GitPermissions`\" pulumi-lang-go=\"`GitPermissions`\" pulumi-lang-python=\"`GitPermissions`\" pulumi-lang-yaml=\"`azuredevops.GitPermissions`\" pulumi-lang-java=\"`azuredevops.GitPermissions`\"\u003e`azuredevops.GitPermissions`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azuredevops.BuildDefinitionPermissions`\" pulumi-lang-dotnet=\"`azuredevops.BuildDefinitionPermissions`\" pulumi-lang-go=\"`BuildDefinitionPermissions`\" pulumi-lang-python=\"`BuildDefinitionPermissions`\" pulumi-lang-yaml=\"`azuredevops.BuildDefinitionPermissions`\" pulumi-lang-java=\"`azuredevops.BuildDefinitionPermissions`\"\u003e`azuredevops.BuildDefinitionPermissions`\u003c/span\u003e, etc.\n\n## Example Usage\n\n### Collection-level Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst collection = azuredevops.getSecurityNamespace({\n    name: \"Collection\",\n});\nconst collectionGetSecurityNamespaceToken = azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Collection\",\n});\nconst example = azuredevops.getGroup({\n    name: \"Project Collection Administrators\",\n});\nconst collectionPerms = new azuredevops.SecurityPermissions(\"collection_perms\", {\n    namespaceId: collection.then(collection =\u003e collection.id),\n    token: collectionGetSecurityNamespaceToken.then(collectionGetSecurityNamespaceToken =\u003e collectionGetSecurityNamespaceToken.token),\n    principal: example.then(example =\u003e example.descriptor),\n    permissions: {\n        GENERIC_READ: \"allow\",\n        GENERIC_WRITE: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ncollection = azuredevops.get_security_namespace(name=\"Collection\")\ncollection_get_security_namespace_token = azuredevops.get_security_namespace_token(namespace_name=\"Collection\")\nexample = azuredevops.get_group(name=\"Project Collection Administrators\")\ncollection_perms = azuredevops.SecurityPermissions(\"collection_perms\",\n    namespace_id=collection.id,\n    token=collection_get_security_namespace_token.token,\n    principal=example.descriptor,\n    permissions={\n        \"GENERIC_READ\": \"allow\",\n        \"GENERIC_WRITE\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var collection = AzureDevOps.GetSecurityNamespace.Invoke(new()\n    {\n        Name = \"Collection\",\n    });\n\n    var collectionGetSecurityNamespaceToken = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Collection\",\n    });\n\n    var example = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Project Collection Administrators\",\n    });\n\n    var collectionPerms = new AzureDevOps.SecurityPermissions(\"collection_perms\", new()\n    {\n        NamespaceId = collection.Apply(getSecurityNamespaceResult =\u003e getSecurityNamespaceResult.Id),\n        Token = collectionGetSecurityNamespaceToken.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n        Principal = example.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n        Permissions = \n        {\n            { \"GENERIC_READ\", \"allow\" },\n            { \"GENERIC_WRITE\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcollection, err := azuredevops.GetSecurityNamespace(ctx, \u0026azuredevops.GetSecurityNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"Collection\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcollectionGetSecurityNamespaceToken, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Collection\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Project Collection Administrators\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewSecurityPermissions(ctx, \"collection_perms\", \u0026azuredevops.SecurityPermissionsArgs{\n\t\t\tNamespaceId: pulumi.String(collection.Id),\n\t\t\tToken:       pulumi.String(collectionGetSecurityNamespaceToken.Token),\n\t\t\tPrincipal:   pulumi.String(example.Descriptor),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"GENERIC_READ\":  pulumi.String(\"allow\"),\n\t\t\t\t\"GENERIC_WRITE\": pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.SecurityPermissions;\nimport com.pulumi.azuredevops.SecurityPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var collection = AzuredevopsFunctions.getSecurityNamespace(GetSecurityNamespaceArgs.builder()\n            .name(\"Collection\")\n            .build());\n\n        final var collectionGetSecurityNamespaceToken = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Collection\")\n            .build());\n\n        final var example = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Project Collection Administrators\")\n            .build());\n\n        var collectionPerms = new SecurityPermissions(\"collectionPerms\", SecurityPermissionsArgs.builder()\n            .namespaceId(collection.id())\n            .token(collectionGetSecurityNamespaceToken.token())\n            .principal(example.descriptor())\n            .permissions(Map.ofEntries(\n                Map.entry(\"GENERIC_READ\", \"allow\"),\n                Map.entry(\"GENERIC_WRITE\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  collectionPerms:\n    type: azuredevops:SecurityPermissions\n    name: collection_perms\n    properties:\n      namespaceId: ${collection.id}\n      token: ${collectionGetSecurityNamespaceToken.token}\n      principal: ${example.descriptor}\n      permissions:\n        GENERIC_READ: allow\n        GENERIC_WRITE: allow\nvariables:\n  collection:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespace\n      arguments:\n        name: Collection\n  collectionGetSecurityNamespaceToken:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Collection\n  example:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Project Collection Administrators\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Git Repository Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetGitRepository = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\nconst gitRepos = azuredevops.getSecurityNamespace({\n    name: \"Git Repositories\",\n});\nconst gitRepo = Promise.all([example, exampleGetGitRepository]).then(([example, exampleGetGitRepository]) =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Git Repositories\",\n    identifiers: {\n        project_id: example.id,\n        repository_id: exampleGetGitRepository.id,\n    },\n}));\nconst exampleContributors = example.then(example =\u003e azuredevops.getGroup({\n    projectId: example.id,\n    name: \"Contributors\",\n}));\nconst gitPerms = new azuredevops.SecurityPermissions(\"git_perms\", {\n    namespaceId: gitRepos.then(gitRepos =\u003e gitRepos.id),\n    token: gitRepo.then(gitRepo =\u003e gitRepo.token),\n    principal: exampleContributors.then(exampleContributors =\u003e exampleContributors.descriptor),\n    permissions: {\n        GenericRead: \"allow\",\n        GenericContribute: \"allow\",\n        ForcePush: \"deny\",\n        ManagePermissions: \"deny\",\n    },\n    replace: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_git_repository = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\ngit_repos = azuredevops.get_security_namespace(name=\"Git Repositories\")\ngit_repo = azuredevops.get_security_namespace_token(namespace_name=\"Git Repositories\",\n    identifiers={\n        \"project_id\": example.id,\n        \"repository_id\": example_get_git_repository.id,\n    })\nexample_contributors = azuredevops.get_group(project_id=example.id,\n    name=\"Contributors\")\ngit_perms = azuredevops.SecurityPermissions(\"git_perms\",\n    namespace_id=git_repos.id,\n    token=git_repo.token,\n    principal=example_contributors.descriptor,\n    permissions={\n        \"GenericRead\": \"allow\",\n        \"GenericContribute\": \"allow\",\n        \"ForcePush\": \"deny\",\n        \"ManagePermissions\": \"deny\",\n    },\n    replace=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetGitRepository = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n    var gitRepos = AzureDevOps.GetSecurityNamespace.Invoke(new()\n    {\n        Name = \"Git Repositories\",\n    });\n\n    var gitRepo = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Git Repositories\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n            { \"repository_id\", exampleGetGitRepository.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id) },\n        },\n    });\n\n    var exampleContributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Contributors\",\n    });\n\n    var gitPerms = new AzureDevOps.SecurityPermissions(\"git_perms\", new()\n    {\n        NamespaceId = gitRepos.Apply(getSecurityNamespaceResult =\u003e getSecurityNamespaceResult.Id),\n        Token = gitRepo.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n        Principal = exampleContributors.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n        Permissions = \n        {\n            { \"GenericRead\", \"allow\" },\n            { \"GenericContribute\", \"allow\" },\n            { \"ForcePush\", \"deny\" },\n            { \"ManagePermissions\", \"deny\" },\n        },\n        Replace = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetGitRepository, err := azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgitRepos, err := azuredevops.GetSecurityNamespace(ctx, \u0026azuredevops.GetSecurityNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"Git Repositories\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgitRepo, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Git Repositories\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\":    example.Id,\n\t\t\t\t\"repository_id\": exampleGetGitRepository.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContributors, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t\tName:      \"Contributors\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewSecurityPermissions(ctx, \"git_perms\", \u0026azuredevops.SecurityPermissionsArgs{\n\t\t\tNamespaceId: pulumi.String(gitRepos.Id),\n\t\t\tToken:       pulumi.String(gitRepo.Token),\n\t\t\tPrincipal:   pulumi.String(exampleContributors.Descriptor),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"GenericRead\":       pulumi.String(\"allow\"),\n\t\t\t\t\"GenericContribute\": pulumi.String(\"allow\"),\n\t\t\t\t\"ForcePush\":         pulumi.String(\"deny\"),\n\t\t\t\t\"ManagePermissions\": pulumi.String(\"deny\"),\n\t\t\t},\n\t\t\tReplace: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.SecurityPermissions;\nimport com.pulumi.azuredevops.SecurityPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetGitRepository = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n        final var gitRepos = AzuredevopsFunctions.getSecurityNamespace(GetSecurityNamespaceArgs.builder()\n            .name(\"Git Repositories\")\n            .build());\n\n        final var gitRepo = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Git Repositories\")\n            .identifiers(Map.ofEntries(\n                Map.entry(\"project_id\", example.id()),\n                Map.entry(\"repository_id\", exampleGetGitRepository.id())\n            ))\n            .build());\n\n        final var exampleContributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        var gitPerms = new SecurityPermissions(\"gitPerms\", SecurityPermissionsArgs.builder()\n            .namespaceId(gitRepos.id())\n            .token(gitRepo.token())\n            .principal(exampleContributors.descriptor())\n            .permissions(Map.ofEntries(\n                Map.entry(\"GenericRead\", \"allow\"),\n                Map.entry(\"GenericContribute\", \"allow\"),\n                Map.entry(\"ForcePush\", \"deny\"),\n                Map.entry(\"ManagePermissions\", \"deny\")\n            ))\n            .replace(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gitPerms:\n    type: azuredevops:SecurityPermissions\n    name: git_perms\n    properties:\n      namespaceId: ${gitRepos.id}\n      token: ${gitRepo.token}\n      principal: ${exampleContributors.descriptor}\n      permissions:\n        GenericRead: allow\n        GenericContribute: allow\n        ForcePush: deny\n        ManagePermissions: deny\n      replace: false\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetGitRepository:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n  gitRepos:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespace\n      arguments:\n        name: Git Repositories\n  gitRepo:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Git Repositories\n        identifiers:\n          project_id: ${example.id}\n          repository_id: ${exampleGetGitRepository.id}\n  exampleContributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Git Branch Permissions\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetGitRepository = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\nconst gitRepos = azuredevops.getSecurityNamespace({\n    name: \"Git Repositories\",\n});\nconst mainBranch = Promise.all([example, exampleGetGitRepository]).then(([example, exampleGetGitRepository]) =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Git Repositories\",\n    identifiers: {\n        project_id: example.id,\n        repository_id: exampleGetGitRepository.id,\n        ref_name: \"refs/heads/main\",\n    },\n}));\nconst exampleContributors = example.then(example =\u003e azuredevops.getGroup({\n    projectId: example.id,\n    name: \"Contributors\",\n}));\nconst mainBranchPerms = new azuredevops.SecurityPermissions(\"main_branch_perms\", {\n    namespaceId: \"2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\",\n    token: mainBranch.then(mainBranch =\u003e mainBranch.token),\n    principal: exampleContributors.then(exampleContributors =\u003e exampleContributors.descriptor),\n    permissions: {\n        ForcePush: \"Deny\",\n        RemoveOthersLocks: \"Deny\",\n    },\n    replace: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_git_repository = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\ngit_repos = azuredevops.get_security_namespace(name=\"Git Repositories\")\nmain_branch = azuredevops.get_security_namespace_token(namespace_name=\"Git Repositories\",\n    identifiers={\n        \"project_id\": example.id,\n        \"repository_id\": example_get_git_repository.id,\n        \"ref_name\": \"refs/heads/main\",\n    })\nexample_contributors = azuredevops.get_group(project_id=example.id,\n    name=\"Contributors\")\nmain_branch_perms = azuredevops.SecurityPermissions(\"main_branch_perms\",\n    namespace_id=\"2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\",\n    token=main_branch.token,\n    principal=example_contributors.descriptor,\n    permissions={\n        \"ForcePush\": \"Deny\",\n        \"RemoveOthersLocks\": \"Deny\",\n    },\n    replace=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetGitRepository = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n    var gitRepos = AzureDevOps.GetSecurityNamespace.Invoke(new()\n    {\n        Name = \"Git Repositories\",\n    });\n\n    var mainBranch = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Git Repositories\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n            { \"repository_id\", exampleGetGitRepository.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id) },\n            { \"ref_name\", \"refs/heads/main\" },\n        },\n    });\n\n    var exampleContributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Contributors\",\n    });\n\n    var mainBranchPerms = new AzureDevOps.SecurityPermissions(\"main_branch_perms\", new()\n    {\n        NamespaceId = \"2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\",\n        Token = mainBranch.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n        Principal = exampleContributors.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n        Permissions = \n        {\n            { \"ForcePush\", \"Deny\" },\n            { \"RemoveOthersLocks\", \"Deny\" },\n        },\n        Replace = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetGitRepository, err := azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.GetSecurityNamespace(ctx, \u0026azuredevops.GetSecurityNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"Git Repositories\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainBranch, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Git Repositories\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\":    example.Id,\n\t\t\t\t\"repository_id\": exampleGetGitRepository.Id,\n\t\t\t\t\"ref_name\":      \"refs/heads/main\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleContributors, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t\tName:      \"Contributors\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewSecurityPermissions(ctx, \"main_branch_perms\", \u0026azuredevops.SecurityPermissionsArgs{\n\t\t\tNamespaceId: pulumi.String(\"2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\"),\n\t\t\tToken:       pulumi.String(mainBranch.Token),\n\t\t\tPrincipal:   pulumi.String(exampleContributors.Descriptor),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"ForcePush\":         pulumi.String(\"Deny\"),\n\t\t\t\t\"RemoveOthersLocks\": pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t\tReplace: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.SecurityPermissions;\nimport com.pulumi.azuredevops.SecurityPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetGitRepository = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n        final var gitRepos = AzuredevopsFunctions.getSecurityNamespace(GetSecurityNamespaceArgs.builder()\n            .name(\"Git Repositories\")\n            .build());\n\n        final var mainBranch = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Git Repositories\")\n            .identifiers(Map.ofEntries(\n                Map.entry(\"project_id\", example.id()),\n                Map.entry(\"repository_id\", exampleGetGitRepository.id()),\n                Map.entry(\"ref_name\", \"refs/heads/main\")\n            ))\n            .build());\n\n        final var exampleContributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        var mainBranchPerms = new SecurityPermissions(\"mainBranchPerms\", SecurityPermissionsArgs.builder()\n            .namespaceId(\"2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\")\n            .token(mainBranch.token())\n            .principal(exampleContributors.descriptor())\n            .permissions(Map.ofEntries(\n                Map.entry(\"ForcePush\", \"Deny\"),\n                Map.entry(\"RemoveOthersLocks\", \"Deny\")\n            ))\n            .replace(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainBranchPerms:\n    type: azuredevops:SecurityPermissions\n    name: main_branch_perms\n    properties:\n      namespaceId: 2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87\n      token: ${mainBranch.token}\n      principal: ${exampleContributors.descriptor}\n      permissions:\n        ForcePush: Deny\n        RemoveOthersLocks: Deny\n      replace: false\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetGitRepository:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n  gitRepos:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespace\n      arguments:\n        name: Git Repositories\n  mainBranch:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Git Repositories\n        identifiers:\n          project_id: ${example.id}\n          repository_id: ${exampleGetGitRepository.id}\n          ref_name: refs/heads/main\n  exampleContributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n- [Azure DevOps Security Namespaces](https://docs.microsoft.com/en-us/azure/devops/organizations/security/security-glossary?view=azure-devops)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Notes\n\n- This is a generic low-level resource for managing permissions across any Azure DevOps security namespace\n- For better user experience and type safety, consider using dedicated permission resources when available (e.g., \u003cspan pulumi-lang-nodejs=\"`azuredevops.ProjectPermissions`\" pulumi-lang-dotnet=\"`azuredevops.ProjectPermissions`\" pulumi-lang-go=\"`ProjectPermissions`\" pulumi-lang-python=\"`ProjectPermissions`\" pulumi-lang-yaml=\"`azuredevops.ProjectPermissions`\" pulumi-lang-java=\"`azuredevops.ProjectPermissions`\"\u003e`azuredevops.ProjectPermissions`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azuredevops.GitPermissions`\" pulumi-lang-dotnet=\"`azuredevops.GitPermissions`\" pulumi-lang-go=\"`GitPermissions`\" pulumi-lang-python=\"`GitPermissions`\" pulumi-lang-yaml=\"`azuredevops.GitPermissions`\" pulumi-lang-java=\"`azuredevops.GitPermissions`\"\u003e`azuredevops.GitPermissions`\u003c/span\u003e)\n- Permission names are namespace-specific and case-sensitive. All permission names in the \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e map are validated against the namespace - if any permission name is invalid, an error will be returned\n- When `replace = true`, all existing permissions for the principal will be removed and replaced with the specified permissions\n- When `replace = false`, the specified permissions will be merged with existing permissions, allowing you to manage only a subset of permissions\n- when `replace = false`, deletion of the resource only removes the permissions specified in the \u003cspan pulumi-lang-nodejs=\"`permissions`\" pulumi-lang-dotnet=\"`Permissions`\" pulumi-lang-go=\"`permissions`\" pulumi-lang-python=\"`permissions`\" pulumi-lang-yaml=\"`permissions`\" pulumi-lang-java=\"`permissions`\"\u003e`permissions`\u003c/span\u003e map, rather than all permissions for the principal\n- The \u003cspan pulumi-lang-nodejs=\"`principal`\" pulumi-lang-dotnet=\"`Principal`\" pulumi-lang-go=\"`principal`\" pulumi-lang-python=\"`principal`\" pulumi-lang-yaml=\"`principal`\" pulumi-lang-java=\"`principal`\"\u003e`principal`\u003c/span\u003e must be a group descriptor or identity ID. Individual user principals are not supported\n- Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-go=\"`getSecurityNamespaceToken`\" pulumi-lang-python=\"`get_security_namespace_token`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaceToken`\"\u003e`azuredevops.getSecurityNamespaceToken`\u003c/span\u003e data source to generate correct tokens for different resource types\n- Permissions are propagated asynchronously and may take a few moments to take effect\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"namespaceId":{"type":"string","description":"The ID of the security namespace. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-go=\"`getSecurityNamespaces`\" pulumi-lang-python=\"`get_security_namespaces`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaces`\"\u003e`azuredevops.getSecurityNamespaces`\u003c/span\u003e data source to discover available namespaces. Changing this forces a new resource to be created.\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of permission names to permission values. All permission names specified must be valid for the given namespace, or an error will be returned. Permission values must be one of:\n- `Allow` (or \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, `ALLOW`) - Grant the permission\n- `Deny` (or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e, `DENY`) - Explicitly deny the permission\n- `NotSet` (or \u003cspan pulumi-lang-nodejs=\"`notset`\" pulumi-lang-dotnet=\"`Notset`\" pulumi-lang-go=\"`notset`\" pulumi-lang-python=\"`notset`\" pulumi-lang-yaml=\"`notset`\" pulumi-lang-java=\"`notset`\"\u003e`notset`\u003c/span\u003e, `NOTSET`) - Remove the permission (inherit from parent)\n"},"principal":{"type":"string","description":"The descriptor or identity ID of the principal (user or group). Changing this forces a new resource to be created.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions with existing permissions. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all existing permissions for the principal on this token will be replaced with the specified permissions. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the specified permissions will be merged with existing permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"token":{"type":"string","description":"The security token for the resource. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-go=\"`getSecurityNamespaceToken`\" pulumi-lang-python=\"`get_security_namespace_token`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaceToken`\"\u003e`azuredevops.getSecurityNamespaceToken`\u003c/span\u003e data source to generate tokens for specific resources. Changing this forces a new resource to be created.\n"}},"required":["namespaceId","permissions","principal","token"],"inputProperties":{"namespaceId":{"type":"string","description":"The ID of the security namespace. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-go=\"`getSecurityNamespaces`\" pulumi-lang-python=\"`get_security_namespaces`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaces`\"\u003e`azuredevops.getSecurityNamespaces`\u003c/span\u003e data source to discover available namespaces. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of permission names to permission values. All permission names specified must be valid for the given namespace, or an error will be returned. Permission values must be one of:\n- `Allow` (or \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, `ALLOW`) - Grant the permission\n- `Deny` (or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e, `DENY`) - Explicitly deny the permission\n- `NotSet` (or \u003cspan pulumi-lang-nodejs=\"`notset`\" pulumi-lang-dotnet=\"`Notset`\" pulumi-lang-go=\"`notset`\" pulumi-lang-python=\"`notset`\" pulumi-lang-yaml=\"`notset`\" pulumi-lang-java=\"`notset`\"\u003e`notset`\u003c/span\u003e, `NOTSET`) - Remove the permission (inherit from parent)\n"},"principal":{"type":"string","description":"The descriptor or identity ID of the principal (user or group). Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions with existing permissions. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all existing permissions for the principal on this token will be replaced with the specified permissions. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the specified permissions will be merged with existing permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"token":{"type":"string","description":"The security token for the resource. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-go=\"`getSecurityNamespaceToken`\" pulumi-lang-python=\"`get_security_namespace_token`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaceToken`\"\u003e`azuredevops.getSecurityNamespaceToken`\u003c/span\u003e data source to generate tokens for specific resources. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["namespaceId","permissions","principal","token"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityPermissions resources.\n","properties":{"namespaceId":{"type":"string","description":"The ID of the security namespace. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-go=\"`getSecurityNamespaces`\" pulumi-lang-python=\"`get_security_namespaces`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaces`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaces`\"\u003e`azuredevops.getSecurityNamespaces`\u003c/span\u003e data source to discover available namespaces. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of permission names to permission values. All permission names specified must be valid for the given namespace, or an error will be returned. Permission values must be one of:\n- `Allow` (or \u003cspan pulumi-lang-nodejs=\"`allow`\" pulumi-lang-dotnet=\"`Allow`\" pulumi-lang-go=\"`allow`\" pulumi-lang-python=\"`allow`\" pulumi-lang-yaml=\"`allow`\" pulumi-lang-java=\"`allow`\"\u003e`allow`\u003c/span\u003e, `ALLOW`) - Grant the permission\n- `Deny` (or \u003cspan pulumi-lang-nodejs=\"`deny`\" pulumi-lang-dotnet=\"`Deny`\" pulumi-lang-go=\"`deny`\" pulumi-lang-python=\"`deny`\" pulumi-lang-yaml=\"`deny`\" pulumi-lang-java=\"`deny`\"\u003e`deny`\u003c/span\u003e, `DENY`) - Explicitly deny the permission\n- `NotSet` (or \u003cspan pulumi-lang-nodejs=\"`notset`\" pulumi-lang-dotnet=\"`Notset`\" pulumi-lang-go=\"`notset`\" pulumi-lang-python=\"`notset`\" pulumi-lang-yaml=\"`notset`\" pulumi-lang-java=\"`notset`\"\u003e`notset`\u003c/span\u003e, `NOTSET`) - Remove the permission (inherit from parent)\n"},"principal":{"type":"string","description":"The descriptor or identity ID of the principal (user or group). Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions with existing permissions. When \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, all existing permissions for the principal on this token will be replaced with the specified permissions. When \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e, the specified permissions will be merged with existing permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"token":{"type":"string","description":"The security token for the resource. Use the \u003cspan pulumi-lang-nodejs=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-dotnet=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-go=\"`getSecurityNamespaceToken`\" pulumi-lang-python=\"`get_security_namespace_token`\" pulumi-lang-yaml=\"`azuredevops.getSecurityNamespaceToken`\" pulumi-lang-java=\"`azuredevops.getSecurityNamespaceToken`\"\u003e`azuredevops.getSecurityNamespaceToken`\u003c/span\u003e data source to generate tokens for specific resources. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/securityroleAssignment:SecurityroleAssignment":{"description":"Manages assignment of security roles to various resources within Azure DevOps organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: example.id,\n    name: \"Example Environment\",\n    description: \"Example pipeline deployment environment\",\n});\nconst exampleGroup = new azuredevops.Group(\"example\", {\n    scope: example.id,\n    displayName: \"Example group\",\n    description: \"Description of example group\",\n});\nconst exampleSecurityroleAssignment = new azuredevops.SecurityroleAssignment(\"example\", {\n    scope: \"distributedtask.environmentreferencerole\",\n    resourceId: std.index.format({\n        input: \"%s_%s\",\n        args: [\n            example.id,\n            exampleEnvironment.id,\n        ],\n    }).result,\n    identityId: exampleGroup.groupId,\n    roleName: \"Administrator\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_std as std\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example.id,\n    name=\"Example Environment\",\n    description=\"Example pipeline deployment environment\")\nexample_group = azuredevops.Group(\"example\",\n    scope=example.id,\n    display_name=\"Example group\",\n    description=\"Description of example group\")\nexample_securityrole_assignment = azuredevops.SecurityroleAssignment(\"example\",\n    scope=\"distributedtask.environmentreferencerole\",\n    resource_id=std.index.format(input=\"%s_%s\",\n        args=[\n            example.id,\n            example_environment.id,\n        ])[\"result\"],\n    identity_id=example_group.group_id,\n    role_name=\"Administrator\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Environment\",\n        Description = \"Example pipeline deployment environment\",\n    });\n\n    var exampleGroup = new AzureDevOps.Group(\"example\", new()\n    {\n        Scope = example.Id,\n        DisplayName = \"Example group\",\n        Description = \"Description of example group\",\n    });\n\n    var exampleSecurityroleAssignment = new AzureDevOps.SecurityroleAssignment(\"example\", new()\n    {\n        Scope = \"distributedtask.environmentreferencerole\",\n        ResourceId = Std.Index.Format.Invoke(new()\n        {\n            Input = \"%s_%s\",\n            Args = new[]\n            {\n                example.Id,\n                exampleEnvironment.Id,\n            },\n        }).Result,\n        IdentityId = exampleGroup.GroupId,\n        RoleName = \"Administrator\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Environment\"),\n\t\t\tDescription: pulumi.String(\"Example pipeline deployment environment\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGroup, err := azuredevops.NewGroup(ctx, \"example\", \u0026azuredevops.GroupArgs{\n\t\t\tScope:       example.ID(),\n\t\t\tDisplayName: pulumi.String(\"Example group\"),\n\t\t\tDescription: pulumi.String(\"Description of example group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFormat, err := std.Format(ctx, map[string]interface{}{\n\t\t\t\"input\": \"%s_%s\",\n\t\t\t\"args\": pulumi.StringArray{\n\t\t\t\texample.ID(),\n\t\t\t\texampleEnvironment.ID(),\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewSecurityroleAssignment(ctx, \"example\", \u0026azuredevops.SecurityroleAssignmentArgs{\n\t\t\tScope:      pulumi.String(\"distributedtask.environmentreferencerole\"),\n\t\t\tResourceId: invokeFormat.Result,\n\t\t\tIdentityId: exampleGroup.GroupId,\n\t\t\tRoleName:   pulumi.String(\"Administrator\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.Group;\nimport com.pulumi.azuredevops.GroupArgs;\nimport com.pulumi.azuredevops.SecurityroleAssignment;\nimport com.pulumi.azuredevops.SecurityroleAssignmentArgs;\nimport com.pulumi.std.StdFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Environment\")\n            .description(\"Example pipeline deployment environment\")\n            .build());\n\n        var exampleGroup = new Group(\"exampleGroup\", GroupArgs.builder()\n            .scope(example.id())\n            .displayName(\"Example group\")\n            .description(\"Description of example group\")\n            .build());\n\n        var exampleSecurityroleAssignment = new SecurityroleAssignment(\"exampleSecurityroleAssignment\", SecurityroleAssignmentArgs.builder()\n            .scope(\"distributedtask.environmentreferencerole\")\n            .resourceId(StdFunctions.format(Map.ofEntries(\n                Map.entry(\"input\", \"%s_%s\"),\n                Map.entry(\"args\",                 \n                    example.id(),\n                    exampleEnvironment.id())\n            )).result())\n            .identityId(exampleGroup.groupId())\n            .roleName(\"Administrator\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Environment\n      description: Example pipeline deployment environment\n  exampleGroup:\n    type: azuredevops:Group\n    name: example\n    properties:\n      scope: ${example.id}\n      displayName: Example group\n      description: Description of example group\n  exampleSecurityroleAssignment:\n    type: azuredevops:SecurityroleAssignment\n    name: example\n    properties:\n      scope: distributedtask.environmentreferencerole\n      resourceId:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s_%s'\n            args:\n              - ${example.id}\n              - ${exampleEnvironment.id}\n          return: result\n      identityId: ${exampleGroup.groupId}\n      roleName: Administrator\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Authorize Definition Resource](https://learn.microsoft.com/en-us/rest/api/azure/devops/securityroles/roleassignments/set-role-assignments?view=azure-devops-rest-7.0\u0026tabs=HTTP)\n","properties":{"identityId":{"type":"string","description":"The ID of the identity to authorize.\n"},"resourceId":{"type":"string","description":"The ID of the resource on which the role is to be assigned. Changing this forces a new resource to be created.\n"},"roleName":{"type":"string","description":"Name of the role to assign.\n"},"scope":{"type":"string","description":"The scope in which this assignment should exist.\n"}},"required":["identityId","resourceId","roleName","scope"],"inputProperties":{"identityId":{"type":"string","description":"The ID of the identity to authorize.\n"},"resourceId":{"type":"string","description":"The ID of the resource on which the role is to be assigned. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Name of the role to assign.\n"},"scope":{"type":"string","description":"The scope in which this assignment should exist.\n"}},"requiredInputs":["identityId","resourceId","roleName","scope"],"stateInputs":{"description":"Input properties used for looking up and filtering SecurityroleAssignment resources.\n","properties":{"identityId":{"type":"string","description":"The ID of the identity to authorize.\n"},"resourceId":{"type":"string","description":"The ID of the resource on which the role is to be assigned. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"roleName":{"type":"string","description":"Name of the role to assign.\n"},"scope":{"type":"string","description":"The scope in which this assignment should exist.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointArtifactory:ServiceEndpointArtifactory":{"description":"Manages an JFrog Artifactory server endpoint within an Azure DevOps organization. Using this service endpoint requires you to first install [JFrog Artifactory Extension](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-artifactory-vsts-extension).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointArtifactory = new azuredevops.ServiceEndpointArtifactory(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_artifactory = azuredevops.ServiceEndpointArtifactory(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointArtifactory = new AzureDevOps.ServiceEndpointArtifactory(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceEndpointArtifactoryAuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointArtifactory(ctx, \"example\", \u0026azuredevops.ServiceEndpointArtifactoryArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceEndpointArtifactoryAuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointArtifactory;\nimport com.pulumi.azuredevops.ServiceEndpointArtifactoryArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointArtifactoryAuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointArtifactory = new ServiceEndpointArtifactory(\"exampleServiceEndpointArtifactory\", ServiceEndpointArtifactoryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationToken(ServiceEndpointArtifactoryAuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointArtifactory:\n    type: azuredevops:ServiceEndpointArtifactory\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointArtifactory = new azuredevops.ServiceEndpointArtifactory(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_artifactory = azuredevops.ServiceEndpointArtifactory(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointArtifactory = new AzureDevOps.ServiceEndpointArtifactory(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceEndpointArtifactoryAuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointArtifactory(ctx, \"example\", \u0026azuredevops.ServiceEndpointArtifactoryArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceEndpointArtifactoryAuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointArtifactory;\nimport com.pulumi.azuredevops.ServiceEndpointArtifactoryArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointArtifactoryAuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointArtifactory = new ServiceEndpointArtifactory(\"exampleServiceEndpointArtifactory\", ServiceEndpointArtifactoryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationBasic(ServiceEndpointArtifactoryAuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointArtifactory:\n    type: azuredevops:ServiceEndpointArtifactory\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n* [Artifactory User Token](https://docs.artifactory.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps JFrog Artifactory Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointArtifactory:ServiceEndpointArtifactory example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationBasic:ServiceEndpointArtifactoryAuthenticationBasic"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationToken:ServiceEndpointArtifactoryAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as defined below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n_**Note: URL should not end in a slash character.**_\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationBasic:ServiceEndpointArtifactoryAuthenticationBasic"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationToken:ServiceEndpointArtifactoryAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n_**Note: URL should not end in a slash character.**_\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointArtifactory resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationBasic:ServiceEndpointArtifactoryAuthenticationBasic"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceEndpointArtifactoryAuthenticationToken:ServiceEndpointArtifactoryAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as defined below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n_**Note: URL should not end in a slash character.**_\n"}},"type":"object"}},"azuredevops:index/serviceEndpointAws:ServiceEndpointAws":{"description":"Manages a AWS service endpoint within Azure DevOps. Using this service endpoint requires you to first install [AWS Toolkit for Azure DevOps](https://marketplace.visualstudio.com/items?itemName=AmazonWebServices.aws-vsts-tools).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAws = new azuredevops.ServiceEndpointAws(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AWS\",\n    accessKeyId: \"00000000-0000-0000-0000-000000000000\",\n    secretAccessKey: \"accesskey\",\n    description: \"Managed by AzureDevOps\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_aws = azuredevops.ServiceEndpointAws(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AWS\",\n    access_key_id=\"00000000-0000-0000-0000-000000000000\",\n    secret_access_key=\"accesskey\",\n    description=\"Managed by AzureDevOps\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAws = new AzureDevOps.ServiceEndpointAws(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AWS\",\n        AccessKeyId = \"00000000-0000-0000-0000-000000000000\",\n        SecretAccessKey = \"accesskey\",\n        Description = \"Managed by AzureDevOps\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAws(ctx, \"example\", \u0026azuredevops.ServiceEndpointAwsArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example AWS\"),\n\t\t\tAccessKeyId:         pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tSecretAccessKey:     pulumi.String(\"accesskey\"),\n\t\t\tDescription:         pulumi.String(\"Managed by AzureDevOps\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAws;\nimport com.pulumi.azuredevops.ServiceEndpointAwsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAws = new ServiceEndpointAws(\"exampleServiceEndpointAws\", ServiceEndpointAwsArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AWS\")\n            .accessKeyId(\"00000000-0000-0000-0000-000000000000\")\n            .secretAccessKey(\"accesskey\")\n            .description(\"Managed by AzureDevOps\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointAws:\n    type: azuredevops:ServiceEndpointAws\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AWS\n      accessKeyId: 00000000-0000-0000-0000-000000000000\n      secretAccessKey: accesskey\n      description: Managed by AzureDevOps\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [aws-toolkit-azure-devops](https://github.com/aws/aws-toolkit-azure-devops)\n* [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps AWS Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n $ pulumi import azuredevops:index/serviceEndpointAws:ServiceEndpointAws example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"accessKeyId":{"type":"string","description":"The AWS access key ID for signing programmatic requests.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"externalId":{"type":"string","description":"A unique identifier that is used by third parties when assuming roles in their customers' accounts, aka cross-account role access.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"roleSessionName":{"type":"string","description":"Optional identifier for the assumed role session.\n"},"roleToAssume":{"type":"string","description":"The Amazon Resource Name (ARN) of the role to assume.\n"},"secretAccessKey":{"type":"string","description":"The AWS secret access key for signing programmatic requests.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"sessionToken":{"type":"string","description":"The AWS session token for signing programmatic requests.\n","secret":true},"useOidc":{"type":"boolean","description":"Enable this to attempt getting credentials with OIDC token from Azure Devops.\n"}},"required":["authorization","projectId","serviceEndpointName"],"inputProperties":{"accessKeyId":{"type":"string","description":"The AWS access key ID for signing programmatic requests.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"externalId":{"type":"string","description":"A unique identifier that is used by third parties when assuming roles in their customers' accounts, aka cross-account role access.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"roleSessionName":{"type":"string","description":"Optional identifier for the assumed role session.\n"},"roleToAssume":{"type":"string","description":"The Amazon Resource Name (ARN) of the role to assume.\n"},"secretAccessKey":{"type":"string","description":"The AWS secret access key for signing programmatic requests.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"sessionToken":{"type":"string","description":"The AWS session token for signing programmatic requests.\n","secret":true},"useOidc":{"type":"boolean","description":"Enable this to attempt getting credentials with OIDC token from Azure Devops.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointAws resources.\n","properties":{"accessKeyId":{"type":"string","description":"The AWS access key ID for signing programmatic requests.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"externalId":{"type":"string","description":"A unique identifier that is used by third parties when assuming roles in their customers' accounts, aka cross-account role access.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"roleSessionName":{"type":"string","description":"Optional identifier for the assumed role session.\n"},"roleToAssume":{"type":"string","description":"The Amazon Resource Name (ARN) of the role to assume.\n"},"secretAccessKey":{"type":"string","description":"The AWS secret access key for signing programmatic requests.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"sessionToken":{"type":"string","description":"The AWS session token for signing programmatic requests.\n","secret":true},"useOidc":{"type":"boolean","description":"Enable this to attempt getting credentials with OIDC token from Azure Devops.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointAzureDevOps:ServiceEndpointAzureDevOps":{"description":"Manages an Azure DevOps service endpoint within Azure DevOps.\n\n\u003e **Note** This resource is duplicate with \u003cspan pulumi-lang-nodejs=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-dotnet=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-go=\"`ServiceEndpointPipeline`\" pulumi-lang-python=\"`ServiceEndpointPipeline`\" pulumi-lang-yaml=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-java=\"`azuredevops.ServiceEndpointPipeline`\"\u003e`azuredevops.ServiceEndpointPipeline`\u003c/span\u003e,  will be removed in the future, use \u003cspan pulumi-lang-nodejs=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-dotnet=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-go=\"`ServiceEndpointPipeline`\" pulumi-lang-python=\"`ServiceEndpointPipeline`\" pulumi-lang-yaml=\"`azuredevops.ServiceEndpointPipeline`\" pulumi-lang-java=\"`azuredevops.ServiceEndpointPipeline`\"\u003e`azuredevops.ServiceEndpointPipeline`\u003c/span\u003e instead.\n\n\u003e **Note** Prerequisite: Extension [Configurable Pipeline Runner](https://marketplace.visualstudio.com/items?itemName=CSE-DevOps.RunPipelines) has been installed for the organization. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAzureDevOps = new azuredevops.ServiceEndpointAzureDevOps(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Azure DevOps\",\n    orgUrl: \"https://dev.azure.com/testorganization\",\n    releaseApiUrl: \"https://vsrm.dev.azure.com/testorganization\",\n    personalAccessToken: \"0000000000000000000000000000000000000000000000000000\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_azure_dev_ops = azuredevops.ServiceEndpointAzureDevOps(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Azure DevOps\",\n    org_url=\"https://dev.azure.com/testorganization\",\n    release_api_url=\"https://vsrm.dev.azure.com/testorganization\",\n    personal_access_token=\"0000000000000000000000000000000000000000000000000000\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAzureDevOps = new AzureDevOps.ServiceEndpointAzureDevOps(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Azure DevOps\",\n        OrgUrl = \"https://dev.azure.com/testorganization\",\n        ReleaseApiUrl = \"https://vsrm.dev.azure.com/testorganization\",\n        PersonalAccessToken = \"0000000000000000000000000000000000000000000000000000\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureDevOps(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureDevOpsArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Azure DevOps\"),\n\t\t\tOrgUrl:              pulumi.String(\"https://dev.azure.com/testorganization\"),\n\t\t\tReleaseApiUrl:       pulumi.String(\"https://vsrm.dev.azure.com/testorganization\"),\n\t\t\tPersonalAccessToken: pulumi.String(\"0000000000000000000000000000000000000000000000000000\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureDevOps;\nimport com.pulumi.azuredevops.ServiceEndpointAzureDevOpsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAzureDevOps = new ServiceEndpointAzureDevOps(\"exampleServiceEndpointAzureDevOps\", ServiceEndpointAzureDevOpsArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Azure DevOps\")\n            .orgUrl(\"https://dev.azure.com/testorganization\")\n            .releaseApiUrl(\"https://vsrm.dev.azure.com/testorganization\")\n            .personalAccessToken(\"0000000000000000000000000000000000000000000000000000\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointAzureDevOps:\n    type: azuredevops:ServiceEndpointAzureDevOps\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Azure DevOps\n      orgUrl: https://dev.azure.com/testorganization\n      releaseApiUrl: https://vsrm.dev.azure.com/testorganization\n      personalAccessToken: '0000000000000000000000000000000000000000000000000000'\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Service Endpoint Azure DevOps can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointAzureDevOps:ServiceEndpointAzureDevOps example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"orgUrl":{"type":"string","description":"The organization URL.\n"},"personalAccessToken":{"type":"string","description":"The Azure DevOps personal access token.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"releaseApiUrl":{"type":"string","description":"The URL of the release API.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","orgUrl","personalAccessToken","projectId","releaseApiUrl","serviceEndpointName"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"orgUrl":{"type":"string","description":"The organization URL.\n"},"personalAccessToken":{"type":"string","description":"The Azure DevOps personal access token.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"releaseApiUrl":{"type":"string","description":"The URL of the release API.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointAzureDevOps resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"orgUrl":{"type":"string","description":"The organization URL.\n"},"personalAccessToken":{"type":"string","description":"The Azure DevOps personal access token.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"releaseApiUrl":{"type":"string","description":"The URL of the release API.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointAzureEcr:ServiceEndpointAzureEcr":{"description":"Manages a Azure Container Registry service endpoint within Azure DevOps.\n\n## Example Usage\n\n### Authorize with Service Principal\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\n// azure container registry service connection\nconst exampleServiceEndpointAzureEcr = new azuredevops.ServiceEndpointAzureEcr(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureCR\",\n    resourceGroup: \"example-rg\",\n    azurecrSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurecrName: \"ExampleAcr\",\n    azurecrSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurecrSubscriptionName: \"subscription name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\n# azure container registry service connection\nexample_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureCR\",\n    resource_group=\"example-rg\",\n    azurecr_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurecr_name=\"ExampleAcr\",\n    azurecr_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurecr_subscription_name=\"subscription name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    // azure container registry service connection\n    var exampleServiceEndpointAzureEcr = new AzureDevOps.ServiceEndpointAzureEcr(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureCR\",\n        ResourceGroup = \"example-rg\",\n        AzurecrSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurecrName = \"ExampleAcr\",\n        AzurecrSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurecrSubscriptionName = \"subscription name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// azure container registry service connection\n\t\t_, err = azuredevops.NewServiceEndpointAzureEcr(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureEcrArgs{\n\t\t\tProjectId:               example.ID(),\n\t\t\tServiceEndpointName:     pulumi.String(\"Example AzureCR\"),\n\t\t\tResourceGroup:           pulumi.String(\"example-rg\"),\n\t\t\tAzurecrSpnTenantid:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurecrName:             pulumi.String(\"ExampleAcr\"),\n\t\t\tAzurecrSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurecrSubscriptionName: pulumi.String(\"subscription name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureEcr;\nimport com.pulumi.azuredevops.ServiceEndpointAzureEcrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        // azure container registry service connection\n        var exampleServiceEndpointAzureEcr = new ServiceEndpointAzureEcr(\"exampleServiceEndpointAzureEcr\", ServiceEndpointAzureEcrArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureCR\")\n            .resourceGroup(\"example-rg\")\n            .azurecrSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurecrName(\"ExampleAcr\")\n            .azurecrSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurecrSubscriptionName(\"subscription name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  # azure container registry service connection\n  exampleServiceEndpointAzureEcr:\n    type: azuredevops:ServiceEndpointAzureEcr\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureCR\n      resourceGroup: example-rg\n      azurecrSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurecrName: ExampleAcr\n      azurecrSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurecrSubscriptionName: subscription name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authorize with WorkloadIdentityFederation\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as azurerm from \"@pulumi/azurerm\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst identity = new azurerm.index.ResourceGroup(\"identity\", {\n    name: \"identity\",\n    location: \"UK South\",\n});\nconst exampleUserAssignedIdentity = new azurerm.index.UserAssignedIdentity(\"example\", {\n    location: identity.location,\n    name: \"example-identity\",\n    resourceGroupName: identity.name,\n});\n// azure container registry service connection\nconst exampleServiceEndpointAzureEcr = new azuredevops.ServiceEndpointAzureEcr(\"example\", {\n    projectId: example.id,\n    resourceGroup: \"Example AzureCR ResourceGroup\",\n    serviceEndpointName: \"Example AzureCR\",\n    serviceEndpointAuthenticationScheme: \"WorkloadIdentityFederation\",\n    azurecrSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurecrName: \"ExampleAcr\",\n    azurecrSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurecrSubscriptionName: \"subscription name\",\n    credentials: {\n        serviceprincipalid: exampleUserAssignedIdentity.clientId,\n    },\n});\nconst exampleFederatedIdentityCredential = new azurerm.index.FederatedIdentityCredential(\"example\", {\n    name: \"example-federated-credential\",\n    resourceGroupName: identity.name,\n    parentId: exampleUserAssignedIdentity.id,\n    audience: [\"api://AzureADTokenExchange\"],\n    issuer: exampleServiceEndpointAzureEcr.workloadIdentityFederationIssuer,\n    subject: exampleServiceEndpointAzureEcr.workloadIdentityFederationSubject,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_azurerm as azurerm\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nidentity = azurerm.index.ResourceGroup(\"identity\",\n    name=identity,\n    location=UK South)\nexample_user_assigned_identity = azurerm.index.UserAssignedIdentity(\"example\",\n    location=identity.location,\n    name=example-identity,\n    resource_group_name=identity.name)\n# azure container registry service connection\nexample_service_endpoint_azure_ecr = azuredevops.ServiceEndpointAzureEcr(\"example\",\n    project_id=example.id,\n    resource_group=\"Example AzureCR ResourceGroup\",\n    service_endpoint_name=\"Example AzureCR\",\n    service_endpoint_authentication_scheme=\"WorkloadIdentityFederation\",\n    azurecr_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurecr_name=\"ExampleAcr\",\n    azurecr_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurecr_subscription_name=\"subscription name\",\n    credentials={\n        \"serviceprincipalid\": example_user_assigned_identity[\"clientId\"],\n    })\nexample_federated_identity_credential = azurerm.index.FederatedIdentityCredential(\"example\",\n    name=example-federated-credential,\n    resource_group_name=identity.name,\n    parent_id=example_user_assigned_identity.id,\n    audience=[api://AzureADTokenExchange],\n    issuer=example_service_endpoint_azure_ecr.workload_identity_federation_issuer,\n    subject=example_service_endpoint_azure_ecr.workload_identity_federation_subject)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Azurerm = Pulumi.Azurerm;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var identity = new Azurerm.Index.ResourceGroup(\"identity\", new()\n    {\n        Name = \"identity\",\n        Location = \"UK South\",\n    });\n\n    var exampleUserAssignedIdentity = new Azurerm.Index.UserAssignedIdentity(\"example\", new()\n    {\n        Location = identity.Location,\n        Name = \"example-identity\",\n        ResourceGroupName = identity.Name,\n    });\n\n    // azure container registry service connection\n    var exampleServiceEndpointAzureEcr = new AzureDevOps.ServiceEndpointAzureEcr(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ResourceGroup = \"Example AzureCR ResourceGroup\",\n        ServiceEndpointName = \"Example AzureCR\",\n        ServiceEndpointAuthenticationScheme = \"WorkloadIdentityFederation\",\n        AzurecrSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurecrName = \"ExampleAcr\",\n        AzurecrSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurecrSubscriptionName = \"subscription name\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureEcrCredentialsArgs\n        {\n            Serviceprincipalid = exampleUserAssignedIdentity.ClientId,\n        },\n    });\n\n    var exampleFederatedIdentityCredential = new Azurerm.Index.FederatedIdentityCredential(\"example\", new()\n    {\n        Name = \"example-federated-credential\",\n        ResourceGroupName = identity.Name,\n        ParentId = exampleUserAssignedIdentity.Id,\n        Audience = new[]\n        {\n            \"api://AzureADTokenExchange\",\n        },\n        Issuer = exampleServiceEndpointAzureEcr.WorkloadIdentityFederationIssuer,\n        Subject = exampleServiceEndpointAzureEcr.WorkloadIdentityFederationSubject,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-azurerm/sdk/go/azurerm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tidentity, err := azurerm.NewResourceGroup(ctx, \"identity\", \u0026azurerm.ResourceGroupArgs{\n\t\t\tName:     \"identity\",\n\t\t\tLocation: \"UK South\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := azurerm.NewUserAssignedIdentity(ctx, \"example\", \u0026azurerm.UserAssignedIdentityArgs{\n\t\t\tLocation:          identity.Location,\n\t\t\tName:              \"example-identity\",\n\t\t\tResourceGroupName: identity.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// azure container registry service connection\n\t\texampleServiceEndpointAzureEcr, err := azuredevops.NewServiceEndpointAzureEcr(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureEcrArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tResourceGroup:                       pulumi.String(\"Example AzureCR ResourceGroup\"),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureCR\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"WorkloadIdentityFederation\"),\n\t\t\tAzurecrSpnTenantid:                  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurecrName:                         pulumi.String(\"ExampleAcr\"),\n\t\t\tAzurecrSubscriptionId:               pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurecrSubscriptionName:             pulumi.String(\"subscription name\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureEcrCredentialsArgs{\n\t\t\t\tServiceprincipalid: exampleUserAssignedIdentity.ClientId,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azurerm.NewFederatedIdentityCredential(ctx, \"example\", \u0026azurerm.FederatedIdentityCredentialArgs{\n\t\t\tName:              \"example-federated-credential\",\n\t\t\tResourceGroupName: identity.Name,\n\t\t\tParentId:          exampleUserAssignedIdentity.Id,\n\t\t\tAudience: []string{\n\t\t\t\t\"api://AzureADTokenExchange\",\n\t\t\t},\n\t\t\tIssuer:  exampleServiceEndpointAzureEcr.WorkloadIdentityFederationIssuer,\n\t\t\tSubject: exampleServiceEndpointAzureEcr.WorkloadIdentityFederationSubject,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azurerm.ResourceGroup;\nimport com.pulumi.azurerm.ResourceGroupArgs;\nimport com.pulumi.azurerm.UserAssignedIdentity;\nimport com.pulumi.azurerm.UserAssignedIdentityArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureEcr;\nimport com.pulumi.azuredevops.ServiceEndpointAzureEcrArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureEcrCredentialsArgs;\nimport com.pulumi.azurerm.FederatedIdentityCredential;\nimport com.pulumi.azurerm.FederatedIdentityCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var identity = new ResourceGroup(\"identity\", ResourceGroupArgs.builder()\n            .name(\"identity\")\n            .location(\"UK South\")\n            .build());\n\n        var exampleUserAssignedIdentity = new UserAssignedIdentity(\"exampleUserAssignedIdentity\", UserAssignedIdentityArgs.builder()\n            .location(identity.location())\n            .name(\"example-identity\")\n            .resourceGroupName(identity.name())\n            .build());\n\n        // azure container registry service connection\n        var exampleServiceEndpointAzureEcr = new ServiceEndpointAzureEcr(\"exampleServiceEndpointAzureEcr\", ServiceEndpointAzureEcrArgs.builder()\n            .projectId(example.id())\n            .resourceGroup(\"Example AzureCR ResourceGroup\")\n            .serviceEndpointName(\"Example AzureCR\")\n            .serviceEndpointAuthenticationScheme(\"WorkloadIdentityFederation\")\n            .azurecrSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurecrName(\"ExampleAcr\")\n            .azurecrSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurecrSubscriptionName(\"subscription name\")\n            .credentials(ServiceEndpointAzureEcrCredentialsArgs.builder()\n                .serviceprincipalid(exampleUserAssignedIdentity.clientId())\n                .build())\n            .build());\n\n        var exampleFederatedIdentityCredential = new FederatedIdentityCredential(\"exampleFederatedIdentityCredential\", FederatedIdentityCredentialArgs.builder()\n            .name(\"example-federated-credential\")\n            .resourceGroupName(identity.name())\n            .parentId(exampleUserAssignedIdentity.id())\n            .audience(List.of(\"api://AzureADTokenExchange\"))\n            .issuer(exampleServiceEndpointAzureEcr.workloadIdentityFederationIssuer())\n            .subject(exampleServiceEndpointAzureEcr.workloadIdentityFederationSubject())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  identity:\n    type: azurerm:ResourceGroup\n    properties:\n      name: identity\n      location: UK South\n  exampleUserAssignedIdentity:\n    type: azurerm:UserAssignedIdentity\n    name: example\n    properties:\n      location: ${identity.location}\n      name: example-identity\n      resourceGroupName: ${identity.name}\n  # azure container registry service connection\n  exampleServiceEndpointAzureEcr:\n    type: azuredevops:ServiceEndpointAzureEcr\n    name: example\n    properties:\n      projectId: ${example.id}\n      resourceGroup: Example AzureCR ResourceGroup\n      serviceEndpointName: Example AzureCR\n      serviceEndpointAuthenticationScheme: WorkloadIdentityFederation\n      azurecrSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurecrName: ExampleAcr\n      azurecrSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurecrSubscriptionName: subscription name\n      credentials:\n        serviceprincipalid: ${exampleUserAssignedIdentity.clientId}\n  exampleFederatedIdentityCredential:\n    type: azurerm:FederatedIdentityCredential\n    name: example\n    properties:\n      name: example-federated-credential\n      resourceGroupName: ${identity.name}\n      parentId: ${exampleUserAssignedIdentity.id}\n      audience:\n        - api://AzureADTokenExchange\n      issuer: ${exampleServiceEndpointAzureEcr.workloadIdentityFederationIssuer}\n      subject: ${exampleServiceEndpointAzureEcr.workloadIdentityFederationSubject}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n- [Azure Container Registry REST API](https://docs.microsoft.com/en-us/rest/api/containerregistry/)\n\n## Import\n\nAzure DevOps Azure Container Registry Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointAzureEcr:ServiceEndpointAzureEcr example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"appObjectId":{"type":"string"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azSpnRoleAssignmentId":{"type":"string"},"azSpnRolePermissions":{"type":"string"},"azurecrName":{"type":"string","description":"The Azure container registry name.\n"},"azurecrSpnTenantid":{"type":"string","description":"The tenant id of the service principal.\n"},"azurecrSubscriptionId":{"type":"string","description":"The subscription id of the Azure targets.\n"},"azurecrSubscriptionName":{"type":"string","description":"The subscription name of the Azure targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureEcrCredentials:ServiceEndpointAzureEcrCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"resourceGroup":{"type":"string","description":"The resource group to which the container registry belongs.\n"},"serviceEndpointAuthenticationScheme":{"type":"string","description":"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.\n"},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"},"servicePrincipalId":{"type":"string","description":"The Application(Client) ID of the Service Principal.\n"},"spnObjectId":{"type":"string"},"workloadIdentityFederationIssuer":{"type":"string","description":"The issuer if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `https://vstoken.dev.azure.com/00000000-0000-0000-0000-000000000000`, where the GUID is the Organization ID of your Azure DevOps Organisation.\n"},"workloadIdentityFederationSubject":{"type":"string","description":"The subject if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `sc://\u003corganisation\u003e/\u003cproject\u003e/\u003cservice-connection-name\u003e`.\n"}},"required":["appObjectId","authorization","azSpnRoleAssignmentId","azSpnRolePermissions","azurecrName","azurecrSpnTenantid","azurecrSubscriptionId","azurecrSubscriptionName","projectId","serviceEndpointName","servicePrincipalId","spnObjectId","workloadIdentityFederationIssuer","workloadIdentityFederationSubject"],"inputProperties":{"azurecrName":{"type":"string","description":"The Azure container registry name.\n","willReplaceOnChanges":true},"azurecrSpnTenantid":{"type":"string","description":"The tenant id of the service principal.\n"},"azurecrSubscriptionId":{"type":"string","description":"The subscription id of the Azure targets.\n"},"azurecrSubscriptionName":{"type":"string","description":"The subscription name of the Azure targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureEcrCredentials:ServiceEndpointAzureEcrCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"resourceGroup":{"type":"string","description":"The resource group to which the container registry belongs.\n","willReplaceOnChanges":true},"serviceEndpointAuthenticationScheme":{"type":"string","description":"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.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointAzureEcr resources.\n","properties":{"appObjectId":{"type":"string"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azSpnRoleAssignmentId":{"type":"string"},"azSpnRolePermissions":{"type":"string"},"azurecrName":{"type":"string","description":"The Azure container registry name.\n","willReplaceOnChanges":true},"azurecrSpnTenantid":{"type":"string","description":"The tenant id of the service principal.\n"},"azurecrSubscriptionId":{"type":"string","description":"The subscription id of the Azure targets.\n"},"azurecrSubscriptionName":{"type":"string","description":"The subscription name of the Azure targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureEcrCredentials:ServiceEndpointAzureEcrCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"resourceGroup":{"type":"string","description":"The resource group to which the container registry belongs.\n","willReplaceOnChanges":true},"serviceEndpointAuthenticationScheme":{"type":"string","description":"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.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"},"servicePrincipalId":{"type":"string","description":"The Application(Client) ID of the Service Principal.\n"},"spnObjectId":{"type":"string"},"workloadIdentityFederationIssuer":{"type":"string","description":"The issuer if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `https://vstoken.dev.azure.com/00000000-0000-0000-0000-000000000000`, where the GUID is the Organization ID of your Azure DevOps Organisation.\n"},"workloadIdentityFederationSubject":{"type":"string","description":"The subject if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `sc://\u003corganisation\u003e/\u003cproject\u003e/\u003cservice-connection-name\u003e`.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointAzureRM:ServiceEndpointAzureRM":{"description":"Manages Manual or Automatic Azure Resource Manager service endpoint within Azure DevOps.\n\n~\u003e**NOTE:**\nIf you receive an error message like:```Failed to obtain the Json Web Token(JWT) using service principal client ID. Exception message: A configuration issue is preventing authentication - check the error message from the server for details.```\nYou should check the secret of this Application or if you recently rotate the secret, wait a few minutes for Azure to propagate the secret.\n\n## Requirements (Manual AzureRM Service Endpoint)\n\nBefore to create a service end point in Azure DevOps, you need to create a Service Principal in your Azure subscription.\n\nFor detailed steps to create a service principal with Azure cli see the [documentation](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli?view=azure-cli-latest)\n\n## Example Usage\n\n### Service Principal Manual AzureRM Service Endpoint (Subscription Scoped)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    description: \"Managed by Pulumi\",\n    serviceEndpointAuthenticationScheme: \"ServicePrincipal\",\n    credentials: {\n        serviceprincipalid: \"00000000-0000-0000-0000-000000000000\",\n        serviceprincipalkey: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    description=\"Managed by Pulumi\",\n    service_endpoint_authentication_scheme=\"ServicePrincipal\",\n    credentials={\n        \"serviceprincipalid\": \"00000000-0000-0000-0000-000000000000\",\n        \"serviceprincipalkey\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointAuthenticationScheme = \"ServicePrincipal\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureRMCredentialsArgs\n        {\n            Serviceprincipalid = \"00000000-0000-0000-0000-000000000000\",\n            Serviceprincipalkey = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureRM\"),\n\t\t\tDescription:                         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"ServicePrincipal\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureRMCredentialsArgs{\n\t\t\t\tServiceprincipalid:  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\tServiceprincipalkey: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t\tAzurermSpnTenantid:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName: pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureRMCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointAuthenticationScheme(\"ServicePrincipal\")\n            .credentials(ServiceEndpointAzureRMCredentialsArgs.builder()\n                .serviceprincipalid(\"00000000-0000-0000-0000-000000000000\")\n                .serviceprincipalkey(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      description: Managed by Pulumi\n      serviceEndpointAuthenticationScheme: ServicePrincipal\n      credentials:\n        serviceprincipalid: 00000000-0000-0000-0000-000000000000\n        serviceprincipalkey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Service Principal Manual AzureRM Service Endpoint (ManagementGroup Scoped)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    description: \"Managed by Pulumi\",\n    serviceEndpointAuthenticationScheme: \"ServicePrincipal\",\n    credentials: {\n        serviceprincipalid: \"00000000-0000-0000-0000-000000000000\",\n        serviceprincipalkey: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermManagementGroupId: \"managementGroup\",\n    azurermManagementGroupName: \"managementGroup\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    description=\"Managed by Pulumi\",\n    service_endpoint_authentication_scheme=\"ServicePrincipal\",\n    credentials={\n        \"serviceprincipalid\": \"00000000-0000-0000-0000-000000000000\",\n        \"serviceprincipalkey\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_management_group_id=\"managementGroup\",\n    azurerm_management_group_name=\"managementGroup\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointAuthenticationScheme = \"ServicePrincipal\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureRMCredentialsArgs\n        {\n            Serviceprincipalid = \"00000000-0000-0000-0000-000000000000\",\n            Serviceprincipalkey = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermManagementGroupId = \"managementGroup\",\n        AzurermManagementGroupName = \"managementGroup\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureRM\"),\n\t\t\tDescription:                         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"ServicePrincipal\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureRMCredentialsArgs{\n\t\t\t\tServiceprincipalid:  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\tServiceprincipalkey: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t\tAzurermSpnTenantid:         pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermManagementGroupId:   pulumi.String(\"managementGroup\"),\n\t\t\tAzurermManagementGroupName: pulumi.String(\"managementGroup\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureRMCredentialsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointAuthenticationScheme(\"ServicePrincipal\")\n            .credentials(ServiceEndpointAzureRMCredentialsArgs.builder()\n                .serviceprincipalid(\"00000000-0000-0000-0000-000000000000\")\n                .serviceprincipalkey(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermManagementGroupId(\"managementGroup\")\n            .azurermManagementGroupName(\"managementGroup\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      description: Managed by Pulumi\n      serviceEndpointAuthenticationScheme: ServicePrincipal\n      credentials:\n        serviceprincipalid: 00000000-0000-0000-0000-000000000000\n        serviceprincipalkey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermManagementGroupId: managementGroup\n      azurermManagementGroupName: managementGroup\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Service Principal Automatic AzureRM Service Endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    serviceEndpointAuthenticationScheme: \"ServicePrincipal\",\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    service_endpoint_authentication_scheme=\"ServicePrincipal\",\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        ServiceEndpointAuthenticationScheme = \"ServicePrincipal\",\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureRM\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"ServicePrincipal\"),\n\t\t\tAzurermSpnTenantid:                  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:               pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName:             pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .serviceEndpointAuthenticationScheme(\"ServicePrincipal\")\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      serviceEndpointAuthenticationScheme: ServicePrincipal\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Workload Identity Federation Manual AzureRM Service Endpoint (Subscription Scoped)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as azurerm from \"@pulumi/azurerm\";\n\nconst serviceConnectionName = \"example-federated-sc\";\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst identity = new azurerm.index.ResourceGroup(\"identity\", {\n    name: \"identity\",\n    location: \"UK South\",\n});\nconst exampleUserAssignedIdentity = new azurerm.index.UserAssignedIdentity(\"example\", {\n    location: identity.location,\n    name: \"example-identity\",\n    resourceGroupName: \"azurerm_resource_group.identity.name\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: serviceConnectionName,\n    description: \"Managed by Pulumi\",\n    serviceEndpointAuthenticationScheme: \"WorkloadIdentityFederation\",\n    credentials: {\n        serviceprincipalid: exampleUserAssignedIdentity.clientId,\n    },\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\nconst exampleFederatedIdentityCredential = new azurerm.index.FederatedIdentityCredential(\"example\", {\n    name: \"example-federated-credential\",\n    resourceGroupName: identity.name,\n    parentId: exampleUserAssignedIdentity.id,\n    audience: [\"api://AzureADTokenExchange\"],\n    issuer: exampleServiceEndpointAzureRM.workloadIdentityFederationIssuer,\n    subject: exampleServiceEndpointAzureRM.workloadIdentityFederationSubject,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_azurerm as azurerm\n\nservice_connection_name = \"example-federated-sc\"\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nidentity = azurerm.index.ResourceGroup(\"identity\",\n    name=identity,\n    location=UK South)\nexample_user_assigned_identity = azurerm.index.UserAssignedIdentity(\"example\",\n    location=identity.location,\n    name=example-identity,\n    resource_group_name=azurerm_resource_group.identity.name)\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=service_connection_name,\n    description=\"Managed by Pulumi\",\n    service_endpoint_authentication_scheme=\"WorkloadIdentityFederation\",\n    credentials={\n        \"serviceprincipalid\": example_user_assigned_identity[\"clientId\"],\n    },\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\nexample_federated_identity_credential = azurerm.index.FederatedIdentityCredential(\"example\",\n    name=example-federated-credential,\n    resource_group_name=identity.name,\n    parent_id=example_user_assigned_identity.id,\n    audience=[api://AzureADTokenExchange],\n    issuer=example_service_endpoint_azure_rm.workload_identity_federation_issuer,\n    subject=example_service_endpoint_azure_rm.workload_identity_federation_subject)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Azurerm = Pulumi.Azurerm;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var serviceConnectionName = \"example-federated-sc\";\n\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var identity = new Azurerm.Index.ResourceGroup(\"identity\", new()\n    {\n        Name = \"identity\",\n        Location = \"UK South\",\n    });\n\n    var exampleUserAssignedIdentity = new Azurerm.Index.UserAssignedIdentity(\"example\", new()\n    {\n        Location = identity.Location,\n        Name = \"example-identity\",\n        ResourceGroupName = \"azurerm_resource_group.identity.name\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = serviceConnectionName,\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointAuthenticationScheme = \"WorkloadIdentityFederation\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureRMCredentialsArgs\n        {\n            Serviceprincipalid = exampleUserAssignedIdentity.ClientId,\n        },\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n    var exampleFederatedIdentityCredential = new Azurerm.Index.FederatedIdentityCredential(\"example\", new()\n    {\n        Name = \"example-federated-credential\",\n        ResourceGroupName = identity.Name,\n        ParentId = exampleUserAssignedIdentity.Id,\n        Audience = new[]\n        {\n            \"api://AzureADTokenExchange\",\n        },\n        Issuer = exampleServiceEndpointAzureRM.WorkloadIdentityFederationIssuer,\n        Subject = exampleServiceEndpointAzureRM.WorkloadIdentityFederationSubject,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-azurerm/sdk/go/azurerm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tserviceConnectionName := \"example-federated-sc\"\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tidentity, err := azurerm.NewResourceGroup(ctx, \"identity\", \u0026azurerm.ResourceGroupArgs{\n\t\t\tName:     \"identity\",\n\t\t\tLocation: \"UK South\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleUserAssignedIdentity, err := azurerm.NewUserAssignedIdentity(ctx, \"example\", \u0026azurerm.UserAssignedIdentityArgs{\n\t\t\tLocation:          identity.Location,\n\t\t\tName:              \"example-identity\",\n\t\t\tResourceGroupName: \"azurerm_resource_group.identity.name\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointAzureRM, err := azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(serviceConnectionName),\n\t\t\tDescription:                         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"WorkloadIdentityFederation\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureRMCredentialsArgs{\n\t\t\t\tServiceprincipalid: exampleUserAssignedIdentity.ClientId,\n\t\t\t},\n\t\t\tAzurermSpnTenantid:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName: pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azurerm.NewFederatedIdentityCredential(ctx, \"example\", \u0026azurerm.FederatedIdentityCredentialArgs{\n\t\t\tName:              \"example-federated-credential\",\n\t\t\tResourceGroupName: identity.Name,\n\t\t\tParentId:          exampleUserAssignedIdentity.Id,\n\t\t\tAudience: []string{\n\t\t\t\t\"api://AzureADTokenExchange\",\n\t\t\t},\n\t\t\tIssuer:  exampleServiceEndpointAzureRM.WorkloadIdentityFederationIssuer,\n\t\t\tSubject: exampleServiceEndpointAzureRM.WorkloadIdentityFederationSubject,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azurerm.ResourceGroup;\nimport com.pulumi.azurerm.ResourceGroupArgs;\nimport com.pulumi.azurerm.UserAssignedIdentity;\nimport com.pulumi.azurerm.UserAssignedIdentityArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureRMCredentialsArgs;\nimport com.pulumi.azurerm.FederatedIdentityCredential;\nimport com.pulumi.azurerm.FederatedIdentityCredentialArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var serviceConnectionName = \"example-federated-sc\";\n\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var identity = new ResourceGroup(\"identity\", ResourceGroupArgs.builder()\n            .name(\"identity\")\n            .location(\"UK South\")\n            .build());\n\n        var exampleUserAssignedIdentity = new UserAssignedIdentity(\"exampleUserAssignedIdentity\", UserAssignedIdentityArgs.builder()\n            .location(identity.location())\n            .name(\"example-identity\")\n            .resourceGroupName(\"azurerm_resource_group.identity.name\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(serviceConnectionName)\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointAuthenticationScheme(\"WorkloadIdentityFederation\")\n            .credentials(ServiceEndpointAzureRMCredentialsArgs.builder()\n                .serviceprincipalid(exampleUserAssignedIdentity.clientId())\n                .build())\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n        var exampleFederatedIdentityCredential = new FederatedIdentityCredential(\"exampleFederatedIdentityCredential\", FederatedIdentityCredentialArgs.builder()\n            .name(\"example-federated-credential\")\n            .resourceGroupName(identity.name())\n            .parentId(exampleUserAssignedIdentity.id())\n            .audience(List.of(\"api://AzureADTokenExchange\"))\n            .issuer(exampleServiceEndpointAzureRM.workloadIdentityFederationIssuer())\n            .subject(exampleServiceEndpointAzureRM.workloadIdentityFederationSubject())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  identity:\n    type: azurerm:ResourceGroup\n    properties:\n      name: identity\n      location: UK South\n  exampleUserAssignedIdentity:\n    type: azurerm:UserAssignedIdentity\n    name: example\n    properties:\n      location: ${identity.location}\n      name: example-identity\n      resourceGroupName: azurerm_resource_group.identity.name\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: ${serviceConnectionName}\n      description: Managed by Pulumi\n      serviceEndpointAuthenticationScheme: WorkloadIdentityFederation\n      credentials:\n        serviceprincipalid: ${exampleUserAssignedIdentity.clientId}\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n  exampleFederatedIdentityCredential:\n    type: azurerm:FederatedIdentityCredential\n    name: example\n    properties:\n      name: example-federated-credential\n      resourceGroupName: ${identity.name}\n      parentId: ${exampleUserAssignedIdentity.id}\n      audience:\n        - api://AzureADTokenExchange\n      issuer: ${exampleServiceEndpointAzureRM.workloadIdentityFederationIssuer}\n      subject: ${exampleServiceEndpointAzureRM.workloadIdentityFederationSubject}\nvariables:\n  serviceConnectionName: example-federated-sc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Workload Identity Federation Automatic AzureRM Service Endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    serviceEndpointAuthenticationScheme: \"WorkloadIdentityFederation\",\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    service_endpoint_authentication_scheme=\"WorkloadIdentityFederation\",\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        ServiceEndpointAuthenticationScheme = \"WorkloadIdentityFederation\",\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureRM\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"WorkloadIdentityFederation\"),\n\t\t\tAzurermSpnTenantid:                  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:               pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName:             pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .serviceEndpointAuthenticationScheme(\"WorkloadIdentityFederation\")\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      serviceEndpointAuthenticationScheme: WorkloadIdentityFederation\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Managed Identity AzureRM Service Endpoint\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    serviceEndpointAuthenticationScheme: \"ManagedServiceIdentity\",\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    service_endpoint_authentication_scheme=\"ManagedServiceIdentity\",\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        ServiceEndpointAuthenticationScheme = \"ManagedServiceIdentity\",\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:                           example.ID(),\n\t\t\tServiceEndpointName:                 pulumi.String(\"Example AzureRM\"),\n\t\t\tServiceEndpointAuthenticationScheme: pulumi.String(\"ManagedServiceIdentity\"),\n\t\t\tAzurermSpnTenantid:                  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:               pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName:             pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .serviceEndpointAuthenticationScheme(\"ManagedServiceIdentity\")\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      serviceEndpointAuthenticationScheme: ManagedServiceIdentity\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service End points](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Azure Resource Manager Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointAzureRM:ServiceEndpointAzureRM example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azurermManagementGroupId":{"type":"string","description":"The Management group ID of the Azure targets.\n"},"azurermManagementGroupName":{"type":"string","description":"The Management group Name of the targets.\n"},"azurermSpnTenantid":{"type":"string","description":"The Tenant ID of the service principal.\n"},"azurermSubscriptionId":{"type":"string","description":"The Subscription ID of the Azure targets.\n"},"azurermSubscriptionName":{"type":"string","description":"The Subscription Name of the targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMCredentials:ServiceEndpointAzureRMCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"Service connection description.\n"},"environment":{"type":"string","description":"The Cloud Environment to use. Defaults to `AzureCloud`. Possible values are `AzureCloud`, `AzureChinaCloud`, `AzureUSGovernment`, `AzureGermanCloud` and `AzureStack`. Changing this forces a new resource to be created.\n"},"features":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMFeatures:ServiceEndpointAzureRMFeatures","description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"resourceGroup":{"type":"string","description":"The resource group used for scope of automatic service endpoint.\n"},"serverUrl":{"type":"string","description":"The server URL of the service endpoint. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of either `Subscription` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionId`\" pulumi-lang-dotnet=\"`AzurermSubscriptionId`\" pulumi-lang-go=\"`azurermSubscriptionId`\" pulumi-lang-python=\"`azurerm_subscription_id`\" pulumi-lang-yaml=\"`azurermSubscriptionId`\" pulumi-lang-java=\"`azurermSubscriptionId`\"\u003e`azurerm_subscription_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionName`\" pulumi-lang-dotnet=\"`AzurermSubscriptionName`\" pulumi-lang-go=\"`azurermSubscriptionName`\" pulumi-lang-python=\"`azurerm_subscription_name`\" pulumi-lang-yaml=\"`azurermSubscriptionName`\" pulumi-lang-java=\"`azurermSubscriptionName`\"\u003e`azurerm_subscription_name`\u003c/span\u003e or `ManagementGroup` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupId`\" pulumi-lang-dotnet=\"`AzurermManagementGroupId`\" pulumi-lang-go=\"`azurermManagementGroupId`\" pulumi-lang-python=\"`azurerm_management_group_id`\" pulumi-lang-yaml=\"`azurermManagementGroupId`\" pulumi-lang-java=\"`azurermManagementGroupId`\"\u003e`azurerm_management_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupName`\" pulumi-lang-dotnet=\"`AzurermManagementGroupName`\" pulumi-lang-go=\"`azurermManagementGroupName`\" pulumi-lang-python=\"`azurerm_management_group_name`\" pulumi-lang-yaml=\"`azurermManagementGroupName`\" pulumi-lang-java=\"`azurermManagementGroupName`\"\u003e`azurerm_management_group_name`\u003c/span\u003e values must be specified.\n"},"serviceEndpointAuthenticationScheme":{"type":"string","description":"Specifies the type of Azure Resource Manager Service Endpoint. Possible values are `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility.\n\n\u003e **NOTE:** The `WorkloadIdentityFederation` authentication scheme is currently in private preview. Your organisation must be part of the preview and the feature toggle must be turned on to use it. More details can be found [here](https://aka.ms/azdo-rm-workload-identity).\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint Name.\n"},"servicePrincipalId":{"type":"string","description":"The Application(Client) ID of the Service Principal.\n"},"workloadIdentityFederationIssuer":{"type":"string","description":"The issuer if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `https://vstoken.dev.azure.com/00000000-0000-0000-0000-000000000000`, where the GUID is the Organization ID of your Azure DevOps Organisation.\n"},"workloadIdentityFederationSubject":{"type":"string","description":"The subject if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `sc://\u003corganisation\u003e/\u003cproject\u003e/\u003cservice-connection-name\u003e`.\n"}},"required":["authorization","azurermSpnTenantid","projectId","serverUrl","serviceEndpointName","servicePrincipalId","workloadIdentityFederationIssuer","workloadIdentityFederationSubject"],"inputProperties":{"azurermManagementGroupId":{"type":"string","description":"The Management group ID of the Azure targets.\n"},"azurermManagementGroupName":{"type":"string","description":"The Management group Name of the targets.\n"},"azurermSpnTenantid":{"type":"string","description":"The Tenant ID of the service principal.\n"},"azurermSubscriptionId":{"type":"string","description":"The Subscription ID of the Azure targets.\n"},"azurermSubscriptionName":{"type":"string","description":"The Subscription Name of the targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMCredentials:ServiceEndpointAzureRMCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"Service connection description.\n"},"environment":{"type":"string","description":"The Cloud Environment to use. Defaults to `AzureCloud`. Possible values are `AzureCloud`, `AzureChinaCloud`, `AzureUSGovernment`, `AzureGermanCloud` and `AzureStack`. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMFeatures:ServiceEndpointAzureRMFeatures","description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"resourceGroup":{"type":"string","description":"The resource group used for scope of automatic service endpoint.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the service endpoint. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of either `Subscription` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionId`\" pulumi-lang-dotnet=\"`AzurermSubscriptionId`\" pulumi-lang-go=\"`azurermSubscriptionId`\" pulumi-lang-python=\"`azurerm_subscription_id`\" pulumi-lang-yaml=\"`azurermSubscriptionId`\" pulumi-lang-java=\"`azurermSubscriptionId`\"\u003e`azurerm_subscription_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionName`\" pulumi-lang-dotnet=\"`AzurermSubscriptionName`\" pulumi-lang-go=\"`azurermSubscriptionName`\" pulumi-lang-python=\"`azurerm_subscription_name`\" pulumi-lang-yaml=\"`azurermSubscriptionName`\" pulumi-lang-java=\"`azurermSubscriptionName`\"\u003e`azurerm_subscription_name`\u003c/span\u003e or `ManagementGroup` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupId`\" pulumi-lang-dotnet=\"`AzurermManagementGroupId`\" pulumi-lang-go=\"`azurermManagementGroupId`\" pulumi-lang-python=\"`azurerm_management_group_id`\" pulumi-lang-yaml=\"`azurermManagementGroupId`\" pulumi-lang-java=\"`azurermManagementGroupId`\"\u003e`azurerm_management_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupName`\" pulumi-lang-dotnet=\"`AzurermManagementGroupName`\" pulumi-lang-go=\"`azurermManagementGroupName`\" pulumi-lang-python=\"`azurerm_management_group_name`\" pulumi-lang-yaml=\"`azurermManagementGroupName`\" pulumi-lang-java=\"`azurermManagementGroupName`\"\u003e`azurerm_management_group_name`\u003c/span\u003e values must be specified.\n","willReplaceOnChanges":true},"serviceEndpointAuthenticationScheme":{"type":"string","description":"Specifies the type of Azure Resource Manager Service Endpoint. Possible values are `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility.\n\n\u003e **NOTE:** The `WorkloadIdentityFederation` authentication scheme is currently in private preview. Your organisation must be part of the preview and the feature toggle must be turned on to use it. More details can be found [here](https://aka.ms/azdo-rm-workload-identity).\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint Name.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointAzureRM resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azurermManagementGroupId":{"type":"string","description":"The Management group ID of the Azure targets.\n"},"azurermManagementGroupName":{"type":"string","description":"The Management group Name of the targets.\n"},"azurermSpnTenantid":{"type":"string","description":"The Tenant ID of the service principal.\n"},"azurermSubscriptionId":{"type":"string","description":"The Subscription ID of the Azure targets.\n"},"azurermSubscriptionName":{"type":"string","description":"The Subscription Name of the targets.\n"},"credentials":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMCredentials:ServiceEndpointAzureRMCredentials","description":"A \u003cspan pulumi-lang-nodejs=\"`credentials`\" pulumi-lang-dotnet=\"`Credentials`\" pulumi-lang-go=\"`credentials`\" pulumi-lang-python=\"`credentials`\" pulumi-lang-yaml=\"`credentials`\" pulumi-lang-java=\"`credentials`\"\u003e`credentials`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string","description":"Service connection description.\n"},"environment":{"type":"string","description":"The Cloud Environment to use. Defaults to `AzureCloud`. Possible values are `AzureCloud`, `AzureChinaCloud`, `AzureUSGovernment`, `AzureGermanCloud` and `AzureStack`. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"features":{"$ref":"#/types/azuredevops:index/ServiceEndpointAzureRMFeatures:ServiceEndpointAzureRMFeatures","description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"resourceGroup":{"type":"string","description":"The resource group used for scope of automatic service endpoint.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the service endpoint. Changing this forces a new resource to be created.\n\n\u003e **NOTE:** One of either `Subscription` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionId`\" pulumi-lang-dotnet=\"`AzurermSubscriptionId`\" pulumi-lang-go=\"`azurermSubscriptionId`\" pulumi-lang-python=\"`azurerm_subscription_id`\" pulumi-lang-yaml=\"`azurermSubscriptionId`\" pulumi-lang-java=\"`azurermSubscriptionId`\"\u003e`azurerm_subscription_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermSubscriptionName`\" pulumi-lang-dotnet=\"`AzurermSubscriptionName`\" pulumi-lang-go=\"`azurermSubscriptionName`\" pulumi-lang-python=\"`azurerm_subscription_name`\" pulumi-lang-yaml=\"`azurermSubscriptionName`\" pulumi-lang-java=\"`azurermSubscriptionName`\"\u003e`azurerm_subscription_name`\u003c/span\u003e or `ManagementGroup` scoped i.e. \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupId`\" pulumi-lang-dotnet=\"`AzurermManagementGroupId`\" pulumi-lang-go=\"`azurermManagementGroupId`\" pulumi-lang-python=\"`azurerm_management_group_id`\" pulumi-lang-yaml=\"`azurermManagementGroupId`\" pulumi-lang-java=\"`azurermManagementGroupId`\"\u003e`azurerm_management_group_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azurermManagementGroupName`\" pulumi-lang-dotnet=\"`AzurermManagementGroupName`\" pulumi-lang-go=\"`azurermManagementGroupName`\" pulumi-lang-python=\"`azurerm_management_group_name`\" pulumi-lang-yaml=\"`azurermManagementGroupName`\" pulumi-lang-java=\"`azurermManagementGroupName`\"\u003e`azurerm_management_group_name`\u003c/span\u003e values must be specified.\n","willReplaceOnChanges":true},"serviceEndpointAuthenticationScheme":{"type":"string","description":"Specifies the type of Azure Resource Manager Service Endpoint. Possible values are `WorkloadIdentityFederation`, `ManagedServiceIdentity` or `ServicePrincipal`. Defaults to `ServicePrincipal` for backwards compatibility.\n\n\u003e **NOTE:** The `WorkloadIdentityFederation` authentication scheme is currently in private preview. Your organisation must be part of the preview and the feature toggle must be turned on to use it. More details can be found [here](https://aka.ms/azdo-rm-workload-identity).\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint Name.\n"},"servicePrincipalId":{"type":"string","description":"The Application(Client) ID of the Service Principal.\n"},"workloadIdentityFederationIssuer":{"type":"string","description":"The issuer if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `https://vstoken.dev.azure.com/00000000-0000-0000-0000-000000000000`, where the GUID is the Organization ID of your Azure DevOps Organisation.\n"},"workloadIdentityFederationSubject":{"type":"string","description":"The subject if \u003cspan pulumi-lang-nodejs=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-dotnet=\"`ServiceEndpointAuthenticationScheme`\" pulumi-lang-go=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-python=\"`service_endpoint_authentication_scheme`\" pulumi-lang-yaml=\"`serviceEndpointAuthenticationScheme`\" pulumi-lang-java=\"`serviceEndpointAuthenticationScheme`\"\u003e`service_endpoint_authentication_scheme`\u003c/span\u003e is set to `WorkloadIdentityFederation`. This looks like `sc://\u003corganisation\u003e/\u003cproject\u003e/\u003cservice-connection-name\u003e`.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointBitBucket:ServiceEndpointBitBucket":{"description":"Manages a Bitbucket service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointBitBucket = new azuredevops.ServiceEndpointBitBucket(\"example\", {\n    projectId: example.id,\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Bitbucket\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_bit_bucket = azuredevops.ServiceEndpointBitBucket(\"example\",\n    project_id=example.id,\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Bitbucket\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointBitBucket = new AzureDevOps.ServiceEndpointBitBucket(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Bitbucket\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointBitBucket(ctx, \"example\", \u0026azuredevops.ServiceEndpointBitBucketArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Bitbucket\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointBitBucket;\nimport com.pulumi.azuredevops.ServiceEndpointBitBucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointBitBucket = new ServiceEndpointBitBucket(\"exampleServiceEndpointBitBucket\", ServiceEndpointBitBucketArgs.builder()\n            .projectId(example.id())\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Bitbucket\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointBitBucket:\n    type: azuredevops:ServiceEndpointBitBucket\n    name: example\n    properties:\n      projectId: ${example.id}\n      username: username\n      password: password\n      serviceEndpointName: Example Bitbucket\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Bitbucket Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointBitBucket:ServiceEndpointBitBucket example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"Bitbucket account password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Bitbucket account username.\n"}},"required":["authorization","password","projectId","serviceEndpointName","username"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"Bitbucket account password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Bitbucket account username.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointBitBucket resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"Bitbucket account password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Bitbucket account username.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointDockerRegistry:ServiceEndpointDockerRegistry":{"description":"Manages a Docker Registry service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\n// dockerhub registry service connection\nconst exampleServiceEndpointDockerRegistry = new azuredevops.ServiceEndpointDockerRegistry(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Docker Hub\",\n    dockerUsername: \"example\",\n    dockerEmail: \"email@example.com\",\n    dockerPassword: \"12345\",\n    registryType: \"DockerHub\",\n});\n// other docker registry service connection\nconst example_other = new azuredevops.ServiceEndpointDockerRegistry(\"example-other\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Docker Registry\",\n    dockerRegistry: \"https://sample.azurecr.io/v1\",\n    dockerUsername: \"sample\",\n    dockerPassword: \"12345\",\n    registryType: \"Others\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\n# dockerhub registry service connection\nexample_service_endpoint_docker_registry = azuredevops.ServiceEndpointDockerRegistry(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Docker Hub\",\n    docker_username=\"example\",\n    docker_email=\"email@example.com\",\n    docker_password=\"12345\",\n    registry_type=\"DockerHub\")\n# other docker registry service connection\nexample_other = azuredevops.ServiceEndpointDockerRegistry(\"example-other\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Docker Registry\",\n    docker_registry=\"https://sample.azurecr.io/v1\",\n    docker_username=\"sample\",\n    docker_password=\"12345\",\n    registry_type=\"Others\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    // dockerhub registry service connection\n    var exampleServiceEndpointDockerRegistry = new AzureDevOps.ServiceEndpointDockerRegistry(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Docker Hub\",\n        DockerUsername = \"example\",\n        DockerEmail = \"email@example.com\",\n        DockerPassword = \"12345\",\n        RegistryType = \"DockerHub\",\n    });\n\n    // other docker registry service connection\n    var example_other = new AzureDevOps.ServiceEndpointDockerRegistry(\"example-other\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Docker Registry\",\n        DockerRegistryUrl = \"https://sample.azurecr.io/v1\",\n        DockerUsername = \"sample\",\n        DockerPassword = \"12345\",\n        RegistryType = \"Others\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// dockerhub registry service connection\n\t\t_, err = azuredevops.NewServiceEndpointDockerRegistry(ctx, \"example\", \u0026azuredevops.ServiceEndpointDockerRegistryArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Docker Hub\"),\n\t\t\tDockerUsername:      pulumi.String(\"example\"),\n\t\t\tDockerEmail:         pulumi.String(\"email@example.com\"),\n\t\t\tDockerPassword:      pulumi.String(\"12345\"),\n\t\t\tRegistryType:        pulumi.String(\"DockerHub\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// other docker registry service connection\n\t\t_, err = azuredevops.NewServiceEndpointDockerRegistry(ctx, \"example-other\", \u0026azuredevops.ServiceEndpointDockerRegistryArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Docker Registry\"),\n\t\t\tDockerRegistry:      pulumi.String(\"https://sample.azurecr.io/v1\"),\n\t\t\tDockerUsername:      pulumi.String(\"sample\"),\n\t\t\tDockerPassword:      pulumi.String(\"12345\"),\n\t\t\tRegistryType:        pulumi.String(\"Others\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointDockerRegistry;\nimport com.pulumi.azuredevops.ServiceEndpointDockerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        // dockerhub registry service connection\n        var exampleServiceEndpointDockerRegistry = new ServiceEndpointDockerRegistry(\"exampleServiceEndpointDockerRegistry\", ServiceEndpointDockerRegistryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Docker Hub\")\n            .dockerUsername(\"example\")\n            .dockerEmail(\"email@example.com\")\n            .dockerPassword(\"12345\")\n            .registryType(\"DockerHub\")\n            .build());\n\n        // other docker registry service connection\n        var example_other = new ServiceEndpointDockerRegistry(\"example-other\", ServiceEndpointDockerRegistryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Docker Registry\")\n            .dockerRegistry(\"https://sample.azurecr.io/v1\")\n            .dockerUsername(\"sample\")\n            .dockerPassword(\"12345\")\n            .registryType(\"Others\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  # dockerhub registry service connection\n  exampleServiceEndpointDockerRegistry:\n    type: azuredevops:ServiceEndpointDockerRegistry\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Docker Hub\n      dockerUsername: example\n      dockerEmail: email@example.com\n      dockerPassword: '12345'\n      registryType: DockerHub\n  # other docker registry service connection\n  example-other:\n    type: azuredevops:ServiceEndpointDockerRegistry\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Docker Registry\n      dockerRegistry: https://sample.azurecr.io/v1\n      dockerUsername: sample\n      dockerPassword: '12345'\n      registryType: Others\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n- [Docker Registry Service Connection](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml#sep-docreg)\n\n## Import\n\nAzure DevOps Docker Registry Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointDockerRegistry:ServiceEndpointDockerRegistry example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"dockerEmail":{"type":"string","description":"The email for Docker account user.\n"},"dockerPassword":{"type":"string","description":"The password for the account user identified above.\n","secret":true},"dockerRegistry":{"type":"string","description":"The URL of the Docker registry. (Default: \"https://index.docker.io/v1/\")\n","language":{"csharp":{"name":"DockerRegistryUrl"}}},"dockerUsername":{"type":"string","description":"The identifier of the Docker account user.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"registryType":{"type":"string","description":"Can be \"DockerHub\" or \"Others\" (Default \"DockerHub\")\n"},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"}},"required":["authorization","dockerRegistry","projectId","registryType","serviceEndpointName"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"dockerEmail":{"type":"string","description":"The email for Docker account user.\n"},"dockerPassword":{"type":"string","description":"The password for the account user identified above.\n","secret":true},"dockerRegistry":{"type":"string","description":"The URL of the Docker registry. (Default: \"https://index.docker.io/v1/\")\n","language":{"csharp":{"name":"DockerRegistryUrl"}}},"dockerUsername":{"type":"string","description":"The identifier of the Docker account user.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"registryType":{"type":"string","description":"Can be \"DockerHub\" or \"Others\" (Default \"DockerHub\")\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointDockerRegistry resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"dockerEmail":{"type":"string","description":"The email for Docker account user.\n"},"dockerPassword":{"type":"string","description":"The password for the account user identified above.\n","secret":true},"dockerRegistry":{"type":"string","description":"The URL of the Docker registry. (Default: \"https://index.docker.io/v1/\")\n","language":{"csharp":{"name":"DockerRegistryUrl"}}},"dockerUsername":{"type":"string","description":"The identifier of the Docker account user.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"registryType":{"type":"string","description":"Can be \"DockerHub\" or \"Others\" (Default \"DockerHub\")\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name you will use to refer to this service connection in task inputs.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointGeneric:ServiceEndpointGeneric":{"description":"Manages a generic service endpoint within Azure DevOps, which can be used to authenticate to any external server using\nbasic authentication via a username and password.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGeneric = new azuredevops.ServiceEndpointGeneric(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://some-server.example.com\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_generic = azuredevops.ServiceEndpointGeneric(\"example\",\n    project_id=example.id,\n    server_url=\"https://some-server.example.com\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGeneric = new AzureDevOps.ServiceEndpointGeneric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://some-server.example.com\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGeneric(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://some-server.example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGeneric;\nimport com.pulumi.azuredevops.ServiceEndpointGenericArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGeneric = new ServiceEndpointGeneric(\"exampleServiceEndpointGeneric\", ServiceEndpointGenericArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://some-server.example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGeneric:\n    type: azuredevops:ServiceEndpointGeneric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://some-server.example.com\n      username: username\n      password: password\n      serviceEndpointName: Example Generic\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Generic Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointGeneric:ServiceEndpointGeneric example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password or token key used to authenticate to the server url using basic authentication.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The service endpoint name.\n"},"username":{"type":"string","description":"The username used to authenticate to the server url using basic authentication.\n"}},"required":["authorization","projectId","serverUrl","serviceEndpointName"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password or token key used to authenticate to the server url using basic authentication.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The service endpoint name.\n"},"username":{"type":"string","description":"The username used to authenticate to the server url using basic authentication.\n"}},"requiredInputs":["projectId","serverUrl","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointGeneric resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password or token key used to authenticate to the server url using basic authentication.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The service endpoint name.\n"},"username":{"type":"string","description":"The username used to authenticate to the server url using basic authentication.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointGenericGit:ServiceEndpointGenericGit":{"description":"Manages an Other Git service endpoint within Azure DevOps, which can be used to authenticate to any external git service\nusing basic authentication via a username and password. This is mostly useful for importing private git repositories.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGenericGit = new azuredevops.ServiceEndpointGenericGit(\"example\", {\n    projectId: example.id,\n    repositoryUrl: \"https://dev.azure.com/org/project/_git/repository\",\n    username: \"username\",\n    password: \"password\",\n    serviceEndpointName: \"Example Generic Git\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_generic_git = azuredevops.ServiceEndpointGenericGit(\"example\",\n    project_id=example.id,\n    repository_url=\"https://dev.azure.com/org/project/_git/repository\",\n    username=\"username\",\n    password=\"password\",\n    service_endpoint_name=\"Example Generic Git\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGenericGit = new AzureDevOps.ServiceEndpointGenericGit(\"example\", new()\n    {\n        ProjectId = example.Id,\n        RepositoryUrl = \"https://dev.azure.com/org/project/_git/repository\",\n        Username = \"username\",\n        Password = \"password\",\n        ServiceEndpointName = \"Example Generic Git\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGenericGit(ctx, \"example\", \u0026azuredevops.ServiceEndpointGenericGitArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tRepositoryUrl:       pulumi.String(\"https://dev.azure.com/org/project/_git/repository\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Generic Git\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGit;\nimport com.pulumi.azuredevops.ServiceEndpointGenericGitArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGenericGit = new ServiceEndpointGenericGit(\"exampleServiceEndpointGenericGit\", ServiceEndpointGenericGitArgs.builder()\n            .projectId(example.id())\n            .repositoryUrl(\"https://dev.azure.com/org/project/_git/repository\")\n            .username(\"username\")\n            .password(\"password\")\n            .serviceEndpointName(\"Example Generic Git\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGenericGit:\n    type: azuredevops:ServiceEndpointGenericGit\n    name: example\n    properties:\n      projectId: ${example.id}\n      repositoryUrl: https://dev.azure.com/org/project/_git/repository\n      username: username\n      password: password\n      serviceEndpointName: Example Generic Git\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Other Git Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointGenericGit:ServiceEndpointGenericGit example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"enablePipelinesAccess":{"type":"boolean","description":"A value indicating whether or not to attempt accessing this git server from Azure Pipelines.\n"},"password":{"type":"string","description":"The PAT or password used to authenticate to the git repository.\n\n\u003e **Note** For AzureDevOps Git, PAT should be used as the password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"repositoryUrl":{"type":"string","description":"The URL of the repository associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint.\n"},"username":{"type":"string","description":"The username used to authenticate to the git repository.\n"}},"required":["authorization","projectId","repositoryUrl","serviceEndpointName"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"enablePipelinesAccess":{"type":"boolean","description":"A value indicating whether or not to attempt accessing this git server from Azure Pipelines.\n"},"password":{"type":"string","description":"The PAT or password used to authenticate to the git repository.\n\n\u003e **Note** For AzureDevOps Git, PAT should be used as the password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"repositoryUrl":{"type":"string","description":"The URL of the repository associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint.\n"},"username":{"type":"string","description":"The username used to authenticate to the git repository.\n"}},"requiredInputs":["projectId","repositoryUrl","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointGenericGit resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"enablePipelinesAccess":{"type":"boolean","description":"A value indicating whether or not to attempt accessing this git server from Azure Pipelines.\n"},"password":{"type":"string","description":"The PAT or password used to authenticate to the git repository.\n\n\u003e **Note** For AzureDevOps Git, PAT should be used as the password.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"repositoryUrl":{"type":"string","description":"The URL of the repository associated with the service endpoint.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint.\n"},"username":{"type":"string","description":"The username used to authenticate to the git repository.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointGitHub:ServiceEndpointGitHub":{"description":"Manages a GitHub service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitHub = new azuredevops.ServiceEndpointGitHub(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub Personal Access Token\",\n    authPersonal: {\n        personalAccessToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_hub = azuredevops.ServiceEndpointGitHub(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub Personal Access Token\",\n    auth_personal={\n        \"personal_access_token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitHub = new AzureDevOps.ServiceEndpointGitHub(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub Personal Access Token\",\n        AuthPersonal = new AzureDevOps.Inputs.ServiceEndpointGitHubAuthPersonalArgs\n        {\n            PersonalAccessToken = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitHub(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub Personal Access Token\"),\n\t\t\tAuthPersonal: \u0026azuredevops.ServiceEndpointGitHubAuthPersonalArgs{\n\t\t\t\tPersonalAccessToken: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHub;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointGitHubAuthPersonalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitHub = new ServiceEndpointGitHub(\"exampleServiceEndpointGitHub\", ServiceEndpointGitHubArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub Personal Access Token\")\n            .authPersonal(ServiceEndpointGitHubAuthPersonalArgs.builder()\n                .personalAccessToken(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitHub:\n    type: azuredevops:ServiceEndpointGitHub\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitHub Personal Access Token\n      authPersonal:\n        personalAccessToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitHub = new azuredevops.ServiceEndpointGitHub(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub\",\n    authOauth: {\n        oauthConfigurationId: \"00000000-0000-0000-0000-000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_hub = azuredevops.ServiceEndpointGitHub(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub\",\n    auth_oauth={\n        \"oauth_configuration_id\": \"00000000-0000-0000-0000-000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitHub = new AzureDevOps.ServiceEndpointGitHub(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub\",\n        AuthOauth = new AzureDevOps.Inputs.ServiceEndpointGitHubAuthOauthArgs\n        {\n            OauthConfigurationId = \"00000000-0000-0000-0000-000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitHub(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub\"),\n\t\t\tAuthOauth: \u0026azuredevops.ServiceEndpointGitHubAuthOauthArgs{\n\t\t\t\tOauthConfigurationId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHub;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointGitHubAuthOauthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitHub = new ServiceEndpointGitHub(\"exampleServiceEndpointGitHub\", ServiceEndpointGitHubArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub\")\n            .authOauth(ServiceEndpointGitHubAuthOauthArgs.builder()\n                .oauthConfigurationId(\"00000000-0000-0000-0000-000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitHub:\n    type: azuredevops:ServiceEndpointGitHub\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitHub\n      authOauth:\n        oauthConfigurationId: 00000000-0000-0000-0000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitHub = new azuredevops.ServiceEndpointGitHub(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub Apps: Azure Pipelines\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_hub = azuredevops.ServiceEndpointGitHub(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub Apps: Azure Pipelines\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitHub = new AzureDevOps.ServiceEndpointGitHub(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub Apps: Azure Pipelines\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitHub(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub Apps: Azure Pipelines\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHub;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitHub = new ServiceEndpointGitHub(\"exampleServiceEndpointGitHub\", ServiceEndpointGitHubArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub Apps: Azure Pipelines\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitHub:\n    type: azuredevops:ServiceEndpointGitHub\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: 'Example GitHub Apps: Azure Pipelines'\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps GitHub Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointGitHub:ServiceEndpointGitHub example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthOauth:ServiceEndpointGitHubAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthPersonal:ServiceEndpointGitHubAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n~\u003e**NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\"\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","projectId","serviceEndpointName"],"inputProperties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthOauth:ServiceEndpointGitHubAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthPersonal:ServiceEndpointGitHubAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n~\u003e**NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\"\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointGitHub resources.\n","properties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthOauth:ServiceEndpointGitHubAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubAuthPersonal:ServiceEndpointGitHubAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n~\u003e**NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\"\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointGitHubEnterprise:ServiceEndpointGitHubEnterprise":{"description":"Manages a GitHub Enterprise Server service endpoint within Azure DevOps.\n\n## Example Usage\n\n### With token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitHubEnterprise = new azuredevops.ServiceEndpointGitHubEnterprise(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub Enterprise\",\n    url: \"https://github.contoso.com\",\n    description: \"Managed by Pulumi\",\n    authPersonal: {\n        personalAccessToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_hub_enterprise = azuredevops.ServiceEndpointGitHubEnterprise(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub Enterprise\",\n    url=\"https://github.contoso.com\",\n    description=\"Managed by Pulumi\",\n    auth_personal={\n        \"personal_access_token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitHubEnterprise = new AzureDevOps.ServiceEndpointGitHubEnterprise(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub Enterprise\",\n        Url = \"https://github.contoso.com\",\n        Description = \"Managed by Pulumi\",\n        AuthPersonal = new AzureDevOps.Inputs.ServiceEndpointGitHubEnterpriseAuthPersonalArgs\n        {\n            PersonalAccessToken = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitHubEnterprise(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubEnterpriseArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub Enterprise\"),\n\t\t\tUrl:                 pulumi.String(\"https://github.contoso.com\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tAuthPersonal: \u0026azuredevops.ServiceEndpointGitHubEnterpriseAuthPersonalArgs{\n\t\t\t\tPersonalAccessToken: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterprise;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterpriseArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointGitHubEnterpriseAuthPersonalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitHubEnterprise = new ServiceEndpointGitHubEnterprise(\"exampleServiceEndpointGitHubEnterprise\", ServiceEndpointGitHubEnterpriseArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub Enterprise\")\n            .url(\"https://github.contoso.com\")\n            .description(\"Managed by Pulumi\")\n            .authPersonal(ServiceEndpointGitHubEnterpriseAuthPersonalArgs.builder()\n                .personalAccessToken(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitHubEnterprise:\n    type: azuredevops:ServiceEndpointGitHubEnterprise\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitHub Enterprise\n      url: https://github.contoso.com\n      description: Managed by Pulumi\n      authPersonal:\n        personalAccessToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With OAuth \n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitHubEnterprise = new azuredevops.ServiceEndpointGitHubEnterprise(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitHub Enterprise\",\n    description: \"Managed by Pulumi\",\n    authOauth: {\n        oauthConfigurationId: \"00000000-0000-0000-0000-000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_hub_enterprise = azuredevops.ServiceEndpointGitHubEnterprise(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitHub Enterprise\",\n    description=\"Managed by Pulumi\",\n    auth_oauth={\n        \"oauth_configuration_id\": \"00000000-0000-0000-0000-000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitHubEnterprise = new AzureDevOps.ServiceEndpointGitHubEnterprise(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitHub Enterprise\",\n        Description = \"Managed by Pulumi\",\n        AuthOauth = new AzureDevOps.Inputs.ServiceEndpointGitHubEnterpriseAuthOauthArgs\n        {\n            OauthConfigurationId = \"00000000-0000-0000-0000-000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitHubEnterprise(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitHubEnterpriseArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitHub Enterprise\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tAuthOauth: \u0026azuredevops.ServiceEndpointGitHubEnterpriseAuthOauthArgs{\n\t\t\t\tOauthConfigurationId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterprise;\nimport com.pulumi.azuredevops.ServiceEndpointGitHubEnterpriseArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointGitHubEnterpriseAuthOauthArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitHubEnterprise = new ServiceEndpointGitHubEnterprise(\"exampleServiceEndpointGitHubEnterprise\", ServiceEndpointGitHubEnterpriseArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitHub Enterprise\")\n            .description(\"Managed by Pulumi\")\n            .authOauth(ServiceEndpointGitHubEnterpriseAuthOauthArgs.builder()\n                .oauthConfigurationId(\"00000000-0000-0000-0000-000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitHubEnterprise:\n    type: azuredevops:ServiceEndpointGitHubEnterprise\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitHub Enterprise\n      description: Managed by Pulumi\n      authOauth:\n        oauthConfigurationId: 00000000-0000-0000-0000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\nss\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps GitHub Enterprise Server Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointGitHubEnterprise:ServiceEndpointGitHubEnterprise example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthOauth:ServiceEndpointGitHubEnterpriseAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthPersonal:ServiceEndpointGitHubEnterpriseAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n\u003e **NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"GitHub Enterprise Server Url.\n"}},"required":["authorization","projectId","serviceEndpointName"],"inputProperties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthOauth:ServiceEndpointGitHubEnterpriseAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthPersonal:ServiceEndpointGitHubEnterpriseAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n\u003e **NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"GitHub Enterprise Server Url.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointGitHubEnterprise resources.\n","properties":{"authOauth":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthOauth:ServiceEndpointGitHubEnterpriseAuthOauth","description":"An \u003cspan pulumi-lang-nodejs=\"`authOauth`\" pulumi-lang-dotnet=\"`AuthOauth`\" pulumi-lang-go=\"`authOauth`\" pulumi-lang-python=\"`auth_oauth`\" pulumi-lang-yaml=\"`authOauth`\" pulumi-lang-java=\"`authOauth`\"\u003e`auth_oauth`\u003c/span\u003e block as documented below. Allows connecting using an Oauth token.\n"},"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointGitHubEnterpriseAuthPersonal:ServiceEndpointGitHubEnterpriseAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n\n\u003e **NOTE:** GitHub Apps can not be created or updated via terraform. You must install and configure the app on GitHub and then import it. You must also set the \u003cspan pulumi-lang-nodejs=\"`description`\" pulumi-lang-dotnet=\"`Description`\" pulumi-lang-go=\"`description`\" pulumi-lang-python=\"`description`\" pulumi-lang-yaml=\"`description`\" pulumi-lang-java=\"`description`\"\u003e`description`\u003c/span\u003e to \"\" explicitly.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"GitHub Enterprise Server Url.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointGitLab:ServiceEndpointGitLab":{"description":"Manages an GitLab service endpoint within Azure DevOps. Using this service endpoint requires you to install: [GitLab Integration](https://marketplace.visualstudio.com/items?itemName=onlyutkarsh.gitlab-integration)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointGitLab = new azuredevops.ServiceEndpointGitLab(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example GitLab\",\n    url: \"https://gitlab.com\",\n    username: \"username\",\n    apiToken: \"token\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_git_lab = azuredevops.ServiceEndpointGitLab(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example GitLab\",\n    url=\"https://gitlab.com\",\n    username=\"username\",\n    api_token=\"token\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointGitLab = new AzureDevOps.ServiceEndpointGitLab(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example GitLab\",\n        Url = \"https://gitlab.com\",\n        Username = \"username\",\n        ApiToken = \"token\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointGitLab(ctx, \"example\", \u0026azuredevops.ServiceEndpointGitLabArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GitLab\"),\n\t\t\tUrl:                 pulumi.String(\"https://gitlab.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tApiToken:            pulumi.String(\"token\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointGitLab;\nimport com.pulumi.azuredevops.ServiceEndpointGitLabArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointGitLab = new ServiceEndpointGitLab(\"exampleServiceEndpointGitLab\", ServiceEndpointGitLabArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example GitLab\")\n            .url(\"https://gitlab.com\")\n            .username(\"username\")\n            .apiToken(\"token\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointGitLab:\n    type: azuredevops:ServiceEndpointGitLab\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example GitLab\n      url: https://gitlab.com\n      username: username\n      apiToken: token\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps GitLab Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointGitLab:ServiceEndpointGitLab example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiToken":{"type":"string","description":"The API token of the GitLab.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for GitLab. Example: `https://gitlab.com`.\n"},"username":{"type":"string","description":"The username used to login to GitLab.\n"}},"required":["apiToken","authorization","projectId","serviceEndpointName","url","username"],"inputProperties":{"apiToken":{"type":"string","description":"The API token of the GitLab.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for GitLab. Example: `https://gitlab.com`.\n"},"username":{"type":"string","description":"The username used to login to GitLab.\n"}},"requiredInputs":["apiToken","projectId","serviceEndpointName","url","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointGitLab resources.\n","properties":{"apiToken":{"type":"string","description":"The API token of the GitLab.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for GitLab. Example: `https://gitlab.com`.\n"},"username":{"type":"string","description":"The username used to login to GitLab.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointKubernetes:ServiceEndpointKubernetes":{"description":"Manages a Kubernetes service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst example_azure = new azuredevops.ServiceEndpointKubernetes(\"example-azure\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Kubernetes\",\n    apiserverUrl: \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorizationType: \"AzureSubscription\",\n    azureSubscriptions: [{\n        subscriptionId: \"00000000-0000-0000-0000-000000000000\",\n        subscriptionName: \"Example\",\n        tenantId: \"00000000-0000-0000-0000-000000000000\",\n        resourcegroupId: \"example-rg\",\n        namespace: \"default\",\n        clusterName: \"example-aks\",\n    }],\n});\nconst example_kubeconfig = new azuredevops.ServiceEndpointKubernetes(\"example-kubeconfig\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Kubernetes\",\n    apiserverUrl: \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorizationType: \"Kubeconfig\",\n    kubeconfig: {\n        kubeConfig: `                              apiVersion: v1\n                              clusters:\n                              - cluster:\n                                  certificate-authority: fake-ca-file\n                                  server: https://1.2.3.4\n                                name: development\n                              contexts:\n                              - context:\n                                  cluster: development\n                                  namespace: frontend\n                                  user: developer\n                                name: dev-frontend\n                              current-context: dev-frontend\n                              kind: Config\n                              preferences: {}\n                              users:\n                              - name: developer\n                                user:\n                                  client-certificate: fake-cert-file\n                                  client-key: fake-key-file\n`,\n        acceptUntrustedCerts: true,\n        clusterContext: \"dev-frontend\",\n    },\n});\nconst example_service_account = new azuredevops.ServiceEndpointKubernetes(\"example-service-account\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Kubernetes\",\n    apiserverUrl: \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorizationType: \"ServiceAccount\",\n    serviceAccount: {\n        token: \"000000000000000000000000\",\n        caCert: \"0000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_azure = azuredevops.ServiceEndpointKubernetes(\"example-azure\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Kubernetes\",\n    apiserver_url=\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorization_type=\"AzureSubscription\",\n    azure_subscriptions=[{\n        \"subscription_id\": \"00000000-0000-0000-0000-000000000000\",\n        \"subscription_name\": \"Example\",\n        \"tenant_id\": \"00000000-0000-0000-0000-000000000000\",\n        \"resourcegroup_id\": \"example-rg\",\n        \"namespace\": \"default\",\n        \"cluster_name\": \"example-aks\",\n    }])\nexample_kubeconfig = azuredevops.ServiceEndpointKubernetes(\"example-kubeconfig\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Kubernetes\",\n    apiserver_url=\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorization_type=\"Kubeconfig\",\n    kubeconfig={\n        \"kube_config\": \"\"\"                              apiVersion: v1\n                              clusters:\n                              - cluster:\n                                  certificate-authority: fake-ca-file\n                                  server: https://1.2.3.4\n                                name: development\n                              contexts:\n                              - context:\n                                  cluster: development\n                                  namespace: frontend\n                                  user: developer\n                                name: dev-frontend\n                              current-context: dev-frontend\n                              kind: Config\n                              preferences: {}\n                              users:\n                              - name: developer\n                                user:\n                                  client-certificate: fake-cert-file\n                                  client-key: fake-key-file\n\"\"\",\n        \"accept_untrusted_certs\": True,\n        \"cluster_context\": \"dev-frontend\",\n    })\nexample_service_account = azuredevops.ServiceEndpointKubernetes(\"example-service-account\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Kubernetes\",\n    apiserver_url=\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n    authorization_type=\"ServiceAccount\",\n    service_account={\n        \"token\": \"000000000000000000000000\",\n        \"ca_cert\": \"0000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_azure = new AzureDevOps.ServiceEndpointKubernetes(\"example-azure\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Kubernetes\",\n        ApiserverUrl = \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n        AuthorizationType = \"AzureSubscription\",\n        AzureSubscriptions = new[]\n        {\n            new AzureDevOps.Inputs.ServiceEndpointKubernetesAzureSubscriptionArgs\n            {\n                SubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n                SubscriptionName = \"Example\",\n                TenantId = \"00000000-0000-0000-0000-000000000000\",\n                ResourcegroupId = \"example-rg\",\n                Namespace = \"default\",\n                ClusterName = \"example-aks\",\n            },\n        },\n    });\n\n    var example_kubeconfig = new AzureDevOps.ServiceEndpointKubernetes(\"example-kubeconfig\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Kubernetes\",\n        ApiserverUrl = \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n        AuthorizationType = \"Kubeconfig\",\n        Kubeconfig = new AzureDevOps.Inputs.ServiceEndpointKubernetesKubeconfigArgs\n        {\n            KubeConfig = @\"                              apiVersion: v1\n                              clusters:\n                              - cluster:\n                                  certificate-authority: fake-ca-file\n                                  server: https://1.2.3.4\n                                name: development\n                              contexts:\n                              - context:\n                                  cluster: development\n                                  namespace: frontend\n                                  user: developer\n                                name: dev-frontend\n                              current-context: dev-frontend\n                              kind: Config\n                              preferences: {}\n                              users:\n                              - name: developer\n                                user:\n                                  client-certificate: fake-cert-file\n                                  client-key: fake-key-file\n\",\n            AcceptUntrustedCerts = true,\n            ClusterContext = \"dev-frontend\",\n        },\n    });\n\n    var example_service_account = new AzureDevOps.ServiceEndpointKubernetes(\"example-service-account\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Kubernetes\",\n        ApiserverUrl = \"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\",\n        AuthorizationType = \"ServiceAccount\",\n        ServiceAccount = new AzureDevOps.Inputs.ServiceEndpointKubernetesServiceAccountArgs\n        {\n            Token = \"000000000000000000000000\",\n            CaCert = \"0000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointKubernetes(ctx, \"example-azure\", \u0026azuredevops.ServiceEndpointKubernetesArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Kubernetes\"),\n\t\t\tApiserverUrl:        pulumi.String(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\"),\n\t\t\tAuthorizationType:   pulumi.String(\"AzureSubscription\"),\n\t\t\tAzureSubscriptions: azuredevops.ServiceEndpointKubernetesAzureSubscriptionArray{\n\t\t\t\t\u0026azuredevops.ServiceEndpointKubernetesAzureSubscriptionArgs{\n\t\t\t\t\tSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\t\tSubscriptionName: pulumi.String(\"Example\"),\n\t\t\t\t\tTenantId:         pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\t\tResourcegroupId:  pulumi.String(\"example-rg\"),\n\t\t\t\t\tNamespace:        pulumi.String(\"default\"),\n\t\t\t\t\tClusterName:      pulumi.String(\"example-aks\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointKubernetes(ctx, \"example-kubeconfig\", \u0026azuredevops.ServiceEndpointKubernetesArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Kubernetes\"),\n\t\t\tApiserverUrl:        pulumi.String(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\"),\n\t\t\tAuthorizationType:   pulumi.String(\"Kubeconfig\"),\n\t\t\tKubeconfig: \u0026azuredevops.ServiceEndpointKubernetesKubeconfigArgs{\n\t\t\t\tKubeConfig: pulumi.String(`                              apiVersion: v1\n                              clusters:\n                              - cluster:\n                                  certificate-authority: fake-ca-file\n                                  server: https://1.2.3.4\n                                name: development\n                              contexts:\n                              - context:\n                                  cluster: development\n                                  namespace: frontend\n                                  user: developer\n                                name: dev-frontend\n                              current-context: dev-frontend\n                              kind: Config\n                              preferences: {}\n                              users:\n                              - name: developer\n                                user:\n                                  client-certificate: fake-cert-file\n                                  client-key: fake-key-file\n`),\n\t\t\t\tAcceptUntrustedCerts: pulumi.Bool(true),\n\t\t\t\tClusterContext:       pulumi.String(\"dev-frontend\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointKubernetes(ctx, \"example-service-account\", \u0026azuredevops.ServiceEndpointKubernetesArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Kubernetes\"),\n\t\t\tApiserverUrl:        pulumi.String(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\"),\n\t\t\tAuthorizationType:   pulumi.String(\"ServiceAccount\"),\n\t\t\tServiceAccount: \u0026azuredevops.ServiceEndpointKubernetesServiceAccountArgs{\n\t\t\t\tToken:  pulumi.String(\"000000000000000000000000\"),\n\t\t\t\tCaCert: pulumi.String(\"0000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointKubernetes;\nimport com.pulumi.azuredevops.ServiceEndpointKubernetesArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointKubernetesAzureSubscriptionArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointKubernetesKubeconfigArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointKubernetesServiceAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var example_azure = new ServiceEndpointKubernetes(\"example-azure\", ServiceEndpointKubernetesArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Kubernetes\")\n            .apiserverUrl(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\")\n            .authorizationType(\"AzureSubscription\")\n            .azureSubscriptions(ServiceEndpointKubernetesAzureSubscriptionArgs.builder()\n                .subscriptionId(\"00000000-0000-0000-0000-000000000000\")\n                .subscriptionName(\"Example\")\n                .tenantId(\"00000000-0000-0000-0000-000000000000\")\n                .resourcegroupId(\"example-rg\")\n                .namespace(\"default\")\n                .clusterName(\"example-aks\")\n                .build())\n            .build());\n\n        var example_kubeconfig = new ServiceEndpointKubernetes(\"example-kubeconfig\", ServiceEndpointKubernetesArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Kubernetes\")\n            .apiserverUrl(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\")\n            .authorizationType(\"Kubeconfig\")\n            .kubeconfig(ServiceEndpointKubernetesKubeconfigArgs.builder()\n                .kubeConfig(\"\"\"\n                              apiVersion: v1\n                              clusters:\n                              - cluster:\n                                  certificate-authority: fake-ca-file\n                                  server: https://1.2.3.4\n                                name: development\n                              contexts:\n                              - context:\n                                  cluster: development\n                                  namespace: frontend\n                                  user: developer\n                                name: dev-frontend\n                              current-context: dev-frontend\n                              kind: Config\n                              preferences: {}\n                              users:\n                              - name: developer\n                                user:\n                                  client-certificate: fake-cert-file\n                                  client-key: fake-key-file\n                \"\"\")\n                .acceptUntrustedCerts(true)\n                .clusterContext(\"dev-frontend\")\n                .build())\n            .build());\n\n        var example_service_account = new ServiceEndpointKubernetes(\"example-service-account\", ServiceEndpointKubernetesArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Kubernetes\")\n            .apiserverUrl(\"https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\")\n            .authorizationType(\"ServiceAccount\")\n            .serviceAccount(ServiceEndpointKubernetesServiceAccountArgs.builder()\n                .token(\"000000000000000000000000\")\n                .caCert(\"0000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  example-azure:\n    type: azuredevops:ServiceEndpointKubernetes\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Kubernetes\n      apiserverUrl: https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\n      authorizationType: AzureSubscription\n      azureSubscriptions:\n        - subscriptionId: 00000000-0000-0000-0000-000000000000\n          subscriptionName: Example\n          tenantId: 00000000-0000-0000-0000-000000000000\n          resourcegroupId: example-rg\n          namespace: default\n          clusterName: example-aks\n  example-kubeconfig:\n    type: azuredevops:ServiceEndpointKubernetes\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Kubernetes\n      apiserverUrl: https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\n      authorizationType: Kubeconfig\n      kubeconfig:\n        kubeConfig: |2\n                                        apiVersion: v1\n                                        clusters:\n                                        - cluster:\n                                            certificate-authority: fake-ca-file\n                                            server: https://1.2.3.4\n                                          name: development\n                                        contexts:\n                                        - context:\n                                            cluster: development\n                                            namespace: frontend\n                                            user: developer\n                                          name: dev-frontend\n                                        current-context: dev-frontend\n                                        kind: Config\n                                        preferences: {}\n                                        users:\n                                        - name: developer\n                                          user:\n                                            client-certificate: fake-cert-file\n                                            client-key: fake-key-file\n        acceptUntrustedCerts: true\n        clusterContext: dev-frontend\n  example-service-account:\n    type: azuredevops:ServiceEndpointKubernetes\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Kubernetes\n      apiserverUrl: https://sample-kubernetes-cluster.hcp.westeurope.azmk8s.io\n      authorizationType: ServiceAccount\n      serviceAccount:\n        token: '000000000000000000000000'\n        caCert: '0000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Kubernetes Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointKubernetes:ServiceEndpointKubernetes example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiserverUrl":{"type":"string","description":"The hostname (in form of URI) of the Kubernetes API.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationType":{"type":"string","description":"The authentication method used to authenticate on the Kubernetes cluster. The value should be one of AzureSubscription, Kubeconfig, ServiceAccount.\n"},"azureSubscriptions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesAzureSubscription:ServiceEndpointKubernetesAzureSubscription"},"description":"An \u003cspan pulumi-lang-nodejs=\"`azureSubscription`\" pulumi-lang-dotnet=\"`AzureSubscription`\" pulumi-lang-go=\"`azureSubscription`\" pulumi-lang-python=\"`azure_subscription`\" pulumi-lang-yaml=\"`azureSubscription`\" pulumi-lang-java=\"`azureSubscription`\"\u003e`azure_subscription`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string"},"kubeconfig":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesKubeconfig:ServiceEndpointKubernetesKubeconfig","description":"A \u003cspan pulumi-lang-nodejs=\"`kubeconfig`\" pulumi-lang-dotnet=\"`Kubeconfig`\" pulumi-lang-go=\"`kubeconfig`\" pulumi-lang-python=\"`kubeconfig`\" pulumi-lang-yaml=\"`kubeconfig`\" pulumi-lang-java=\"`kubeconfig`\"\u003e`kubeconfig`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceAccount":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesServiceAccount:ServiceEndpointKubernetesServiceAccount","description":"A \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block as defined below.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["apiserverUrl","authorization","authorizationType","projectId","serviceEndpointName"],"inputProperties":{"apiserverUrl":{"type":"string","description":"The hostname (in form of URI) of the Kubernetes API.\n"},"authorizationType":{"type":"string","description":"The authentication method used to authenticate on the Kubernetes cluster. The value should be one of AzureSubscription, Kubeconfig, ServiceAccount.\n"},"azureSubscriptions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesAzureSubscription:ServiceEndpointKubernetesAzureSubscription"},"description":"An \u003cspan pulumi-lang-nodejs=\"`azureSubscription`\" pulumi-lang-dotnet=\"`AzureSubscription`\" pulumi-lang-go=\"`azureSubscription`\" pulumi-lang-python=\"`azure_subscription`\" pulumi-lang-yaml=\"`azureSubscription`\" pulumi-lang-java=\"`azureSubscription`\"\u003e`azure_subscription`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string"},"kubeconfig":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesKubeconfig:ServiceEndpointKubernetesKubeconfig","description":"A \u003cspan pulumi-lang-nodejs=\"`kubeconfig`\" pulumi-lang-dotnet=\"`Kubeconfig`\" pulumi-lang-go=\"`kubeconfig`\" pulumi-lang-python=\"`kubeconfig`\" pulumi-lang-yaml=\"`kubeconfig`\" pulumi-lang-java=\"`kubeconfig`\"\u003e`kubeconfig`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceAccount":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesServiceAccount:ServiceEndpointKubernetesServiceAccount","description":"A \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block as defined below.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["apiserverUrl","authorizationType","projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointKubernetes resources.\n","properties":{"apiserverUrl":{"type":"string","description":"The hostname (in form of URI) of the Kubernetes API.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationType":{"type":"string","description":"The authentication method used to authenticate on the Kubernetes cluster. The value should be one of AzureSubscription, Kubeconfig, ServiceAccount.\n"},"azureSubscriptions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesAzureSubscription:ServiceEndpointKubernetesAzureSubscription"},"description":"An \u003cspan pulumi-lang-nodejs=\"`azureSubscription`\" pulumi-lang-dotnet=\"`AzureSubscription`\" pulumi-lang-go=\"`azureSubscription`\" pulumi-lang-python=\"`azure_subscription`\" pulumi-lang-yaml=\"`azureSubscription`\" pulumi-lang-java=\"`azureSubscription`\"\u003e`azure_subscription`\u003c/span\u003e block as defined below.\n"},"description":{"type":"string"},"kubeconfig":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesKubeconfig:ServiceEndpointKubernetesKubeconfig","description":"A \u003cspan pulumi-lang-nodejs=\"`kubeconfig`\" pulumi-lang-dotnet=\"`Kubeconfig`\" pulumi-lang-go=\"`kubeconfig`\" pulumi-lang-python=\"`kubeconfig`\" pulumi-lang-yaml=\"`kubeconfig`\" pulumi-lang-java=\"`kubeconfig`\"\u003e`kubeconfig`\u003c/span\u003e block as defined below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceAccount":{"$ref":"#/types/azuredevops:index/ServiceEndpointKubernetesServiceAccount:ServiceEndpointKubernetesServiceAccount","description":"A \u003cspan pulumi-lang-nodejs=\"`serviceAccount`\" pulumi-lang-dotnet=\"`ServiceAccount`\" pulumi-lang-go=\"`serviceAccount`\" pulumi-lang-python=\"`service_account`\" pulumi-lang-yaml=\"`serviceAccount`\" pulumi-lang-java=\"`serviceAccount`\"\u003e`service_account`\u003c/span\u003e block as defined below.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointNpm:ServiceEndpointNpm":{"description":"Manages a NPM service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointNpm = new azuredevops.ServiceEndpointNpm(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example npm\",\n    url: \"https://registry.npmjs.org\",\n    accessToken: \"00000000-0000-0000-0000-000000000000\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_npm = azuredevops.ServiceEndpointNpm(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example npm\",\n    url=\"https://registry.npmjs.org\",\n    access_token=\"00000000-0000-0000-0000-000000000000\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointNpm = new AzureDevOps.ServiceEndpointNpm(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example npm\",\n        Url = \"https://registry.npmjs.org\",\n        AccessToken = \"00000000-0000-0000-0000-000000000000\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointNpm(ctx, \"example\", \u0026azuredevops.ServiceEndpointNpmArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example npm\"),\n\t\t\tUrl:                 pulumi.String(\"https://registry.npmjs.org\"),\n\t\t\tAccessToken:         pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointNpm;\nimport com.pulumi.azuredevops.ServiceEndpointNpmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointNpm = new ServiceEndpointNpm(\"exampleServiceEndpointNpm\", ServiceEndpointNpmArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example npm\")\n            .url(\"https://registry.npmjs.org\")\n            .accessToken(\"00000000-0000-0000-0000-000000000000\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointNpm:\n    type: azuredevops:ServiceEndpointNpm\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example npm\n      url: https://registry.npmjs.org\n      accessToken: 00000000-0000-0000-0000-000000000000\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n- [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n- [npm User Token](https://docs.npmjs.com/about-access-tokens)\n\n## Import\n\nAzure DevOps NPM Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointNpm:ServiceEndpointNpm example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"accessToken":{"type":"string","description":"The access token for npm registry.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the npm registry to connect with.\n"}},"required":["accessToken","authorization","projectId","serviceEndpointName","url"],"inputProperties":{"accessToken":{"type":"string","description":"The access token for npm registry.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the npm registry to connect with.\n"}},"requiredInputs":["accessToken","projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointNpm resources.\n","properties":{"accessToken":{"type":"string","description":"The access token for npm registry.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the npm registry to connect with.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointPipeline:ServiceEndpointPipeline":{"description":"Manages a Azure DevOps Run Pipeline Service Connection service endpoint within Azure DevOps. Allows to run downstream pipelines, monitoring their execution, collecting and consolidating artefacts produced in the delegate pipelines (yaml block `task: RunPipelines@1`). More details on Marketplace page: [RunPipelines](https://marketplace.visualstudio.com/items?itemName=CSE-DevOps.RunPipelines)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointPipeline = new azuredevops.ServiceEndpointPipeline(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Pipeline Runner\",\n    organizationName: \"Organization Name\",\n    authPersonal: {\n        personalAccessToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_pipeline = azuredevops.ServiceEndpointPipeline(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Pipeline Runner\",\n    organization_name=\"Organization Name\",\n    auth_personal={\n        \"personal_access_token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointPipeline = new AzureDevOps.ServiceEndpointPipeline(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Pipeline Runner\",\n        OrganizationName = \"Organization Name\",\n        AuthPersonal = new AzureDevOps.Inputs.ServiceEndpointPipelineAuthPersonalArgs\n        {\n            PersonalAccessToken = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointPipeline(ctx, \"example\", \u0026azuredevops.ServiceEndpointPipelineArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Pipeline Runner\"),\n\t\t\tOrganizationName:    pulumi.String(\"Organization Name\"),\n\t\t\tAuthPersonal: \u0026azuredevops.ServiceEndpointPipelineAuthPersonalArgs{\n\t\t\t\tPersonalAccessToken: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointPipeline;\nimport com.pulumi.azuredevops.ServiceEndpointPipelineArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointPipelineAuthPersonalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointPipeline = new ServiceEndpointPipeline(\"exampleServiceEndpointPipeline\", ServiceEndpointPipelineArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Pipeline Runner\")\n            .organizationName(\"Organization Name\")\n            .authPersonal(ServiceEndpointPipelineAuthPersonalArgs.builder()\n                .personalAccessToken(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointPipeline:\n    type: azuredevops:ServiceEndpointPipeline\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Pipeline Runner\n      organizationName: Organization Name\n      authPersonal:\n        personalAccessToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Run Pipeline Service Endpoint can be imported using the `project id`, `service connection id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointPipeline:ServiceEndpointPipeline example projectID/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointPipelineAuthPersonal:ServiceEndpointPipelineAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"organizationName":{"type":"string","description":"The organization name used for `Organization Url` and `Release API Url` fields.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authPersonal","authorization","organizationName","projectId","serviceEndpointName"],"inputProperties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointPipelineAuthPersonal:ServiceEndpointPipelineAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"organizationName":{"type":"string","description":"The organization name used for `Organization Url` and `Release API Url` fields.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["authPersonal","organizationName","projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointPipeline resources.\n","properties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceEndpointPipelineAuthPersonal:ServiceEndpointPipelineAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"organizationName":{"type":"string","description":"The organization name used for `Organization Url` and `Release API Url` fields.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointServiceFabric:ServiceEndpointServiceFabric":{"description":"Manages a Service Fabric service endpoint within Azure DevOps.\n\n## Example Usage\n\n### Client Certificate Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointServiceFabric = new azuredevops.ServiceEndpointServiceFabric(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Service Fabric\",\n    description: \"Managed by Pulumi\",\n    clusterEndpoint: \"tcp://test\",\n    certificate: {\n        serverCertificateLookup: \"Thumbprint\",\n        serverCertificateThumbprint: \"0000000000000000000000000000000000000000\",\n        clientCertificate: std.index.filebase64({\n            input: \"certificate.pfx\",\n        }).result,\n        clientCertificatePassword: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_std as std\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_service_fabric = azuredevops.ServiceEndpointServiceFabric(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Service Fabric\",\n    description=\"Managed by Pulumi\",\n    cluster_endpoint=\"tcp://test\",\n    certificate={\n        \"server_certificate_lookup\": \"Thumbprint\",\n        \"server_certificate_thumbprint\": \"0000000000000000000000000000000000000000\",\n        \"client_certificate\": std.index.filebase64(input=\"certificate.pfx\")[\"result\"],\n        \"client_certificate_password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointServiceFabric = new AzureDevOps.ServiceEndpointServiceFabric(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Service Fabric\",\n        Description = \"Managed by Pulumi\",\n        ClusterEndpoint = \"tcp://test\",\n        Certificate = new AzureDevOps.Inputs.ServiceEndpointServiceFabricCertificateArgs\n        {\n            ServerCertificateLookup = \"Thumbprint\",\n            ServerCertificateThumbprint = \"0000000000000000000000000000000000000000\",\n            ClientCertificate = Std.Index.Filebase64.Invoke(new()\n            {\n                Input = \"certificate.pfx\",\n            }).Result,\n            ClientCertificatePassword = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinvokeFilebase64, err := std.Filebase64(ctx, map[string]interface{}{\n\t\t\t\"input\": \"certificate.pfx\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointServiceFabric(ctx, \"example\", \u0026azuredevops.ServiceEndpointServiceFabricArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Service Fabric\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tClusterEndpoint:     pulumi.String(\"tcp://test\"),\n\t\t\tCertificate: \u0026azuredevops.ServiceEndpointServiceFabricCertificateArgs{\n\t\t\t\tServerCertificateLookup:     pulumi.String(\"Thumbprint\"),\n\t\t\t\tServerCertificateThumbprint: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t\tClientCertificate:           invokeFilebase64.Result,\n\t\t\t\tClientCertificatePassword:   pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabric;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabricArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointServiceFabricCertificateArgs;\nimport com.pulumi.std.StdFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointServiceFabric = new ServiceEndpointServiceFabric(\"exampleServiceEndpointServiceFabric\", ServiceEndpointServiceFabricArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Service Fabric\")\n            .description(\"Managed by Pulumi\")\n            .clusterEndpoint(\"tcp://test\")\n            .certificate(ServiceEndpointServiceFabricCertificateArgs.builder()\n                .serverCertificateLookup(\"Thumbprint\")\n                .serverCertificateThumbprint(\"0000000000000000000000000000000000000000\")\n                .clientCertificate(StdFunctions.filebase64(Map.of(\"input\", \"certificate.pfx\")).result())\n                .clientCertificatePassword(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointServiceFabric:\n    type: azuredevops:ServiceEndpointServiceFabric\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Service Fabric\n      description: Managed by Pulumi\n      clusterEndpoint: tcp://test\n      certificate:\n        serverCertificateLookup: Thumbprint\n        serverCertificateThumbprint: '0000000000000000000000000000000000000000'\n        clientCertificate:\n          fn::invoke:\n            function: std:filebase64\n            arguments:\n              input: certificate.pfx\n            return: result\n        clientCertificatePassword: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Azure Active Directory Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst project = new azuredevops.Project(\"project\", {\n    name: \"Sample Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst test = new azuredevops.ServiceEndpointServiceFabric(\"test\", {\n    projectId: project.id,\n    serviceEndpointName: \"Sample Service Fabric\",\n    description: \"Managed by Pulumi\",\n    clusterEndpoint: \"tcp://test\",\n    azureActiveDirectory: {\n        serverCertificateLookup: \"Thumbprint\",\n        serverCertificateThumbprint: \"0000000000000000000000000000000000000000\",\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nproject = azuredevops.Project(\"project\",\n    name=\"Sample Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\ntest = azuredevops.ServiceEndpointServiceFabric(\"test\",\n    project_id=project.id,\n    service_endpoint_name=\"Sample Service Fabric\",\n    description=\"Managed by Pulumi\",\n    cluster_endpoint=\"tcp://test\",\n    azure_active_directory={\n        \"server_certificate_lookup\": \"Thumbprint\",\n        \"server_certificate_thumbprint\": \"0000000000000000000000000000000000000000\",\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = new AzureDevOps.Project(\"project\", new()\n    {\n        Name = \"Sample Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var test = new AzureDevOps.ServiceEndpointServiceFabric(\"test\", new()\n    {\n        ProjectId = project.Id,\n        ServiceEndpointName = \"Sample Service Fabric\",\n        Description = \"Managed by Pulumi\",\n        ClusterEndpoint = \"tcp://test\",\n        AzureActiveDirectory = new AzureDevOps.Inputs.ServiceEndpointServiceFabricAzureActiveDirectoryArgs\n        {\n            ServerCertificateLookup = \"Thumbprint\",\n            ServerCertificateThumbprint = \"0000000000000000000000000000000000000000\",\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := azuredevops.NewProject(ctx, \"project\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Sample Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointServiceFabric(ctx, \"test\", \u0026azuredevops.ServiceEndpointServiceFabricArgs{\n\t\t\tProjectId:           project.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Sample Service Fabric\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tClusterEndpoint:     pulumi.String(\"tcp://test\"),\n\t\t\tAzureActiveDirectory: \u0026azuredevops.ServiceEndpointServiceFabricAzureActiveDirectoryArgs{\n\t\t\t\tServerCertificateLookup:     pulumi.String(\"Thumbprint\"),\n\t\t\t\tServerCertificateThumbprint: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t\tUsername:                    pulumi.String(\"username\"),\n\t\t\t\tPassword:                    pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabric;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabricArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointServiceFabricAzureActiveDirectoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"Sample Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var test = new ServiceEndpointServiceFabric(\"test\", ServiceEndpointServiceFabricArgs.builder()\n            .projectId(project.id())\n            .serviceEndpointName(\"Sample Service Fabric\")\n            .description(\"Managed by Pulumi\")\n            .clusterEndpoint(\"tcp://test\")\n            .azureActiveDirectory(ServiceEndpointServiceFabricAzureActiveDirectoryArgs.builder()\n                .serverCertificateLookup(\"Thumbprint\")\n                .serverCertificateThumbprint(\"0000000000000000000000000000000000000000\")\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: azuredevops:Project\n    properties:\n      name: Sample Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  test:\n    type: azuredevops:ServiceEndpointServiceFabric\n    properties:\n      projectId: ${project.id}\n      serviceEndpointName: Sample Service Fabric\n      description: Managed by Pulumi\n      clusterEndpoint: tcp://test\n      azureActiveDirectory:\n        serverCertificateLookup: Thumbprint\n        serverCertificateThumbprint: '0000000000000000000000000000000000000000'\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Windows Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst project = new azuredevops.Project(\"project\", {\n    name: \"Sample Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst test = new azuredevops.ServiceEndpointServiceFabric(\"test\", {\n    projectId: project.id,\n    serviceEndpointName: \"Sample Service Fabric\",\n    description: \"Managed by Pulumi\",\n    clusterEndpoint: \"tcp://test\",\n    none: {\n        unsecured: false,\n        clusterSpn: \"HTTP/www.contoso.com\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nproject = azuredevops.Project(\"project\",\n    name=\"Sample Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\ntest = azuredevops.ServiceEndpointServiceFabric(\"test\",\n    project_id=project.id,\n    service_endpoint_name=\"Sample Service Fabric\",\n    description=\"Managed by Pulumi\",\n    cluster_endpoint=\"tcp://test\",\n    none={\n        \"unsecured\": False,\n        \"cluster_spn\": \"HTTP/www.contoso.com\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = new AzureDevOps.Project(\"project\", new()\n    {\n        Name = \"Sample Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var test = new AzureDevOps.ServiceEndpointServiceFabric(\"test\", new()\n    {\n        ProjectId = project.Id,\n        ServiceEndpointName = \"Sample Service Fabric\",\n        Description = \"Managed by Pulumi\",\n        ClusterEndpoint = \"tcp://test\",\n        None = new AzureDevOps.Inputs.ServiceEndpointServiceFabricNoneArgs\n        {\n            Unsecured = false,\n            ClusterSpn = \"HTTP/www.contoso.com\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := azuredevops.NewProject(ctx, \"project\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Sample Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointServiceFabric(ctx, \"test\", \u0026azuredevops.ServiceEndpointServiceFabricArgs{\n\t\t\tProjectId:           project.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Sample Service Fabric\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tClusterEndpoint:     pulumi.String(\"tcp://test\"),\n\t\t\tNone: \u0026azuredevops.ServiceEndpointServiceFabricNoneArgs{\n\t\t\t\tUnsecured:  pulumi.Bool(false),\n\t\t\t\tClusterSpn: pulumi.String(\"HTTP/www.contoso.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabric;\nimport com.pulumi.azuredevops.ServiceEndpointServiceFabricArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointServiceFabricNoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"Sample Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var test = new ServiceEndpointServiceFabric(\"test\", ServiceEndpointServiceFabricArgs.builder()\n            .projectId(project.id())\n            .serviceEndpointName(\"Sample Service Fabric\")\n            .description(\"Managed by Pulumi\")\n            .clusterEndpoint(\"tcp://test\")\n            .none(ServiceEndpointServiceFabricNoneArgs.builder()\n                .unsecured(false)\n                .clusterSpn(\"HTTP/www.contoso.com\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: azuredevops:Project\n    properties:\n      name: Sample Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  test:\n    type: azuredevops:ServiceEndpointServiceFabric\n    properties:\n      projectId: ${project.id}\n      serviceEndpointName: Sample Service Fabric\n      description: Managed by Pulumi\n      clusterEndpoint: tcp://test\n      none:\n        unsecured: false\n        clusterSpn: HTTP/www.contoso.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Service Fabric Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointServiceFabric:ServiceEndpointServiceFabric example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azureActiveDirectory":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricAzureActiveDirectory:ServiceEndpointServiceFabricAzureActiveDirectory","description":"An \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectory`\" pulumi-lang-dotnet=\"`AzureActiveDirectory`\" pulumi-lang-go=\"`azureActiveDirectory`\" pulumi-lang-python=\"`azure_active_directory`\" pulumi-lang-yaml=\"`azureActiveDirectory`\" pulumi-lang-java=\"`azureActiveDirectory`\"\u003e`azure_active_directory`\u003c/span\u003e block as documented below.\n"},"certificate":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricCertificate:ServiceEndpointServiceFabricCertificate","description":"A \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e block as documented below.\n"},"clusterEndpoint":{"type":"string","description":"Client connection endpoint for the cluster. Prefix the value with `tcp://`;. This value overrides the publish profile.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"none":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricNone:ServiceEndpointServiceFabricNone","description":"A \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e block as documented below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","clusterEndpoint","projectId","serviceEndpointName"],"inputProperties":{"azureActiveDirectory":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricAzureActiveDirectory:ServiceEndpointServiceFabricAzureActiveDirectory","description":"An \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectory`\" pulumi-lang-dotnet=\"`AzureActiveDirectory`\" pulumi-lang-go=\"`azureActiveDirectory`\" pulumi-lang-python=\"`azure_active_directory`\" pulumi-lang-yaml=\"`azureActiveDirectory`\" pulumi-lang-java=\"`azureActiveDirectory`\"\u003e`azure_active_directory`\u003c/span\u003e block as documented below.\n"},"certificate":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricCertificate:ServiceEndpointServiceFabricCertificate","description":"A \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e block as documented below.\n"},"clusterEndpoint":{"type":"string","description":"Client connection endpoint for the cluster. Prefix the value with `tcp://`;. This value overrides the publish profile.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"none":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricNone:ServiceEndpointServiceFabricNone","description":"A \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e block as documented below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["clusterEndpoint","projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointServiceFabric resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"azureActiveDirectory":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricAzureActiveDirectory:ServiceEndpointServiceFabricAzureActiveDirectory","description":"An \u003cspan pulumi-lang-nodejs=\"`azureActiveDirectory`\" pulumi-lang-dotnet=\"`AzureActiveDirectory`\" pulumi-lang-go=\"`azureActiveDirectory`\" pulumi-lang-python=\"`azure_active_directory`\" pulumi-lang-yaml=\"`azureActiveDirectory`\" pulumi-lang-java=\"`azureActiveDirectory`\"\u003e`azure_active_directory`\u003c/span\u003e block as documented below.\n"},"certificate":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricCertificate:ServiceEndpointServiceFabricCertificate","description":"A \u003cspan pulumi-lang-nodejs=\"`certificate`\" pulumi-lang-dotnet=\"`Certificate`\" pulumi-lang-go=\"`certificate`\" pulumi-lang-python=\"`certificate`\" pulumi-lang-yaml=\"`certificate`\" pulumi-lang-java=\"`certificate`\"\u003e`certificate`\u003c/span\u003e block as documented below.\n"},"clusterEndpoint":{"type":"string","description":"Client connection endpoint for the cluster. Prefix the value with `tcp://`;. This value overrides the publish profile.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"none":{"$ref":"#/types/azuredevops:index/ServiceEndpointServiceFabricNone:ServiceEndpointServiceFabricNone","description":"A \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e block as documented below.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointSonarCloud:ServiceEndpointSonarCloud":{"description":"Manages a SonarQube Cloud service endpoint within Azure DevOps. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointSonarCloud = new azuredevops.ServiceEndpointSonarCloud(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example SonarCloud\",\n    token: \"0000000000000000000000000000000000000000\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_sonar_cloud = azuredevops.ServiceEndpointSonarCloud(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example SonarCloud\",\n    token=\"0000000000000000000000000000000000000000\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointSonarCloud = new AzureDevOps.ServiceEndpointSonarCloud(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example SonarCloud\",\n        Token = \"0000000000000000000000000000000000000000\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointSonarCloud(ctx, \"example\", \u0026azuredevops.ServiceEndpointSonarCloudArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example SonarCloud\"),\n\t\t\tToken:               pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointSonarCloud;\nimport com.pulumi.azuredevops.ServiceEndpointSonarCloudArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointSonarCloud = new ServiceEndpointSonarCloud(\"exampleServiceEndpointSonarCloud\", ServiceEndpointSonarCloudArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example SonarCloud\")\n            .token(\"0000000000000000000000000000000000000000\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointSonarCloud:\n    type: azuredevops:ServiceEndpointSonarCloud\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example SonarCloud\n      token: '0000000000000000000000000000000000000000'\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n- [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n- [SonarCloud User Token](https://docs.sonarcloud.io/advanced-setup/user-accounts/)\n\n## Import\n\nAzure DevOps SonarQube Cloud Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointSonarCloud:ServiceEndpointSonarCloud example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarCloud (go to `My Account \u003e Security \u003e Generate Tokens`).\n","secret":true}},"required":["authorization","projectId","serviceEndpointName","token"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarCloud (go to `My Account \u003e Security \u003e Generate Tokens`).\n","secret":true}},"requiredInputs":["projectId","serviceEndpointName","token"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointSonarCloud resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarCloud (go to `My Account \u003e Security \u003e Generate Tokens`).\n","secret":true}},"type":"object"}},"azuredevops:index/serviceEndpointSonarQube:ServiceEndpointSonarQube":{"description":"Manages a SonarQube Server service endpoint within Azure DevOps. \n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointSonarQube = new azuredevops.ServiceEndpointSonarQube(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example SonarQube\",\n    url: \"https://sonarqube.my.com\",\n    token: \"0000000000000000000000000000000000000000\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_sonar_qube = azuredevops.ServiceEndpointSonarQube(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example SonarQube\",\n    url=\"https://sonarqube.my.com\",\n    token=\"0000000000000000000000000000000000000000\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointSonarQube = new AzureDevOps.ServiceEndpointSonarQube(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example SonarQube\",\n        Url = \"https://sonarqube.my.com\",\n        Token = \"0000000000000000000000000000000000000000\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointSonarQube(ctx, \"example\", \u0026azuredevops.ServiceEndpointSonarQubeArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example SonarQube\"),\n\t\t\tUrl:                 pulumi.String(\"https://sonarqube.my.com\"),\n\t\t\tToken:               pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointSonarQube;\nimport com.pulumi.azuredevops.ServiceEndpointSonarQubeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointSonarQube = new ServiceEndpointSonarQube(\"exampleServiceEndpointSonarQube\", ServiceEndpointSonarQubeArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example SonarQube\")\n            .url(\"https://sonarqube.my.com\")\n            .token(\"0000000000000000000000000000000000000000\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointSonarQube:\n    type: azuredevops:ServiceEndpointSonarQube\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example SonarQube\n      url: https://sonarqube.my.com\n      token: '0000000000000000000000000000000000000000'\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n- [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n- [SonarQube User Token](https://docs.sonarqube.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps SonarQube Server Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointSonarQube:ServiceEndpointSonarQube example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarQube (go to My Account \u003e Security \u003e Generate Tokens).\n","secret":true},"url":{"type":"string","description":"URL of the SonarQube server to connect with.\n"}},"required":["authorization","projectId","serviceEndpointName","token","url"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarQube (go to My Account \u003e Security \u003e Generate Tokens).\n","secret":true},"url":{"type":"string","description":"URL of the SonarQube server to connect with.\n"}},"requiredInputs":["projectId","serviceEndpointName","token","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointSonarQube resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"token":{"type":"string","description":"The Authentication Token generated through SonarQube (go to My Account \u003e Security \u003e Generate Tokens).\n","secret":true},"url":{"type":"string","description":"URL of the SonarQube server to connect with.\n"}},"type":"object"}},"azuredevops:index/serviceEndpointSsh:ServiceEndpointSsh":{"description":"Manages a SSH service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointSsh = new azuredevops.ServiceEndpointSsh(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example SSH\",\n    host: \"1.2.3.4\",\n    username: \"username\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_ssh = azuredevops.ServiceEndpointSsh(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example SSH\",\n    host=\"1.2.3.4\",\n    username=\"username\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointSsh = new AzureDevOps.ServiceEndpointSsh(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example SSH\",\n        Host = \"1.2.3.4\",\n        Username = \"username\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceEndpointSsh(ctx, \"example\", \u0026azuredevops.ServiceEndpointSshArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example SSH\"),\n\t\t\tHost:                pulumi.String(\"1.2.3.4\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointSsh;\nimport com.pulumi.azuredevops.ServiceEndpointSshArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointSsh = new ServiceEndpointSsh(\"exampleServiceEndpointSsh\", ServiceEndpointSshArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example SSH\")\n            .host(\"1.2.3.4\")\n            .username(\"username\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceEndpointSsh:\n    type: azuredevops:ServiceEndpointSsh\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example SSH\n      host: 1.2.3.4\n      username: username\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps SSH Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceEndpointSsh:ServiceEndpointSsh example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"host":{"type":"string","description":"The Host name or IP address of the remote machine.\n"},"password":{"type":"string","description":"Password for connecting to the endpoint.\n","secret":true},"port":{"type":"integer","description":"Port number on the remote machine to use for connecting. Defaults to \u003cspan pulumi-lang-nodejs=\"`22`\" pulumi-lang-dotnet=\"`22`\" pulumi-lang-go=\"`22`\" pulumi-lang-python=\"`22`\" pulumi-lang-yaml=\"`22`\" pulumi-lang-java=\"`22`\"\u003e`22`\u003c/span\u003e.\n"},"privateKey":{"type":"string","description":"Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Username for connecting to the endpoint.\n"}},"required":["authorization","host","projectId","serviceEndpointName","username"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"host":{"type":"string","description":"The Host name or IP address of the remote machine.\n"},"password":{"type":"string","description":"Password for connecting to the endpoint.\n","secret":true},"port":{"type":"integer","description":"Port number on the remote machine to use for connecting. Defaults to \u003cspan pulumi-lang-nodejs=\"`22`\" pulumi-lang-dotnet=\"`22`\" pulumi-lang-go=\"`22`\" pulumi-lang-python=\"`22`\" pulumi-lang-yaml=\"`22`\" pulumi-lang-java=\"`22`\"\u003e`22`\u003c/span\u003e.\n"},"privateKey":{"type":"string","description":"Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Username for connecting to the endpoint.\n"}},"requiredInputs":["host","projectId","serviceEndpointName","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceEndpointSsh resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"host":{"type":"string","description":"The Host name or IP address of the remote machine.\n"},"password":{"type":"string","description":"Password for connecting to the endpoint.\n","secret":true},"port":{"type":"integer","description":"Port number on the remote machine to use for connecting. Defaults to \u003cspan pulumi-lang-nodejs=\"`22`\" pulumi-lang-dotnet=\"`22`\" pulumi-lang-go=\"`22`\" pulumi-lang-python=\"`22`\" pulumi-lang-yaml=\"`22`\" pulumi-lang-java=\"`22`\"\u003e`22`\u003c/span\u003e.\n"},"privateKey":{"type":"string","description":"Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"Username for connecting to the endpoint.\n"}},"type":"object"}},"azuredevops:index/servicePrincipalEntitlement:ServicePrincipalEntitlement":{"description":"Manages a Service Principal Entitlement.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicePrincipalEntitlement(\"example\", {originId: \"00000000-0000-0000-0000-000000000000\"});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicePrincipalEntitlement(\"example\", origin_id=\"00000000-0000-0000-0000-000000000000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicePrincipalEntitlement(\"example\", new()\n    {\n        OriginId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicePrincipalEntitlement(ctx, \"example\", \u0026azuredevops.ServicePrincipalEntitlementArgs{\n\t\t\tOriginId: pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicePrincipalEntitlement;\nimport com.pulumi.azuredevops.ServicePrincipalEntitlementArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicePrincipalEntitlement(\"example\", ServicePrincipalEntitlementArgs.builder()\n            .originId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicePrincipalEntitlement\n    properties:\n      originId: 00000000-0000-0000-0000-000000000000\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nService Principal Entitlements can be imported using the `resource id`.\nThe `resource id` can be found using DEV Tools in the `Users` section of the ADO organization.\n\n\n```sh\n$ pulumi import azuredevops:index/servicePrincipalEntitlement:ServicePrincipalEntitlement example 8480c6eb-ce60-47e9-88df-eca3c801638b\n```\n\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the user graph subject.\n"},"displayName":{"type":"string","description":"The display name of service principal.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n"},"originId":{"type":"string","description":"The Object ID of the service principal in Entra ID. Changing this forces a new Service Principal Entitlement to be created.\n"}},"required":["descriptor","displayName","origin","originId"],"inputProperties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The Object ID of the service principal in Entra ID. Changing this forces a new Service Principal Entitlement to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["originId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServicePrincipalEntitlement resources.\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Possible values are: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the user graph subject.\n"},"displayName":{"type":"string","description":"The display name of service principal.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Possible values are: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The Object ID of the service principal in Entra ID. Changing this forces a new Service Principal Entitlement to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/serviceendpointArgocd:ServiceendpointArgocd":{"description":"Manages a ArgoCD service endpoint within Azure DevOps. Using this service endpoint requires you to first install [Argo CD Extension](https://marketplace.visualstudio.com/items?itemName=scb-tomasmortensen.vsix-argocd).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst exampleServiceendpointArgocd = new azuredevops.ServiceendpointArgocd(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example ArgoCD\",\n    description: \"Managed by Pulumi\",\n    url: \"https://argocd.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample_serviceendpoint_argocd = azuredevops.ServiceendpointArgocd(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example ArgoCD\",\n    description=\"Managed by Pulumi\",\n    url=\"https://argocd.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var exampleServiceendpointArgocd = new AzureDevOps.ServiceendpointArgocd(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example ArgoCD\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://argocd.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointArgocdAuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointArgocd(ctx, \"example\", \u0026azuredevops.ServiceendpointArgocdArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example ArgoCD\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://argocd.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointArgocdAuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointArgocd;\nimport com.pulumi.azuredevops.ServiceendpointArgocdArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointArgocdAuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var exampleServiceendpointArgocd = new ServiceendpointArgocd(\"exampleServiceendpointArgocd\", ServiceendpointArgocdArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example ArgoCD\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://argocd.my.com\")\n            .authenticationToken(ServiceendpointArgocdAuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  exampleServiceendpointArgocd:\n    type: azuredevops:ServiceendpointArgocd\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example ArgoCD\n      description: Managed by Pulumi\n      url: https://argocd.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointArgocd = new azuredevops.ServiceendpointArgocd(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example ArgoCD\",\n    description: \"Managed by Pulumi\",\n    url: \"https://argocd.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_argocd = azuredevops.ServiceendpointArgocd(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example ArgoCD\",\n    description=\"Managed by Pulumi\",\n    url=\"https://argocd.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointArgocd = new AzureDevOps.ServiceendpointArgocd(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example ArgoCD\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://argocd.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointArgocdAuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointArgocd(ctx, \"example\", \u0026azuredevops.ServiceendpointArgocdArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example ArgoCD\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://argocd.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointArgocdAuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointArgocd;\nimport com.pulumi.azuredevops.ServiceendpointArgocdArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointArgocdAuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointArgocd = new ServiceendpointArgocd(\"exampleServiceendpointArgocd\", ServiceendpointArgocdArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example ArgoCD\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://argocd.my.com\")\n            .authenticationBasic(ServiceendpointArgocdAuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointArgocd:\n    type: azuredevops:ServiceendpointArgocd\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example ArgoCD\n      description: Managed by Pulumi\n      url: https://argocd.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n## Relevant Links\n\n- [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n- [ArgoCD Project/User Token](https://argo-cd.readthedocs.io/en/stable/user-guide/commands/argocd_account_generate-token/)\n- [Argo CD Extension](https://marketplace.visualstudio.com/items?itemName=scb-tomasmortensen.vsix-argocd)\n\n## Import\n\nAzure DevOps Argo CD Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointArgocd:ServiceendpointArgocd example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationBasic:ServiceendpointArgocdAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block for the ArgoCD as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationToken:ServiceendpointArgocdAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block for the ArgoCD as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the ArgoCD server to connect with.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationBasic:ServiceendpointArgocdAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block for the ArgoCD as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationToken:ServiceendpointArgocdAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block for the ArgoCD as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the ArgoCD server to connect with.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointArgocd resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationBasic:ServiceendpointArgocdAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block for the ArgoCD as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointArgocdAuthenticationToken:ServiceendpointArgocdAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block for the ArgoCD as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the ArgoCD server to connect with.\n"}},"type":"object"}},"azuredevops:index/serviceendpointAzureServiceBus:ServiceendpointAzureServiceBus":{"description":"Manages an Azure Service Bus service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointAzureServiceBus = new azuredevops.ServiceendpointAzureServiceBus(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Azure Service Bus\",\n    queueName: \"queue\",\n    connectionString: \"connection string\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_azure_service_bus = azuredevops.ServiceendpointAzureServiceBus(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Azure Service Bus\",\n    queue_name=\"queue\",\n    connection_string=\"connection string\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointAzureServiceBus = new AzureDevOps.ServiceendpointAzureServiceBus(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Azure Service Bus\",\n        QueueName = \"queue\",\n        ConnectionString = \"connection string\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointAzureServiceBus(ctx, \"example\", \u0026azuredevops.ServiceendpointAzureServiceBusArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Azure Service Bus\"),\n\t\t\tQueueName:           pulumi.String(\"queue\"),\n\t\t\tConnectionString:    pulumi.String(\"connection string\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointAzureServiceBus;\nimport com.pulumi.azuredevops.ServiceendpointAzureServiceBusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointAzureServiceBus = new ServiceendpointAzureServiceBus(\"exampleServiceendpointAzureServiceBus\", ServiceendpointAzureServiceBusArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Azure Service Bus\")\n            .queueName(\"queue\")\n            .connectionString(\"connection string\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointAzureServiceBus:\n    type: azuredevops:ServiceendpointAzureServiceBus\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Azure Service Bus\n      queueName: queue\n      connectionString: connection string\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Azure Service Bus Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointAzureServiceBus:ServiceendpointAzureServiceBus example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"connectionString":{"type":"string","description":"The  Azure Service Bus Connection string.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"queueName":{"type":"string","description":"The Azure Service Bus Queue Name.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","connectionString","projectId","queueName","serviceEndpointName"],"inputProperties":{"connectionString":{"type":"string","description":"The  Azure Service Bus Connection string.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"queueName":{"type":"string","description":"The Azure Service Bus Queue Name.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["connectionString","projectId","queueName","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointAzureServiceBus resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"connectionString":{"type":"string","description":"The  Azure Service Bus Connection string.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"queueName":{"type":"string","description":"The Azure Service Bus Queue Name.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointBlackDuck:ServiceendpointBlackDuck":{"description":"Manages a Black Duck service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Black Duck Detect](https://marketplace.visualstudio.com/items?itemName=blackduck.blackduck-detect)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointBlackDuck = new azuredevops.ServiceendpointBlackDuck(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://blackduck.com/\",\n    apiToken: \"token\",\n    serviceEndpointName: \"Example Black Duck\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_black_duck = azuredevops.ServiceendpointBlackDuck(\"example\",\n    project_id=example.id,\n    server_url=\"https://blackduck.com/\",\n    api_token=\"token\",\n    service_endpoint_name=\"Example Black Duck\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointBlackDuck = new AzureDevOps.ServiceendpointBlackDuck(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://blackduck.com/\",\n        ApiToken = \"token\",\n        ServiceEndpointName = \"Example Black Duck\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointBlackDuck(ctx, \"example\", \u0026azuredevops.ServiceendpointBlackDuckArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://blackduck.com/\"),\n\t\t\tApiToken:            pulumi.String(\"token\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Black Duck\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointBlackDuck;\nimport com.pulumi.azuredevops.ServiceendpointBlackDuckArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointBlackDuck = new ServiceendpointBlackDuck(\"exampleServiceendpointBlackDuck\", ServiceendpointBlackDuckArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://blackduck.com/\")\n            .apiToken(\"token\")\n            .serviceEndpointName(\"Example Black Duck\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointBlackDuck:\n    type: azuredevops:ServiceendpointBlackDuck\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://blackduck.com/\n      apiToken: token\n      serviceEndpointName: Example Black Duck\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Black Duck Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointBlackDuck:ServiceendpointBlackDuck example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiToken":{"type":"string","description":"The API token of the Black Duck Detect.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The server URL of the Black Duck Detect.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["apiToken","authorization","projectId","serverUrl","serviceEndpointName"],"inputProperties":{"apiToken":{"type":"string","description":"The API token of the Black Duck Detect.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the Black Duck Detect.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["apiToken","projectId","serverUrl","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointBlackDuck resources.\n","properties":{"apiToken":{"type":"string","description":"The API token of the Black Duck Detect.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the Black Duck Detect.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointCheckmarxOne:ServiceendpointCheckmarxOne":{"description":"Manages a Checkmarx One service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Checkmarx AST](https://marketplace.visualstudio.com/items?itemName=checkmarx.checkmarx-ast-azure-plugin)\n\n## Example Usage\n\n### Authorize with API Key\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointCheckmarxOne = new azuredevops.ServiceendpointCheckmarxOne(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Checkmarx One\",\n    serverUrl: \"https://server.com\",\n    apiKey: \"apikey\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_checkmarx_one = azuredevops.ServiceendpointCheckmarxOne(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Checkmarx One\",\n    server_url=\"https://server.com\",\n    api_key=\"apikey\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointCheckmarxOne = new AzureDevOps.ServiceendpointCheckmarxOne(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Checkmarx One\",\n        ServerUrl = \"https://server.com\",\n        ApiKey = \"apikey\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointCheckmarxOne(ctx, \"example\", \u0026azuredevops.ServiceendpointCheckmarxOneArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Checkmarx One\"),\n\t\t\tServerUrl:           pulumi.String(\"https://server.com\"),\n\t\t\tApiKey:              pulumi.String(\"apikey\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxOne;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxOneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointCheckmarxOne = new ServiceendpointCheckmarxOne(\"exampleServiceendpointCheckmarxOne\", ServiceendpointCheckmarxOneArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Checkmarx One\")\n            .serverUrl(\"https://server.com\")\n            .apiKey(\"apikey\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointCheckmarxOne:\n    type: azuredevops:ServiceendpointCheckmarxOne\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Checkmarx One\n      serverUrl: https://server.com\n      apiKey: apikey\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authorize with Client ID and Secret\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointCheckmarxOne = new azuredevops.ServiceendpointCheckmarxOne(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Checkmarx One\",\n    serverUrl: \"https://server.com\",\n    clientId: \"clientid\",\n    clientSecret: \"secret\",\n    authorizationUrl: \"https://authurl.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_checkmarx_one = azuredevops.ServiceendpointCheckmarxOne(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Checkmarx One\",\n    server_url=\"https://server.com\",\n    client_id=\"clientid\",\n    client_secret=\"secret\",\n    authorization_url=\"https://authurl.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointCheckmarxOne = new AzureDevOps.ServiceendpointCheckmarxOne(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Checkmarx One\",\n        ServerUrl = \"https://server.com\",\n        ClientId = \"clientid\",\n        ClientSecret = \"secret\",\n        AuthorizationUrl = \"https://authurl.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointCheckmarxOne(ctx, \"example\", \u0026azuredevops.ServiceendpointCheckmarxOneArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Checkmarx One\"),\n\t\t\tServerUrl:           pulumi.String(\"https://server.com\"),\n\t\t\tClientId:            pulumi.String(\"clientid\"),\n\t\t\tClientSecret:        pulumi.String(\"secret\"),\n\t\t\tAuthorizationUrl:    pulumi.String(\"https://authurl.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxOne;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxOneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointCheckmarxOne = new ServiceendpointCheckmarxOne(\"exampleServiceendpointCheckmarxOne\", ServiceendpointCheckmarxOneArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Checkmarx One\")\n            .serverUrl(\"https://server.com\")\n            .clientId(\"clientid\")\n            .clientSecret(\"secret\")\n            .authorizationUrl(\"https://authurl.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointCheckmarxOne:\n    type: azuredevops:ServiceendpointCheckmarxOne\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Checkmarx One\n      serverUrl: https://server.com\n      clientId: clientid\n      clientSecret: secret\n      authorizationUrl: https://authurl.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Service Endpoint Check Marx One can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointCheckmarxOne:ServiceendpointCheckmarxOne example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiKey":{"type":"string","description":"The account of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationUrl":{"type":"string","description":"The URL of Checkmarx Authorization. Used when using \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e authorization.\n"},"clientId":{"type":"string","description":"The Client ID of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n"},"clientSecret":{"type":"string","description":"The Client Secret of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e must be set\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx One Service.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","projectId","serverUrl","serviceEndpointName"],"inputProperties":{"apiKey":{"type":"string","description":"The account of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e.\n","secret":true},"authorizationUrl":{"type":"string","description":"The URL of Checkmarx Authorization. Used when using \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e authorization.\n"},"clientId":{"type":"string","description":"The Client ID of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n"},"clientSecret":{"type":"string","description":"The Client Secret of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e must be set\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx One Service.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["projectId","serverUrl","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointCheckmarxOne resources.\n","properties":{"apiKey":{"type":"string","description":"The account of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationUrl":{"type":"string","description":"The URL of Checkmarx Authorization. Used when using \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e authorization.\n"},"clientId":{"type":"string","description":"The Client ID of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n"},"clientSecret":{"type":"string","description":"The Client Secret of the Checkmarx One. Conflict with \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`clientId`\" pulumi-lang-dotnet=\"`ClientId`\" pulumi-lang-go=\"`clientId`\" pulumi-lang-python=\"`client_id`\" pulumi-lang-yaml=\"`clientId`\" pulumi-lang-java=\"`clientId`\"\u003e`client_id`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`clientSecret`\" pulumi-lang-dotnet=\"`ClientSecret`\" pulumi-lang-go=\"`clientSecret`\" pulumi-lang-python=\"`client_secret`\" pulumi-lang-yaml=\"`clientSecret`\" pulumi-lang-java=\"`clientSecret`\"\u003e`client_secret`\u003c/span\u003e must be set\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx One Service.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointCheckmarxSast:ServiceendpointCheckmarxSast":{"description":"Manages a Checkmarx SAST service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Checkmarx SAST](https://marketplace.visualstudio.com/items?itemName=checkmarx.cxsast)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointCheckmarxSast = new azuredevops.ServiceendpointCheckmarxSast(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Checkmarx SAST\",\n    serverUrl: \"https://server.com\",\n    username: \"username\",\n    password: \"password\",\n    team: \"team\",\n    preset: \"preset\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_checkmarx_sast = azuredevops.ServiceendpointCheckmarxSast(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Checkmarx SAST\",\n    server_url=\"https://server.com\",\n    username=\"username\",\n    password=\"password\",\n    team=\"team\",\n    preset=\"preset\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointCheckmarxSast = new AzureDevOps.ServiceendpointCheckmarxSast(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Checkmarx SAST\",\n        ServerUrl = \"https://server.com\",\n        Username = \"username\",\n        Password = \"password\",\n        Team = \"team\",\n        Preset = \"preset\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointCheckmarxSast(ctx, \"example\", \u0026azuredevops.ServiceendpointCheckmarxSastArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Checkmarx SAST\"),\n\t\t\tServerUrl:           pulumi.String(\"https://server.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t\tTeam:                pulumi.String(\"team\"),\n\t\t\tPreset:              pulumi.String(\"preset\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxSast;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxSastArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointCheckmarxSast = new ServiceendpointCheckmarxSast(\"exampleServiceendpointCheckmarxSast\", ServiceendpointCheckmarxSastArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Checkmarx SAST\")\n            .serverUrl(\"https://server.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .team(\"team\")\n            .preset(\"preset\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointCheckmarxSast:\n    type: azuredevops:ServiceendpointCheckmarxSast\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Checkmarx SAST\n      serverUrl: https://server.com\n      username: username\n      password: password\n      team: team\n      preset: preset\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Service Endpoint Check Marx SAST can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointCheckmarxSast:ServiceendpointCheckmarxSast example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SAST.\n","secret":true},"preset":{"type":"string","description":"Predefined sets of queries that you can select when Creating, Configuring and Branching Projects. Predefined presets are provided by Checkmarx and you can configure your own. You can also import and export presets (on the server).In Service Connection if preset(optional) value is added, then it will igonres Preset available in pipeline and uses preset available in service connection only.If Preset is blank in service connection then it will use pipelines preset.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SAST.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SAST.\n"}},"required":["authorization","password","projectId","serverUrl","serviceEndpointName","username"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SAST.\n","secret":true},"preset":{"type":"string","description":"Predefined sets of queries that you can select when Creating, Configuring and Branching Projects. Predefined presets are provided by Checkmarx and you can configure your own. You can also import and export presets (on the server).In Service Connection if preset(optional) value is added, then it will igonres Preset available in pipeline and uses preset available in service connection only.If Preset is blank in service connection then it will use pipelines preset.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SAST.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SAST.\n"}},"requiredInputs":["password","projectId","serverUrl","serviceEndpointName","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointCheckmarxSast resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SAST.\n","secret":true},"preset":{"type":"string","description":"Predefined sets of queries that you can select when Creating, Configuring and Branching Projects. Predefined presets are provided by Checkmarx and you can configure your own. You can also import and export presets (on the server).In Service Connection if preset(optional) value is added, then it will igonres Preset available in pipeline and uses preset available in service connection only.If Preset is blank in service connection then it will use pipelines preset.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SAST.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SAST.\n"}},"type":"object"}},"azuredevops:index/serviceendpointCheckmarxSca:ServiceendpointCheckmarxSca":{"description":"Manages a Checkmarx SCA service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Checkmarx SAST](https://marketplace.visualstudio.com/items?itemName=checkmarx.cxsast)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointCheckmarxSca = new azuredevops.ServiceendpointCheckmarxSca(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Checkmarx SCA\",\n    accessControlUrl: \"https://accesscontrol.com\",\n    serverUrl: \"https://server.com\",\n    webAppUrl: \"https://webapp.com\",\n    account: \"account\",\n    username: \"username\",\n    password: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_checkmarx_sca = azuredevops.ServiceendpointCheckmarxSca(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Checkmarx SCA\",\n    access_control_url=\"https://accesscontrol.com\",\n    server_url=\"https://server.com\",\n    web_app_url=\"https://webapp.com\",\n    account=\"account\",\n    username=\"username\",\n    password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointCheckmarxSca = new AzureDevOps.ServiceendpointCheckmarxSca(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Checkmarx SCA\",\n        AccessControlUrl = \"https://accesscontrol.com\",\n        ServerUrl = \"https://server.com\",\n        WebAppUrl = \"https://webapp.com\",\n        Account = \"account\",\n        Username = \"username\",\n        Password = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointCheckmarxSca(ctx, \"example\", \u0026azuredevops.ServiceendpointCheckmarxScaArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Checkmarx SCA\"),\n\t\t\tAccessControlUrl:    pulumi.String(\"https://accesscontrol.com\"),\n\t\t\tServerUrl:           pulumi.String(\"https://server.com\"),\n\t\t\tWebAppUrl:           pulumi.String(\"https://webapp.com\"),\n\t\t\tAccount:             pulumi.String(\"account\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxSca;\nimport com.pulumi.azuredevops.ServiceendpointCheckmarxScaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointCheckmarxSca = new ServiceendpointCheckmarxSca(\"exampleServiceendpointCheckmarxSca\", ServiceendpointCheckmarxScaArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Checkmarx SCA\")\n            .accessControlUrl(\"https://accesscontrol.com\")\n            .serverUrl(\"https://server.com\")\n            .webAppUrl(\"https://webapp.com\")\n            .account(\"account\")\n            .username(\"username\")\n            .password(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointCheckmarxSca:\n    type: azuredevops:ServiceendpointCheckmarxSca\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Checkmarx SCA\n      accessControlUrl: https://accesscontrol.com\n      serverUrl: https://server.com\n      webAppUrl: https://webapp.com\n      account: account\n      username: username\n      password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Service Endpoint Check Marx SCA can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointCheckmarxSca:ServiceendpointCheckmarxSca example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"accessControlUrl":{"type":"string","description":"The Access Control URL of the Checkmarx SCA.\n"},"account":{"type":"string","description":"The account of the Checkmarx SCA.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SCA.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SCA.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SCA.\n"},"webAppUrl":{"type":"string","description":"The Web App URL of the Checkmarx SCA.\n"}},"required":["accessControlUrl","account","authorization","password","projectId","serverUrl","serviceEndpointName","username","webAppUrl"],"inputProperties":{"accessControlUrl":{"type":"string","description":"The Access Control URL of the Checkmarx SCA.\n"},"account":{"type":"string","description":"The account of the Checkmarx SCA.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SCA.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SCA.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SCA.\n"},"webAppUrl":{"type":"string","description":"The Web App URL of the Checkmarx SCA.\n"}},"requiredInputs":["accessControlUrl","account","password","projectId","serverUrl","serviceEndpointName","username","webAppUrl"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointCheckmarxSca resources.\n","properties":{"accessControlUrl":{"type":"string","description":"The Access Control URL of the Checkmarx SCA.\n"},"account":{"type":"string","description":"The account of the Checkmarx SCA.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"password":{"type":"string","description":"The password of the Checkmarx SCA.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The Server URL of the Checkmarx SCA.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"team":{"type":"string","description":"The full team name of the Checkmarx.\n"},"username":{"type":"string","description":"The username of the Checkmarx SCA.\n"},"webAppUrl":{"type":"string","description":"The Web App URL of the Checkmarx SCA.\n"}},"type":"object"}},"azuredevops:index/serviceendpointDynamicsLifecycleServices:ServiceendpointDynamicsLifecycleServices":{"description":"Manages a Dynamics Lifecycle Services service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Dynamics Lifecycle Services](https://marketplace.visualstudio.com/items?itemName=Dyn365FinOps.dynamics365-finops-tools)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointDynamicsLifecycleServices = new azuredevops.ServiceendpointDynamicsLifecycleServices(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Service connection\",\n    authorizationEndpoint: \"https://login.microsoftonline.com/organization\",\n    lifecycleServicesApiEndpoint: \"https://lcsapi.lcs.dynamics.com\",\n    clientId: \"00000000-0000-0000-0000-000000000000\",\n    username: \"username\",\n    password: \"password\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_dynamics_lifecycle_services = azuredevops.ServiceendpointDynamicsLifecycleServices(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Service connection\",\n    authorization_endpoint=\"https://login.microsoftonline.com/organization\",\n    lifecycle_services_api_endpoint=\"https://lcsapi.lcs.dynamics.com\",\n    client_id=\"00000000-0000-0000-0000-000000000000\",\n    username=\"username\",\n    password=\"password\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointDynamicsLifecycleServices = new AzureDevOps.ServiceendpointDynamicsLifecycleServices(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Service connection\",\n        AuthorizationEndpoint = \"https://login.microsoftonline.com/organization\",\n        LifecycleServicesApiEndpoint = \"https://lcsapi.lcs.dynamics.com\",\n        ClientId = \"00000000-0000-0000-0000-000000000000\",\n        Username = \"username\",\n        Password = \"password\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointDynamicsLifecycleServices(ctx, \"example\", \u0026azuredevops.ServiceendpointDynamicsLifecycleServicesArgs{\n\t\t\tProjectId:                    example.ID(),\n\t\t\tServiceEndpointName:          pulumi.String(\"Example Service connection\"),\n\t\t\tAuthorizationEndpoint:        pulumi.String(\"https://login.microsoftonline.com/organization\"),\n\t\t\tLifecycleServicesApiEndpoint: pulumi.String(\"https://lcsapi.lcs.dynamics.com\"),\n\t\t\tClientId:                     pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tUsername:                     pulumi.String(\"username\"),\n\t\t\tPassword:                     pulumi.String(\"password\"),\n\t\t\tDescription:                  pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointDynamicsLifecycleServices;\nimport com.pulumi.azuredevops.ServiceendpointDynamicsLifecycleServicesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointDynamicsLifecycleServices = new ServiceendpointDynamicsLifecycleServices(\"exampleServiceendpointDynamicsLifecycleServices\", ServiceendpointDynamicsLifecycleServicesArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Service connection\")\n            .authorizationEndpoint(\"https://login.microsoftonline.com/organization\")\n            .lifecycleServicesApiEndpoint(\"https://lcsapi.lcs.dynamics.com\")\n            .clientId(\"00000000-0000-0000-0000-000000000000\")\n            .username(\"username\")\n            .password(\"password\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointDynamicsLifecycleServices:\n    type: azuredevops:ServiceendpointDynamicsLifecycleServices\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Service connection\n      authorizationEndpoint: https://login.microsoftonline.com/organization\n      lifecycleServicesApiEndpoint: https://lcsapi.lcs.dynamics.com\n      clientId: 00000000-0000-0000-0000-000000000000\n      username: username\n      password: password\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Dynamics Life Cycle Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointDynamicsLifecycleServices:ServiceendpointDynamicsLifecycleServices example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationEndpoint":{"type":"string","description":"The URL of the Authentication Endpoint.\n"},"clientId":{"type":"string","description":"The client ID for a native application registration in Azure Active Directory with API permissions for Dynamics Lifecycle Services.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"lifecycleServicesApiEndpoint":{"type":"string","description":"The URL of the Lifecycle Services API Endpoint.\n"},"password":{"type":"string","description":"The Password for the Azure Active Directory account.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The E-mail address of user with sufficient permissions to interact with LCS asset library and environments.\n"}},"required":["authorization","authorizationEndpoint","clientId","lifecycleServicesApiEndpoint","password","projectId","serviceEndpointName","username"],"inputProperties":{"authorizationEndpoint":{"type":"string","description":"The URL of the Authentication Endpoint.\n"},"clientId":{"type":"string","description":"The client ID for a native application registration in Azure Active Directory with API permissions for Dynamics Lifecycle Services.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"lifecycleServicesApiEndpoint":{"type":"string","description":"The URL of the Lifecycle Services API Endpoint.\n"},"password":{"type":"string","description":"The Password for the Azure Active Directory account.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The E-mail address of user with sufficient permissions to interact with LCS asset library and environments.\n"}},"requiredInputs":["authorizationEndpoint","clientId","lifecycleServicesApiEndpoint","password","projectId","serviceEndpointName","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointDynamicsLifecycleServices resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"authorizationEndpoint":{"type":"string","description":"The URL of the Authentication Endpoint.\n"},"clientId":{"type":"string","description":"The client ID for a native application registration in Azure Active Directory with API permissions for Dynamics Lifecycle Services.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"lifecycleServicesApiEndpoint":{"type":"string","description":"The URL of the Lifecycle Services API Endpoint.\n"},"password":{"type":"string","description":"The Password for the Azure Active Directory account.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The E-mail address of user with sufficient permissions to interact with LCS asset library and environments.\n"}},"type":"object"}},"azuredevops:index/serviceendpointExternaltfs:ServiceendpointExternaltfs":{"description":"Manages an Azure Repository/Team Foundation Server service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointExternaltfs = new azuredevops.ServiceendpointExternaltfs(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example External TFS Name\",\n    connectionUrl: \"https://dev.azure.com/myorganization\",\n    description: \"Managed by Pulumi\",\n    authPersonal: {\n        personalAccessToken: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_externaltfs = azuredevops.ServiceendpointExternaltfs(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example External TFS Name\",\n    connection_url=\"https://dev.azure.com/myorganization\",\n    description=\"Managed by Pulumi\",\n    auth_personal={\n        \"personal_access_token\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointExternaltfs = new AzureDevOps.ServiceendpointExternaltfs(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example External TFS Name\",\n        ConnectionUrl = \"https://dev.azure.com/myorganization\",\n        Description = \"Managed by Pulumi\",\n        AuthPersonal = new AzureDevOps.Inputs.ServiceendpointExternaltfsAuthPersonalArgs\n        {\n            PersonalAccessToken = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointExternaltfs(ctx, \"example\", \u0026azuredevops.ServiceendpointExternaltfsArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example External TFS Name\"),\n\t\t\tConnectionUrl:       pulumi.String(\"https://dev.azure.com/myorganization\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tAuthPersonal: \u0026azuredevops.ServiceendpointExternaltfsAuthPersonalArgs{\n\t\t\t\tPersonalAccessToken: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointExternaltfs;\nimport com.pulumi.azuredevops.ServiceendpointExternaltfsArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointExternaltfsAuthPersonalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointExternaltfs = new ServiceendpointExternaltfs(\"exampleServiceendpointExternaltfs\", ServiceendpointExternaltfsArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example External TFS Name\")\n            .connectionUrl(\"https://dev.azure.com/myorganization\")\n            .description(\"Managed by Pulumi\")\n            .authPersonal(ServiceendpointExternaltfsAuthPersonalArgs.builder()\n                .personalAccessToken(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointExternaltfs:\n    type: azuredevops:ServiceendpointExternaltfs\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example External TFS Name\n      connectionUrl: https://dev.azure.com/myorganization\n      description: Managed by Pulumi\n      authPersonal:\n        personalAccessToken: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Azure Repository/Team Foundation Server Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointExternaltfs:ServiceendpointExternaltfs example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceendpointExternaltfsAuthPersonal:ServiceendpointExternaltfsAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"connectionUrl":{"type":"string","description":"Azure DevOps Organization or TFS Project Collection Url.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authPersonal","authorization","connectionUrl","projectId","serviceEndpointName"],"inputProperties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceendpointExternaltfsAuthPersonal:ServiceendpointExternaltfsAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"connectionUrl":{"type":"string","description":"Azure DevOps Organization or TFS Project Collection Url.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["authPersonal","connectionUrl","projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointExternaltfs resources.\n","properties":{"authPersonal":{"$ref":"#/types/azuredevops:index/ServiceendpointExternaltfsAuthPersonal:ServiceendpointExternaltfsAuthPersonal","description":"An \u003cspan pulumi-lang-nodejs=\"`authPersonal`\" pulumi-lang-dotnet=\"`AuthPersonal`\" pulumi-lang-go=\"`authPersonal`\" pulumi-lang-python=\"`auth_personal`\" pulumi-lang-yaml=\"`authPersonal`\" pulumi-lang-java=\"`authPersonal`\"\u003e`auth_personal`\u003c/span\u003e block as documented below. Allows connecting using a personal access token.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"connectionUrl":{"type":"string","description":"Azure DevOps Organization or TFS Project Collection Url.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointGcpTerraform:ServiceendpointGcpTerraform":{"description":"Manages a GCP for Terraform service endpoint for Terraform within Azure DevOps. Using this service endpoint requires you to first install the Azure Terraform Extension for Azure DevOps from Microsoft DevLabs.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointGcpTerraform = new azuredevops.ServiceendpointGcpTerraform(\"example\", {\n    projectId: example.id,\n    tokenUri: \"https://oauth2.example.com/token\",\n    clientEmail: \"gcp-sa-example@example.iam.gserviceaccount.com\",\n    privateKey: \"0000000000000000000000000000000000000\",\n    serviceEndpointName: \"Example GCP Terraform extension\",\n    gcpProjectId: \"Example GCP Project\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_gcp_terraform = azuredevops.ServiceendpointGcpTerraform(\"example\",\n    project_id=example.id,\n    token_uri=\"https://oauth2.example.com/token\",\n    client_email=\"gcp-sa-example@example.iam.gserviceaccount.com\",\n    private_key=\"0000000000000000000000000000000000000\",\n    service_endpoint_name=\"Example GCP Terraform extension\",\n    gcp_project_id=\"Example GCP Project\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointGcpTerraform = new AzureDevOps.ServiceendpointGcpTerraform(\"example\", new()\n    {\n        ProjectId = example.Id,\n        TokenUri = \"https://oauth2.example.com/token\",\n        ClientEmail = \"gcp-sa-example@example.iam.gserviceaccount.com\",\n        PrivateKey = \"0000000000000000000000000000000000000\",\n        ServiceEndpointName = \"Example GCP Terraform extension\",\n        GcpProjectId = \"Example GCP Project\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointGcpTerraform(ctx, \"example\", \u0026azuredevops.ServiceendpointGcpTerraformArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tTokenUri:            pulumi.String(\"https://oauth2.example.com/token\"),\n\t\t\tClientEmail:         pulumi.String(\"gcp-sa-example@example.iam.gserviceaccount.com\"),\n\t\t\tPrivateKey:          pulumi.String(\"0000000000000000000000000000000000000\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example GCP Terraform extension\"),\n\t\t\tGcpProjectId:        pulumi.String(\"Example GCP Project\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointGcpTerraform;\nimport com.pulumi.azuredevops.ServiceendpointGcpTerraformArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointGcpTerraform = new ServiceendpointGcpTerraform(\"exampleServiceendpointGcpTerraform\", ServiceendpointGcpTerraformArgs.builder()\n            .projectId(example.id())\n            .tokenUri(\"https://oauth2.example.com/token\")\n            .clientEmail(\"gcp-sa-example@example.iam.gserviceaccount.com\")\n            .privateKey(\"0000000000000000000000000000000000000\")\n            .serviceEndpointName(\"Example GCP Terraform extension\")\n            .gcpProjectId(\"Example GCP Project\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointGcpTerraform:\n    type: azuredevops:ServiceendpointGcpTerraform\n    name: example\n    properties:\n      projectId: ${example.id}\n      tokenUri: https://oauth2.example.com/token\n      clientEmail: gcp-sa-example@example.iam.gserviceaccount.com\n      privateKey: '0000000000000000000000000000000000000'\n      serviceEndpointName: Example GCP Terraform extension\n      gcpProjectId: Example GCP Project\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.1)\n\n## Import\n\nAzure DevOps GCP for Terraform Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n $ pulumi import azuredevops:index/serviceendpointGcpTerraform:ServiceendpointGcpTerraform example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"clientEmail":{"type":"string","description":"The client email field in the JSON key file for creating the JSON Web Token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"gcpProjectId":{"type":"string","description":"GCP project associated with the Service Connection.\n"},"privateKey":{"type":"string","description":"The Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"scope":{"type":"string","description":"Scope to be provided.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"tokenUri":{"type":"string","description":"The token uri field in the JSON key file for creating the JSON Web Token.\n"}},"required":["authorization","gcpProjectId","privateKey","projectId","serviceEndpointName","tokenUri"],"inputProperties":{"clientEmail":{"type":"string","description":"The client email field in the JSON key file for creating the JSON Web Token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"gcpProjectId":{"type":"string","description":"GCP project associated with the Service Connection.\n"},"privateKey":{"type":"string","description":"The Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"Scope to be provided.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"tokenUri":{"type":"string","description":"The token uri field in the JSON key file for creating the JSON Web Token.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointGcpTerraform resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"clientEmail":{"type":"string","description":"The client email field in the JSON key file for creating the JSON Web Token.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"gcpProjectId":{"type":"string","description":"GCP project associated with the Service Connection.\n"},"privateKey":{"type":"string","description":"The Private Key for connecting to the endpoint.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"scope":{"type":"string","description":"Scope to be provided.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"tokenUri":{"type":"string","description":"The token uri field in the JSON key file for creating the JSON Web Token.\n"}},"type":"object"}},"azuredevops:index/serviceendpointGenericV2:ServiceendpointGenericV2":{"description":"Manages a Generic Service Endpoint (v2) within Azure DevOps, which can be used to connect to various external services with custom authentication mechanisms.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\n// Basic username/password authentication\nconst exampleServiceendpointGenericV2 = new azuredevops.ServiceendpointGenericV2(\"example\", {\n    projectId: example.id,\n    name: \"Example Generic Service Endpoint\",\n    description: \"Managed by Pulumi\",\n    serviceEndpointType: \"generic\",\n    serverUrl: \"https://example.com\",\n    authorizationScheme: \"UsernamePassword\",\n    authorizationParameters: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n// Token-based authentication\nconst tokenExample = new azuredevops.ServiceendpointGenericV2(\"token_example\", {\n    projectId: example.id,\n    name: \"Token-based Service Endpoint\",\n    description: \"Managed by Pulumi\",\n    serviceEndpointType: \"generic\",\n    serverUrl: \"https://api.example.com\",\n    authorizationScheme: \"Token\",\n    authorizationParameters: {\n        apitoken: \"your-api-token\",\n    },\n    parameters: {\n        releaseUrl: \"https://releases.example.com\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\n# Basic username/password authentication\nexample_serviceendpoint_generic_v2 = azuredevops.ServiceendpointGenericV2(\"example\",\n    project_id=example.id,\n    name=\"Example Generic Service Endpoint\",\n    description=\"Managed by Pulumi\",\n    service_endpoint_type=\"generic\",\n    server_url=\"https://example.com\",\n    authorization_scheme=\"UsernamePassword\",\n    authorization_parameters={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n# Token-based authentication\ntoken_example = azuredevops.ServiceendpointGenericV2(\"token_example\",\n    project_id=example.id,\n    name=\"Token-based Service Endpoint\",\n    description=\"Managed by Pulumi\",\n    service_endpoint_type=\"generic\",\n    server_url=\"https://api.example.com\",\n    authorization_scheme=\"Token\",\n    authorization_parameters={\n        \"apitoken\": \"your-api-token\",\n    },\n    parameters={\n        \"releaseUrl\": \"https://releases.example.com\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    // Basic username/password authentication\n    var exampleServiceendpointGenericV2 = new AzureDevOps.ServiceendpointGenericV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Generic Service Endpoint\",\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointType = \"generic\",\n        ServerUrl = \"https://example.com\",\n        AuthorizationScheme = \"UsernamePassword\",\n        AuthorizationParameters = \n        {\n            { \"username\", \"username\" },\n            { \"password\", \"password\" },\n        },\n    });\n\n    // Token-based authentication\n    var tokenExample = new AzureDevOps.ServiceendpointGenericV2(\"token_example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Token-based Service Endpoint\",\n        Description = \"Managed by Pulumi\",\n        ServiceEndpointType = \"generic\",\n        ServerUrl = \"https://api.example.com\",\n        AuthorizationScheme = \"Token\",\n        AuthorizationParameters = \n        {\n            { \"apitoken\", \"your-api-token\" },\n        },\n        Parameters = \n        {\n            { \"releaseUrl\", \"https://releases.example.com\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Basic username/password authentication\n\t\t_, err = azuredevops.NewServiceendpointGenericV2(ctx, \"example\", \u0026azuredevops.ServiceendpointGenericV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tName:                pulumi.String(\"Example Generic Service Endpoint\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointType: \"generic\",\n\t\t\tServerUrl:           pulumi.String(\"https://example.com\"),\n\t\t\tAuthorizationScheme: pulumi.String(\"UsernamePassword\"),\n\t\t\tAuthorizationParameters: pulumi.StringMap{\n\t\t\t\t\"username\": pulumi.String(\"username\"),\n\t\t\t\t\"password\": pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Token-based authentication\n\t\t_, err = azuredevops.NewServiceendpointGenericV2(ctx, \"token_example\", \u0026azuredevops.ServiceendpointGenericV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tName:                pulumi.String(\"Token-based Service Endpoint\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tServiceEndpointType: \"generic\",\n\t\t\tServerUrl:           pulumi.String(\"https://api.example.com\"),\n\t\t\tAuthorizationScheme: pulumi.String(\"Token\"),\n\t\t\tAuthorizationParameters: pulumi.StringMap{\n\t\t\t\t\"apitoken\": pulumi.String(\"your-api-token\"),\n\t\t\t},\n\t\t\tParameters: pulumi.StringMap{\n\t\t\t\t\"releaseUrl\": pulumi.String(\"https://releases.example.com\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointGenericV2;\nimport com.pulumi.azuredevops.ServiceendpointGenericV2Args;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        // Basic username/password authentication\n        var exampleServiceendpointGenericV2 = new ServiceendpointGenericV2(\"exampleServiceendpointGenericV2\", ServiceendpointGenericV2Args.builder()\n            .projectId(example.id())\n            .name(\"Example Generic Service Endpoint\")\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointType(\"generic\")\n            .serverUrl(\"https://example.com\")\n            .authorizationScheme(\"UsernamePassword\")\n            .authorizationParameters(Map.ofEntries(\n                Map.entry(\"username\", \"username\"),\n                Map.entry(\"password\", \"password\")\n            ))\n            .build());\n\n        // Token-based authentication\n        var tokenExample = new ServiceendpointGenericV2(\"tokenExample\", ServiceendpointGenericV2Args.builder()\n            .projectId(example.id())\n            .name(\"Token-based Service Endpoint\")\n            .description(\"Managed by Pulumi\")\n            .serviceEndpointType(\"generic\")\n            .serverUrl(\"https://api.example.com\")\n            .authorizationScheme(\"Token\")\n            .authorizationParameters(Map.of(\"apitoken\", \"your-api-token\"))\n            .parameters(Map.of(\"releaseUrl\", \"https://releases.example.com\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  # Basic username/password authentication\n  exampleServiceendpointGenericV2:\n    type: azuredevops:ServiceendpointGenericV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Generic Service Endpoint\n      description: Managed by Pulumi\n      serviceEndpointType: generic\n      serverUrl: https://example.com\n      authorizationScheme: UsernamePassword\n      authorizationParameters:\n        username: username\n        password: password\n  # Token-based authentication\n  tokenExample:\n    type: azuredevops:ServiceendpointGenericV2\n    name: token_example\n    properties:\n      projectId: ${example.id}\n      name: Token-based Service Endpoint\n      description: Managed by Pulumi\n      serviceEndpointType: generic\n      serverUrl: https://api.example.com\n      authorizationScheme: Token\n      authorizationParameters:\n        apitoken: your-api-token\n      parameters:\n        releaseUrl: https://releases.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nService endpoints can be imported using the project ID and service endpoint ID:\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointGenericV2:ServiceendpointGenericV2 example \u003cproject_id\u003e/\u003cid\u003e\n```\n\n","properties":{"authorizationParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key/value pairs for the specific authorization scheme. These often include sensitive data like tokens, usernames, and passwords.\n","secret":true},"authorizationScheme":{"type":"string","description":"The authorization scheme to use. Common values include \"UsernamePassword\", \"Token\", \"OAuth\", etc.\n"},"description":{"type":"string","description":"The description of the service endpoint. Defaults to \"Managed by Pulumi\".\n"},"name":{"type":"string","description":"The name of the service endpoint.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional data associated with the service endpoint. This is a map of key/value pairs.\n"},"projectId":{"type":"string","description":"The ID of the project to which the service endpoint belongs.\n"},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"sharedProjectIds":{"type":"array","items":{"type":"string"},"description":"A list of project IDs where the service endpoint should be shared.\n"},"type":{"type":"string","description":"The type of the service endpoint. This can be any valid service endpoint type, such as \"generic\", \"artifactory\", etc.\n"}},"required":["authorizationScheme","name","projectId","serverUrl","type"],"inputProperties":{"authorizationParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key/value pairs for the specific authorization scheme. These often include sensitive data like tokens, usernames, and passwords.\n","secret":true},"authorizationScheme":{"type":"string","description":"The authorization scheme to use. Common values include \"UsernamePassword\", \"Token\", \"OAuth\", etc.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the service endpoint. Defaults to \"Managed by Pulumi\".\n"},"name":{"type":"string","description":"The name of the service endpoint.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional data associated with the service endpoint. This is a map of key/value pairs.\n"},"projectId":{"type":"string","description":"The ID of the project to which the service endpoint belongs.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"sharedProjectIds":{"type":"array","items":{"type":"string"},"description":"A list of project IDs where the service endpoint should be shared.\n"},"type":{"type":"string","description":"The type of the service endpoint. This can be any valid service endpoint type, such as \"generic\", \"artifactory\", etc.\n","willReplaceOnChanges":true}},"requiredInputs":["authorizationScheme","projectId","serverUrl","type"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointGenericV2 resources.\n","properties":{"authorizationParameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Map of key/value pairs for the specific authorization scheme. These often include sensitive data like tokens, usernames, and passwords.\n","secret":true},"authorizationScheme":{"type":"string","description":"The authorization scheme to use. Common values include \"UsernamePassword\", \"Token\", \"OAuth\", etc.\n","willReplaceOnChanges":true},"description":{"type":"string","description":"The description of the service endpoint. Defaults to \"Managed by Pulumi\".\n"},"name":{"type":"string","description":"The name of the service endpoint.\n"},"parameters":{"type":"object","additionalProperties":{"type":"string"},"description":"Additional data associated with the service endpoint. This is a map of key/value pairs.\n"},"projectId":{"type":"string","description":"The ID of the project to which the service endpoint belongs.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL of the server associated with the service endpoint.\n"},"sharedProjectIds":{"type":"array","items":{"type":"string"},"description":"A list of project IDs where the service endpoint should be shared.\n"},"type":{"type":"string","description":"The type of the service endpoint. This can be any valid service endpoint type, such as \"generic\", \"artifactory\", etc.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/serviceendpointIncomingwebhook:ServiceendpointIncomingwebhook":{"description":"Manages an Incoming WebHook service endpoint within Azure DevOps, which can be used as a resource in YAML pipelines to subscribe to a webhook event.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointIncomingwebhook = new azuredevops.ServiceendpointIncomingwebhook(\"example\", {\n    projectId: example.id,\n    webhookName: \"example_webhook\",\n    secret: \"secret\",\n    httpHeader: \"X-Hub-Signature\",\n    serviceEndpointName: \"Example IncomingWebhook\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_incomingwebhook = azuredevops.ServiceendpointIncomingwebhook(\"example\",\n    project_id=example.id,\n    webhook_name=\"example_webhook\",\n    secret=\"secret\",\n    http_header=\"X-Hub-Signature\",\n    service_endpoint_name=\"Example IncomingWebhook\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointIncomingwebhook = new AzureDevOps.ServiceendpointIncomingwebhook(\"example\", new()\n    {\n        ProjectId = example.Id,\n        WebhookName = \"example_webhook\",\n        Secret = \"secret\",\n        HttpHeader = \"X-Hub-Signature\",\n        ServiceEndpointName = \"Example IncomingWebhook\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointIncomingwebhook(ctx, \"example\", \u0026azuredevops.ServiceendpointIncomingwebhookArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tWebhookName:         pulumi.String(\"example_webhook\"),\n\t\t\tSecret:              pulumi.String(\"secret\"),\n\t\t\tHttpHeader:          pulumi.String(\"X-Hub-Signature\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example IncomingWebhook\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointIncomingwebhook;\nimport com.pulumi.azuredevops.ServiceendpointIncomingwebhookArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointIncomingwebhook = new ServiceendpointIncomingwebhook(\"exampleServiceendpointIncomingwebhook\", ServiceendpointIncomingwebhookArgs.builder()\n            .projectId(example.id())\n            .webhookName(\"example_webhook\")\n            .secret(\"secret\")\n            .httpHeader(\"X-Hub-Signature\")\n            .serviceEndpointName(\"Example IncomingWebhook\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointIncomingwebhook:\n    type: azuredevops:ServiceendpointIncomingwebhook\n    name: example\n    properties:\n      projectId: ${example.id}\n      webhookName: example_webhook\n      secret: secret\n      httpHeader: X-Hub-Signature\n      serviceEndpointName: Example IncomingWebhook\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Incoming WebHook Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointIncomingwebhook:ServiceendpointIncomingwebhook example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"httpHeader":{"type":"string","description":"Http header name on which checksum will be sent.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Incoming WebHook to be created.\n"},"secret":{"type":"string","description":"Secret for the WebHook. WebHook service will use this secret to calculate the payload checksum.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Incoming WebHook to be created.\n"},"webhookName":{"type":"string","description":"The name of the WebHook.\n"}},"required":["authorization","projectId","serviceEndpointName","webhookName"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"httpHeader":{"type":"string","description":"Http header name on which checksum will be sent.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Incoming WebHook to be created.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"Secret for the WebHook. WebHook service will use this secret to calculate the payload checksum.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Incoming WebHook to be created.\n"},"webhookName":{"type":"string","description":"The name of the WebHook.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointIncomingwebhook resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"httpHeader":{"type":"string","description":"Http header name on which checksum will be sent.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Incoming WebHook to be created.\n","willReplaceOnChanges":true},"secret":{"type":"string","description":"Secret for the WebHook. WebHook service will use this secret to calculate the payload checksum.\n","secret":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Incoming WebHook to be created.\n"},"webhookName":{"type":"string","description":"The name of the WebHook.\n"}},"type":"object"}},"azuredevops:index/serviceendpointJenkins:ServiceendpointJenkins":{"description":"Manages a Jenkins service endpoint within Azure DevOps, which can be used as a resource in YAML pipelines to connect to a Jenkins instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJenkins = new azuredevops.ServiceendpointJenkins(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"jenkins-example\",\n    description: \"Service Endpoint for 'Jenkins' (Managed by Terraform)\",\n    url: \"https://example.com\",\n    acceptUntrustedCerts: false,\n    username: \"username\",\n    password: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jenkins = azuredevops.ServiceendpointJenkins(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"jenkins-example\",\n    description=\"Service Endpoint for 'Jenkins' (Managed by Terraform)\",\n    url=\"https://example.com\",\n    accept_untrusted_certs=False,\n    username=\"username\",\n    password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJenkins = new AzureDevOps.ServiceendpointJenkins(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"jenkins-example\",\n        Description = \"Service Endpoint for 'Jenkins' (Managed by Terraform)\",\n        Url = \"https://example.com\",\n        AcceptUntrustedCerts = false,\n        Username = \"username\",\n        Password = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJenkins(ctx, \"example\", \u0026azuredevops.ServiceendpointJenkinsArgs{\n\t\t\tProjectId:            example.ID(),\n\t\t\tServiceEndpointName:  pulumi.String(\"jenkins-example\"),\n\t\t\tDescription:          pulumi.String(\"Service Endpoint for 'Jenkins' (Managed by Terraform)\"),\n\t\t\tUrl:                  pulumi.String(\"https://example.com\"),\n\t\t\tAcceptUntrustedCerts: pulumi.Bool(false),\n\t\t\tUsername:             pulumi.String(\"username\"),\n\t\t\tPassword:             pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJenkins;\nimport com.pulumi.azuredevops.ServiceendpointJenkinsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJenkins = new ServiceendpointJenkins(\"exampleServiceendpointJenkins\", ServiceendpointJenkinsArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"jenkins-example\")\n            .description(\"Service Endpoint for 'Jenkins' (Managed by Terraform)\")\n            .url(\"https://example.com\")\n            .acceptUntrustedCerts(false)\n            .username(\"username\")\n            .password(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJenkins:\n    type: azuredevops:ServiceendpointJenkins\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: jenkins-example\n      description: Service Endpoint for 'Jenkins' (Managed by Terraform)\n      url: https://example.com\n      acceptUntrustedCerts: false\n      username: username\n      password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Jenkins Service Endpoint can be imported using the `projectId/id` or `projectName/id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointJenkins:ServiceendpointJenkins example projectName/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Allows the Jenkins clients to accept self-signed SSL server certificates. Defaults to `false.`\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Jenkins Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Jenkins to be created.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Jenkins to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Jenkins Instance.\n"}},"required":["authorization","password","projectId","serviceEndpointName","url","username"],"inputProperties":{"acceptUntrustedCerts":{"type":"boolean","description":"Allows the Jenkins clients to accept self-signed SSL server certificates. Defaults to `false.`\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Jenkins Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Jenkins to be created.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Jenkins to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Jenkins Instance.\n"}},"requiredInputs":["password","projectId","serviceEndpointName","url","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointJenkins resources.\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Allows the Jenkins clients to accept self-signed SSL server certificates. Defaults to `false.`\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Jenkins Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Jenkins to be created.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Jenkins to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Jenkins Instance.\n"}},"type":"object"}},"azuredevops:index/serviceendpointJfrogArtifactoryV2:ServiceendpointJfrogArtifactoryV2":{"description":"Manages a JFrog Artifactory V2 service endpoint within an Azure DevOps organization.\n\n\u003e **Note:** Using this service endpoint requires you to first install [JFrog Extension](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-azure-devops-extension).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogArtifactoryV2 = new azuredevops.ServiceendpointJfrogArtifactoryV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example JFrog Artifactory V2\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_artifactory_v2 = azuredevops.ServiceendpointJfrogArtifactoryV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example JFrog Artifactory V2\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogArtifactoryV2 = new AzureDevOps.ServiceendpointJfrogArtifactoryV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example JFrog Artifactory V2\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointJfrogArtifactoryV2AuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogArtifactoryV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogArtifactoryV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example JFrog Artifactory V2\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointJfrogArtifactoryV2AuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogArtifactoryV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogArtifactoryV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogArtifactoryV2AuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogArtifactoryV2 = new ServiceendpointJfrogArtifactoryV2(\"exampleServiceendpointJfrogArtifactoryV2\", ServiceendpointJfrogArtifactoryV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example JFrog Artifactory V2\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationToken(ServiceendpointJfrogArtifactoryV2AuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogArtifactoryV2:\n    type: azuredevops:ServiceendpointJfrogArtifactoryV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example JFrog Artifactory V2\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogArtifactoryV2 = new azuredevops.ServiceendpointJfrogArtifactoryV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example JFrog Artifactory V2\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_artifactory_v2 = azuredevops.ServiceendpointJfrogArtifactoryV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example JFrog Artifactory V2\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogArtifactoryV2 = new AzureDevOps.ServiceendpointJfrogArtifactoryV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example JFrog Artifactory V2\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointJfrogArtifactoryV2AuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogArtifactoryV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogArtifactoryV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example JFrog Artifactory V2\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointJfrogArtifactoryV2AuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogArtifactoryV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogArtifactoryV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogArtifactoryV2AuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogArtifactoryV2 = new ServiceendpointJfrogArtifactoryV2(\"exampleServiceendpointJfrogArtifactoryV2\", ServiceendpointJfrogArtifactoryV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example JFrog Artifactory V2\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationBasic(ServiceendpointJfrogArtifactoryV2AuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogArtifactoryV2:\n    type: azuredevops:ServiceendpointJfrogArtifactoryV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example JFrog Artifactory V2\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n* [Artifactory User Token](https://docs.artifactory.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps JFrog Artifactory V2 Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointJfrogArtifactoryV2:ServiceendpointJfrogArtifactoryV2 example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationBasic:ServiceendpointJfrogArtifactoryV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationToken:ServiceendpointJfrogArtifactoryV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationBasic:ServiceendpointJfrogArtifactoryV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationToken:ServiceendpointJfrogArtifactoryV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointJfrogArtifactoryV2 resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationBasic:ServiceendpointJfrogArtifactoryV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogArtifactoryV2AuthenticationToken:ServiceendpointJfrogArtifactoryV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"type":"object"}},"azuredevops:index/serviceendpointJfrogDistributionV2:ServiceendpointJfrogDistributionV2":{"description":"Manages a JFrog Distribution V2 service endpoint within an Azure DevOps organization.\n\n\u003e **Note:** Using this service endpoint requires you to first install [JFrog Extension](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-azure-devops-extension).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogDistributionV2 = new azuredevops.ServiceendpointJfrogDistributionV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example JFrog Distribution V2\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_distribution_v2 = azuredevops.ServiceendpointJfrogDistributionV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example JFrog Distribution V2\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogDistributionV2 = new AzureDevOps.ServiceendpointJfrogDistributionV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example JFrog Distribution V2\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointJfrogDistributionV2AuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogDistributionV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogDistributionV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example JFrog Distribution V2\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointJfrogDistributionV2AuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogDistributionV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogDistributionV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogDistributionV2AuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogDistributionV2 = new ServiceendpointJfrogDistributionV2(\"exampleServiceendpointJfrogDistributionV2\", ServiceendpointJfrogDistributionV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example JFrog Distribution V2\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationToken(ServiceendpointJfrogDistributionV2AuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogDistributionV2:\n    type: azuredevops:ServiceendpointJfrogDistributionV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example JFrog Distribution V2\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogDistributionV2 = new azuredevops.ServiceendpointJfrogDistributionV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example JFrog Distribution V2\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_distribution_v2 = azuredevops.ServiceendpointJfrogDistributionV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example JFrog Distribution V2\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogDistributionV2 = new AzureDevOps.ServiceendpointJfrogDistributionV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example JFrog Distribution V2\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointJfrogDistributionV2AuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogDistributionV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogDistributionV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example JFrog Distribution V2\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointJfrogDistributionV2AuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogDistributionV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogDistributionV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogDistributionV2AuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogDistributionV2 = new ServiceendpointJfrogDistributionV2(\"exampleServiceendpointJfrogDistributionV2\", ServiceendpointJfrogDistributionV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example JFrog Distribution V2\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationBasic(ServiceendpointJfrogDistributionV2AuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogDistributionV2:\n    type: azuredevops:ServiceendpointJfrogDistributionV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example JFrog Distribution V2\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n* [Artifactory User Token](https://docs.artifactory.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps JFrog Distribution V2 Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointJfrogDistributionV2:ServiceendpointJfrogDistributionV2 example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationBasic:ServiceendpointJfrogDistributionV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationToken:ServiceendpointJfrogDistributionV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationBasic:ServiceendpointJfrogDistributionV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationToken:ServiceendpointJfrogDistributionV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointJfrogDistributionV2 resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationBasic:ServiceendpointJfrogDistributionV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogDistributionV2AuthenticationToken:ServiceendpointJfrogDistributionV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"type":"object"}},"azuredevops:index/serviceendpointJfrogPlatformV2:ServiceendpointJfrogPlatformV2":{"description":"Manages a JFrog Platform V2 service endpoint within an Azure DevOps organization.\n\n\u003e **Note:** Using this service endpoint requires you to first install [JFrog Extension](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-azure-devops-extension).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogPlatformV2 = new azuredevops.ServiceendpointJfrogPlatformV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_platform_v2 = azuredevops.ServiceendpointJfrogPlatformV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogPlatformV2 = new AzureDevOps.ServiceendpointJfrogPlatformV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointJfrogPlatformV2AuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogPlatformV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogPlatformV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointJfrogPlatformV2AuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogPlatformV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogPlatformV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogPlatformV2AuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogPlatformV2 = new ServiceendpointJfrogPlatformV2(\"exampleServiceendpointJfrogPlatformV2\", ServiceendpointJfrogPlatformV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationToken(ServiceendpointJfrogPlatformV2AuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogPlatformV2:\n    type: azuredevops:ServiceendpointJfrogPlatformV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogPlatformV2 = new azuredevops.ServiceendpointJfrogPlatformV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_platform_v2 = azuredevops.ServiceendpointJfrogPlatformV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogPlatformV2 = new AzureDevOps.ServiceendpointJfrogPlatformV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointJfrogPlatformV2AuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogPlatformV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogPlatformV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointJfrogPlatformV2AuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogPlatformV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogPlatformV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogPlatformV2AuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogPlatformV2 = new ServiceendpointJfrogPlatformV2(\"exampleServiceendpointJfrogPlatformV2\", ServiceendpointJfrogPlatformV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationBasic(ServiceendpointJfrogPlatformV2AuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogPlatformV2:\n    type: azuredevops:ServiceendpointJfrogPlatformV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n* [Artifactory User Token](https://docs.artifactory.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps JFrog Platform V2 Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointJfrogPlatformV2:ServiceendpointJfrogPlatformV2 example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationBasic:ServiceendpointJfrogPlatformV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationToken:ServiceendpointJfrogPlatformV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationBasic:ServiceendpointJfrogPlatformV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationToken:ServiceendpointJfrogPlatformV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointJfrogPlatformV2 resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationBasic:ServiceendpointJfrogPlatformV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogPlatformV2AuthenticationToken:ServiceendpointJfrogPlatformV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"type":"object"}},"azuredevops:index/serviceendpointJfrogXrayV2:ServiceendpointJfrogXrayV2":{"description":"Manages an JFrog XRay V2 service endpoint within an Azure DevOps organization. \n\n\u003e **Note:** Using this service endpoint requires you to first install [JFrog Extension](https://marketplace.visualstudio.com/items?itemName=JFrog.jfrog-azure-devops-extension).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogXrayV2 = new azuredevops.ServiceendpointJfrogXrayV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_xray_v2 = azuredevops.ServiceendpointJfrogXrayV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogXrayV2 = new AzureDevOps.ServiceendpointJfrogXrayV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointJfrogXrayV2AuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogXrayV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogXrayV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointJfrogXrayV2AuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogXrayV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogXrayV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogXrayV2AuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogXrayV2 = new ServiceendpointJfrogXrayV2(\"exampleServiceendpointJfrogXrayV2\", ServiceendpointJfrogXrayV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationToken(ServiceendpointJfrogXrayV2AuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogXrayV2:\n    type: azuredevops:ServiceendpointJfrogXrayV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointJfrogXrayV2 = new azuredevops.ServiceendpointJfrogXrayV2(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Artifactory\",\n    description: \"Managed by Pulumi\",\n    url: \"https://artifactory.my.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_jfrog_xray_v2 = azuredevops.ServiceendpointJfrogXrayV2(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Artifactory\",\n    description=\"Managed by Pulumi\",\n    url=\"https://artifactory.my.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointJfrogXrayV2 = new AzureDevOps.ServiceendpointJfrogXrayV2(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Artifactory\",\n        Description = \"Managed by Pulumi\",\n        Url = \"https://artifactory.my.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointJfrogXrayV2AuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointJfrogXrayV2(ctx, \"example\", \u0026azuredevops.ServiceendpointJfrogXrayV2Args{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Artifactory\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tUrl:                 pulumi.String(\"https://artifactory.my.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointJfrogXrayV2AuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointJfrogXrayV2;\nimport com.pulumi.azuredevops.ServiceendpointJfrogXrayV2Args;\nimport com.pulumi.azuredevops.inputs.ServiceendpointJfrogXrayV2AuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointJfrogXrayV2 = new ServiceendpointJfrogXrayV2(\"exampleServiceendpointJfrogXrayV2\", ServiceendpointJfrogXrayV2Args.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Artifactory\")\n            .description(\"Managed by Pulumi\")\n            .url(\"https://artifactory.my.com\")\n            .authenticationBasic(ServiceendpointJfrogXrayV2AuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointJfrogXrayV2:\n    type: azuredevops:ServiceendpointJfrogXrayV2\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Artifactory\n      description: Managed by Pulumi\n      url: https://artifactory.my.com\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service Connections](https://docs.microsoft.com/en-us/azure/devops/pipelines/library/service-endpoints?view=azure-devops\u0026tabs=yaml)\n* [Artifactory User Token](https://docs.artifactory.org/latest/user-guide/user-token/)\n\n## Import\n\nAzure DevOps JFrog Platform V2 Service Endpoint can be imported using the **projectID/serviceEndpointID**, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointJfrogXrayV2:ServiceendpointJfrogXrayV2 example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationBasic:ServiceendpointJfrogXrayV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationToken:ServiceendpointJfrogXrayV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationBasic:ServiceendpointJfrogXrayV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationToken:ServiceendpointJfrogXrayV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointJfrogXrayV2 resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationBasic:ServiceendpointJfrogXrayV2AuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointJfrogXrayV2AuthenticationToken:ServiceendpointJfrogXrayV2AuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"URL of the Artifactory server to connect with.\n\n\u003e **NOTE:** URL should not end in a slash character.\n"}},"type":"object"}},"azuredevops:index/serviceendpointMaven:ServiceendpointMaven":{"description":"Manages a Maven service endpoint within Azure DevOps, which can be used as a resource in YAML pipelines to connect to a Maven instance.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointMaven = new azuredevops.ServiceendpointMaven(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"maven-example\",\n    description: \"Service Endpoint for 'Maven' (Managed by Terraform)\",\n    url: \"https://example.com\",\n    repositoryId: \"example\",\n    authenticationToken: {\n        token: \"0000000000000000000000000000000000000000\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_maven = azuredevops.ServiceendpointMaven(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"maven-example\",\n    description=\"Service Endpoint for 'Maven' (Managed by Terraform)\",\n    url=\"https://example.com\",\n    repository_id=\"example\",\n    authentication_token={\n        \"token\": \"0000000000000000000000000000000000000000\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointMaven = new AzureDevOps.ServiceendpointMaven(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"maven-example\",\n        Description = \"Service Endpoint for 'Maven' (Managed by Terraform)\",\n        Url = \"https://example.com\",\n        RepositoryId = \"example\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointMavenAuthenticationTokenArgs\n        {\n            Token = \"0000000000000000000000000000000000000000\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointMaven(ctx, \"example\", \u0026azuredevops.ServiceendpointMavenArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"maven-example\"),\n\t\t\tDescription:         pulumi.String(\"Service Endpoint for 'Maven' (Managed by Terraform)\"),\n\t\t\tUrl:                 pulumi.String(\"https://example.com\"),\n\t\t\tRepositoryId:        pulumi.String(\"example\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointMavenAuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"0000000000000000000000000000000000000000\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointMaven;\nimport com.pulumi.azuredevops.ServiceendpointMavenArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointMavenAuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointMaven = new ServiceendpointMaven(\"exampleServiceendpointMaven\", ServiceendpointMavenArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"maven-example\")\n            .description(\"Service Endpoint for 'Maven' (Managed by Terraform)\")\n            .url(\"https://example.com\")\n            .repositoryId(\"example\")\n            .authenticationToken(ServiceendpointMavenAuthenticationTokenArgs.builder()\n                .token(\"0000000000000000000000000000000000000000\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointMaven:\n    type: azuredevops:ServiceendpointMaven\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: maven-example\n      description: Service Endpoint for 'Maven' (Managed by Terraform)\n      url: https://example.com\n      repositoryId: example\n      authenticationToken:\n        token: '0000000000000000000000000000000000000000'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAlternatively a username and password may be used.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointMaven = new azuredevops.ServiceendpointMaven(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"maven-example\",\n    description: \"Service Endpoint for 'Maven' (Managed by Terraform)\",\n    url: \"https://example.com\",\n    repositoryId: \"example\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_maven = azuredevops.ServiceendpointMaven(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"maven-example\",\n    description=\"Service Endpoint for 'Maven' (Managed by Terraform)\",\n    url=\"https://example.com\",\n    repository_id=\"example\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointMaven = new AzureDevOps.ServiceendpointMaven(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"maven-example\",\n        Description = \"Service Endpoint for 'Maven' (Managed by Terraform)\",\n        Url = \"https://example.com\",\n        RepositoryId = \"example\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointMavenAuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointMaven(ctx, \"example\", \u0026azuredevops.ServiceendpointMavenArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"maven-example\"),\n\t\t\tDescription:         pulumi.String(\"Service Endpoint for 'Maven' (Managed by Terraform)\"),\n\t\t\tUrl:                 pulumi.String(\"https://example.com\"),\n\t\t\tRepositoryId:        pulumi.String(\"example\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointMavenAuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointMaven;\nimport com.pulumi.azuredevops.ServiceendpointMavenArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointMavenAuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointMaven = new ServiceendpointMaven(\"exampleServiceendpointMaven\", ServiceendpointMavenArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"maven-example\")\n            .description(\"Service Endpoint for 'Maven' (Managed by Terraform)\")\n            .url(\"https://example.com\")\n            .repositoryId(\"example\")\n            .authenticationBasic(ServiceendpointMavenAuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointMaven:\n    type: azuredevops:ServiceendpointMaven\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: maven-example\n      description: Service Endpoint for 'Maven' (Managed by Terraform)\n      url: https://example.com\n      repositoryId: example\n      authenticationBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Maven Service Connection can be imported using the `projectId/id` or `projectName/id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointMaven:ServiceendpointMaven example projectName/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationBasic:ServiceendpointMavenAuthenticationBasic","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationToken:ServiceendpointMavenAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Maven to be created.\n"},"repositoryId":{"type":"string","description":"The ID of the server that matches the id element of the `repository/mirror` that Maven tries to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Maven to be created.\n"},"url":{"type":"string","description":"The URL of the Maven Repository.\n"}},"required":["authorization","projectId","repositoryId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationBasic:ServiceendpointMavenAuthenticationBasic","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationToken:ServiceendpointMavenAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Maven to be created.\n","willReplaceOnChanges":true},"repositoryId":{"type":"string","description":"The ID of the server that matches the id element of the `repository/mirror` that Maven tries to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Maven to be created.\n"},"url":{"type":"string","description":"The URL of the Maven Repository.\n"}},"requiredInputs":["projectId","repositoryId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointMaven resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationBasic:ServiceendpointMavenAuthenticationBasic","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointMavenAuthenticationToken:ServiceendpointMavenAuthenticationToken","description":"A \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Maven to be created.\n","willReplaceOnChanges":true},"repositoryId":{"type":"string","description":"The ID of the server that matches the id element of the `repository/mirror` that Maven tries to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Maven to be created.\n"},"url":{"type":"string","description":"The URL of the Maven Repository.\n"}},"type":"object"}},"azuredevops:index/serviceendpointNexus:ServiceendpointNexus":{"description":"Manages a Nexus IQ service endpoint within Azure DevOps, which can be used as a resource in YAML pipelines to connect to a Nexus IQ instance.\nNexus IQ is not supported by default, to manage a nexus service connection resource, it is necessary to install the [Nexus Extension](https://marketplace.visualstudio.com/items?itemName=SonatypeIntegrations.nexus-iq-azure-extension) in Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointNexus = new azuredevops.ServiceendpointNexus(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"nexus-example\",\n    description: \"Service Endpoint for 'Nexus IQ' (Managed by Terraform)\",\n    url: \"https://example.com\",\n    username: \"username\",\n    password: \"password\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_nexus = azuredevops.ServiceendpointNexus(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"nexus-example\",\n    description=\"Service Endpoint for 'Nexus IQ' (Managed by Terraform)\",\n    url=\"https://example.com\",\n    username=\"username\",\n    password=\"password\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointNexus = new AzureDevOps.ServiceendpointNexus(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"nexus-example\",\n        Description = \"Service Endpoint for 'Nexus IQ' (Managed by Terraform)\",\n        Url = \"https://example.com\",\n        Username = \"username\",\n        Password = \"password\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointNexus(ctx, \"example\", \u0026azuredevops.ServiceendpointNexusArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"nexus-example\"),\n\t\t\tDescription:         pulumi.String(\"Service Endpoint for 'Nexus IQ' (Managed by Terraform)\"),\n\t\t\tUrl:                 pulumi.String(\"https://example.com\"),\n\t\t\tUsername:            pulumi.String(\"username\"),\n\t\t\tPassword:            pulumi.String(\"password\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointNexus;\nimport com.pulumi.azuredevops.ServiceendpointNexusArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointNexus = new ServiceendpointNexus(\"exampleServiceendpointNexus\", ServiceendpointNexusArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"nexus-example\")\n            .description(\"Service Endpoint for 'Nexus IQ' (Managed by Terraform)\")\n            .url(\"https://example.com\")\n            .username(\"username\")\n            .password(\"password\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointNexus:\n    type: azuredevops:ServiceendpointNexus\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: nexus-example\n      description: Service Endpoint for 'Nexus IQ' (Managed by Terraform)\n      url: https://example.com\n      username: username\n      password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Nexus Service Connection can be imported using the `projectId/id` or or `projectName/id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointNexus:ServiceendpointNexus example projectName/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Nexus IQ Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Nexus to be created.\n"},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Nexus to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Nexus IQ Instance.\n"}},"required":["authorization","password","projectId","serviceEndpointName","url","username"],"inputProperties":{"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Nexus IQ Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Nexus to be created.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Nexus to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Nexus IQ Instance.\n"}},"requiredInputs":["password","projectId","serviceEndpointName","url","username"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointNexus resources.\n","properties":{"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to Managed by Terraform.\n"},"password":{"type":"string","description":"The Service Endpoint password to authenticate at the Nexus IQ Instance.\n","secret":true},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Connection Nexus to be created.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The name of the service endpoint. Changing this forces a new Service Connection Nexus to be created.\n"},"url":{"type":"string","description":"The Service Endpoint url.\n"},"username":{"type":"string","description":"The Service Endpoint username to authenticate at the Nexus IQ Instance.\n"}},"type":"object"}},"azuredevops:index/serviceendpointNuget:ServiceendpointNuget":{"description":"Manages a NuGet service endpoint within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointNuget = new azuredevops.ServiceendpointNuget(\"example\", {\n    projectId: example.id,\n    apiKey: \"apikey\",\n    serviceEndpointName: \"Example NuGet\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_nuget = azuredevops.ServiceendpointNuget(\"example\",\n    project_id=example.id,\n    api_key=\"apikey\",\n    service_endpoint_name=\"Example NuGet\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointNuget = new AzureDevOps.ServiceendpointNuget(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ApiKey = \"apikey\",\n        ServiceEndpointName = \"Example NuGet\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointNuget(ctx, \"example\", \u0026azuredevops.ServiceendpointNugetArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tApiKey:              pulumi.String(\"apikey\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example NuGet\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointNuget;\nimport com.pulumi.azuredevops.ServiceendpointNugetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointNuget = new ServiceendpointNuget(\"exampleServiceendpointNuget\", ServiceendpointNugetArgs.builder()\n            .projectId(example.id())\n            .apiKey(\"apikey\")\n            .serviceEndpointName(\"Example NuGet\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointNuget:\n    type: azuredevops:ServiceendpointNuget\n    name: example\n    properties:\n      projectId: ${example.id}\n      apiKey: apikey\n      serviceEndpointName: Example NuGet\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps NuGet Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointNuget:ServiceendpointNuget example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiKey":{"type":"string","description":"The API Key used to connect to the endpoint.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"feedUrl":{"type":"string","description":"The URL for the feed. This will generally end with `index.json`.\n"},"password":{"type":"string","description":"The account password used to connect to the endpoint\n\n\u003e **Note** Only one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`personalAccessToken`\" pulumi-lang-dotnet=\"`PersonalAccessToken`\" pulumi-lang-go=\"`personalAccessToken`\" pulumi-lang-python=\"`personal_access_token`\" pulumi-lang-yaml=\"`personalAccessToken`\" pulumi-lang-java=\"`personalAccessToken`\"\u003e`personal_access_token`\u003c/span\u003e or  \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e can be set at the same time.\n","secret":true},"personalAccessToken":{"type":"string","description":"The Personal access token used to  connect to the endpoint. Personal access tokens are applicable only for NuGet feeds hosted on other Azure DevOps Services organizations or Azure DevOps Server 2019 (or later).\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The account username used to connect to the endpoint.\n"}},"required":["authorization","feedUrl","projectId","serviceEndpointName"],"inputProperties":{"apiKey":{"type":"string","description":"The API Key used to connect to the endpoint.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"feedUrl":{"type":"string","description":"The URL for the feed. This will generally end with `index.json`.\n"},"password":{"type":"string","description":"The account password used to connect to the endpoint\n\n\u003e **Note** Only one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`personalAccessToken`\" pulumi-lang-dotnet=\"`PersonalAccessToken`\" pulumi-lang-go=\"`personalAccessToken`\" pulumi-lang-python=\"`personal_access_token`\" pulumi-lang-yaml=\"`personalAccessToken`\" pulumi-lang-java=\"`personalAccessToken`\"\u003e`personal_access_token`\u003c/span\u003e or  \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e can be set at the same time.\n","secret":true},"personalAccessToken":{"type":"string","description":"The Personal access token used to  connect to the endpoint. Personal access tokens are applicable only for NuGet feeds hosted on other Azure DevOps Services organizations or Azure DevOps Server 2019 (or later).\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The account username used to connect to the endpoint.\n"}},"requiredInputs":["feedUrl","projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointNuget resources.\n","properties":{"apiKey":{"type":"string","description":"The API Key used to connect to the endpoint.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"feedUrl":{"type":"string","description":"The URL for the feed. This will generally end with `index.json`.\n"},"password":{"type":"string","description":"The account password used to connect to the endpoint\n\n\u003e **Note** Only one of \u003cspan pulumi-lang-nodejs=\"`apiKey`\" pulumi-lang-dotnet=\"`ApiKey`\" pulumi-lang-go=\"`apiKey`\" pulumi-lang-python=\"`api_key`\" pulumi-lang-yaml=\"`apiKey`\" pulumi-lang-java=\"`apiKey`\"\u003e`api_key`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`personalAccessToken`\" pulumi-lang-dotnet=\"`PersonalAccessToken`\" pulumi-lang-go=\"`personalAccessToken`\" pulumi-lang-python=\"`personal_access_token`\" pulumi-lang-yaml=\"`personalAccessToken`\" pulumi-lang-java=\"`personalAccessToken`\"\u003e`personal_access_token`\u003c/span\u003e or  \u003cspan pulumi-lang-nodejs=\"`username`\" pulumi-lang-dotnet=\"`Username`\" pulumi-lang-go=\"`username`\" pulumi-lang-python=\"`username`\" pulumi-lang-yaml=\"`username`\" pulumi-lang-java=\"`username`\"\u003e`username`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`password`\" pulumi-lang-dotnet=\"`Password`\" pulumi-lang-go=\"`password`\" pulumi-lang-python=\"`password`\" pulumi-lang-yaml=\"`password`\" pulumi-lang-java=\"`password`\"\u003e`password`\u003c/span\u003e can be set at the same time.\n","secret":true},"personalAccessToken":{"type":"string","description":"The Personal access token used to  connect to the endpoint. Personal access tokens are applicable only for NuGet feeds hosted on other Azure DevOps Services organizations or Azure DevOps Server 2019 (or later).\n","secret":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"username":{"type":"string","description":"The account username used to connect to the endpoint.\n"}},"type":"object"}},"azuredevops:index/serviceendpointOctopusdeploy:ServiceendpointOctopusdeploy":{"description":"Manages an Octopus Deploy service endpoint within Azure DevOps. Using this service endpoint requires you to install [Octopus Deploy](https://marketplace.visualstudio.com/items?itemName=octopusdeploy.octopus-deploy-build-release-tasks).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointOctopusdeploy = new azuredevops.ServiceendpointOctopusdeploy(\"example\", {\n    projectId: example.id,\n    url: \"https://octopus.com\",\n    apiKey: \"000000000000000000000000000000000000\",\n    serviceEndpointName: \"Example Octopus Deploy\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_octopusdeploy = azuredevops.ServiceendpointOctopusdeploy(\"example\",\n    project_id=example.id,\n    url=\"https://octopus.com\",\n    api_key=\"000000000000000000000000000000000000\",\n    service_endpoint_name=\"Example Octopus Deploy\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointOctopusdeploy = new AzureDevOps.ServiceendpointOctopusdeploy(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Url = \"https://octopus.com\",\n        ApiKey = \"000000000000000000000000000000000000\",\n        ServiceEndpointName = \"Example Octopus Deploy\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointOctopusdeploy(ctx, \"example\", \u0026azuredevops.ServiceendpointOctopusdeployArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tUrl:                 pulumi.String(\"https://octopus.com\"),\n\t\t\tApiKey:              pulumi.String(\"000000000000000000000000000000000000\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Octopus Deploy\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointOctopusdeploy;\nimport com.pulumi.azuredevops.ServiceendpointOctopusdeployArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointOctopusdeploy = new ServiceendpointOctopusdeploy(\"exampleServiceendpointOctopusdeploy\", ServiceendpointOctopusdeployArgs.builder()\n            .projectId(example.id())\n            .url(\"https://octopus.com\")\n            .apiKey(\"000000000000000000000000000000000000\")\n            .serviceEndpointName(\"Example Octopus Deploy\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointOctopusdeploy:\n    type: azuredevops:ServiceendpointOctopusdeploy\n    name: example\n    properties:\n      projectId: ${example.id}\n      url: https://octopus.com\n      apiKey: '000000000000000000000000000000000000'\n      serviceEndpointName: Example Octopus Deploy\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Octopus Deploy Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointOctopusdeploy:ServiceendpointOctopusdeploy example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiKey":{"type":"string","description":"API key to connect to Octopus Deploy.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"ignoreSslError":{"type":"boolean","description":"Whether to ignore SSL errors when connecting to the Octopus server from the agent. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"Octopus Server url.\n"}},"required":["apiKey","authorization","projectId","serviceEndpointName","url"],"inputProperties":{"apiKey":{"type":"string","description":"API key to connect to Octopus Deploy.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"ignoreSslError":{"type":"boolean","description":"Whether to ignore SSL errors when connecting to the Octopus server from the agent. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"Octopus Server url.\n"}},"requiredInputs":["apiKey","projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointOctopusdeploy resources.\n","properties":{"apiKey":{"type":"string","description":"API key to connect to Octopus Deploy.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"ignoreSslError":{"type":"boolean","description":"Whether to ignore SSL errors when connecting to the Octopus server from the agent. Default to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"Octopus Server url.\n"}},"type":"object"}},"azuredevops:index/serviceendpointOpenshift:ServiceendpointOpenshift":{"description":"Manages an Openshift service endpoint within Azure DevOps organization. Using this service endpoint requires you to first install the [OpenShift Extension](https://marketplace.visualstudio.com/items?itemName=redhat.openshift-vsts).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointOpenshift = new azuredevops.ServiceendpointOpenshift(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Openshift\",\n    serverUrl: \"https://example.server\",\n    certificateAuthorityFile: \"/opt/file\",\n    acceptUntrustedCerts: true,\n    authBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_openshift = azuredevops.ServiceendpointOpenshift(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Openshift\",\n    server_url=\"https://example.server\",\n    certificate_authority_file=\"/opt/file\",\n    accept_untrusted_certs=True,\n    auth_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointOpenshift = new AzureDevOps.ServiceendpointOpenshift(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Openshift\",\n        ServerUrl = \"https://example.server\",\n        CertificateAuthorityFile = \"/opt/file\",\n        AcceptUntrustedCerts = true,\n        AuthBasic = new AzureDevOps.Inputs.ServiceendpointOpenshiftAuthBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointOpenshift(ctx, \"example\", \u0026azuredevops.ServiceendpointOpenshiftArgs{\n\t\t\tProjectId:                example.ID(),\n\t\t\tServiceEndpointName:      pulumi.String(\"Example Openshift\"),\n\t\t\tServerUrl:                pulumi.String(\"https://example.server\"),\n\t\t\tCertificateAuthorityFile: pulumi.String(\"/opt/file\"),\n\t\t\tAcceptUntrustedCerts:     pulumi.Bool(true),\n\t\t\tAuthBasic: \u0026azuredevops.ServiceendpointOpenshiftAuthBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointOpenshift;\nimport com.pulumi.azuredevops.ServiceendpointOpenshiftArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointOpenshiftAuthBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointOpenshift = new ServiceendpointOpenshift(\"exampleServiceendpointOpenshift\", ServiceendpointOpenshiftArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Openshift\")\n            .serverUrl(\"https://example.server\")\n            .certificateAuthorityFile(\"/opt/file\")\n            .acceptUntrustedCerts(true)\n            .authBasic(ServiceendpointOpenshiftAuthBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointOpenshift:\n    type: azuredevops:ServiceendpointOpenshift\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Openshift\n      serverUrl: https://example.server\n      certificateAuthorityFile: /opt/file\n      acceptUntrustedCerts: true\n      authBasic:\n        username: username\n        password: password\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointOpenshift = new azuredevops.ServiceendpointOpenshift(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Openshift\",\n    serverUrl: \"https://example.server\",\n    certificateAuthorityFile: \"/opt/file\",\n    acceptUntrustedCerts: true,\n    authToken: {\n        token: \"username\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_openshift = azuredevops.ServiceendpointOpenshift(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Openshift\",\n    server_url=\"https://example.server\",\n    certificate_authority_file=\"/opt/file\",\n    accept_untrusted_certs=True,\n    auth_token={\n        \"token\": \"username\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointOpenshift = new AzureDevOps.ServiceendpointOpenshift(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Openshift\",\n        ServerUrl = \"https://example.server\",\n        CertificateAuthorityFile = \"/opt/file\",\n        AcceptUntrustedCerts = true,\n        AuthToken = new AzureDevOps.Inputs.ServiceendpointOpenshiftAuthTokenArgs\n        {\n            Token = \"username\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointOpenshift(ctx, \"example\", \u0026azuredevops.ServiceendpointOpenshiftArgs{\n\t\t\tProjectId:                example.ID(),\n\t\t\tServiceEndpointName:      pulumi.String(\"Example Openshift\"),\n\t\t\tServerUrl:                pulumi.String(\"https://example.server\"),\n\t\t\tCertificateAuthorityFile: pulumi.String(\"/opt/file\"),\n\t\t\tAcceptUntrustedCerts:     pulumi.Bool(true),\n\t\t\tAuthToken: \u0026azuredevops.ServiceendpointOpenshiftAuthTokenArgs{\n\t\t\t\tToken: pulumi.String(\"username\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointOpenshift;\nimport com.pulumi.azuredevops.ServiceendpointOpenshiftArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointOpenshiftAuthTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointOpenshift = new ServiceendpointOpenshift(\"exampleServiceendpointOpenshift\", ServiceendpointOpenshiftArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Openshift\")\n            .serverUrl(\"https://example.server\")\n            .certificateAuthorityFile(\"/opt/file\")\n            .acceptUntrustedCerts(true)\n            .authToken(ServiceendpointOpenshiftAuthTokenArgs.builder()\n                .token(\"username\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointOpenshift:\n    type: azuredevops:ServiceendpointOpenshift\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Openshift\n      serverUrl: https://example.server\n      certificateAuthorityFile: /opt/file\n      acceptUntrustedCerts: true\n      authToken:\n        token: username\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointOpenshift = new azuredevops.ServiceendpointOpenshift(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Openshift\",\n    serverUrl: \"https://example.server\",\n    authNone: {\n        kubeConfig: \"config\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_openshift = azuredevops.ServiceendpointOpenshift(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Openshift\",\n    server_url=\"https://example.server\",\n    auth_none={\n        \"kube_config\": \"config\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointOpenshift = new AzureDevOps.ServiceendpointOpenshift(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Openshift\",\n        ServerUrl = \"https://example.server\",\n        AuthNone = new AzureDevOps.Inputs.ServiceendpointOpenshiftAuthNoneArgs\n        {\n            KubeConfig = \"config\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointOpenshift(ctx, \"example\", \u0026azuredevops.ServiceendpointOpenshiftArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Openshift\"),\n\t\t\tServerUrl:           pulumi.String(\"https://example.server\"),\n\t\t\tAuthNone: \u0026azuredevops.ServiceendpointOpenshiftAuthNoneArgs{\n\t\t\t\tKubeConfig: pulumi.String(\"config\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointOpenshift;\nimport com.pulumi.azuredevops.ServiceendpointOpenshiftArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointOpenshiftAuthNoneArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointOpenshift = new ServiceendpointOpenshift(\"exampleServiceendpointOpenshift\", ServiceendpointOpenshiftArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Openshift\")\n            .serverUrl(\"https://example.server\")\n            .authNone(ServiceendpointOpenshiftAuthNoneArgs.builder()\n                .kubeConfig(\"config\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointOpenshift:\n    type: azuredevops:ServiceendpointOpenshift\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Openshift\n      serverUrl: https://example.server\n      authNone:\n        kubeConfig: config\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Service Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.1)\n\n## Import\n\nAzure DevOps Openshift Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointOpenshift:ServiceendpointOpenshift example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Set this option to allow clients to accept a self-signed certificate. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"authBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthBasic:ServiceendpointOpenshiftAuthBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e block as documented below.\n"},"authNone":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthNone:ServiceendpointOpenshiftAuthNone","description":"An \u003cspan pulumi-lang-nodejs=\"`authNone`\" pulumi-lang-dotnet=\"`AuthNone`\" pulumi-lang-go=\"`authNone`\" pulumi-lang-python=\"`auth_none`\" pulumi-lang-yaml=\"`authNone`\" pulumi-lang-java=\"`authNone`\"\u003e`auth_none`\u003c/span\u003e block as documented below.\n"},"authToken":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthToken:ServiceendpointOpenshiftAuthToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"certificateAuthorityFile":{"type":"string","description":"The path to a certificate authority file to correctly and securely authenticates with an OpenShift server that uses HTTPS. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The URL for the OpenShift cluster to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["authorization","projectId","serviceEndpointName"],"inputProperties":{"acceptUntrustedCerts":{"type":"boolean","description":"Set this option to allow clients to accept a self-signed certificate. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"authBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthBasic:ServiceendpointOpenshiftAuthBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e block as documented below.\n"},"authNone":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthNone:ServiceendpointOpenshiftAuthNone","description":"An \u003cspan pulumi-lang-nodejs=\"`authNone`\" pulumi-lang-dotnet=\"`AuthNone`\" pulumi-lang-go=\"`authNone`\" pulumi-lang-python=\"`auth_none`\" pulumi-lang-yaml=\"`authNone`\" pulumi-lang-java=\"`authNone`\"\u003e`auth_none`\u003c/span\u003e block as documented below.\n"},"authToken":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthToken:ServiceendpointOpenshiftAuthToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e block as documented below.\n"},"certificateAuthorityFile":{"type":"string","description":"The path to a certificate authority file to correctly and securely authenticates with an OpenShift server that uses HTTPS. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL for the OpenShift cluster to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["projectId","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointOpenshift resources.\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Set this option to allow clients to accept a self-signed certificate. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"authBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthBasic:ServiceendpointOpenshiftAuthBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e block as documented below.\n"},"authNone":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthNone:ServiceendpointOpenshiftAuthNone","description":"An \u003cspan pulumi-lang-nodejs=\"`authNone`\" pulumi-lang-dotnet=\"`AuthNone`\" pulumi-lang-go=\"`authNone`\" pulumi-lang-python=\"`auth_none`\" pulumi-lang-yaml=\"`authNone`\" pulumi-lang-java=\"`authNone`\"\u003e`auth_none`\u003c/span\u003e block as documented below.\n"},"authToken":{"$ref":"#/types/azuredevops:index/ServiceendpointOpenshiftAuthToken:ServiceendpointOpenshiftAuthToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"certificateAuthorityFile":{"type":"string","description":"The path to a certificate authority file to correctly and securely authenticates with an OpenShift server that uses HTTPS. Available when using \u003cspan pulumi-lang-nodejs=\"`authBasic`\" pulumi-lang-dotnet=\"`AuthBasic`\" pulumi-lang-go=\"`authBasic`\" pulumi-lang-python=\"`auth_basic`\" pulumi-lang-yaml=\"`authBasic`\" pulumi-lang-java=\"`authBasic`\"\u003e`auth_basic`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`authToken`\" pulumi-lang-dotnet=\"`AuthToken`\" pulumi-lang-go=\"`authToken`\" pulumi-lang-python=\"`auth_token`\" pulumi-lang-yaml=\"`authToken`\" pulumi-lang-java=\"`authToken`\"\u003e`auth_token`\u003c/span\u003e authorization.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The URL for the OpenShift cluster to connect to.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointPermissions:ServiceendpointPermissions":{"description":"Manages permissions for a Service Endpoint\n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Permission levels\n\nPermission for Service Endpoints within Azure DevOps can be applied on two different levels.\nThose levels are reflected by specifying (or omitting) values for the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`serviceendpointId`\" pulumi-lang-dotnet=\"`ServiceendpointId`\" pulumi-lang-go=\"`serviceendpointId`\" pulumi-lang-python=\"`serviceendpoint_id`\" pulumi-lang-yaml=\"`serviceendpointId`\" pulumi-lang-java=\"`serviceendpointId`\"\u003e`serviceendpoint_id`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_root_permissions = new azuredevops.ServiceendpointPermissions(\"example-root-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        Use: \"allow\",\n        Administer: \"allow\",\n        Create: \"allow\",\n        ViewAuthorization: \"allow\",\n        ViewEndpoint: \"allow\",\n    },\n});\nconst exampleServiceEndpointDockerRegistry = new azuredevops.ServiceEndpointDockerRegistry(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Docker Hub\",\n    dockerUsername: \"username\",\n    dockerEmail: \"email@example.com\",\n    dockerPassword: \"password\",\n    registryType: \"DockerHub\",\n});\nconst example_permissions = new azuredevops.ServiceendpointPermissions(\"example-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    serviceendpointId: exampleServiceEndpointDockerRegistry.id,\n    permissions: {\n        Use: \"allow\",\n        Administer: \"deny\",\n        Create: \"deny\",\n        ViewAuthorization: \"allow\",\n        ViewEndpoint: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_root_permissions = azuredevops.ServiceendpointPermissions(\"example-root-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"Use\": \"allow\",\n        \"Administer\": \"allow\",\n        \"Create\": \"allow\",\n        \"ViewAuthorization\": \"allow\",\n        \"ViewEndpoint\": \"allow\",\n    })\nexample_service_endpoint_docker_registry = azuredevops.ServiceEndpointDockerRegistry(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Docker Hub\",\n    docker_username=\"username\",\n    docker_email=\"email@example.com\",\n    docker_password=\"password\",\n    registry_type=\"DockerHub\")\nexample_permissions = azuredevops.ServiceendpointPermissions(\"example-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    serviceendpoint_id=example_service_endpoint_docker_registry.id,\n    permissions={\n        \"Use\": \"allow\",\n        \"Administer\": \"deny\",\n        \"Create\": \"deny\",\n        \"ViewAuthorization\": \"allow\",\n        \"ViewEndpoint\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_root_permissions = new AzureDevOps.ServiceendpointPermissions(\"example-root-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Use\", \"allow\" },\n            { \"Administer\", \"allow\" },\n            { \"Create\", \"allow\" },\n            { \"ViewAuthorization\", \"allow\" },\n            { \"ViewEndpoint\", \"allow\" },\n        },\n    });\n\n    var exampleServiceEndpointDockerRegistry = new AzureDevOps.ServiceEndpointDockerRegistry(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Docker Hub\",\n        DockerUsername = \"username\",\n        DockerEmail = \"email@example.com\",\n        DockerPassword = \"password\",\n        RegistryType = \"DockerHub\",\n    });\n\n    var example_permissions = new AzureDevOps.ServiceendpointPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        ServiceendpointId = exampleServiceEndpointDockerRegistry.Id,\n        Permissions = \n        {\n            { \"Use\", \"allow\" },\n            { \"Administer\", \"deny\" },\n            { \"Create\", \"deny\" },\n            { \"ViewAuthorization\", \"allow\" },\n            { \"ViewEndpoint\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewServiceendpointPermissions(ctx, \"example-root-permissions\", \u0026azuredevops.ServiceendpointPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Use\":               pulumi.String(\"allow\"),\n\t\t\t\t\"Administer\":        pulumi.String(\"allow\"),\n\t\t\t\t\"Create\":            pulumi.String(\"allow\"),\n\t\t\t\t\"ViewAuthorization\": pulumi.String(\"allow\"),\n\t\t\t\t\"ViewEndpoint\":      pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointDockerRegistry, err := azuredevops.NewServiceEndpointDockerRegistry(ctx, \"example\", \u0026azuredevops.ServiceEndpointDockerRegistryArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Docker Hub\"),\n\t\t\tDockerUsername:      pulumi.String(\"username\"),\n\t\t\tDockerEmail:         pulumi.String(\"email@example.com\"),\n\t\t\tDockerPassword:      pulumi.String(\"password\"),\n\t\t\tRegistryType:        pulumi.String(\"DockerHub\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointPermissions(ctx, \"example-permissions\", \u0026azuredevops.ServiceendpointPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tServiceendpointId: exampleServiceEndpointDockerRegistry.ID(),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Use\":               pulumi.String(\"allow\"),\n\t\t\t\t\"Administer\":        pulumi.String(\"deny\"),\n\t\t\t\t\"Create\":            pulumi.String(\"deny\"),\n\t\t\t\t\"ViewAuthorization\": pulumi.String(\"allow\"),\n\t\t\t\t\"ViewEndpoint\":      pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.ServiceendpointPermissions;\nimport com.pulumi.azuredevops.ServiceendpointPermissionsArgs;\nimport com.pulumi.azuredevops.ServiceEndpointDockerRegistry;\nimport com.pulumi.azuredevops.ServiceEndpointDockerRegistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_root_permissions = new ServiceendpointPermissions(\"example-root-permissions\", ServiceendpointPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Use\", \"allow\"),\n                Map.entry(\"Administer\", \"allow\"),\n                Map.entry(\"Create\", \"allow\"),\n                Map.entry(\"ViewAuthorization\", \"allow\"),\n                Map.entry(\"ViewEndpoint\", \"allow\")\n            ))\n            .build());\n\n        var exampleServiceEndpointDockerRegistry = new ServiceEndpointDockerRegistry(\"exampleServiceEndpointDockerRegistry\", ServiceEndpointDockerRegistryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Docker Hub\")\n            .dockerUsername(\"username\")\n            .dockerEmail(\"email@example.com\")\n            .dockerPassword(\"password\")\n            .registryType(\"DockerHub\")\n            .build());\n\n        var example_permissions = new ServiceendpointPermissions(\"example-permissions\", ServiceendpointPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .serviceendpointId(exampleServiceEndpointDockerRegistry.id())\n            .permissions(Map.ofEntries(\n                Map.entry(\"Use\", \"allow\"),\n                Map.entry(\"Administer\", \"deny\"),\n                Map.entry(\"Create\", \"deny\"),\n                Map.entry(\"ViewAuthorization\", \"allow\"),\n                Map.entry(\"ViewEndpoint\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-root-permissions:\n    type: azuredevops:ServiceendpointPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        Use: allow\n        Administer: allow\n        Create: allow\n        ViewAuthorization: allow\n        ViewEndpoint: allow\n  exampleServiceEndpointDockerRegistry:\n    type: azuredevops:ServiceEndpointDockerRegistry\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Docker Hub\n      dockerUsername: username\n      dockerEmail: email@example.com\n      dockerPassword: password\n      registryType: DockerHub\n  example-permissions:\n    type: azuredevops:ServiceendpointPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      serviceendpointId: ${exampleServiceEndpointDockerRegistry.id}\n      permissions:\n        Use: allow\n        Administer: deny\n        Create: deny\n        ViewAuthorization: allow\n        ViewEndpoint: allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission        | Description                         |\n|-------------------|-------------------------------------|\n| Use               | Use service endpoint                |\n| Administer        | Full control over service endpoints |\n| Create            | Create service endpoints            |\n| ViewAuthorization | View authorizations                 |\n| ViewEndpoint      | View service endpoint properties    |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"serviceendpointId":{"type":"string","description":"The id of the service endpoint to assign the permissions.\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission        | Description                         |\n|-------------------|-------------------------------------|\n| Use               | Use service endpoint                |\n| Administer        | Full control over service endpoints |\n| Create            | Create service endpoints            |\n| ViewAuthorization | View authorizations                 |\n| ViewEndpoint      | View service endpoint properties    |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"serviceendpointId":{"type":"string","description":"The id of the service endpoint to assign the permissions.\n","willReplaceOnChanges":true}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission        | Description                         |\n|-------------------|-------------------------------------|\n| Use               | Use service endpoint                |\n| Administer        | Full control over service endpoints |\n| Create            | Create service endpoints            |\n| ViewAuthorization | View authorizations                 |\n| ViewEndpoint      | View service endpoint properties    |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"serviceendpointId":{"type":"string","description":"The id of the service endpoint to assign the permissions.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/serviceendpointSnyk:ServiceendpointSnyk":{"description":"Manages a Snyk Security Scan service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Snyk Security Scan](https://marketplace.visualstudio.com/items?itemName=Snyk.snyk-security-scan)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointSnyk = new azuredevops.ServiceendpointSnyk(\"example\", {\n    projectId: example.id,\n    serverUrl: \"https://snyk.io/\",\n    apiToken: \"00000000-0000-0000-0000-000000000000\",\n    serviceEndpointName: \"Example Snyk\",\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_snyk = azuredevops.ServiceendpointSnyk(\"example\",\n    project_id=example.id,\n    server_url=\"https://snyk.io/\",\n    api_token=\"00000000-0000-0000-0000-000000000000\",\n    service_endpoint_name=\"Example Snyk\",\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointSnyk = new AzureDevOps.ServiceendpointSnyk(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServerUrl = \"https://snyk.io/\",\n        ApiToken = \"00000000-0000-0000-0000-000000000000\",\n        ServiceEndpointName = \"Example Snyk\",\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointSnyk(ctx, \"example\", \u0026azuredevops.ServiceendpointSnykArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServerUrl:           pulumi.String(\"https://snyk.io/\"),\n\t\t\tApiToken:            pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Snyk\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointSnyk;\nimport com.pulumi.azuredevops.ServiceendpointSnykArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointSnyk = new ServiceendpointSnyk(\"exampleServiceendpointSnyk\", ServiceendpointSnykArgs.builder()\n            .projectId(example.id())\n            .serverUrl(\"https://snyk.io/\")\n            .apiToken(\"00000000-0000-0000-0000-000000000000\")\n            .serviceEndpointName(\"Example Snyk\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointSnyk:\n    type: azuredevops:ServiceendpointSnyk\n    name: example\n    properties:\n      projectId: ${example.id}\n      serverUrl: https://snyk.io/\n      apiToken: 00000000-0000-0000-0000-000000000000\n      serviceEndpointName: Example Snyk\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Snyk Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointSnyk:ServiceendpointSnyk example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"apiToken":{"type":"string","description":"The API token of the Snyk Security Scan.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serverUrl":{"type":"string","description":"The server URL of the Snyk Security Scan.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"required":["apiToken","authorization","projectId","serverUrl","serviceEndpointName"],"inputProperties":{"apiToken":{"type":"string","description":"The API token of the Snyk Security Scan.\n","secret":true},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the Snyk Security Scan.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"requiredInputs":["apiToken","projectId","serverUrl","serviceEndpointName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointSnyk resources.\n","properties":{"apiToken":{"type":"string","description":"The API token of the Snyk Security Scan.\n","secret":true},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serverUrl":{"type":"string","description":"The server URL of the Snyk Security Scan.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"}},"type":"object"}},"azuredevops:index/serviceendpointVisualstudiomarketplace:ServiceendpointVisualstudiomarketplace":{"description":"Manages a Visual Studio Marketplace service endpoint within Azure DevOps. Using this service endpoint requires you to install: [Azure DevOps Extension Tasks](https://marketplace.visualstudio.com/items?itemName=ms-devlabs.vsts-developer-tools-build-tasks)\n\n## Example Usage\n\n###  Authorize with token\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointVisualstudiomarketplace = new azuredevops.ServiceendpointVisualstudiomarketplace(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Marketplace\",\n    url: \"https://markpetplace.com\",\n    authenticationToken: {\n        token: \"token\",\n    },\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_visualstudiomarketplace = azuredevops.ServiceendpointVisualstudiomarketplace(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Marketplace\",\n    url=\"https://markpetplace.com\",\n    authentication_token={\n        \"token\": \"token\",\n    },\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointVisualstudiomarketplace = new AzureDevOps.ServiceendpointVisualstudiomarketplace(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Marketplace\",\n        Url = \"https://markpetplace.com\",\n        AuthenticationToken = new AzureDevOps.Inputs.ServiceendpointVisualstudiomarketplaceAuthenticationTokenArgs\n        {\n            Token = \"token\",\n        },\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointVisualstudiomarketplace(ctx, \"example\", \u0026azuredevops.ServiceendpointVisualstudiomarketplaceArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Marketplace\"),\n\t\t\tUrl:                 pulumi.String(\"https://markpetplace.com\"),\n\t\t\tAuthenticationToken: \u0026azuredevops.ServiceendpointVisualstudiomarketplaceAuthenticationTokenArgs{\n\t\t\t\tToken: pulumi.String(\"token\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointVisualstudiomarketplace;\nimport com.pulumi.azuredevops.ServiceendpointVisualstudiomarketplaceArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointVisualstudiomarketplaceAuthenticationTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointVisualstudiomarketplace = new ServiceendpointVisualstudiomarketplace(\"exampleServiceendpointVisualstudiomarketplace\", ServiceendpointVisualstudiomarketplaceArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Marketplace\")\n            .url(\"https://markpetplace.com\")\n            .authenticationToken(ServiceendpointVisualstudiomarketplaceAuthenticationTokenArgs.builder()\n                .token(\"token\")\n                .build())\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointVisualstudiomarketplace:\n    type: azuredevops:ServiceendpointVisualstudiomarketplace\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Marketplace\n      url: https://markpetplace.com\n      authenticationToken:\n        token: token\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Authorize with username and password\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceendpointVisualstudiomarketplace = new azuredevops.ServiceendpointVisualstudiomarketplace(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example Marketplace\",\n    url: \"https://markpetplace.com\",\n    authenticationBasic: {\n        username: \"username\",\n        password: \"password\",\n    },\n    description: \"Managed by Pulumi\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\",\n    description=\"Managed by Pulumi\")\nexample_serviceendpoint_visualstudiomarketplace = azuredevops.ServiceendpointVisualstudiomarketplace(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example Marketplace\",\n    url=\"https://markpetplace.com\",\n    authentication_basic={\n        \"username\": \"username\",\n        \"password\": \"password\",\n    },\n    description=\"Managed by Pulumi\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceendpointVisualstudiomarketplace = new AzureDevOps.ServiceendpointVisualstudiomarketplace(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example Marketplace\",\n        Url = \"https://markpetplace.com\",\n        AuthenticationBasic = new AzureDevOps.Inputs.ServiceendpointVisualstudiomarketplaceAuthenticationBasicArgs\n        {\n            Username = \"username\",\n            Password = \"password\",\n        },\n        Description = \"Managed by Pulumi\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServiceendpointVisualstudiomarketplace(ctx, \"example\", \u0026azuredevops.ServiceendpointVisualstudiomarketplaceArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example Marketplace\"),\n\t\t\tUrl:                 pulumi.String(\"https://markpetplace.com\"),\n\t\t\tAuthenticationBasic: \u0026azuredevops.ServiceendpointVisualstudiomarketplaceAuthenticationBasicArgs{\n\t\t\t\tUsername: pulumi.String(\"username\"),\n\t\t\t\tPassword: pulumi.String(\"password\"),\n\t\t\t},\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceendpointVisualstudiomarketplace;\nimport com.pulumi.azuredevops.ServiceendpointVisualstudiomarketplaceArgs;\nimport com.pulumi.azuredevops.inputs.ServiceendpointVisualstudiomarketplaceAuthenticationBasicArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceendpointVisualstudiomarketplace = new ServiceendpointVisualstudiomarketplace(\"exampleServiceendpointVisualstudiomarketplace\", ServiceendpointVisualstudiomarketplaceArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example Marketplace\")\n            .url(\"https://markpetplace.com\")\n            .authenticationBasic(ServiceendpointVisualstudiomarketplaceAuthenticationBasicArgs.builder()\n                .username(\"username\")\n                .password(\"password\")\n                .build())\n            .description(\"Managed by Pulumi\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n      description: Managed by Pulumi\n  exampleServiceendpointVisualstudiomarketplace:\n    type: azuredevops:ServiceendpointVisualstudiomarketplace\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example Marketplace\n      url: https://markpetplace.com\n      authenticationBasic:\n        username: username\n        password: password\n      description: Managed by Pulumi\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Endpoints](https://docs.microsoft.com/en-us/rest/api/azure/devops/serviceendpoint/endpoints?view=azure-devops-rest-7.0)\n\n## Import\n\nAzure DevOps Visual Studio Marketplace Service Endpoint can be imported using **projectID/serviceEndpointID** or **projectName/serviceEndpointID**\n\n```sh\n$ pulumi import azuredevops:index/serviceendpointVisualstudiomarketplace:ServiceendpointVisualstudiomarketplace example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationBasic:ServiceendpointVisualstudiomarketplaceAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationToken:ServiceendpointVisualstudiomarketplaceAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for Visual Studio Marketplace.\n"}},"required":["authorization","projectId","serviceEndpointName","url"],"inputProperties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationBasic:ServiceendpointVisualstudiomarketplaceAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationToken:ServiceendpointVisualstudiomarketplaceAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for Visual Studio Marketplace.\n"}},"requiredInputs":["projectId","serviceEndpointName","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServiceendpointVisualstudiomarketplace resources.\n","properties":{"authenticationBasic":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationBasic:ServiceendpointVisualstudiomarketplaceAuthenticationBasic","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e block as documented below.\n\n\u003e **NOTE:** \u003cspan pulumi-lang-nodejs=\"`authenticationBasic`\" pulumi-lang-dotnet=\"`AuthenticationBasic`\" pulumi-lang-go=\"`authenticationBasic`\" pulumi-lang-python=\"`authentication_basic`\" pulumi-lang-yaml=\"`authenticationBasic`\" pulumi-lang-java=\"`authenticationBasic`\"\u003e`authentication_basic`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e conflict with each other, only one is required.\n"},"authenticationToken":{"$ref":"#/types/azuredevops:index/ServiceendpointVisualstudiomarketplaceAuthenticationToken:ServiceendpointVisualstudiomarketplaceAuthenticationToken","description":"An \u003cspan pulumi-lang-nodejs=\"`authenticationToken`\" pulumi-lang-dotnet=\"`AuthenticationToken`\" pulumi-lang-go=\"`authenticationToken`\" pulumi-lang-python=\"`authentication_token`\" pulumi-lang-yaml=\"`authenticationToken`\" pulumi-lang-java=\"`authenticationToken`\"\u003e`authentication_token`\u003c/span\u003e block as documented below.\n"},"authorization":{"type":"object","additionalProperties":{"type":"string"}},"description":{"type":"string","description":"The Service Endpoint description. Defaults to `Managed by Terraform`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"serviceEndpointName":{"type":"string","description":"The Service Endpoint name.\n"},"url":{"type":"string","description":"The server URL for Visual Studio Marketplace.\n"}},"type":"object"}},"azuredevops:index/servicehookPermissions:ServicehookPermissions":{"description":"Manages permissions for Service Hook permissions.\n\n## Permission levels\n\nPermissions for service hooks within Azure DevOps can be applied on the Organizational level or, if the optional attribute \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e is specified, on Project level.\nThose levels are reflected by specifying (or omitting) values for the argument \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_permissions = new azuredevops.ServicehookPermissions(\"example-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        ViewSubscriptions: \"allow\",\n        EditSubscriptions: \"allow\",\n        DeleteSubscriptions: \"allow\",\n        PublishEvents: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_permissions = azuredevops.ServicehookPermissions(\"example-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"ViewSubscriptions\": \"allow\",\n        \"EditSubscriptions\": \"allow\",\n        \"DeleteSubscriptions\": \"allow\",\n        \"PublishEvents\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_permissions = new AzureDevOps.ServicehookPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"ViewSubscriptions\", \"allow\" },\n            { \"EditSubscriptions\", \"allow\" },\n            { \"DeleteSubscriptions\", \"allow\" },\n            { \"PublishEvents\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewServicehookPermissions(ctx, \"example-permissions\", \u0026azuredevops.ServicehookPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"ViewSubscriptions\":   pulumi.String(\"allow\"),\n\t\t\t\t\"EditSubscriptions\":   pulumi.String(\"allow\"),\n\t\t\t\t\"DeleteSubscriptions\": pulumi.String(\"allow\"),\n\t\t\t\t\"PublishEvents\":       pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.ServicehookPermissions;\nimport com.pulumi.azuredevops.ServicehookPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_permissions = new ServicehookPermissions(\"example-permissions\", ServicehookPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"ViewSubscriptions\", \"allow\"),\n                Map.entry(\"EditSubscriptions\", \"allow\"),\n                Map.entry(\"DeleteSubscriptions\", \"allow\"),\n                Map.entry(\"PublishEvents\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-permissions:\n    type: azuredevops:ServicehookPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        ViewSubscriptions: allow\n        EditSubscriptions: allow\n        DeleteSubscriptions: allow\n        PublishEvents: allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name                | Permission Description |\n|---------------------|------------------------|\n| ViewSubscriptions   | View Subscriptions     |\n| EditSubscriptions   | Edit Subscription      |\n| DeleteSubscriptions | Delete Subscriptions   |\n| PublishEvents       | Publish Events         |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name                | Permission Description |\n|---------------------|------------------------|\n| ViewSubscriptions   | View Subscriptions     |\n| EditSubscriptions   | Edit Subscription      |\n| DeleteSubscriptions | Delete Subscriptions   |\n| PublishEvents       | Publish Events         |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal"],"stateInputs":{"description":"Input properties used for looking up and filtering ServicehookPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name                | Permission Description |\n|---------------------|------------------------|\n| ViewSubscriptions   | View Subscriptions     |\n| EditSubscriptions   | Edit Subscription      |\n| DeleteSubscriptions | Delete Subscriptions   |\n| PublishEvents       | Publish Events         |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/servicehookStorageQueuePipelines:ServicehookStorageQueuePipelines":{"description":"Manages a Storage Queue Pipelines Service Hook .\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as azurerm from \"@pulumi/azurerm\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"example-project\"});\nconst exampleResourceGroup = new azurerm.index.ResourceGroup(\"example\", {\n    name: \"example-resources\",\n    location: \"West Europe\",\n});\nconst exampleStorageAccount = new azurerm.index.StorageAccount(\"example\", {\n    name: \"servicehookexamplestacc\",\n    resourceGroupName: exampleResourceGroup.name,\n    location: exampleResourceGroup.location,\n    accountTier: \"Standard\",\n    accountReplicationType: \"LRS\",\n});\nconst exampleStorageQueue = new azurerm.index.StorageQueue(\"example\", {\n    name: \"examplequeue\",\n    storageAccountName: exampleStorageAccount.name,\n});\nconst exampleServicehookStorageQueuePipelines = new azuredevops.ServicehookStorageQueuePipelines(\"example\", {\n    projectId: example.id,\n    accountName: exampleStorageAccount.name,\n    accountKey: exampleStorageAccount.primaryAccessKey,\n    queueName: exampleStorageQueue.name,\n    visiTimeout: 30,\n    runStateChangedEvent: {\n        runStateFilter: \"Completed\",\n        runResultFilter: \"Succeeded\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_azurerm as azurerm\n\nexample = azuredevops.Project(\"example\", name=\"example-project\")\nexample_resource_group = azurerm.index.ResourceGroup(\"example\",\n    name=example-resources,\n    location=West Europe)\nexample_storage_account = azurerm.index.StorageAccount(\"example\",\n    name=servicehookexamplestacc,\n    resource_group_name=example_resource_group.name,\n    location=example_resource_group.location,\n    account_tier=Standard,\n    account_replication_type=LRS)\nexample_storage_queue = azurerm.index.StorageQueue(\"example\",\n    name=examplequeue,\n    storage_account_name=example_storage_account.name)\nexample_servicehook_storage_queue_pipelines = azuredevops.ServicehookStorageQueuePipelines(\"example\",\n    project_id=example.id,\n    account_name=example_storage_account[\"name\"],\n    account_key=example_storage_account[\"primaryAccessKey\"],\n    queue_name=example_storage_queue[\"name\"],\n    visi_timeout=30,\n    run_state_changed_event={\n        \"run_state_filter\": \"Completed\",\n        \"run_result_filter\": \"Succeeded\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Azurerm = Pulumi.Azurerm;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"example-project\",\n    });\n\n    var exampleResourceGroup = new Azurerm.Index.ResourceGroup(\"example\", new()\n    {\n        Name = \"example-resources\",\n        Location = \"West Europe\",\n    });\n\n    var exampleStorageAccount = new Azurerm.Index.StorageAccount(\"example\", new()\n    {\n        Name = \"servicehookexamplestacc\",\n        ResourceGroupName = exampleResourceGroup.Name,\n        Location = exampleResourceGroup.Location,\n        AccountTier = \"Standard\",\n        AccountReplicationType = \"LRS\",\n    });\n\n    var exampleStorageQueue = new Azurerm.Index.StorageQueue(\"example\", new()\n    {\n        Name = \"examplequeue\",\n        StorageAccountName = exampleStorageAccount.Name,\n    });\n\n    var exampleServicehookStorageQueuePipelines = new AzureDevOps.ServicehookStorageQueuePipelines(\"example\", new()\n    {\n        ProjectId = example.Id,\n        AccountName = exampleStorageAccount.Name,\n        AccountKey = exampleStorageAccount.PrimaryAccessKey,\n        QueueName = exampleStorageQueue.Name,\n        VisiTimeout = 30,\n        RunStateChangedEvent = new AzureDevOps.Inputs.ServicehookStorageQueuePipelinesRunStateChangedEventArgs\n        {\n            RunStateFilter = \"Completed\",\n            RunResultFilter = \"Succeeded\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-azurerm/sdk/go/azurerm\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"example-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleResourceGroup, err := azurerm.NewResourceGroup(ctx, \"example\", \u0026azurerm.ResourceGroupArgs{\n\t\t\tName:     \"example-resources\",\n\t\t\tLocation: \"West Europe\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStorageAccount, err := azurerm.NewStorageAccount(ctx, \"example\", \u0026azurerm.StorageAccountArgs{\n\t\t\tName:                   \"servicehookexamplestacc\",\n\t\t\tResourceGroupName:      exampleResourceGroup.Name,\n\t\t\tLocation:               exampleResourceGroup.Location,\n\t\t\tAccountTier:            \"Standard\",\n\t\t\tAccountReplicationType: \"LRS\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleStorageQueue, err := azurerm.NewStorageQueue(ctx, \"example\", \u0026azurerm.StorageQueueArgs{\n\t\t\tName:               \"examplequeue\",\n\t\t\tStorageAccountName: exampleStorageAccount.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServicehookStorageQueuePipelines(ctx, \"example\", \u0026azuredevops.ServicehookStorageQueuePipelinesArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tAccountName: exampleStorageAccount.Name,\n\t\t\tAccountKey:  exampleStorageAccount.PrimaryAccessKey,\n\t\t\tQueueName:   exampleStorageQueue.Name,\n\t\t\tVisiTimeout: pulumi.Int(30),\n\t\t\tRunStateChangedEvent: \u0026azuredevops.ServicehookStorageQueuePipelinesRunStateChangedEventArgs{\n\t\t\t\tRunStateFilter:  pulumi.String(\"Completed\"),\n\t\t\t\tRunResultFilter: pulumi.String(\"Succeeded\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azurerm.ResourceGroup;\nimport com.pulumi.azurerm.ResourceGroupArgs;\nimport com.pulumi.azurerm.StorageAccount;\nimport com.pulumi.azurerm.StorageAccountArgs;\nimport com.pulumi.azurerm.StorageQueue;\nimport com.pulumi.azurerm.StorageQueueArgs;\nimport com.pulumi.azuredevops.ServicehookStorageQueuePipelines;\nimport com.pulumi.azuredevops.ServicehookStorageQueuePipelinesArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookStorageQueuePipelinesRunStateChangedEventArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"example-project\")\n            .build());\n\n        var exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder()\n            .name(\"example-resources\")\n            .location(\"West Europe\")\n            .build());\n\n        var exampleStorageAccount = new StorageAccount(\"exampleStorageAccount\", StorageAccountArgs.builder()\n            .name(\"servicehookexamplestacc\")\n            .resourceGroupName(exampleResourceGroup.name())\n            .location(exampleResourceGroup.location())\n            .accountTier(\"Standard\")\n            .accountReplicationType(\"LRS\")\n            .build());\n\n        var exampleStorageQueue = new StorageQueue(\"exampleStorageQueue\", StorageQueueArgs.builder()\n            .name(\"examplequeue\")\n            .storageAccountName(exampleStorageAccount.name())\n            .build());\n\n        var exampleServicehookStorageQueuePipelines = new ServicehookStorageQueuePipelines(\"exampleServicehookStorageQueuePipelines\", ServicehookStorageQueuePipelinesArgs.builder()\n            .projectId(example.id())\n            .accountName(exampleStorageAccount.name())\n            .accountKey(exampleStorageAccount.primaryAccessKey())\n            .queueName(exampleStorageQueue.name())\n            .visiTimeout(30)\n            .runStateChangedEvent(ServicehookStorageQueuePipelinesRunStateChangedEventArgs.builder()\n                .runStateFilter(\"Completed\")\n                .runResultFilter(\"Succeeded\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: example-project\n  exampleResourceGroup:\n    type: azurerm:ResourceGroup\n    name: example\n    properties:\n      name: example-resources\n      location: West Europe\n  exampleStorageAccount:\n    type: azurerm:StorageAccount\n    name: example\n    properties:\n      name: servicehookexamplestacc\n      resourceGroupName: ${exampleResourceGroup.name}\n      location: ${exampleResourceGroup.location}\n      accountTier: Standard\n      accountReplicationType: LRS\n  exampleStorageQueue:\n    type: azurerm:StorageQueue\n    name: example\n    properties:\n      name: examplequeue\n      storageAccountName: ${exampleStorageAccount.name}\n  exampleServicehookStorageQueuePipelines:\n    type: azuredevops:ServicehookStorageQueuePipelines\n    name: example\n    properties:\n      projectId: ${example.id}\n      accountName: ${exampleStorageAccount.name}\n      accountKey: ${exampleStorageAccount.primaryAccessKey}\n      queueName: ${exampleStorageQueue.name}\n      visiTimeout: 30\n      runStateChangedEvent:\n        runStateFilter: Completed\n        runResultFilter: Succeeded\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAn empty configuration block will occur in all events triggering the associated action.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicehookStorageQueuePipelines(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    accountName: exampleAzurermStorageAccount.name,\n    accountKey: exampleAzurermStorageAccount.primaryAccessKey,\n    queueName: exampleAzurermStorageQueue.name,\n    visiTimeout: 30,\n    runStateChangedEvent: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicehookStorageQueuePipelines(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    account_name=example_azurerm_storage_account[\"name\"],\n    account_key=example_azurerm_storage_account[\"primaryAccessKey\"],\n    queue_name=example_azurerm_storage_queue[\"name\"],\n    visi_timeout=30,\n    run_state_changed_event={})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicehookStorageQueuePipelines(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        AccountName = exampleAzurermStorageAccount.Name,\n        AccountKey = exampleAzurermStorageAccount.PrimaryAccessKey,\n        QueueName = exampleAzurermStorageQueue.Name,\n        VisiTimeout = 30,\n        RunStateChangedEvent = null,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicehookStorageQueuePipelines(ctx, \"example\", \u0026azuredevops.ServicehookStorageQueuePipelinesArgs{\n\t\t\tProjectId:            pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tAccountName:          pulumi.Any(exampleAzurermStorageAccount.Name),\n\t\t\tAccountKey:           pulumi.Any(exampleAzurermStorageAccount.PrimaryAccessKey),\n\t\t\tQueueName:            pulumi.Any(exampleAzurermStorageQueue.Name),\n\t\t\tVisiTimeout:          pulumi.Int(30),\n\t\t\tRunStateChangedEvent: \u0026azuredevops.ServicehookStorageQueuePipelinesRunStateChangedEventArgs{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicehookStorageQueuePipelines;\nimport com.pulumi.azuredevops.ServicehookStorageQueuePipelinesArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookStorageQueuePipelinesRunStateChangedEventArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicehookStorageQueuePipelines(\"example\", ServicehookStorageQueuePipelinesArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .accountName(exampleAzurermStorageAccount.name())\n            .accountKey(exampleAzurermStorageAccount.primaryAccessKey())\n            .queueName(exampleAzurermStorageQueue.name())\n            .visiTimeout(30)\n            .runStateChangedEvent(ServicehookStorageQueuePipelinesRunStateChangedEventArgs.builder()\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicehookStorageQueuePipelines\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      accountName: ${exampleAzurermStorageAccount.name}\n      accountKey: ${exampleAzurermStorageAccount.primaryAccessKey}\n      queueName: ${exampleAzurermStorageQueue.name}\n      visiTimeout: 30\n      runStateChangedEvent: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nStorage Queue Pipelines Service Hook can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/servicehookStorageQueuePipelines:ServicehookStorageQueuePipelines example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"accountKey":{"type":"string","description":"A valid account key from the queue's storage account.\n","secret":true},"accountName":{"type":"string","description":"The queue's storage account name.\n"},"projectId":{"type":"string","description":"The ID of the associated project. Changing this forces a new Service Hook Storage Queue Pipelines to be created.\n"},"queueName":{"type":"string","description":"The name of the queue that will store the events.\n"},"runStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesRunStateChangedEvent:ServicehookStorageQueuePipelinesRunStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e\n"},"stageStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesStageStateChangedEvent:ServicehookStorageQueuePipelinesStageStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e has to be set.\n"},"ttl":{"type":"integer","description":"event time-to-live - the duration a message can remain in the queue before it's automatically removed. Defaults to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e.\n"},"visiTimeout":{"type":"integer","description":"event visibility timout - how long a message is invisible to other consumers after it's been dequeued. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"}},"required":["accountKey","accountName","projectId","queueName"],"inputProperties":{"accountKey":{"type":"string","description":"A valid account key from the queue's storage account.\n","secret":true},"accountName":{"type":"string","description":"The queue's storage account name.\n"},"projectId":{"type":"string","description":"The ID of the associated project. Changing this forces a new Service Hook Storage Queue Pipelines to be created.\n","willReplaceOnChanges":true},"queueName":{"type":"string","description":"The name of the queue that will store the events.\n"},"runStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesRunStateChangedEvent:ServicehookStorageQueuePipelinesRunStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e\n"},"stageStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesStageStateChangedEvent:ServicehookStorageQueuePipelinesStageStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e has to be set.\n"},"ttl":{"type":"integer","description":"event time-to-live - the duration a message can remain in the queue before it's automatically removed. Defaults to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e.\n"},"visiTimeout":{"type":"integer","description":"event visibility timout - how long a message is invisible to other consumers after it's been dequeued. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"}},"requiredInputs":["accountKey","accountName","projectId","queueName"],"stateInputs":{"description":"Input properties used for looking up and filtering ServicehookStorageQueuePipelines resources.\n","properties":{"accountKey":{"type":"string","description":"A valid account key from the queue's storage account.\n","secret":true},"accountName":{"type":"string","description":"The queue's storage account name.\n"},"projectId":{"type":"string","description":"The ID of the associated project. Changing this forces a new Service Hook Storage Queue Pipelines to be created.\n","willReplaceOnChanges":true},"queueName":{"type":"string","description":"The name of the queue that will store the events.\n"},"runStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesRunStateChangedEvent:ServicehookStorageQueuePipelinesRunStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e\n"},"stageStateChangedEvent":{"$ref":"#/types/azuredevops:index/ServicehookStorageQueuePipelinesStageStateChangedEvent:ServicehookStorageQueuePipelinesStageStateChangedEvent","description":"A \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e block as defined below. Conflicts with \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e\n\n\u003e **Note** At least one of \u003cspan pulumi-lang-nodejs=\"`runStateChangedEvent`\" pulumi-lang-dotnet=\"`RunStateChangedEvent`\" pulumi-lang-go=\"`runStateChangedEvent`\" pulumi-lang-python=\"`run_state_changed_event`\" pulumi-lang-yaml=\"`runStateChangedEvent`\" pulumi-lang-java=\"`runStateChangedEvent`\"\u003e`run_state_changed_event`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`stageStateChangedEvent`\" pulumi-lang-dotnet=\"`StageStateChangedEvent`\" pulumi-lang-go=\"`stageStateChangedEvent`\" pulumi-lang-python=\"`stage_state_changed_event`\" pulumi-lang-yaml=\"`stageStateChangedEvent`\" pulumi-lang-java=\"`stageStateChangedEvent`\"\u003e`stage_state_changed_event`\u003c/span\u003e has to be set.\n"},"ttl":{"type":"integer","description":"event time-to-live - the duration a message can remain in the queue before it's automatically removed. Defaults to \u003cspan pulumi-lang-nodejs=\"`604800`\" pulumi-lang-dotnet=\"`604800`\" pulumi-lang-go=\"`604800`\" pulumi-lang-python=\"`604800`\" pulumi-lang-yaml=\"`604800`\" pulumi-lang-java=\"`604800`\"\u003e`604800`\u003c/span\u003e.\n"},"visiTimeout":{"type":"integer","description":"event visibility timout - how long a message is invisible to other consumers after it's been dequeued. Defaults to \u003cspan pulumi-lang-nodejs=\"`0`\" pulumi-lang-dotnet=\"`0`\" pulumi-lang-go=\"`0`\" pulumi-lang-python=\"`0`\" pulumi-lang-yaml=\"`0`\" pulumi-lang-java=\"`0`\"\u003e`0`\u003c/span\u003e.\n"}},"type":"object"}},"azuredevops:index/servicehookWebhookTfs:ServicehookWebhookTfs":{"description":"Manages a Webhook TFS Service Hook that sends HTTP POST requests to a specified URL when Azure DevOps events occur.\n\n## Example Usage\n\n### Git Push Event\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {name: \"example-project\"});\nconst exampleServicehookWebhookTfs = new azuredevops.ServicehookWebhookTfs(\"example\", {\n    projectId: example.id,\n    url: \"https://example.com/webhook\",\n    gitPush: {\n        branch: \"refs/heads/main\",\n        repositoryId: exampleAzuredevopsGitRepository.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\", name=\"example-project\")\nexample_servicehook_webhook_tfs = azuredevops.ServicehookWebhookTfs(\"example\",\n    project_id=example.id,\n    url=\"https://example.com/webhook\",\n    git_push={\n        \"branch\": \"refs/heads/main\",\n        \"repository_id\": example_azuredevops_git_repository[\"id\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"example-project\",\n    });\n\n    var exampleServicehookWebhookTfs = new AzureDevOps.ServicehookWebhookTfs(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Url = \"https://example.com/webhook\",\n        GitPush = new AzureDevOps.Inputs.ServicehookWebhookTfsGitPushArgs\n        {\n            Branch = \"refs/heads/main\",\n            RepositoryId = exampleAzuredevopsGitRepository.Id,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName: pulumi.String(\"example-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewServicehookWebhookTfs(ctx, \"example\", \u0026azuredevops.ServicehookWebhookTfsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tUrl:       pulumi.String(\"https://example.com/webhook\"),\n\t\t\tGitPush: \u0026azuredevops.ServicehookWebhookTfsGitPushArgs{\n\t\t\t\tBranch:       pulumi.String(\"refs/heads/main\"),\n\t\t\t\tRepositoryId: pulumi.Any(exampleAzuredevopsGitRepository.Id),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfsArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookWebhookTfsGitPushArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"example-project\")\n            .build());\n\n        var exampleServicehookWebhookTfs = new ServicehookWebhookTfs(\"exampleServicehookWebhookTfs\", ServicehookWebhookTfsArgs.builder()\n            .projectId(example.id())\n            .url(\"https://example.com/webhook\")\n            .gitPush(ServicehookWebhookTfsGitPushArgs.builder()\n                .branch(\"refs/heads/main\")\n                .repositoryId(exampleAzuredevopsGitRepository.id())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: example-project\n  exampleServicehookWebhookTfs:\n    type: azuredevops:ServicehookWebhookTfs\n    name: example\n    properties:\n      projectId: ${example.id}\n      url: https://example.com/webhook\n      gitPush:\n        branch: refs/heads/main\n        repositoryId: ${exampleAzuredevopsGitRepository.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Build Completed Event with Authentication\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicehookWebhookTfs(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    url: \"https://example.com/webhook\",\n    basicAuthUsername: \"webhook_user\",\n    basicAuthPassword: webhookPassword,\n    acceptUntrustedCerts: false,\n    buildCompleted: {\n        definitionName: \"CI Build\",\n        buildStatus: \"Succeeded\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicehookWebhookTfs(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    url=\"https://example.com/webhook\",\n    basic_auth_username=\"webhook_user\",\n    basic_auth_password=webhook_password,\n    accept_untrusted_certs=False,\n    build_completed={\n        \"definition_name\": \"CI Build\",\n        \"build_status\": \"Succeeded\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicehookWebhookTfs(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Url = \"https://example.com/webhook\",\n        BasicAuthUsername = \"webhook_user\",\n        BasicAuthPassword = webhookPassword,\n        AcceptUntrustedCerts = false,\n        BuildCompleted = new AzureDevOps.Inputs.ServicehookWebhookTfsBuildCompletedArgs\n        {\n            DefinitionName = \"CI Build\",\n            BuildStatus = \"Succeeded\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicehookWebhookTfs(ctx, \"example\", \u0026azuredevops.ServicehookWebhookTfsArgs{\n\t\t\tProjectId:            pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tUrl:                  pulumi.String(\"https://example.com/webhook\"),\n\t\t\tBasicAuthUsername:    pulumi.String(\"webhook_user\"),\n\t\t\tBasicAuthPassword:    pulumi.Any(webhookPassword),\n\t\t\tAcceptUntrustedCerts: pulumi.Bool(false),\n\t\t\tBuildCompleted: \u0026azuredevops.ServicehookWebhookTfsBuildCompletedArgs{\n\t\t\t\tDefinitionName: pulumi.String(\"CI Build\"),\n\t\t\t\tBuildStatus:    pulumi.String(\"Succeeded\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicehookWebhookTfs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfsArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookWebhookTfsBuildCompletedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicehookWebhookTfs(\"example\", ServicehookWebhookTfsArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .url(\"https://example.com/webhook\")\n            .basicAuthUsername(\"webhook_user\")\n            .basicAuthPassword(webhookPassword)\n            .acceptUntrustedCerts(false)\n            .buildCompleted(ServicehookWebhookTfsBuildCompletedArgs.builder()\n                .definitionName(\"CI Build\")\n                .buildStatus(\"Succeeded\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicehookWebhookTfs\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      url: https://example.com/webhook\n      basicAuthUsername: webhook_user\n      basicAuthPassword: ${webhookPassword}\n      acceptUntrustedCerts: false\n      buildCompleted:\n        definitionName: CI Build\n        buildStatus: Succeeded\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Pull Request Created Event with HTTP Headers\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicehookWebhookTfs(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    url: \"https://example.com/webhook\",\n    httpHeaders: {\n        \"X-Custom-Header\": \"my-value\",\n        Authorization: `Bearer ${apiToken}`,\n    },\n    gitPullRequestCreated: {\n        repositoryId: exampleAzuredevopsGitRepository.id,\n        branch: \"refs/heads/develop\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicehookWebhookTfs(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    url=\"https://example.com/webhook\",\n    http_headers={\n        \"X-Custom-Header\": \"my-value\",\n        \"Authorization\": f\"Bearer {api_token}\",\n    },\n    git_pull_request_created={\n        \"repository_id\": example_azuredevops_git_repository[\"id\"],\n        \"branch\": \"refs/heads/develop\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicehookWebhookTfs(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Url = \"https://example.com/webhook\",\n        HttpHeaders = \n        {\n            { \"X-Custom-Header\", \"my-value\" },\n            { \"Authorization\", $\"Bearer {apiToken}\" },\n        },\n        GitPullRequestCreated = new AzureDevOps.Inputs.ServicehookWebhookTfsGitPullRequestCreatedArgs\n        {\n            RepositoryId = exampleAzuredevopsGitRepository.Id,\n            Branch = \"refs/heads/develop\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicehookWebhookTfs(ctx, \"example\", \u0026azuredevops.ServicehookWebhookTfsArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tUrl:       pulumi.String(\"https://example.com/webhook\"),\n\t\t\tHttpHeaders: pulumi.StringMap{\n\t\t\t\t\"X-Custom-Header\": pulumi.String(\"my-value\"),\n\t\t\t\t\"Authorization\":   pulumi.Sprintf(\"Bearer %v\", apiToken),\n\t\t\t},\n\t\t\tGitPullRequestCreated: \u0026azuredevops.ServicehookWebhookTfsGitPullRequestCreatedArgs{\n\t\t\t\tRepositoryId: pulumi.Any(exampleAzuredevopsGitRepository.Id),\n\t\t\t\tBranch:       pulumi.String(\"refs/heads/develop\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicehookWebhookTfs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfsArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookWebhookTfsGitPullRequestCreatedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicehookWebhookTfs(\"example\", ServicehookWebhookTfsArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .url(\"https://example.com/webhook\")\n            .httpHeaders(Map.ofEntries(\n                Map.entry(\"X-Custom-Header\", \"my-value\"),\n                Map.entry(\"Authorization\", String.format(\"Bearer %s\", apiToken))\n            ))\n            .gitPullRequestCreated(ServicehookWebhookTfsGitPullRequestCreatedArgs.builder()\n                .repositoryId(exampleAzuredevopsGitRepository.id())\n                .branch(\"refs/heads/develop\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicehookWebhookTfs\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      url: https://example.com/webhook\n      httpHeaders:\n        X-Custom-Header: my-value\n        Authorization: Bearer ${apiToken}\n      gitPullRequestCreated:\n        repositoryId: ${exampleAzuredevopsGitRepository.id}\n        branch: refs/heads/develop\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Work Item Updated Event\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicehookWebhookTfs(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    url: \"https://example.com/webhook\",\n    resourceDetailsToSend: \"all\",\n    messagesToSend: \"text\",\n    detailedMessagesToSend: \"markdown\",\n    workItemUpdated: {\n        workItemType: \"Bug\",\n        areaPath: \"MyProject\\\\Area\",\n        changedFields: \"System.State\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicehookWebhookTfs(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    url=\"https://example.com/webhook\",\n    resource_details_to_send=\"all\",\n    messages_to_send=\"text\",\n    detailed_messages_to_send=\"markdown\",\n    work_item_updated={\n        \"work_item_type\": \"Bug\",\n        \"area_path\": \"MyProject\\\\Area\",\n        \"changed_fields\": \"System.State\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicehookWebhookTfs(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Url = \"https://example.com/webhook\",\n        ResourceDetailsToSend = \"all\",\n        MessagesToSend = \"text\",\n        DetailedMessagesToSend = \"markdown\",\n        WorkItemUpdated = new AzureDevOps.Inputs.ServicehookWebhookTfsWorkItemUpdatedArgs\n        {\n            WorkItemType = \"Bug\",\n            AreaPath = \"MyProject\\\\Area\",\n            ChangedFields = \"System.State\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicehookWebhookTfs(ctx, \"example\", \u0026azuredevops.ServicehookWebhookTfsArgs{\n\t\t\tProjectId:              pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tUrl:                    pulumi.String(\"https://example.com/webhook\"),\n\t\t\tResourceDetailsToSend:  pulumi.String(\"all\"),\n\t\t\tMessagesToSend:         pulumi.String(\"text\"),\n\t\t\tDetailedMessagesToSend: pulumi.String(\"markdown\"),\n\t\t\tWorkItemUpdated: \u0026azuredevops.ServicehookWebhookTfsWorkItemUpdatedArgs{\n\t\t\t\tWorkItemType:  pulumi.String(\"Bug\"),\n\t\t\t\tAreaPath:      pulumi.String(\"MyProject\\\\Area\"),\n\t\t\t\tChangedFields: pulumi.String(\"System.State\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicehookWebhookTfs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfsArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookWebhookTfsWorkItemUpdatedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicehookWebhookTfs(\"example\", ServicehookWebhookTfsArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .url(\"https://example.com/webhook\")\n            .resourceDetailsToSend(\"all\")\n            .messagesToSend(\"text\")\n            .detailedMessagesToSend(\"markdown\")\n            .workItemUpdated(ServicehookWebhookTfsWorkItemUpdatedArgs.builder()\n                .workItemType(\"Bug\")\n                .areaPath(\"MyProject\\\\Area\")\n                .changedFields(\"System.State\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicehookWebhookTfs\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      url: https://example.com/webhook\n      resourceDetailsToSend: all\n      messagesToSend: text\n      detailedMessagesToSend: markdown\n      workItemUpdated:\n        workItemType: Bug\n        areaPath: MyProject\\Area\n        changedFields: System.State\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\nAn empty configuration block will trigger on all events of that type:\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.ServicehookWebhookTfs(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    url: \"https://example.com/webhook\",\n    gitPush: {},\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.ServicehookWebhookTfs(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    url=\"https://example.com/webhook\",\n    git_push={})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.ServicehookWebhookTfs(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Url = \"https://example.com/webhook\",\n        GitPush = null,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewServicehookWebhookTfs(ctx, \"example\", \u0026azuredevops.ServicehookWebhookTfsArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tUrl:       pulumi.String(\"https://example.com/webhook\"),\n\t\t\tGitPush:   \u0026azuredevops.ServicehookWebhookTfsGitPushArgs{},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.ServicehookWebhookTfs;\nimport com.pulumi.azuredevops.ServicehookWebhookTfsArgs;\nimport com.pulumi.azuredevops.inputs.ServicehookWebhookTfsGitPushArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new ServicehookWebhookTfs(\"example\", ServicehookWebhookTfsArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .url(\"https://example.com/webhook\")\n            .gitPush(ServicehookWebhookTfsGitPushArgs.builder()\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:ServicehookWebhookTfs\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      url: https://example.com/webhook\n      gitPush: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nWebhook TFS Service Hook can be imported using the `resource id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/servicehookWebhookTfs:ServicehookWebhookTfs example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Accept untrusted SSL certificates. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"basicAuthPassword":{"type":"string","description":"Basic authentication password.\n","secret":true},"basicAuthUsername":{"type":"string","description":"Basic authentication username.\n"},"buildCompleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsBuildCompleted:ServicehookWebhookTfsBuildCompleted"},"detailedMessagesToSend":{"type":"string","description":"Detailed messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"gitPullRequestCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCommented:ServicehookWebhookTfsGitPullRequestCommented"},"gitPullRequestCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCreated:ServicehookWebhookTfsGitPullRequestCreated"},"gitPullRequestMergeAttempted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestMergeAttempted:ServicehookWebhookTfsGitPullRequestMergeAttempted"},"gitPullRequestUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestUpdated:ServicehookWebhookTfsGitPullRequestUpdated"},"gitPush":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPush:ServicehookWebhookTfsGitPush"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers as key-value pairs to include in the webhook request.\n"},"messagesToSend":{"type":"string","description":"Messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Hook Webhook TFS to be created.\n"},"repositoryCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryCreated:ServicehookWebhookTfsRepositoryCreated"},"repositoryDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryDeleted:ServicehookWebhookTfsRepositoryDeleted"},"repositoryForked":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryForked:ServicehookWebhookTfsRepositoryForked"},"repositoryRenamed":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryRenamed:ServicehookWebhookTfsRepositoryRenamed"},"repositoryStatusChanged":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryStatusChanged:ServicehookWebhookTfsRepositoryStatusChanged"},"resourceDetailsToSend":{"type":"string","description":"Resource details to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minimal`\" pulumi-lang-dotnet=\"`Minimal`\" pulumi-lang-go=\"`minimal`\" pulumi-lang-python=\"`minimal`\" pulumi-lang-yaml=\"`minimal`\" pulumi-lang-java=\"`minimal`\"\u003e`minimal`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"resourceVersion":{"type":"string","description":"The resource version for the webhook subscription. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e.\n"},"serviceConnectionCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionCreated:ServicehookWebhookTfsServiceConnectionCreated"},"serviceConnectionUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionUpdated:ServicehookWebhookTfsServiceConnectionUpdated"},"tfvcCheckin":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsTfvcCheckin:ServicehookWebhookTfsTfvcCheckin"},"url":{"type":"string","description":"The URL to send HTTP POST to.\n"},"workItemCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCommented:ServicehookWebhookTfsWorkItemCommented"},"workItemCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCreated:ServicehookWebhookTfsWorkItemCreated"},"workItemDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemDeleted:ServicehookWebhookTfsWorkItemDeleted"},"workItemRestored":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemRestored:ServicehookWebhookTfsWorkItemRestored"},"workItemUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemUpdated:ServicehookWebhookTfsWorkItemUpdated"}},"required":["projectId","url"],"inputProperties":{"acceptUntrustedCerts":{"type":"boolean","description":"Accept untrusted SSL certificates. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"basicAuthPassword":{"type":"string","description":"Basic authentication password.\n","secret":true},"basicAuthUsername":{"type":"string","description":"Basic authentication username.\n"},"buildCompleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsBuildCompleted:ServicehookWebhookTfsBuildCompleted"},"detailedMessagesToSend":{"type":"string","description":"Detailed messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"gitPullRequestCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCommented:ServicehookWebhookTfsGitPullRequestCommented"},"gitPullRequestCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCreated:ServicehookWebhookTfsGitPullRequestCreated"},"gitPullRequestMergeAttempted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestMergeAttempted:ServicehookWebhookTfsGitPullRequestMergeAttempted"},"gitPullRequestUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestUpdated:ServicehookWebhookTfsGitPullRequestUpdated"},"gitPush":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPush:ServicehookWebhookTfsGitPush"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers as key-value pairs to include in the webhook request.\n"},"messagesToSend":{"type":"string","description":"Messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Hook Webhook TFS to be created.\n"},"repositoryCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryCreated:ServicehookWebhookTfsRepositoryCreated"},"repositoryDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryDeleted:ServicehookWebhookTfsRepositoryDeleted"},"repositoryForked":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryForked:ServicehookWebhookTfsRepositoryForked"},"repositoryRenamed":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryRenamed:ServicehookWebhookTfsRepositoryRenamed"},"repositoryStatusChanged":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryStatusChanged:ServicehookWebhookTfsRepositoryStatusChanged"},"resourceDetailsToSend":{"type":"string","description":"Resource details to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minimal`\" pulumi-lang-dotnet=\"`Minimal`\" pulumi-lang-go=\"`minimal`\" pulumi-lang-python=\"`minimal`\" pulumi-lang-yaml=\"`minimal`\" pulumi-lang-java=\"`minimal`\"\u003e`minimal`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"resourceVersion":{"type":"string","description":"The resource version for the webhook subscription. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e.\n"},"serviceConnectionCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionCreated:ServicehookWebhookTfsServiceConnectionCreated"},"serviceConnectionUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionUpdated:ServicehookWebhookTfsServiceConnectionUpdated"},"tfvcCheckin":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsTfvcCheckin:ServicehookWebhookTfsTfvcCheckin"},"url":{"type":"string","description":"The URL to send HTTP POST to.\n"},"workItemCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCommented:ServicehookWebhookTfsWorkItemCommented"},"workItemCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCreated:ServicehookWebhookTfsWorkItemCreated"},"workItemDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemDeleted:ServicehookWebhookTfsWorkItemDeleted"},"workItemRestored":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemRestored:ServicehookWebhookTfsWorkItemRestored"},"workItemUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemUpdated:ServicehookWebhookTfsWorkItemUpdated"}},"requiredInputs":["projectId","url"],"stateInputs":{"description":"Input properties used for looking up and filtering ServicehookWebhookTfs resources.\n","properties":{"acceptUntrustedCerts":{"type":"boolean","description":"Accept untrusted SSL certificates. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"basicAuthPassword":{"type":"string","description":"Basic authentication password.\n","secret":true},"basicAuthUsername":{"type":"string","description":"Basic authentication username.\n"},"buildCompleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsBuildCompleted:ServicehookWebhookTfsBuildCompleted"},"detailedMessagesToSend":{"type":"string","description":"Detailed messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"gitPullRequestCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCommented:ServicehookWebhookTfsGitPullRequestCommented"},"gitPullRequestCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestCreated:ServicehookWebhookTfsGitPullRequestCreated"},"gitPullRequestMergeAttempted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestMergeAttempted:ServicehookWebhookTfsGitPullRequestMergeAttempted"},"gitPullRequestUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPullRequestUpdated:ServicehookWebhookTfsGitPullRequestUpdated"},"gitPush":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsGitPush:ServicehookWebhookTfsGitPush"},"httpHeaders":{"type":"object","additionalProperties":{"type":"string"},"description":"HTTP headers as key-value pairs to include in the webhook request.\n"},"messagesToSend":{"type":"string","description":"Messages to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`text`\" pulumi-lang-dotnet=\"`Text`\" pulumi-lang-go=\"`text`\" pulumi-lang-python=\"`text`\" pulumi-lang-yaml=\"`text`\" pulumi-lang-java=\"`text`\"\u003e`text`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`markdown`\" pulumi-lang-dotnet=\"`Markdown`\" pulumi-lang-go=\"`markdown`\" pulumi-lang-python=\"`markdown`\" pulumi-lang-yaml=\"`markdown`\" pulumi-lang-java=\"`markdown`\"\u003e`markdown`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"projectId":{"type":"string","description":"The ID of the project. Changing this forces a new Service Hook Webhook TFS to be created.\n"},"repositoryCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryCreated:ServicehookWebhookTfsRepositoryCreated"},"repositoryDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryDeleted:ServicehookWebhookTfsRepositoryDeleted"},"repositoryForked":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryForked:ServicehookWebhookTfsRepositoryForked"},"repositoryRenamed":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryRenamed:ServicehookWebhookTfsRepositoryRenamed"},"repositoryStatusChanged":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsRepositoryStatusChanged:ServicehookWebhookTfsRepositoryStatusChanged"},"resourceDetailsToSend":{"type":"string","description":"Resource details to send - \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`minimal`\" pulumi-lang-dotnet=\"`Minimal`\" pulumi-lang-go=\"`minimal`\" pulumi-lang-python=\"`minimal`\" pulumi-lang-yaml=\"`minimal`\" pulumi-lang-java=\"`minimal`\"\u003e`minimal`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e.\n"},"resourceVersion":{"type":"string","description":"The resource version for the webhook subscription. Defaults to \u003cspan pulumi-lang-nodejs=\"`latest`\" pulumi-lang-dotnet=\"`Latest`\" pulumi-lang-go=\"`latest`\" pulumi-lang-python=\"`latest`\" pulumi-lang-yaml=\"`latest`\" pulumi-lang-java=\"`latest`\"\u003e`latest`\u003c/span\u003e.\n"},"serviceConnectionCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionCreated:ServicehookWebhookTfsServiceConnectionCreated"},"serviceConnectionUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsServiceConnectionUpdated:ServicehookWebhookTfsServiceConnectionUpdated"},"tfvcCheckin":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsTfvcCheckin:ServicehookWebhookTfsTfvcCheckin"},"url":{"type":"string","description":"The URL to send HTTP POST to.\n"},"workItemCommented":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCommented:ServicehookWebhookTfsWorkItemCommented"},"workItemCreated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemCreated:ServicehookWebhookTfsWorkItemCreated"},"workItemDeleted":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemDeleted:ServicehookWebhookTfsWorkItemDeleted"},"workItemRestored":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemRestored:ServicehookWebhookTfsWorkItemRestored"},"workItemUpdated":{"$ref":"#/types/azuredevops:index/ServicehookWebhookTfsWorkItemUpdated:ServicehookWebhookTfsWorkItemUpdated"}},"type":"object"}},"azuredevops:index/taggingPermissions:TaggingPermissions":{"description":"Manages permissions for tagging\n\n## Permission levels\n\nPermissions for tagging within Azure DevOps can be applied only on Organizational and Project level.\nThe project level is reflected by specifying the argument \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e, otherwise the permissions are set on the organizational level.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_permissions = new azuredevops.TaggingPermissions(\"example-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        Enumerate: \"allow\",\n        Create: \"allow\",\n        Update: \"allow\",\n        Delete: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_permissions = azuredevops.TaggingPermissions(\"example-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"Enumerate\": \"allow\",\n        \"Create\": \"allow\",\n        \"Update\": \"allow\",\n        \"Delete\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_permissions = new AzureDevOps.TaggingPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Enumerate\", \"allow\" },\n            { \"Create\", \"allow\" },\n            { \"Update\", \"allow\" },\n            { \"Delete\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewTaggingPermissions(ctx, \"example-permissions\", \u0026azuredevops.TaggingPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Enumerate\": pulumi.String(\"allow\"),\n\t\t\t\t\"Create\":    pulumi.String(\"allow\"),\n\t\t\t\t\"Update\":    pulumi.String(\"allow\"),\n\t\t\t\t\"Delete\":    pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.TaggingPermissions;\nimport com.pulumi.azuredevops.TaggingPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_permissions = new TaggingPermissions(\"example-permissions\", TaggingPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Enumerate\", \"allow\"),\n                Map.entry(\"Create\", \"allow\"),\n                Map.entry(\"Update\", \"allow\"),\n                Map.entry(\"Delete\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-permissions:\n    type: azuredevops:TaggingPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        Enumerate: allow\n        Create: allow\n        Update: allow\n        Delete: allow\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name      | Permission Description    |\n|-----------|---------------------------|\n| Enumerate | Enumerate tag definitions |\n| Create    | Create tag definition     |\n| Update    | Update tag definition     |\n| Delete    | Delete tag definition     |\n"},"principal":{"type":"string","description":"The **group or user** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions. If omitted, organization wide permissions for tagging are managed.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name      | Permission Description    |\n|-----------|---------------------------|\n| Enumerate | Enumerate tag definitions |\n| Create    | Create tag definition     |\n| Update    | Update tag definition     |\n| Delete    | Delete tag definition     |\n"},"principal":{"type":"string","description":"The **group or user** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions. If omitted, organization wide permissions for tagging are managed.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal"],"stateInputs":{"description":"Input properties used for looking up and filtering TaggingPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Name      | Permission Description    |\n|-----------|---------------------------|\n| Enumerate | Enumerate tag definitions |\n| Create    | Create tag definition     |\n| Update    | Update tag definition     |\n| Delete    | Delete tag definition     |\n"},"principal":{"type":"string","description":"The **group or user** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions. If omitted, organization wide permissions for tagging are managed.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/team:Team":{"description":"Manages a team within a project in a Azure DevOps organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_project_contributors = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Contributors\",\n});\nconst example_project_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst exampleTeam = new azuredevops.Team(\"example\", {\n    projectId: example.id,\n    name: \"Example Team\",\n    administrators: [example_project_contributors.apply(example_project_contributors =\u003e example_project_contributors.descriptor)],\n    members: [example_project_readers.apply(example_project_readers =\u003e example_project_readers.descriptor)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_project_contributors = azuredevops.get_group_output(project_id=example.id,\n    name=\"Contributors\")\nexample_project_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_team = azuredevops.Team(\"example\",\n    project_id=example.id,\n    name=\"Example Team\",\n    administrators=[example_project_contributors.descriptor],\n    members=[example_project_readers.descriptor])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_project_contributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Contributors\",\n    });\n\n    var example_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var exampleTeam = new AzureDevOps.Team(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Team\",\n        Administrators = new[]\n        {\n            example_project_contributors.Apply(example_project_contributors =\u003e example_project_contributors.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n        },\n        Members = new[]\n        {\n            example_project_readers.Apply(example_project_readers =\u003e example_project_readers.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_project_contributors := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Contributors\"),\n\t\t}, nil)\n\t\texample_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewTeam(ctx, \"example\", \u0026azuredevops.TeamArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Team\"),\n\t\t\tAdministrators: pulumi.StringArray{\n\t\t\t\tpulumi.String(example_project_contributors.ApplyT(func(example_project_contributors azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_project_contributors.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(example_project_readers.ApplyT(func(example_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_project_readers.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Team;\nimport com.pulumi.azuredevops.TeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-project-contributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        final var example-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var exampleTeam = new Team(\"exampleTeam\", TeamArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Team\")\n            .administrators(example_project_contributors.applyValue(_example_project_contributors -\u003e _example_project_contributors.descriptor()))\n            .members(example_project_readers.applyValue(_example_project_readers -\u003e _example_project_readers.descriptor()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleTeam:\n    type: azuredevops:Team\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Team\n      administrators:\n        - ${[\"example-project-contributors\"].descriptor}\n      members:\n        - ${[\"example-project-readers\"].descriptor}\nvariables:\n  example-project-contributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n  example-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Teams - Create](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/teams/create?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **vso.project_manage**:\tGrants the ability to create, read, update, and delete projects and teams.\n\n## Import\n\nAzure DevOps teams can be imported using the complete resource id `\u003cproject_id\u003e/\u003cteam_id\u003e` e.g.\n\n```sh\n$ pulumi import azuredevops:index/team:Team example 00000000-0000-0000-0000-000000000000/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE:** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"description":{"type":"string","description":"The description of the Team.\n"},"descriptor":{"type":"string","description":"The descriptor of the Team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"name":{"type":"string","description":"The name of the Team.\n"},"projectId":{"type":"string","description":"The Project ID.\n"}},"required":["administrators","descriptor","members","name","projectId"],"inputProperties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE:** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"description":{"type":"string","description":"The description of the Team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"name":{"type":"string","description":"The name of the Team.\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering Team resources.\n","properties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE:** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"description":{"type":"string","description":"The description of the Team.\n"},"descriptor":{"type":"string","description":"The descriptor of the Team.\n"},"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"name":{"type":"string","description":"The name of the Team.\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/teamAdministrators:TeamAdministrators":{"description":"Manages administrators of a team within a project in a Azure DevOps organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_project_contributors = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Contributors\",\n});\nconst exampleTeam = new azuredevops.Team(\"example\", {\n    projectId: example.id,\n    name: pulumi.interpolate`${example.name} Team 2`,\n});\nconst example_team_administrators = new azuredevops.TeamAdministrators(\"example-team-administrators\", {\n    projectId: exampleTeam.projectId,\n    teamId: exampleTeam.id,\n    mode: \"overwrite\",\n    administrators: [example_project_contributors.apply(example_project_contributors =\u003e example_project_contributors.descriptor)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_project_contributors = azuredevops.get_group_output(project_id=example.id,\n    name=\"Contributors\")\nexample_team = azuredevops.Team(\"example\",\n    project_id=example.id,\n    name=example.name.apply(lambda name: f\"{name} Team 2\"))\nexample_team_administrators = azuredevops.TeamAdministrators(\"example-team-administrators\",\n    project_id=example_team.project_id,\n    team_id=example_team.id,\n    mode=\"overwrite\",\n    administrators=[example_project_contributors.descriptor])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_project_contributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Contributors\",\n    });\n\n    var exampleTeam = new AzureDevOps.Team(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = example.Name.Apply(name =\u003e $\"{name} Team 2\"),\n    });\n\n    var example_team_administrators = new AzureDevOps.TeamAdministrators(\"example-team-administrators\", new()\n    {\n        ProjectId = exampleTeam.ProjectId,\n        TeamId = exampleTeam.Id,\n        Mode = \"overwrite\",\n        Administrators = new[]\n        {\n            example_project_contributors.Apply(example_project_contributors =\u003e example_project_contributors.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_project_contributors := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Contributors\"),\n\t\t}, nil)\n\t\texampleTeam, err := azuredevops.NewTeam(ctx, \"example\", \u0026azuredevops.TeamArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName: example.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v Team 2\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewTeamAdministrators(ctx, \"example-team-administrators\", \u0026azuredevops.TeamAdministratorsArgs{\n\t\t\tProjectId: exampleTeam.ProjectId,\n\t\t\tTeamId:    exampleTeam.ID(),\n\t\t\tMode:      pulumi.String(\"overwrite\"),\n\t\t\tAdministrators: pulumi.StringArray{\n\t\t\t\tpulumi.String(example_project_contributors.ApplyT(func(example_project_contributors azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_project_contributors.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Team;\nimport com.pulumi.azuredevops.TeamArgs;\nimport com.pulumi.azuredevops.TeamAdministrators;\nimport com.pulumi.azuredevops.TeamAdministratorsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-project-contributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        var exampleTeam = new Team(\"exampleTeam\", TeamArgs.builder()\n            .projectId(example.id())\n            .name(example.name().applyValue(_name -\u003e String.format(\"%s Team 2\", _name)))\n            .build());\n\n        var example_team_administrators = new TeamAdministrators(\"example-team-administrators\", TeamAdministratorsArgs.builder()\n            .projectId(exampleTeam.projectId())\n            .teamId(exampleTeam.id())\n            .mode(\"overwrite\")\n            .administrators(example_project_contributors.applyValue(_example_project_contributors -\u003e _example_project_contributors.descriptor()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleTeam:\n    type: azuredevops:Team\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: ${example.name} Team 2\n  example-team-administrators:\n    type: azuredevops:TeamAdministrators\n    properties:\n      projectId: ${exampleTeam.projectId}\n      teamId: ${exampleTeam.id}\n      mode: overwrite\n      administrators:\n        - ${[\"example-project-contributors\"].descriptor}\nvariables:\n  example-project-contributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Teams - Update](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/teams/update?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **vso.project_write**:\tGrants the ability to read and update projects and teams.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team administrators. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified administrators will be part of the referenced team\n\u003cbr\u003e 2. `mode = overwrite`: the resource will replace all existing administrators with the administrators specified within the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n"},"teamId":{"type":"string","description":"The ID of the Team.\n"}},"required":["administrators","projectId","teamId"],"inputProperties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team administrators. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified administrators will be part of the referenced team\n\u003cbr\u003e 2. `mode = overwrite`: the resource will replace all existing administrators with the administrators specified within the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"requiredInputs":["administrators","projectId","teamId"],"stateInputs":{"description":"Input properties used for looking up and filtering TeamAdministrators resources.\n","properties":{"administrators":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define administrators of the team.\n\n\u003e **NOTE** It's possible to define team administrators both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamAdministrators`\" pulumi-lang-dotnet=\"`azuredevops.TeamAdministrators`\" pulumi-lang-go=\"`TeamAdministrators`\" pulumi-lang-python=\"`TeamAdministrators`\" pulumi-lang-yaml=\"`azuredevops.TeamAdministrators`\" pulumi-lang-java=\"`azuredevops.TeamAdministrators`\"\u003e`azuredevops.TeamAdministrators`\u003c/span\u003e resource. However it's not possible to use\nboth methods to manage team administrators, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team administrators. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified administrators will be part of the referenced team\n\u003cbr\u003e 2. `mode = overwrite`: the resource will replace all existing administrators with the administrators specified within the \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/teamMembers:TeamMembers":{"description":"Manages members of a team within a project in a Azure DevOps organization.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_project_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst exampleTeam = new azuredevops.Team(\"example\", {\n    projectId: example.id,\n    name: pulumi.interpolate`${example.name} Team 2`,\n});\nconst example_team_members = new azuredevops.TeamMembers(\"example-team-members\", {\n    projectId: exampleTeam.projectId,\n    teamId: exampleTeam.id,\n    mode: \"overwrite\",\n    members: [example_project_readers.apply(example_project_readers =\u003e example_project_readers.descriptor)],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_project_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_team = azuredevops.Team(\"example\",\n    project_id=example.id,\n    name=example.name.apply(lambda name: f\"{name} Team 2\"))\nexample_team_members = azuredevops.TeamMembers(\"example-team-members\",\n    project_id=example_team.project_id,\n    team_id=example_team.id,\n    mode=\"overwrite\",\n    members=[example_project_readers.descriptor])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var exampleTeam = new AzureDevOps.Team(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = example.Name.Apply(name =\u003e $\"{name} Team 2\"),\n    });\n\n    var example_team_members = new AzureDevOps.TeamMembers(\"example-team-members\", new()\n    {\n        ProjectId = exampleTeam.ProjectId,\n        TeamId = exampleTeam.Id,\n        Mode = \"overwrite\",\n        Members = new[]\n        {\n            example_project_readers.Apply(example_project_readers =\u003e example_project_readers.Apply(getGroupResult =\u003e getGroupResult.Descriptor)),\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\texampleTeam, err := azuredevops.NewTeam(ctx, \"example\", \u0026azuredevops.TeamArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName: example.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\treturn fmt.Sprintf(\"%v Team 2\", name), nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewTeamMembers(ctx, \"example-team-members\", \u0026azuredevops.TeamMembersArgs{\n\t\t\tProjectId: exampleTeam.ProjectId,\n\t\t\tTeamId:    exampleTeam.ID(),\n\t\t\tMode:      pulumi.String(\"overwrite\"),\n\t\t\tMembers: pulumi.StringArray{\n\t\t\t\tpulumi.String(example_project_readers.ApplyT(func(example_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\t\treturn \u0026example_project_readers.Descriptor, nil\n\t\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.Team;\nimport com.pulumi.azuredevops.TeamArgs;\nimport com.pulumi.azuredevops.TeamMembers;\nimport com.pulumi.azuredevops.TeamMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var exampleTeam = new Team(\"exampleTeam\", TeamArgs.builder()\n            .projectId(example.id())\n            .name(example.name().applyValue(_name -\u003e String.format(\"%s Team 2\", _name)))\n            .build());\n\n        var example_team_members = new TeamMembers(\"example-team-members\", TeamMembersArgs.builder()\n            .projectId(exampleTeam.projectId())\n            .teamId(exampleTeam.id())\n            .mode(\"overwrite\")\n            .members(example_project_readers.applyValue(_example_project_readers -\u003e _example_project_readers.descriptor()))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleTeam:\n    type: azuredevops:Team\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: ${example.name} Team 2\n  example-team-members:\n    type: azuredevops:TeamMembers\n    properties:\n      projectId: ${exampleTeam.projectId}\n      teamId: ${exampleTeam.id}\n      mode: overwrite\n      members:\n        - ${[\"example-project-readers\"].descriptor}\nvariables:\n  example-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Teams - Update](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/teams/update?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **vso.project_write**:\tGrants the ability to read and update projects and teams.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However, it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team members. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced team\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n"},"teamId":{"type":"string","description":"The ID of the Team.\n"}},"required":["members","projectId","teamId"],"inputProperties":{"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However, it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team members. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced team\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"requiredInputs":["members","projectId","teamId"],"stateInputs":{"description":"Input properties used for looking up and filtering TeamMembers resources.\n","properties":{"members":{"type":"array","items":{"type":"string"},"description":"List of subject descriptors to define members of the team.\n\n\u003e **NOTE:** It's possible to define team members both within the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.Team`\" pulumi-lang-dotnet=\"`azuredevops.Team`\" pulumi-lang-go=\"`Team`\" pulumi-lang-python=\"`Team`\" pulumi-lang-yaml=\"`azuredevops.Team`\" pulumi-lang-java=\"`azuredevops.Team`\"\u003e`azuredevops.Team`\u003c/span\u003e resource via the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block and by using the\n\u003cspan pulumi-lang-nodejs=\"`azuredevops.TeamMembers`\" pulumi-lang-dotnet=\"`azuredevops.TeamMembers`\" pulumi-lang-go=\"`TeamMembers`\" pulumi-lang-python=\"`TeamMembers`\" pulumi-lang-yaml=\"`azuredevops.TeamMembers`\" pulumi-lang-java=\"`azuredevops.TeamMembers`\"\u003e`azuredevops.TeamMembers`\u003c/span\u003e resource. However, it's not possible to use\nboth methods to manage team members, since there'll be conflicts.\n"},"mode":{"type":"string","description":"The mode how the resource manages team members. Possible values: \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`overwrite`\" pulumi-lang-dotnet=\"`Overwrite`\" pulumi-lang-go=\"`overwrite`\" pulumi-lang-python=\"`overwrite`\" pulumi-lang-yaml=\"`overwrite`\" pulumi-lang-java=\"`overwrite`\"\u003e`overwrite`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`add`\" pulumi-lang-dotnet=\"`Add`\" pulumi-lang-go=\"`add`\" pulumi-lang-python=\"`add`\" pulumi-lang-yaml=\"`add`\" pulumi-lang-java=\"`add`\"\u003e`add`\u003c/span\u003e.\n\n\u003e **NOTE:** 1. `mode = add`: the resource will ensure that all specified members will be part of the referenced team\n\u003cbr\u003e2. `mode = overwrite`: the resource will replace all existing members with the members specified within the \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e block\n"},"projectId":{"type":"string","description":"The Project ID.\n","willReplaceOnChanges":true},"teamId":{"type":"string","description":"The ID of the Team.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/user:User":{"description":"Manages a user entitlement within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.User(\"example\", {principalName: \"foo@contoso.com\"});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.User(\"example\", principal_name=\"foo@contoso.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.User(\"example\", new()\n    {\n        PrincipalName = \"foo@contoso.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewUser(ctx, \"example\", \u0026azuredevops.UserArgs{\n\t\t\tPrincipalName: pulumi.String(\"foo@contoso.com\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.User;\nimport com.pulumi.azuredevops.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new User(\"example\", UserArgs.builder()\n            .principalName(\"foo@contoso.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:User\n    properties:\n      principalName: foo@contoso.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - User Entitlements - Add](https://docs.microsoft.com/en-us/rest/api/azure/devops/memberentitlementmanagement/user-entitlements/add?view=azure-devops-rest-7.0)\n- [Programmatic mapping of access levels](https://docs.microsoft.com/en-us/azure/devops/organizations/security/access-levels?view=azure-devops#programmatic-mapping-of-access-levels)\n\n## PAT Permissions Required\n\n- **Member Entitlement Management**: Read \u0026 Write\n\n## Import\n\nThis resource allows importing by the UUID of a user entitlement or by using the principal name of a user who owns the entitlement.\n\n```sh\n$ pulumi import azuredevops:index/user:User example \"00000000-0000-0000-0000-000000000000\"\n```\n\nor \n\n```sh\n$ pulumi import azuredevops:index/user:User example \"example@example.com\"\n```\n\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Valid values: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the user graph subject.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Valid values: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n\n\u003e **NOTE:** A user can only be referenced by it's \u003cspan pulumi-lang-nodejs=\"`principalName`\" pulumi-lang-dotnet=\"`PrincipalName`\" pulumi-lang-go=\"`principalName`\" pulumi-lang-python=\"`principal_name`\" pulumi-lang-yaml=\"`principalName`\" pulumi-lang-java=\"`principalName`\"\u003e`principal_name`\u003c/span\u003e or by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n"},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n"},"principalName":{"type":"string","description":"The principal name is the PrincipalName of a graph member from the source provider. Usually, e-mail address.\n"}},"required":["descriptor","origin","originId","principalName"],"inputProperties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Valid values: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Valid values: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n\n\u003e **NOTE:** A user can only be referenced by it's \u003cspan pulumi-lang-nodejs=\"`principalName`\" pulumi-lang-dotnet=\"`PrincipalName`\" pulumi-lang-go=\"`principalName`\" pulumi-lang-python=\"`principal_name`\" pulumi-lang-yaml=\"`principalName`\" pulumi-lang-java=\"`principalName`\"\u003e`principal_name`\u003c/span\u003e or by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"The principal name is the PrincipalName of a graph member from the source provider. Usually, e-mail address.\n","willReplaceOnChanges":true}},"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"accountLicenseType":{"type":"string","description":"Type of Account License. Valid values: \u003cspan pulumi-lang-nodejs=\"`advanced`\" pulumi-lang-dotnet=\"`Advanced`\" pulumi-lang-go=\"`advanced`\" pulumi-lang-python=\"`advanced`\" pulumi-lang-yaml=\"`advanced`\" pulumi-lang-java=\"`advanced`\"\u003e`advanced`\u003c/span\u003e, `earlyAdopter`, \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`professional`\" pulumi-lang-dotnet=\"`Professional`\" pulumi-lang-go=\"`professional`\" pulumi-lang-python=\"`professional`\" pulumi-lang-yaml=\"`professional`\" pulumi-lang-java=\"`professional`\"\u003e`professional`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`stakeholder`\" pulumi-lang-dotnet=\"`Stakeholder`\" pulumi-lang-go=\"`stakeholder`\" pulumi-lang-python=\"`stakeholder`\" pulumi-lang-yaml=\"`stakeholder`\" pulumi-lang-java=\"`stakeholder`\"\u003e`stakeholder`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e. In addition the value \u003cspan pulumi-lang-nodejs=\"`basic`\" pulumi-lang-dotnet=\"`Basic`\" pulumi-lang-go=\"`basic`\" pulumi-lang-python=\"`basic`\" pulumi-lang-yaml=\"`basic`\" pulumi-lang-java=\"`basic`\"\u003e`basic`\u003c/span\u003e is allowed which is an alias for \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e and reflects the name of the \u003cspan pulumi-lang-nodejs=\"`express`\" pulumi-lang-dotnet=\"`Express`\" pulumi-lang-go=\"`express`\" pulumi-lang-python=\"`express`\" pulumi-lang-yaml=\"`express`\" pulumi-lang-java=\"`express`\"\u003e`express`\u003c/span\u003e license used in the Azure DevOps web interface.\n"},"descriptor":{"type":"string","description":"The descriptor is the primary way to reference the graph subject while the system is running. This field will uniquely identify the user graph subject.\n"},"licensingSource":{"type":"string","description":"The source of the licensing (e.g. Account. MSDN etc.) Valid values: \u003cspan pulumi-lang-nodejs=\"`account`\" pulumi-lang-dotnet=\"`Account`\" pulumi-lang-go=\"`account`\" pulumi-lang-python=\"`account`\" pulumi-lang-yaml=\"`account`\" pulumi-lang-java=\"`account`\"\u003e`account`\u003c/span\u003e (Default), \u003cspan pulumi-lang-nodejs=\"`auto`\" pulumi-lang-dotnet=\"`Auto`\" pulumi-lang-go=\"`auto`\" pulumi-lang-python=\"`auto`\" pulumi-lang-yaml=\"`auto`\" pulumi-lang-java=\"`auto`\"\u003e`auto`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`msdn`\" pulumi-lang-dotnet=\"`Msdn`\" pulumi-lang-go=\"`msdn`\" pulumi-lang-python=\"`msdn`\" pulumi-lang-yaml=\"`msdn`\" pulumi-lang-java=\"`msdn`\"\u003e`msdn`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`profile`\" pulumi-lang-dotnet=\"`Profile`\" pulumi-lang-go=\"`profile`\" pulumi-lang-python=\"`profile`\" pulumi-lang-yaml=\"`profile`\" pulumi-lang-java=\"`profile`\"\u003e`profile`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`trial`\" pulumi-lang-dotnet=\"`Trial`\" pulumi-lang-go=\"`trial`\" pulumi-lang-python=\"`trial`\" pulumi-lang-yaml=\"`trial`\" pulumi-lang-java=\"`trial`\"\u003e`trial`\u003c/span\u003e\n\n\u003e **NOTE:** A user can only be referenced by it's \u003cspan pulumi-lang-nodejs=\"`principalName`\" pulumi-lang-dotnet=\"`PrincipalName`\" pulumi-lang-go=\"`principalName`\" pulumi-lang-python=\"`principal_name`\" pulumi-lang-yaml=\"`principalName`\" pulumi-lang-java=\"`principalName`\"\u003e`principal_name`\u003c/span\u003e or by the combination of \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`origin`\" pulumi-lang-dotnet=\"`Origin`\" pulumi-lang-go=\"`origin`\" pulumi-lang-python=\"`origin`\" pulumi-lang-yaml=\"`origin`\" pulumi-lang-java=\"`origin`\"\u003e`origin`\u003c/span\u003e.\n"},"origin":{"type":"string","description":"The type of source provider for the origin identifier.\n","willReplaceOnChanges":true},"originId":{"type":"string","description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. e.g. Used for member of other tenant on Azure Active Directory.\n","willReplaceOnChanges":true},"principalName":{"type":"string","description":"The principal name is the PrincipalName of a graph member from the source provider. Usually, e-mail address.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/variableGroup:VariableGroup":{"description":"Manages variable groups within Azure DevOps.\n\n\u003e **Note**\nIf Variable Group is linked to a Key Vault, only top 500 secrets will be read by default. Key Vault does not support filter the secret by name, \nwe can only read the secrets and do filter in Terraform.\n\n## Example Usage\n\n### Basic usage\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    description: \"Example Variable Group Description\",\n    allowAccess: true,\n    variables: [\n        {\n            name: \"key1\",\n            value: \"val1\",\n        },\n        {\n            name: \"key2\",\n            secretValue: \"val2\",\n            isSecret: true,\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    description=\"Example Variable Group Description\",\n    allow_access=True,\n    variables=[\n        {\n            \"name\": \"key1\",\n            \"value\": \"val1\",\n        },\n        {\n            \"name\": \"key2\",\n            \"secret_value\": \"val2\",\n            \"is_secret\": True,\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        Description = \"Example Variable Group Description\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n                Value = \"val1\",\n            },\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key2\",\n                SecretValue = \"val2\",\n                IsSecret = true,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tDescription: pulumi.String(\"Example Variable Group Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"val1\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:        pulumi.String(\"key2\"),\n\t\t\t\t\tSecretValue: pulumi.String(\"val2\"),\n\t\t\t\t\tIsSecret:    pulumi.Bool(true),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .description(\"Example Variable Group Description\")\n            .allowAccess(true)\n            .variables(            \n                VariableGroupVariableArgs.builder()\n                    .name(\"key1\")\n                    .value(\"val1\")\n                    .build(),\n                VariableGroupVariableArgs.builder()\n                    .name(\"key2\")\n                    .secretValue(\"val2\")\n                    .isSecret(true)\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      description: Example Variable Group Description\n      allowAccess: true\n      variables:\n        - name: key1\n          value: val1\n        - name: key2\n          secretValue: val2\n          isSecret: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Link to AzureRM Key Vault\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleServiceEndpointAzureRM = new azuredevops.ServiceEndpointAzureRM(\"example\", {\n    projectId: example.id,\n    serviceEndpointName: \"Example AzureRM\",\n    description: \"Managed by Pulumi\",\n    credentials: {\n        serviceprincipalid: \"00000000-0000-0000-0000-000000000000\",\n        serviceprincipalkey: \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurermSpnTenantid: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionId: \"00000000-0000-0000-0000-000000000000\",\n    azurermSubscriptionName: \"Example Subscription Name\",\n});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    description: \"Example Variable Group Description\",\n    allowAccess: true,\n    keyVault: {\n        name: \"example-kv\",\n        serviceEndpointId: exampleServiceEndpointAzureRM.id,\n    },\n    variables: [\n        {\n            name: \"key1\",\n        },\n        {\n            name: \"key2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_service_endpoint_azure_rm = azuredevops.ServiceEndpointAzureRM(\"example\",\n    project_id=example.id,\n    service_endpoint_name=\"Example AzureRM\",\n    description=\"Managed by Pulumi\",\n    credentials={\n        \"serviceprincipalid\": \"00000000-0000-0000-0000-000000000000\",\n        \"serviceprincipalkey\": \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    },\n    azurerm_spn_tenantid=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_id=\"00000000-0000-0000-0000-000000000000\",\n    azurerm_subscription_name=\"Example Subscription Name\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    description=\"Example Variable Group Description\",\n    allow_access=True,\n    key_vault={\n        \"name\": \"example-kv\",\n        \"service_endpoint_id\": example_service_endpoint_azure_rm.id,\n    },\n    variables=[\n        {\n            \"name\": \"key1\",\n        },\n        {\n            \"name\": \"key2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleServiceEndpointAzureRM = new AzureDevOps.ServiceEndpointAzureRM(\"example\", new()\n    {\n        ProjectId = example.Id,\n        ServiceEndpointName = \"Example AzureRM\",\n        Description = \"Managed by Pulumi\",\n        Credentials = new AzureDevOps.Inputs.ServiceEndpointAzureRMCredentialsArgs\n        {\n            Serviceprincipalid = \"00000000-0000-0000-0000-000000000000\",\n            Serviceprincipalkey = \"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n        },\n        AzurermSpnTenantid = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionId = \"00000000-0000-0000-0000-000000000000\",\n        AzurermSubscriptionName = \"Example Subscription Name\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        Description = \"Example Variable Group Description\",\n        AllowAccess = true,\n        KeyVault = new AzureDevOps.Inputs.VariableGroupKeyVaultArgs\n        {\n            Name = \"example-kv\",\n            ServiceEndpointId = exampleServiceEndpointAzureRM.Id,\n        },\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n            },\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key2\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleServiceEndpointAzureRM, err := azuredevops.NewServiceEndpointAzureRM(ctx, \"example\", \u0026azuredevops.ServiceEndpointAzureRMArgs{\n\t\t\tProjectId:           example.ID(),\n\t\t\tServiceEndpointName: pulumi.String(\"Example AzureRM\"),\n\t\t\tDescription:         pulumi.String(\"Managed by Pulumi\"),\n\t\t\tCredentials: \u0026azuredevops.ServiceEndpointAzureRMCredentialsArgs{\n\t\t\t\tServiceprincipalid:  pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\t\tServiceprincipalkey: pulumi.String(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"),\n\t\t\t},\n\t\t\tAzurermSpnTenantid:      pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionId:   pulumi.String(\"00000000-0000-0000-0000-000000000000\"),\n\t\t\tAzurermSubscriptionName: pulumi.String(\"Example Subscription Name\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tDescription: pulumi.String(\"Example Variable Group Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tKeyVault: \u0026azuredevops.VariableGroupKeyVaultArgs{\n\t\t\t\tName:              pulumi.String(\"example-kv\"),\n\t\t\t\tServiceEndpointId: exampleServiceEndpointAzureRM.ID(),\n\t\t\t},\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName: pulumi.String(\"key1\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName: pulumi.String(\"key2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRM;\nimport com.pulumi.azuredevops.ServiceEndpointAzureRMArgs;\nimport com.pulumi.azuredevops.inputs.ServiceEndpointAzureRMCredentialsArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupKeyVaultArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleServiceEndpointAzureRM = new ServiceEndpointAzureRM(\"exampleServiceEndpointAzureRM\", ServiceEndpointAzureRMArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example AzureRM\")\n            .description(\"Managed by Pulumi\")\n            .credentials(ServiceEndpointAzureRMCredentialsArgs.builder()\n                .serviceprincipalid(\"00000000-0000-0000-0000-000000000000\")\n                .serviceprincipalkey(\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\")\n                .build())\n            .azurermSpnTenantid(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionId(\"00000000-0000-0000-0000-000000000000\")\n            .azurermSubscriptionName(\"Example Subscription Name\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .description(\"Example Variable Group Description\")\n            .allowAccess(true)\n            .keyVault(VariableGroupKeyVaultArgs.builder()\n                .name(\"example-kv\")\n                .serviceEndpointId(exampleServiceEndpointAzureRM.id())\n                .build())\n            .variables(            \n                VariableGroupVariableArgs.builder()\n                    .name(\"key1\")\n                    .build(),\n                VariableGroupVariableArgs.builder()\n                    .name(\"key2\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleServiceEndpointAzureRM:\n    type: azuredevops:ServiceEndpointAzureRM\n    name: example\n    properties:\n      projectId: ${example.id}\n      serviceEndpointName: Example AzureRM\n      description: Managed by Pulumi\n      credentials:\n        serviceprincipalid: 00000000-0000-0000-0000-000000000000\n        serviceprincipalkey: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n      azurermSpnTenantid: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionId: 00000000-0000-0000-0000-000000000000\n      azurermSubscriptionName: Example Subscription Name\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      description: Example Variable Group Description\n      allowAccess: true\n      keyVault:\n        name: example-kv\n        serviceEndpointId: ${exampleServiceEndpointAzureRM.id}\n      variables:\n        - name: key1\n        - name: key2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Variable Groups](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/variablegroups?view=azure-devops-rest-7.0)\n- [Azure DevOps Service REST API 7.0 - Authorized Resources](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/authorizedresources?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Variable Groups**: Read, Create, \u0026 Manage\n- **Build**: Read \u0026 execute\n- **Project and Team**: Read\n- **Token Administration**: Read \u0026 manage\n- **Tokens**: Read \u0026 manage\n- **Work Items**: Read\n\n## Import\n\n**Variable groups containing secret values cannot be imported.**\n\nAzure DevOps Variable groups can be imported using the project name/variable group ID or by the project Guid/variable group ID, e.g.\n\n```sh\nterraform import azuredevops_variable_group.example \"Example Project/10\"\n```\n\nor\n\n```sh\n$ pulumi import azuredevops:index/variableGroup:VariableGroup example 00000000-0000-0000-0000-000000000000/0\n```\n\n_Note that for secret variables, the import command retrieve blank value in the tfstate._\n\n","properties":{"allowAccess":{"type":"boolean","description":"Boolean that indicate if this variable group is shared by all pipelines of this project.\n"},"description":{"type":"string","description":"The description of the Variable Group.\n"},"keyVault":{"$ref":"#/types/azuredevops:index/VariableGroupKeyVault:VariableGroupKeyVault","description":"A list of \u003cspan pulumi-lang-nodejs=\"`keyVault`\" pulumi-lang-dotnet=\"`KeyVault`\" pulumi-lang-go=\"`keyVault`\" pulumi-lang-python=\"`key_vault`\" pulumi-lang-yaml=\"`keyVault`\" pulumi-lang-java=\"`keyVault`\"\u003e`key_vault`\u003c/span\u003e blocks as documented below.\n"},"name":{"type":"string","description":"The name of the Variable Group.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/VariableGroupVariable:VariableGroupVariable"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks as documented below.\n"}},"required":["name","projectId","variables"],"inputProperties":{"allowAccess":{"type":"boolean","description":"Boolean that indicate if this variable group is shared by all pipelines of this project.\n"},"description":{"type":"string","description":"The description of the Variable Group.\n"},"keyVault":{"$ref":"#/types/azuredevops:index/VariableGroupKeyVault:VariableGroupKeyVault","description":"A list of \u003cspan pulumi-lang-nodejs=\"`keyVault`\" pulumi-lang-dotnet=\"`KeyVault`\" pulumi-lang-go=\"`keyVault`\" pulumi-lang-python=\"`key_vault`\" pulumi-lang-yaml=\"`keyVault`\" pulumi-lang-java=\"`keyVault`\"\u003e`key_vault`\u003c/span\u003e blocks as documented below.\n"},"name":{"type":"string","description":"The name of the Variable Group.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/VariableGroupVariable:VariableGroupVariable"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks as documented below.\n"}},"requiredInputs":["projectId","variables"],"stateInputs":{"description":"Input properties used for looking up and filtering VariableGroup resources.\n","properties":{"allowAccess":{"type":"boolean","description":"Boolean that indicate if this variable group is shared by all pipelines of this project.\n"},"description":{"type":"string","description":"The description of the Variable Group.\n"},"keyVault":{"$ref":"#/types/azuredevops:index/VariableGroupKeyVault:VariableGroupKeyVault","description":"A list of \u003cspan pulumi-lang-nodejs=\"`keyVault`\" pulumi-lang-dotnet=\"`KeyVault`\" pulumi-lang-go=\"`keyVault`\" pulumi-lang-python=\"`key_vault`\" pulumi-lang-yaml=\"`keyVault`\" pulumi-lang-java=\"`keyVault`\"\u003e`key_vault`\u003c/span\u003e blocks as documented below.\n"},"name":{"type":"string","description":"The name of the Variable Group.\n"},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"variables":{"type":"array","items":{"$ref":"#/types/azuredevops:index/VariableGroupVariable:VariableGroupVariable"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks as documented below.\n"}},"type":"object"}},"azuredevops:index/variableGroupPermissions:VariableGroupPermissions":{"description":"Manages permissions for a Variable Group\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst project = new azuredevops.Project(\"project\", {\n    name: \"Testing\",\n    description: \"Testing-description\",\n    visibility: \"private\",\n    versionControl: \"Git\",\n    workItemTemplate: \"Agile\",\n});\nconst example = new azuredevops.VariableGroup(\"example\", {\n    projectId: project.id,\n    name: \"test\",\n    description: \"Test Description\",\n    allowAccess: true,\n    variables: [{\n        name: \"key1\",\n        value: \"val1\",\n    }],\n});\nconst tf_project_readers = azuredevops.getGroupOutput({\n    projectId: project.id,\n    name: \"Readers\",\n});\nconst permissions = new azuredevops.VariableGroupPermissions(\"permissions\", {\n    projectId: project.id,\n    variableGroupId: example.id,\n    principal: tf_project_readers.apply(tf_project_readers =\u003e tf_project_readers.id),\n    permissions: {\n        View: \"allow\",\n        Administer: \"allow\",\n        Use: \"allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nproject = azuredevops.Project(\"project\",\n    name=\"Testing\",\n    description=\"Testing-description\",\n    visibility=\"private\",\n    version_control=\"Git\",\n    work_item_template=\"Agile\")\nexample = azuredevops.VariableGroup(\"example\",\n    project_id=project.id,\n    name=\"test\",\n    description=\"Test Description\",\n    allow_access=True,\n    variables=[{\n        \"name\": \"key1\",\n        \"value\": \"val1\",\n    }])\ntf_project_readers = azuredevops.get_group_output(project_id=project.id,\n    name=\"Readers\")\npermissions = azuredevops.VariableGroupPermissions(\"permissions\",\n    project_id=project.id,\n    variable_group_id=example.id,\n    principal=tf_project_readers.id,\n    permissions={\n        \"View\": \"allow\",\n        \"Administer\": \"allow\",\n        \"Use\": \"allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = new AzureDevOps.Project(\"project\", new()\n    {\n        Name = \"Testing\",\n        Description = \"Testing-description\",\n        Visibility = \"private\",\n        VersionControl = \"Git\",\n        WorkItemTemplate = \"Agile\",\n    });\n\n    var example = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = project.Id,\n        Name = \"test\",\n        Description = \"Test Description\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n                Value = \"val1\",\n            },\n        },\n    });\n\n    var tf_project_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = project.Id,\n        Name = \"Readers\",\n    });\n\n    var permissions = new AzureDevOps.VariableGroupPermissions(\"permissions\", new()\n    {\n        ProjectId = project.Id,\n        VariableGroupId = example.Id,\n        Principal = tf_project_readers.Apply(tf_project_readers =\u003e tf_project_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"View\", \"allow\" },\n            { \"Administer\", \"allow\" },\n            { \"Use\", \"allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := azuredevops.NewProject(ctx, \"project\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Testing\"),\n\t\t\tDescription:      pulumi.String(\"Testing-description\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   project.ID(),\n\t\t\tName:        pulumi.String(\"test\"),\n\t\t\tDescription: pulumi.String(\"Test Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"val1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttf_project_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: project.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewVariableGroupPermissions(ctx, \"permissions\", \u0026azuredevops.VariableGroupPermissionsArgs{\n\t\t\tProjectId:       project.ID(),\n\t\t\tVariableGroupId: example.ID(),\n\t\t\tPrincipal: pulumi.String(tf_project_readers.ApplyT(func(tf_project_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026tf_project_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"View\":       pulumi.String(\"allow\"),\n\t\t\t\t\"Administer\": pulumi.String(\"allow\"),\n\t\t\t\t\"Use\":        pulumi.String(\"allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.inputs.VariableGroupVariableArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.VariableGroupPermissions;\nimport com.pulumi.azuredevops.VariableGroupPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var project = new Project(\"project\", ProjectArgs.builder()\n            .name(\"Testing\")\n            .description(\"Testing-description\")\n            .visibility(\"private\")\n            .versionControl(\"Git\")\n            .workItemTemplate(\"Agile\")\n            .build());\n\n        var example = new VariableGroup(\"example\", VariableGroupArgs.builder()\n            .projectId(project.id())\n            .name(\"test\")\n            .description(\"Test Description\")\n            .allowAccess(true)\n            .variables(VariableGroupVariableArgs.builder()\n                .name(\"key1\")\n                .value(\"val1\")\n                .build())\n            .build());\n\n        final var tf-project-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(project.id())\n            .name(\"Readers\")\n            .build());\n\n        var permissions = new VariableGroupPermissions(\"permissions\", VariableGroupPermissionsArgs.builder()\n            .projectId(project.id())\n            .variableGroupId(example.id())\n            .principal(tf_project_readers.applyValue(_tf_project_readers -\u003e _tf_project_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"View\", \"allow\"),\n                Map.entry(\"Administer\", \"allow\"),\n                Map.entry(\"Use\", \"allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: azuredevops:Project\n    properties:\n      name: Testing\n      description: Testing-description\n      visibility: private\n      versionControl: Git\n      workItemTemplate: Agile\n  example:\n    type: azuredevops:VariableGroup\n    properties:\n      projectId: ${project.id}\n      name: test\n      description: Test Description\n      allowAccess: true\n      variables:\n        - name: key1\n          value: val1\n  permissions:\n    type: azuredevops:VariableGroupPermissions\n    properties:\n      projectId: ${project.id}\n      variableGroupId: ${example.id}\n      principal: ${[\"tf-project-readers\"].id}\n      permissions:\n        View: allow\n        Administer: allow\n        Use: allow\nvariables:\n  tf-project-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${project.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Roles\n\nThe Azure DevOps UI uses roles to assign permissions for variable groups.\n\n| Role          | Allow Permissions     |\n|---------------|-----------------------|\n| Reader        | View                  |\n| User          | View, Use             |\n| Administrator | View, Use, Administer |\n\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.1 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.1)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"variableGroupId":{"type":"string","description":"The id of the variable group to assign the permissions.\n"}},"required":["permissions","principal","projectId","variableGroupId"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"variableGroupId":{"type":"string","description":"The id of the variable group to assign the permissions.\n","willReplaceOnChanges":true}},"requiredInputs":["permissions","principal","projectId","variableGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering VariableGroupPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available.\n\n| Permission  | Description               |\n|-------------|---------------------------|\n| View        | View library item         |\n| Administer  | Administer library item   |\n| Create      | Create library item       |\n| ViewSecrets | View library item secrets |\n| Use         | Use library item          |\n| Owner       | Owner library item        |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"variableGroupId":{"type":"string","description":"The id of the variable group to assign the permissions.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/variableGroupVariable:VariableGroupVariable":{"description":"Manages variable group variables within a variable group.\n\n\u003e **Note** Variable group variables can also be managed inlined in the \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks in \u003cspan pulumi-lang-nodejs=\"`azuredevops.VariableGroup`\" pulumi-lang-dotnet=\"`azuredevops.VariableGroup`\" pulumi-lang-go=\"`VariableGroup`\" pulumi-lang-python=\"`VariableGroup`\" pulumi-lang-yaml=\"`azuredevops.VariableGroup`\" pulumi-lang-java=\"`azuredevops.VariableGroup`\"\u003e`azuredevops.VariableGroup`\u003c/span\u003e.\n\n## Example Usage\n\n### Basic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleVariableGroup = new azuredevops.VariableGroup(\"example\", {\n    projectId: example.id,\n    name: \"Example Variable Group\",\n    description: \"Example Variable Group Description\",\n    allowAccess: true,\n    variables: [{\n        name: \"key1\",\n        value: \"val1\",\n    }],\n});\nconst exampleVariableGroupVariable = new azuredevops.VariableGroupVariable(\"example\", {\n    projectId: example.id,\n    variableGroupId: exampleVariableGroup.id,\n    name: \"key2\",\n    value: \"val2\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_variable_group = azuredevops.VariableGroup(\"example\",\n    project_id=example.id,\n    name=\"Example Variable Group\",\n    description=\"Example Variable Group Description\",\n    allow_access=True,\n    variables=[{\n        \"name\": \"key1\",\n        \"value\": \"val1\",\n    }])\nexample_variable_group_variable = azuredevops.VariableGroupVariable(\"example\",\n    project_id=example.id,\n    variable_group_id=example_variable_group.id,\n    name=\"key2\",\n    value=\"val2\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleVariableGroup = new AzureDevOps.VariableGroup(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Variable Group\",\n        Description = \"Example Variable Group Description\",\n        AllowAccess = true,\n        Variables = new[]\n        {\n            new AzureDevOps.Inputs.VariableGroupVariableArgs\n            {\n                Name = \"key1\",\n                Value = \"val1\",\n            },\n        },\n    });\n\n    var exampleVariableGroupVariable = new AzureDevOps.VariableGroupVariable(\"example\", new()\n    {\n        ProjectId = example.Id,\n        VariableGroupId = exampleVariableGroup.Id,\n        Name = \"key2\",\n        Value = \"val2\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVariableGroup, err := azuredevops.NewVariableGroup(ctx, \"example\", \u0026azuredevops.VariableGroupArgs{\n\t\t\tProjectId:   example.ID(),\n\t\t\tName:        pulumi.String(\"Example Variable Group\"),\n\t\t\tDescription: pulumi.String(\"Example Variable Group Description\"),\n\t\t\tAllowAccess: pulumi.Bool(true),\n\t\t\tVariables: azuredevops.VariableGroupVariableTypeArray{\n\t\t\t\t\u0026azuredevops.VariableGroupVariableTypeArgs{\n\t\t\t\t\tName:  pulumi.String(\"key1\"),\n\t\t\t\t\tValue: pulumi.String(\"val1\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewVariableGroupVariable(ctx, \"example\", \u0026azuredevops.VariableGroupVariableArgs{\n\t\t\tProjectId:       example.ID(),\n\t\t\tVariableGroupId: exampleVariableGroup.ID(),\n\t\t\tName:            pulumi.String(\"key2\"),\n\t\t\tValue:           pulumi.String(\"val2\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.VariableGroup;\nimport com.pulumi.azuredevops.VariableGroupArgs;\nimport com.pulumi.azuredevops.VariableGroupVariable;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleVariableGroup = new VariableGroup(\"exampleVariableGroup\", VariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .description(\"Example Variable Group Description\")\n            .allowAccess(true)\n            .variables(VariableGroupVariableArgs.builder()\n                .name(\"key1\")\n                .value(\"val1\")\n                .build())\n            .build());\n\n        var exampleVariableGroupVariable = new VariableGroupVariable(\"exampleVariableGroupVariable\", VariableGroupVariableArgs.builder()\n            .projectId(example.id())\n            .variableGroupId(exampleVariableGroup.id())\n            .name(\"key2\")\n            .value(\"val2\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleVariableGroup:\n    type: azuredevops:VariableGroup\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Variable Group\n      description: Example Variable Group Description\n      allowAccess: true\n      variables:\n        - name: key1\n          value: val1\n  exampleVariableGroupVariable:\n    type: azuredevops:VariableGroupVariable\n    name: example\n    properties:\n      projectId: ${example.id}\n      variableGroupId: ${exampleVariableGroup.id}\n      name: key2\n      value: val2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Variable Groups](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/variablegroups?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Variable Groups**: Read, Create, \u0026 Manage\n\n## Import\n\n**Secret variable cannot be imported.**\n\nAzure DevOps Variable group variables can be imported using the `project ID/variable group ID/variable name`, e.g.\n\n\n```sh\n$ pulumi import azuredevops:index/variableGroupVariable:VariableGroupVariable example 00000000-0000-0000-0000-000000000000/0/key1\n```\n\n","properties":{"name":{"type":"string","description":"The name of the variable. Must be unique within the Variable Group.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"},"secretValue":{"type":"string","description":"The value of the secret variable.\n\n\u003e **NOTE** Exactly one of \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretValue`\" pulumi-lang-dotnet=\"`SecretValue`\" pulumi-lang-go=\"`secretValue`\" pulumi-lang-python=\"`secret_value`\" pulumi-lang-yaml=\"`secretValue`\" pulumi-lang-java=\"`secretValue`\"\u003e`secret_value`\u003c/span\u003e must be specified.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"},"variableGroupId":{"type":"string","description":"The ID of the variable group.\n"}},"required":["name","projectId","variableGroupId"],"inputProperties":{"name":{"type":"string","description":"The name of the variable. Must be unique within the Variable Group.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"secretValue":{"type":"string","description":"The value of the secret variable.\n\n\u003e **NOTE** Exactly one of \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretValue`\" pulumi-lang-dotnet=\"`SecretValue`\" pulumi-lang-go=\"`secretValue`\" pulumi-lang-python=\"`secret_value`\" pulumi-lang-yaml=\"`secretValue`\" pulumi-lang-java=\"`secretValue`\"\u003e`secret_value`\u003c/span\u003e must be specified.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"},"variableGroupId":{"type":"string","description":"The ID of the variable group.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","variableGroupId"],"stateInputs":{"description":"Input properties used for looking up and filtering VariableGroupVariable resources.\n","properties":{"name":{"type":"string","description":"The name of the variable. Must be unique within the Variable Group.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project.\n","willReplaceOnChanges":true},"secretValue":{"type":"string","description":"The value of the secret variable.\n\n\u003e **NOTE** Exactly one of \u003cspan pulumi-lang-nodejs=\"`value`\" pulumi-lang-dotnet=\"`Value`\" pulumi-lang-go=\"`value`\" pulumi-lang-python=\"`value`\" pulumi-lang-yaml=\"`value`\" pulumi-lang-java=\"`value`\"\u003e`value`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`secretValue`\" pulumi-lang-dotnet=\"`SecretValue`\" pulumi-lang-go=\"`secretValue`\" pulumi-lang-python=\"`secret_value`\" pulumi-lang-yaml=\"`secretValue`\" pulumi-lang-java=\"`secretValue`\"\u003e`secret_value`\u003c/span\u003e must be specified.\n","secret":true},"value":{"type":"string","description":"The value of the variable.\n"},"variableGroupId":{"type":"string","description":"The ID of the variable group.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/wiki:Wiki":{"description":"Manages Wikis within Azure DevOps project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleGit = new azuredevops.Git(\"example\", {\n    projectId: example.id,\n    name: \"Example Repository\",\n    initialization: {\n        initType: \"Clean\",\n    },\n});\nconst exampleWiki = new azuredevops.Wiki(\"example\", {\n    name: \"Example project wiki \",\n    projectId: example.id,\n    type: \"projectWiki\",\n});\nconst example2 = new azuredevops.Wiki(\"example2\", {\n    name: \"Example wiki in repository\",\n    projectId: example.id,\n    repositoryId: exampleGit.id,\n    version: \"main\",\n    type: \"codeWiki\",\n    mappedPath: \"/\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    description=\"Managed by Pulumi\")\nexample_git = azuredevops.Git(\"example\",\n    project_id=example.id,\n    name=\"Example Repository\",\n    initialization={\n        \"init_type\": \"Clean\",\n    })\nexample_wiki = azuredevops.Wiki(\"example\",\n    name=\"Example project wiki \",\n    project_id=example.id,\n    type=\"projectWiki\")\nexample2 = azuredevops.Wiki(\"example2\",\n    name=\"Example wiki in repository\",\n    project_id=example.id,\n    repository_id=example_git.id,\n    version=\"main\",\n    type=\"codeWiki\",\n    mapped_path=\"/\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleGit = new AzureDevOps.Git(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example Repository\",\n        Initialization = new AzureDevOps.Inputs.GitInitializationArgs\n        {\n            InitType = \"Clean\",\n        },\n    });\n\n    var exampleWiki = new AzureDevOps.Wiki(\"example\", new()\n    {\n        Name = \"Example project wiki \",\n        ProjectId = example.Id,\n        Type = \"projectWiki\",\n    });\n\n    var example2 = new AzureDevOps.Wiki(\"example2\", new()\n    {\n        Name = \"Example wiki in repository\",\n        ProjectId = example.Id,\n        RepositoryId = exampleGit.Id,\n        Version = \"main\",\n        Type = \"codeWiki\",\n        MappedPath = \"/\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:        pulumi.String(\"Example Project\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGit, err := azuredevops.NewGit(ctx, \"example\", \u0026azuredevops.GitArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example Repository\"),\n\t\t\tInitialization: \u0026azuredevops.GitInitializationArgs{\n\t\t\t\tInitType: pulumi.String(\"Clean\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWiki(ctx, \"example\", \u0026azuredevops.WikiArgs{\n\t\t\tName:      pulumi.String(\"Example project wiki \"),\n\t\t\tProjectId: example.ID(),\n\t\t\tType:      pulumi.String(\"projectWiki\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWiki(ctx, \"example2\", \u0026azuredevops.WikiArgs{\n\t\t\tName:         pulumi.String(\"Example wiki in repository\"),\n\t\t\tProjectId:    example.ID(),\n\t\t\tRepositoryId: exampleGit.ID(),\n\t\t\tVersion:      pulumi.String(\"main\"),\n\t\t\tType:         pulumi.String(\"codeWiki\"),\n\t\t\tMappedPath:   pulumi.String(\"/\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Git;\nimport com.pulumi.azuredevops.GitArgs;\nimport com.pulumi.azuredevops.inputs.GitInitializationArgs;\nimport com.pulumi.azuredevops.Wiki;\nimport com.pulumi.azuredevops.WikiArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleGit = new Git(\"exampleGit\", GitArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .initialization(GitInitializationArgs.builder()\n                .initType(\"Clean\")\n                .build())\n            .build());\n\n        var exampleWiki = new Wiki(\"exampleWiki\", WikiArgs.builder()\n            .name(\"Example project wiki \")\n            .projectId(example.id())\n            .type(\"projectWiki\")\n            .build());\n\n        var example2 = new Wiki(\"example2\", WikiArgs.builder()\n            .name(\"Example wiki in repository\")\n            .projectId(example.id())\n            .repositoryId(exampleGit.id())\n            .version(\"main\")\n            .type(\"codeWiki\")\n            .mappedPath(\"/\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      description: Managed by Pulumi\n  exampleGit:\n    type: azuredevops:Git\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: Example Repository\n      initialization:\n        initType: Clean\n  exampleWiki:\n    type: azuredevops:Wiki\n    name: example\n    properties:\n      name: 'Example project wiki '\n      projectId: ${example.id}\n      type: projectWiki\n  example2:\n    type: azuredevops:Wiki\n    properties:\n      name: Example wiki in repository\n      projectId: ${example.id}\n      repositoryId: ${exampleGit.id}\n      version: main\n      type: codeWiki\n      mappedPath: /\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Wiki ](https://learn.microsoft.com/en-us/rest/api/azure/devops/wiki/wikis?view=azure-devops-rest-7.1)\n\n## Import\n\nAzure DevOps Wiki can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e\n\n```sh\n$ pulumi import azuredevops:index/wiki:Wiki wiki 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"mappedPath":{"type":"string","description":"Folder path inside repository which is shown as Wiki.\n"},"name":{"type":"string","description":"The name of the Wiki.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"remoteUrl":{"type":"string","description":"The remote web url to the wiki.\n"},"repositoryId":{"type":"string","description":"The ID of the repository.\n"},"type":{"type":"string","description":"The type of the wiki. Possible values are `codeWiki`, `projectWiki`.\n"},"url":{"type":"string","description":"The REST url for this wiki.\n"},"version":{"type":"string","description":"Version of the wiki.\n"}},"required":["mappedPath","name","remoteUrl","repositoryId","type","url","version"],"inputProperties":{"mappedPath":{"type":"string","description":"Folder path inside repository which is shown as Wiki.\n"},"name":{"type":"string","description":"The name of the Wiki.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"repositoryId":{"type":"string","description":"The ID of the repository.\n"},"type":{"type":"string","description":"The type of the wiki. Possible values are `codeWiki`, `projectWiki`.\n"},"version":{"type":"string","description":"Version of the wiki.\n"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering Wiki resources.\n","properties":{"mappedPath":{"type":"string","description":"Folder path inside repository which is shown as Wiki.\n"},"name":{"type":"string","description":"The name of the Wiki.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"remoteUrl":{"type":"string","description":"The remote web url to the wiki.\n"},"repositoryId":{"type":"string","description":"The ID of the repository.\n"},"type":{"type":"string","description":"The type of the wiki. Possible values are `codeWiki`, `projectWiki`.\n"},"url":{"type":"string","description":"The REST url for this wiki.\n"},"version":{"type":"string","description":"Version of the wiki.\n"}},"type":"object"}},"azuredevops:index/wikiPage:WikiPage":{"description":"Manages Wiki pages within Azure DevOps project.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleWiki = new azuredevops.Wiki(\"example\", {\n    projectId: example.id,\n    name: \"Example project wiki \",\n    type: \"projectWiki\",\n});\nconst exampleWikiPage = new azuredevops.WikiPage(\"example\", {\n    projectId: example.id,\n    wikiId: exampleWiki.id,\n    path: \"/page\",\n    content: \"content\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    description=\"Managed by Pulumi\")\nexample_wiki = azuredevops.Wiki(\"example\",\n    project_id=example.id,\n    name=\"Example project wiki \",\n    type=\"projectWiki\")\nexample_wiki_page = azuredevops.WikiPage(\"example\",\n    project_id=example.id,\n    wiki_id=example_wiki.id,\n    path=\"/page\",\n    content=\"content\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleWiki = new AzureDevOps.Wiki(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Example project wiki \",\n        Type = \"projectWiki\",\n    });\n\n    var exampleWikiPage = new AzureDevOps.WikiPage(\"example\", new()\n    {\n        ProjectId = example.Id,\n        WikiId = exampleWiki.Id,\n        Path = \"/page\",\n        Content = \"content\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:        pulumi.String(\"Example Project\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWiki, err := azuredevops.NewWiki(ctx, \"example\", \u0026azuredevops.WikiArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Example project wiki \"),\n\t\t\tType:      pulumi.String(\"projectWiki\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWikiPage(ctx, \"example\", \u0026azuredevops.WikiPageArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tWikiId:    exampleWiki.ID(),\n\t\t\tPath:      pulumi.String(\"/page\"),\n\t\t\tContent:   pulumi.String(\"content\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Wiki;\nimport com.pulumi.azuredevops.WikiArgs;\nimport com.pulumi.azuredevops.WikiPage;\nimport com.pulumi.azuredevops.WikiPageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleWiki = new Wiki(\"exampleWiki\", WikiArgs.builder()\n            .projectId(example.id())\n            .name(\"Example project wiki \")\n            .type(\"projectWiki\")\n            .build());\n\n        var exampleWikiPage = new WikiPage(\"exampleWikiPage\", WikiPageArgs.builder()\n            .projectId(example.id())\n            .wikiId(exampleWiki.id())\n            .path(\"/page\")\n            .content(\"content\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      description: Managed by Pulumi\n  exampleWiki:\n    type: azuredevops:Wiki\n    name: example\n    properties:\n      projectId: ${example.id}\n      name: 'Example project wiki '\n      type: projectWiki\n  exampleWikiPage:\n    type: azuredevops:WikiPage\n    name: example\n    properties:\n      projectId: ${example.id}\n      wikiId: ${exampleWiki.id}\n      path: /page\n      content: content\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Wiki Page](https://learn.microsoft.com/en-us/rest/api/azure/devops/wiki/pages?view=azure-devops-rest-7.1)\n","properties":{"content":{"type":"string","description":"The content of the wiki page.\n"},"etag":{"type":"string"},"path":{"type":"string","description":"The path of the wiki page.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"wikiId":{"type":"string","description":"The ID of the Wiki.\n"}},"required":["content","etag","path","projectId","wikiId"],"inputProperties":{"content":{"type":"string","description":"The content of the wiki page.\n"},"etag":{"type":"string"},"path":{"type":"string","description":"The path of the wiki page.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"wikiId":{"type":"string","description":"The ID of the Wiki.\n"}},"requiredInputs":["content","path","projectId","wikiId"],"stateInputs":{"description":"Input properties used for looking up and filtering WikiPage resources.\n","properties":{"content":{"type":"string","description":"The content of the wiki page.\n"},"etag":{"type":"string"},"path":{"type":"string","description":"The path of the wiki page.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"wikiId":{"type":"string","description":"The ID of the Wiki.\n"}},"type":"object"}},"azuredevops:index/workItemQueryPermissions:WorkItemQueryPermissions":{"description":"Manages permissions for Work Item Queries. \n\n\u003e **Note** Permissions can be assigned to group principals and not to single user principals.\n\n## Permission levels\n\nPermission for Work Item Queries within Azure DevOps can be applied on two different levels.\nThose levels are reflected by specifying (or omitting) values for the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e.\n\n### Project level\n\nPermissions for all Work Item Queries inside a project (existing or newly created ones) are specified, if only the argument \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e has a value.\n\n#### Example usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst project_wiq_root_permissions = new azuredevops.WorkItemQueryPermissions(\"project-wiq-root-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        CreateRepository: \"Deny\",\n        DeleteRepository: \"Deny\",\n        RenameRepository: \"NotSet\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nproject_wiq_root_permissions = azuredevops.WorkItemQueryPermissions(\"project-wiq-root-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"CreateRepository\": \"Deny\",\n        \"DeleteRepository\": \"Deny\",\n        \"RenameRepository\": \"NotSet\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var project_wiq_root_permissions = new AzureDevOps.WorkItemQueryPermissions(\"project-wiq-root-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"CreateRepository\", \"Deny\" },\n            { \"DeleteRepository\", \"Deny\" },\n            { \"RenameRepository\", \"NotSet\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewWorkItemQueryPermissions(ctx, \"project-wiq-root-permissions\", \u0026azuredevops.WorkItemQueryPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"CreateRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"DeleteRepository\": pulumi.String(\"Deny\"),\n\t\t\t\t\"RenameRepository\": pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkItemQueryPermissions;\nimport com.pulumi.azuredevops.WorkItemQueryPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var project_wiq_root_permissions = new WorkItemQueryPermissions(\"project-wiq-root-permissions\", WorkItemQueryPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"CreateRepository\", \"Deny\"),\n                Map.entry(\"DeleteRepository\", \"Deny\"),\n                Map.entry(\"RenameRepository\", \"NotSet\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  project-wiq-root-permissions:\n    type: azuredevops:WorkItemQueryPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        CreateRepository: Deny\n        DeleteRepository: Deny\n        RenameRepository: NotSet\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Shared Queries folder level\n\nPermissions for a specific folder inside Shared Queries are specified if the arguments \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`path`\" pulumi-lang-dotnet=\"`Path`\" pulumi-lang-go=\"`path`\" pulumi-lang-python=\"`path`\" pulumi-lang-yaml=\"`path`\" pulumi-lang-java=\"`path`\"\u003e`path`\u003c/span\u003e are set.\n\n\u003e **Note** To set permissions for the Shared Queries folder itself use `/` as path value\n\n#### Example usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_permissions = new azuredevops.WorkItemQueryPermissions(\"example-permissions\", {\n    projectId: example.id,\n    path: \"/Team\",\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        Contribute: \"Allow\",\n        Delete: \"Deny\",\n        Read: \"NotSet\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_permissions = azuredevops.WorkItemQueryPermissions(\"example-permissions\",\n    project_id=example.id,\n    path=\"/Team\",\n    principal=example_readers.id,\n    permissions={\n        \"Contribute\": \"Allow\",\n        \"Delete\": \"Deny\",\n        \"Read\": \"NotSet\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_permissions = new AzureDevOps.WorkItemQueryPermissions(\"example-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"/Team\",\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Contribute\", \"Allow\" },\n            { \"Delete\", \"Deny\" },\n            { \"Read\", \"NotSet\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewWorkItemQueryPermissions(ctx, \"example-permissions\", \u0026azuredevops.WorkItemQueryPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPath:      pulumi.String(\"/Team\"),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Contribute\": pulumi.String(\"Allow\"),\n\t\t\t\t\"Delete\":     pulumi.String(\"Deny\"),\n\t\t\t\t\"Read\":       pulumi.String(\"NotSet\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkItemQueryPermissions;\nimport com.pulumi.azuredevops.WorkItemQueryPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var example_permissions = new WorkItemQueryPermissions(\"example-permissions\", WorkItemQueryPermissionsArgs.builder()\n            .projectId(example.id())\n            .path(\"/Team\")\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Contribute\", \"Allow\"),\n                Map.entry(\"Delete\", \"Deny\"),\n                Map.entry(\"Read\", \"NotSet\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-permissions:\n    type: azuredevops:WorkItemQueryPermissions\n    properties:\n      projectId: ${example.id}\n      path: /Team\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        Contribute: Allow\n        Delete: Deny\n        Read: NotSet\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst example_contributors = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Contributors\",\n});\nconst example_project_permissions = new azuredevops.WorkItemQueryPermissions(\"example-project-permissions\", {\n    projectId: example.id,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        Read: \"Allow\",\n        Delete: \"Deny\",\n        Contribute: \"Deny\",\n        ManagePermissions: \"Deny\",\n    },\n});\nconst example_sharedqueries_permissions = new azuredevops.WorkItemQueryPermissions(\"example-sharedqueries-permissions\", {\n    projectId: example.id,\n    path: \"/\",\n    principal: example_contributors.apply(example_contributors =\u003e example_contributors.id),\n    permissions: {\n        Read: \"Allow\",\n        Delete: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nexample_contributors = azuredevops.get_group_output(project_id=example.id,\n    name=\"Contributors\")\nexample_project_permissions = azuredevops.WorkItemQueryPermissions(\"example-project-permissions\",\n    project_id=example.id,\n    principal=example_readers.id,\n    permissions={\n        \"Read\": \"Allow\",\n        \"Delete\": \"Deny\",\n        \"Contribute\": \"Deny\",\n        \"ManagePermissions\": \"Deny\",\n    })\nexample_sharedqueries_permissions = azuredevops.WorkItemQueryPermissions(\"example-sharedqueries-permissions\",\n    project_id=example.id,\n    path=\"/\",\n    principal=example_contributors.id,\n    permissions={\n        \"Read\": \"Allow\",\n        \"Delete\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var example_contributors = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Contributors\",\n    });\n\n    var example_project_permissions = new AzureDevOps.WorkItemQueryPermissions(\"example-project-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Read\", \"Allow\" },\n            { \"Delete\", \"Deny\" },\n            { \"Contribute\", \"Deny\" },\n            { \"ManagePermissions\", \"Deny\" },\n        },\n    });\n\n    var example_sharedqueries_permissions = new AzureDevOps.WorkItemQueryPermissions(\"example-sharedqueries-permissions\", new()\n    {\n        ProjectId = example.Id,\n        Path = \"/\",\n        Principal = example_contributors.Apply(example_contributors =\u003e example_contributors.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Read\", \"Allow\" },\n            { \"Delete\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\texample_contributors := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Contributors\"),\n\t\t}, nil)\n\t\t_, err = azuredevops.NewWorkItemQueryPermissions(ctx, \"example-project-permissions\", \u0026azuredevops.WorkItemQueryPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Read\":              pulumi.String(\"Allow\"),\n\t\t\t\t\"Delete\":            pulumi.String(\"Deny\"),\n\t\t\t\t\"Contribute\":        pulumi.String(\"Deny\"),\n\t\t\t\t\"ManagePermissions\": pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkItemQueryPermissions(ctx, \"example-sharedqueries-permissions\", \u0026azuredevops.WorkItemQueryPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPath:      pulumi.String(\"/\"),\n\t\t\tPrincipal: pulumi.String(example_contributors.ApplyT(func(example_contributors azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_contributors.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Read\":   pulumi.String(\"Allow\"),\n\t\t\t\t\"Delete\": pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkItemQueryPermissions;\nimport com.pulumi.azuredevops.WorkItemQueryPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        final var example-contributors = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Contributors\")\n            .build());\n\n        var example_project_permissions = new WorkItemQueryPermissions(\"example-project-permissions\", WorkItemQueryPermissionsArgs.builder()\n            .projectId(example.id())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Read\", \"Allow\"),\n                Map.entry(\"Delete\", \"Deny\"),\n                Map.entry(\"Contribute\", \"Deny\"),\n                Map.entry(\"ManagePermissions\", \"Deny\")\n            ))\n            .build());\n\n        var example_sharedqueries_permissions = new WorkItemQueryPermissions(\"example-sharedqueries-permissions\", WorkItemQueryPermissionsArgs.builder()\n            .projectId(example.id())\n            .path(\"/\")\n            .principal(example_contributors.applyValue(_example_contributors -\u003e _example_contributors.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Read\", \"Allow\"),\n                Map.entry(\"Delete\", \"Deny\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  example-project-permissions:\n    type: azuredevops:WorkItemQueryPermissions\n    properties:\n      projectId: ${example.id}\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        Read: Allow\n        Delete: Deny\n        Contribute: Deny\n        ManagePermissions: Deny\n  example-sharedqueries-permissions:\n    type: azuredevops:WorkItemQueryPermissions\n    properties:\n      projectId: ${example.id}\n      path: /\n      principal: ${[\"example-contributors\"].id}\n      permissions:\n        Read: Allow\n        Delete: Deny\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n  example-contributors:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Contributors\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.security_manage - Grants the ability to read, write, and manage security permissions.\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"path":{"type":"string","description":"Path to a query or folder beneath `Shared Queries`\n"},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions              | Description                        |\n|--------------------------|------------------------------------|\n| Read                     | Read                               |\n| Contribute               | Contribute                         |\n| Delete                   | Delete                             |\n| ManagePermissions        | Manage Permissions                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n"},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal","projectId"],"inputProperties":{"path":{"type":"string","description":"Path to a query or folder beneath `Shared Queries`\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions              | Description                        |\n|--------------------------|------------------------------------|\n| Read                     | Read                               |\n| Contribute               | Contribute                         |\n| Delete                   | Delete                             |\n| ManagePermissions        | Manage Permissions                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal","projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkItemQueryPermissions resources.\n","properties":{"path":{"type":"string","description":"Path to a query or folder beneath `Shared Queries`\n","willReplaceOnChanges":true},"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n| Permissions              | Description                        |\n|--------------------------|------------------------------------|\n| Read                     | Read                               |\n| Contribute               | Contribute                         |\n| Delete                   | Delete                             |\n| ManagePermissions        | Manage Permissions                 |\n"},"principal":{"type":"string","description":"The **group** principal to assign the permissions.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the project to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/workitem:Workitem":{"description":"Manages a Work Item in Azure Devops.\n\n## Example Usage\n\n### Basic usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleWorkitem = new azuredevops.Workitem(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    title: \"Example Work Item\",\n    description: \"Managed by Pulumi\",\n    type: \"Issue\",\n    state: \"Active\",\n    tags: [\"Tag\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_workitem = azuredevops.Workitem(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    title=\"Example Work Item\",\n    description=\"Managed by Pulumi\",\n    type=\"Issue\",\n    state=\"Active\",\n    tags=[\"Tag\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleWorkitem = new AzureDevOps.Workitem(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Title = \"Example Work Item\",\n        Description = \"Managed by Pulumi\",\n        Type = \"Issue\",\n        State = \"Active\",\n        Tags = new[]\n        {\n            \"Tag\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitem(ctx, \"example\", \u0026azuredevops.WorkitemArgs{\n\t\t\tProjectId:   pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tTitle:       pulumi.String(\"Example Work Item\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t\tType:        pulumi.String(\"Issue\"),\n\t\t\tState:       pulumi.String(\"Active\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tag\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Workitem;\nimport com.pulumi.azuredevops.WorkitemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleWorkitem = new Workitem(\"exampleWorkitem\", WorkitemArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .title(\"Example Work Item\")\n            .description(\"Managed by Pulumi\")\n            .type(\"Issue\")\n            .state(\"Active\")\n            .tags(\"Tag\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleWorkitem:\n    type: azuredevops:Workitem\n    name: example\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      title: Example Work Item\n      description: Managed by Pulumi\n      type: Issue\n      state: Active\n      tags:\n        - Tag\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With custom fields\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleWorkitem = new azuredevops.Workitem(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    title: \"Example Work Item\",\n    type: \"Issue\",\n    state: \"Active\",\n    tags: [\"Tag\"],\n    customFields: {\n        example: \"example\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_workitem = azuredevops.Workitem(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    title=\"Example Work Item\",\n    type=\"Issue\",\n    state=\"Active\",\n    tags=[\"Tag\"],\n    custom_fields={\n        \"example\": \"example\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleWorkitem = new AzureDevOps.Workitem(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Title = \"Example Work Item\",\n        Type = \"Issue\",\n        State = \"Active\",\n        Tags = new[]\n        {\n            \"Tag\",\n        },\n        CustomFields = \n        {\n            { \"example\", \"example\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitem(ctx, \"example\", \u0026azuredevops.WorkitemArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tTitle:     pulumi.String(\"Example Work Item\"),\n\t\t\tType:      pulumi.String(\"Issue\"),\n\t\t\tState:     pulumi.String(\"Active\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tag\"),\n\t\t\t},\n\t\t\tCustomFields: pulumi.StringMap{\n\t\t\t\t\"example\": pulumi.String(\"example\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Workitem;\nimport com.pulumi.azuredevops.WorkitemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleWorkitem = new Workitem(\"exampleWorkitem\", WorkitemArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .title(\"Example Work Item\")\n            .type(\"Issue\")\n            .state(\"Active\")\n            .tags(\"Tag\")\n            .customFields(Map.of(\"example\", \"example\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleWorkitem:\n    type: azuredevops:Workitem\n    name: example\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      title: Example Work Item\n      type: Issue\n      state: Active\n      tags:\n        - Tag\n      customFields:\n        example: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n### With Parent Work Item\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n});\nconst epic = new azuredevops.Workitem(\"epic\", {\n    projectId: example.id,\n    title: \"Example EPIC Title\",\n    type: \"Epic\",\n    state: \"New\",\n});\nconst exampleWorkitem = new azuredevops.Workitem(\"example\", {\n    projectId: example.id,\n    title: \"Example Work Item\",\n    type: \"Issue\",\n    state: \"Active\",\n    tags: [\"Tag\"],\n    parentId: epic.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\")\nepic = azuredevops.Workitem(\"epic\",\n    project_id=example.id,\n    title=\"Example EPIC Title\",\n    type=\"Epic\",\n    state=\"New\")\nexample_workitem = azuredevops.Workitem(\"example\",\n    project_id=example.id,\n    title=\"Example Work Item\",\n    type=\"Issue\",\n    state=\"Active\",\n    tags=[\"Tag\"],\n    parent_id=epic.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n    });\n\n    var epic = new AzureDevOps.Workitem(\"epic\", new()\n    {\n        ProjectId = example.Id,\n        Title = \"Example EPIC Title\",\n        Type = \"Epic\",\n        State = \"New\",\n    });\n\n    var exampleWorkitem = new AzureDevOps.Workitem(\"example\", new()\n    {\n        ProjectId = example.Id,\n        Title = \"Example Work Item\",\n        Type = \"Issue\",\n        State = \"Active\",\n        Tags = new[]\n        {\n            \"Tag\",\n        },\n        ParentId = epic.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tepic, err := azuredevops.NewWorkitem(ctx, \"epic\", \u0026azuredevops.WorkitemArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tTitle:     pulumi.String(\"Example EPIC Title\"),\n\t\t\tType:      pulumi.String(\"Epic\"),\n\t\t\tState:     pulumi.String(\"New\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitem(ctx, \"example\", \u0026azuredevops.WorkitemArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tTitle:     pulumi.String(\"Example Work Item\"),\n\t\t\tType:      pulumi.String(\"Issue\"),\n\t\t\tState:     pulumi.String(\"Active\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tag\"),\n\t\t\t},\n\t\t\tParentId: epic.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Workitem;\nimport com.pulumi.azuredevops.WorkitemArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .build());\n\n        var epic = new Workitem(\"epic\", WorkitemArgs.builder()\n            .projectId(example.id())\n            .title(\"Example EPIC Title\")\n            .type(\"Epic\")\n            .state(\"New\")\n            .build());\n\n        var exampleWorkitem = new Workitem(\"exampleWorkitem\", WorkitemArgs.builder()\n            .projectId(example.id())\n            .title(\"Example Work Item\")\n            .type(\"Issue\")\n            .state(\"Active\")\n            .tags(\"Tag\")\n            .parentId(epic.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n  epic:\n    type: azuredevops:Workitem\n    properties:\n      projectId: ${example.id}\n      title: Example EPIC Title\n      type: Epic\n      state: New\n  exampleWorkitem:\n    type: azuredevops:Workitem\n    name: example\n    properties:\n      projectId: ${example.id}\n      title: Example Work Item\n      type: Issue\n      state: Active\n      tags:\n        - Tag\n      parentId: ${epic.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### With Additional Fields\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleWorkitem = new azuredevops.Workitem(\"example\", {\n    projectId: exampleAzuredevopsProject.id,\n    title: \"Example Work Item\",\n    type: \"User Story\",\n    state: \"New\",\n    tags: [\"Tag\"],\n    additionalFieldsJson: JSON.stringify({\n        \"Microsoft.VSTS.Scheduling.StoryPoints\": 5,\n        \"Microsoft.VSTS.Common.AcceptanceCriteria\": \"This is our definition of done\",\n        \"Microsoft.VSTS.Common.Priority\": 2,\n        \"Microsoft.VSTS.Common.ValueArea\": \"Business\",\n    }),\n});\n```\n```python\nimport pulumi\nimport json\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_workitem = azuredevops.Workitem(\"example\",\n    project_id=example_azuredevops_project[\"id\"],\n    title=\"Example Work Item\",\n    type=\"User Story\",\n    state=\"New\",\n    tags=[\"Tag\"],\n    additional_fields_json=json.dumps({\n        \"Microsoft.VSTS.Scheduling.StoryPoints\": 5,\n        \"Microsoft.VSTS.Common.AcceptanceCriteria\": \"This is our definition of done\",\n        \"Microsoft.VSTS.Common.Priority\": 2,\n        \"Microsoft.VSTS.Common.ValueArea\": \"Business\",\n    }))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleWorkitem = new AzureDevOps.Workitem(\"example\", new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        Title = \"Example Work Item\",\n        Type = \"User Story\",\n        State = \"New\",\n        Tags = new[]\n        {\n            \"Tag\",\n        },\n        AdditionalFieldsJson = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n        {\n            [\"Microsoft.VSTS.Scheduling.StoryPoints\"] = 5,\n            [\"Microsoft.VSTS.Common.AcceptanceCriteria\"] = \"This is our definition of done\",\n            [\"Microsoft.VSTS.Common.Priority\"] = 2,\n            [\"Microsoft.VSTS.Common.ValueArea\"] = \"Business\",\n        }),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"Microsoft.VSTS.Scheduling.StoryPoints\":    5,\n\t\t\t\"Microsoft.VSTS.Common.AcceptanceCriteria\": \"This is our definition of done\",\n\t\t\t\"Microsoft.VSTS.Common.Priority\":           2,\n\t\t\t\"Microsoft.VSTS.Common.ValueArea\":          \"Business\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tjson0 := string(tmpJSON0)\n\t\t_, err = azuredevops.NewWorkitem(ctx, \"example\", \u0026azuredevops.WorkitemArgs{\n\t\t\tProjectId: pulumi.Any(exampleAzuredevopsProject.Id),\n\t\t\tTitle:     pulumi.String(\"Example Work Item\"),\n\t\t\tType:      pulumi.String(\"User Story\"),\n\t\t\tState:     pulumi.String(\"New\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Tag\"),\n\t\t\t},\n\t\t\tAdditionalFieldsJson: pulumi.String(json0),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Workitem;\nimport com.pulumi.azuredevops.WorkitemArgs;\nimport static com.pulumi.codegen.internal.Serialization.*;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleWorkitem = new Workitem(\"exampleWorkitem\", WorkitemArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .title(\"Example Work Item\")\n            .type(\"User Story\")\n            .state(\"New\")\n            .tags(\"Tag\")\n            .additionalFieldsJson(serializeJson(\n                jsonObject(\n                    jsonProperty(\"Microsoft.VSTS.Scheduling.StoryPoints\", 5),\n                    jsonProperty(\"Microsoft.VSTS.Common.AcceptanceCriteria\", \"This is our definition of done\"),\n                    jsonProperty(\"Microsoft.VSTS.Common.Priority\", 2),\n                    jsonProperty(\"Microsoft.VSTS.Common.ValueArea\", \"Business\")\n                )))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleWorkitem:\n    type: azuredevops:Workitem\n    name: example\n    properties:\n      projectId: ${exampleAzuredevopsProject.id}\n      title: Example Work Item\n      type: User Story\n      state: New\n      tags:\n        - Tag\n      additionalFieldsJson:\n        fn::toJSON:\n          Microsoft.VSTS.Scheduling.StoryPoints: 5\n          Microsoft.VSTS.Common.AcceptanceCriteria: This is our definition of done\n          Microsoft.VSTS.Common.Priority: 2\n          Microsoft.VSTS.Common.ValueArea: Business\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAzure DevOps Work Item can be imported using the Project ID and Work Item ID, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitem:Workitem example 00000000-0000-0000-0000-000000000000/0\n```\n\n","properties":{"additionalFieldsJson":{"type":"string","description":"A JSON-formatted string of extra fields. **Note**: Removing this attribute from your configuration will not clear existing fields in the API. To remove all fields, set this value to an empty JSON string (`\"{}\"`).\n"},"areaPath":{"type":"string","description":"Specifies the area where the Work Item is used.\n"},"customFields":{"type":"object","additionalProperties":{"type":"string"},"description":"Specifies a list with Custom Fields for the Work Item.\n","deprecationMessage":"This property is deprecated and will be removed in a future release. Please use \u003cspan pulumi-lang-nodejs=\"\"additionalFieldsJson\"\" pulumi-lang-dotnet=\"\"AdditionalFieldsJson\"\" pulumi-lang-go=\"\"additionalFieldsJson\"\" pulumi-lang-python=\"\"additional_fields_json\"\" pulumi-lang-yaml=\"\"additionalFieldsJson\"\" pulumi-lang-java=\"\"additionalFieldsJson\"\"\u003e\"additional_fields_json\"\u003c/span\u003e argument instead."},"description":{"type":"string","description":"A description for the Work Item. **Note**: Due to current lifecycle behavior, omitting this field or setting it to an empty string will not clear the description in Azure DevOps; the provider will instead read the existing value. To avoid a breaking change, the ability to clear this field will be introduced in a future major release.\n"},"iterationPath":{"type":"string","description":"Specifies the iteration in which the Work Item is used.\n"},"parentId":{"type":"integer","description":"The parent work item.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n"},"relations":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemRelation:WorkitemRelation"},"description":"A \u003cspan pulumi-lang-nodejs=\"`relations`\" pulumi-lang-dotnet=\"`Relations`\" pulumi-lang-go=\"`relations`\" pulumi-lang-python=\"`relations`\" pulumi-lang-yaml=\"`relations`\" pulumi-lang-java=\"`relations`\"\u003e`relations`\u003c/span\u003e blocks as documented below.\n"},"state":{"type":"string","description":"The state of the Work Item. The four main states that are defined for the User Story (`Agile`) are `New`, `Active`, `Resolved`, and `Closed`. See [Workflow states](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/workflow-and-state-categories?view=azure-devops\u0026tabs=agile-process#workflow-states) for more details.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Specifies a list of Tags.\n"},"title":{"type":"string","description":"The Title of the Work Item.\n"},"type":{"type":"string","description":"The Type of the Work Item. The work item type varies depending on the process used when creating the project(`Agile`, `Basic`, `Scrum`, `Scrum`). See [Work Item Types](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/about-work-items?view=azure-devops) for more details.\n"},"url":{"type":"string","description":"The URL of the Work Item.\n"}},"required":["areaPath","description","iterationPath","projectId","relations","state","title","type","url"],"inputProperties":{"additionalFieldsJson":{"type":"string","description":"A JSON-formatted string of extra fields. **Note**: Removing this attribute from your configuration will not clear existing fields in the API. To remove all fields, set this value to an empty JSON string (`\"{}\"`).\n"},"areaPath":{"type":"string","description":"Specifies the area where the Work Item is used.\n"},"customFields":{"type":"object","additionalProperties":{"type":"string"},"description":"Specifies a list with Custom Fields for the Work Item.\n","deprecationMessage":"This property is deprecated and will be removed in a future release. Please use \u003cspan pulumi-lang-nodejs=\"\"additionalFieldsJson\"\" pulumi-lang-dotnet=\"\"AdditionalFieldsJson\"\" pulumi-lang-go=\"\"additionalFieldsJson\"\" pulumi-lang-python=\"\"additional_fields_json\"\" pulumi-lang-yaml=\"\"additionalFieldsJson\"\" pulumi-lang-java=\"\"additionalFieldsJson\"\"\u003e\"additional_fields_json\"\u003c/span\u003e argument instead."},"description":{"type":"string","description":"A description for the Work Item. **Note**: Due to current lifecycle behavior, omitting this field or setting it to an empty string will not clear the description in Azure DevOps; the provider will instead read the existing value. To avoid a breaking change, the ability to clear this field will be introduced in a future major release.\n"},"iterationPath":{"type":"string","description":"Specifies the iteration in which the Work Item is used.\n"},"parentId":{"type":"integer","description":"The parent work item.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"The state of the Work Item. The four main states that are defined for the User Story (`Agile`) are `New`, `Active`, `Resolved`, and `Closed`. See [Workflow states](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/workflow-and-state-categories?view=azure-devops\u0026tabs=agile-process#workflow-states) for more details.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Specifies a list of Tags.\n"},"title":{"type":"string","description":"The Title of the Work Item.\n"},"type":{"type":"string","description":"The Type of the Work Item. The work item type varies depending on the process used when creating the project(`Agile`, `Basic`, `Scrum`, `Scrum`). See [Work Item Types](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/about-work-items?view=azure-devops) for more details.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId","title","type"],"stateInputs":{"description":"Input properties used for looking up and filtering Workitem resources.\n","properties":{"additionalFieldsJson":{"type":"string","description":"A JSON-formatted string of extra fields. **Note**: Removing this attribute from your configuration will not clear existing fields in the API. To remove all fields, set this value to an empty JSON string (`\"{}\"`).\n"},"areaPath":{"type":"string","description":"Specifies the area where the Work Item is used.\n"},"customFields":{"type":"object","additionalProperties":{"type":"string"},"description":"Specifies a list with Custom Fields for the Work Item.\n","deprecationMessage":"This property is deprecated and will be removed in a future release. Please use \u003cspan pulumi-lang-nodejs=\"\"additionalFieldsJson\"\" pulumi-lang-dotnet=\"\"AdditionalFieldsJson\"\" pulumi-lang-go=\"\"additionalFieldsJson\"\" pulumi-lang-python=\"\"additional_fields_json\"\" pulumi-lang-yaml=\"\"additionalFieldsJson\"\" pulumi-lang-java=\"\"additionalFieldsJson\"\"\u003e\"additional_fields_json\"\u003c/span\u003e argument instead."},"description":{"type":"string","description":"A description for the Work Item. **Note**: Due to current lifecycle behavior, omitting this field or setting it to an empty string will not clear the description in Azure DevOps; the provider will instead read the existing value. To avoid a breaking change, the ability to clear this field will be introduced in a future major release.\n"},"iterationPath":{"type":"string","description":"Specifies the iteration in which the Work Item is used.\n"},"parentId":{"type":"integer","description":"The parent work item.\n"},"projectId":{"type":"string","description":"The ID of the Project.\n","willReplaceOnChanges":true},"relations":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemRelation:WorkitemRelation"},"description":"A \u003cspan pulumi-lang-nodejs=\"`relations`\" pulumi-lang-dotnet=\"`Relations`\" pulumi-lang-go=\"`relations`\" pulumi-lang-python=\"`relations`\" pulumi-lang-yaml=\"`relations`\" pulumi-lang-java=\"`relations`\"\u003e`relations`\u003c/span\u003e blocks as documented below.\n"},"state":{"type":"string","description":"The state of the Work Item. The four main states that are defined for the User Story (`Agile`) are `New`, `Active`, `Resolved`, and `Closed`. See [Workflow states](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/workflow-and-state-categories?view=azure-devops\u0026tabs=agile-process#workflow-states) for more details.\n"},"tags":{"type":"array","items":{"type":"string"},"description":"Specifies a list of Tags.\n"},"title":{"type":"string","description":"The Title of the Work Item.\n"},"type":{"type":"string","description":"The Type of the Work Item. The work item type varies depending on the process used when creating the project(`Agile`, `Basic`, `Scrum`, `Scrum`). See [Work Item Types](https://learn.microsoft.com/en-us/azure/devops/boards/work-items/about-work-items?view=azure-devops) for more details.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL of the Work Item.\n"}},"type":"object"}},"azuredevops:index/workitemquery:Workitemquery":{"description":"Manages a Work Item Query (WIQL based list / tree query) in Azure DevOps.\n\nA query can live either directly under one of the root areas `Shared Queries` or `My Queries`, or inside another query folder. You must provide exactly one of \u003cspan pulumi-lang-nodejs=\"`area`\" pulumi-lang-dotnet=\"`Area`\" pulumi-lang-go=\"`area`\" pulumi-lang-python=\"`area`\" pulumi-lang-yaml=\"`area`\" pulumi-lang-java=\"`area`\"\u003e`area`\u003c/span\u003e (either `Shared Queries` or `My Queries`) or \u003cspan pulumi-lang-nodejs=\"`parentId`\" pulumi-lang-dotnet=\"`ParentId`\" pulumi-lang-go=\"`parentId`\" pulumi-lang-python=\"`parent_id`\" pulumi-lang-yaml=\"`parentId`\" pulumi-lang-java=\"`parentId`\"\u003e`parent_id`\u003c/span\u003e (an existing folder's ID) when creating a query.\n\nThe WIQL (Work Item Query Language) statement is used to define the query logic. See the [WIQL Syntax Reference](https://learn.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax?view=azure-devops) for more information.\n\n## Example Usage\n\n### Basic query under Shared Queries\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n});\nconst allIssues = new azuredevops.Workitemquery(\"all_issues\", {\n    projectId: example.id,\n    name: \"All Active Issues\",\n    area: \"Shared Queries\",\n    wiql: `SELECT [System.Id], [System.Title], [System.State]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Issue'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.ChangedDate] DESC\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\")\nall_issues = azuredevops.Workitemquery(\"all_issues\",\n    project_id=example.id,\n    name=\"All Active Issues\",\n    area=\"Shared Queries\",\n    wiql=\"\"\"SELECT [System.Id], [System.Title], [System.State]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Issue'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.ChangedDate] DESC\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n    });\n\n    var allIssues = new AzureDevOps.Workitemquery(\"all_issues\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"All Active Issues\",\n        Area = \"Shared Queries\",\n        Wiql = @\"SELECT [System.Id], [System.Title], [System.State]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Issue'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.ChangedDate] DESC\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemquery(ctx, \"all_issues\", \u0026azuredevops.WorkitemqueryArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"All Active Issues\"),\n\t\t\tArea:      pulumi.String(\"Shared Queries\"),\n\t\t\tWiql: pulumi.String(`SELECT [System.Id], [System.Title], [System.State]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Issue'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.ChangedDate] DESC\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Workitemquery;\nimport com.pulumi.azuredevops.WorkitemqueryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .build());\n\n        var allIssues = new Workitemquery(\"allIssues\", WorkitemqueryArgs.builder()\n            .projectId(example.id())\n            .name(\"All Active Issues\")\n            .area(\"Shared Queries\")\n            .wiql(\"\"\"\nSELECT [System.Id], [System.Title], [System.State]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Issue'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.ChangedDate] DESC\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n  allIssues:\n    type: azuredevops:Workitemquery\n    name: all_issues\n    properties:\n      projectId: ${example.id}\n      name: All Active Issues\n      area: Shared Queries\n      wiql: |\n        SELECT [System.Id], [System.Title], [System.State]\n        FROM WorkItems\n        WHERE [System.WorkItemType] = 'Issue'\n          AND [System.State] \u003c\u003e 'Closed'\n        ORDER BY [System.ChangedDate] DESC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Query inside a custom folder\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n});\nconst teamFolder = new azuredevops.WorkitemqueryFolder(\"team_folder\", {\n    projectId: example.id,\n    name: \"Team\",\n    area: \"Shared Queries\",\n});\nconst myTeamBugs = new azuredevops.Workitemquery(\"my_team_bugs\", {\n    projectId: example.id,\n    name: \"Team Bugs\",\n    parentId: teamFolder.id,\n    wiql: `SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n`,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\")\nteam_folder = azuredevops.WorkitemqueryFolder(\"team_folder\",\n    project_id=example.id,\n    name=\"Team\",\n    area=\"Shared Queries\")\nmy_team_bugs = azuredevops.Workitemquery(\"my_team_bugs\",\n    project_id=example.id,\n    name=\"Team Bugs\",\n    parent_id=team_folder.id,\n    wiql=\"\"\"SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n\"\"\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n    });\n\n    var teamFolder = new AzureDevOps.WorkitemqueryFolder(\"team_folder\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Team\",\n        Area = \"Shared Queries\",\n    });\n\n    var myTeamBugs = new AzureDevOps.Workitemquery(\"my_team_bugs\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Team Bugs\",\n        ParentId = teamFolder.Id,\n        Wiql = @\"SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tteamFolder, err := azuredevops.NewWorkitemqueryFolder(ctx, \"team_folder\", \u0026azuredevops.WorkitemqueryFolderArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Team\"),\n\t\t\tArea:      pulumi.String(\"Shared Queries\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemquery(ctx, \"my_team_bugs\", \u0026azuredevops.WorkitemqueryArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Team Bugs\"),\n\t\t\tParentId:  teamFolder.ID(),\n\t\t\tWiql: pulumi.String(`SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.WorkitemqueryFolder;\nimport com.pulumi.azuredevops.WorkitemqueryFolderArgs;\nimport com.pulumi.azuredevops.Workitemquery;\nimport com.pulumi.azuredevops.WorkitemqueryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .build());\n\n        var teamFolder = new WorkitemqueryFolder(\"teamFolder\", WorkitemqueryFolderArgs.builder()\n            .projectId(example.id())\n            .name(\"Team\")\n            .area(\"Shared Queries\")\n            .build());\n\n        var myTeamBugs = new Workitemquery(\"myTeamBugs\", WorkitemqueryArgs.builder()\n            .projectId(example.id())\n            .name(\"Team Bugs\")\n            .parentId(teamFolder.id())\n            .wiql(\"\"\"\nSELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n            \"\"\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n  teamFolder:\n    type: azuredevops:WorkitemqueryFolder\n    name: team_folder\n    properties:\n      projectId: ${example.id}\n      name: Team\n      area: Shared Queries\n  myTeamBugs:\n    type: azuredevops:Workitemquery\n    name: my_team_bugs\n    properties:\n      projectId: ${example.id}\n      name: Team Bugs\n      parentId: ${teamFolder.id}\n      wiql: |\n        SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\n        FROM WorkItems\n        WHERE [System.WorkItemType] = 'Bug'\n          AND [System.State] \u003c\u003e 'Closed'\n        ORDER BY [System.CreatedDate] DESC\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Applying permissions to a query\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\nimport * as std from \"@pulumi/std\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n});\nconst teamFolder = new azuredevops.WorkitemqueryFolder(\"team_folder\", {\n    projectId: example.id,\n    name: \"Team\",\n    area: \"Shared Queries\",\n});\nconst myTeamBugs = new azuredevops.Workitemquery(\"my_team_bugs\", {\n    projectId: example.id,\n    name: \"Team Bugs\",\n    parentId: teamFolder.id,\n    wiql: `SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n`,\n});\nconst example_readers = azuredevops.getGroupOutput({\n    projectId: example.id,\n    name: \"Readers\",\n});\nconst queryPermissions = new azuredevops.WorkItemQueryPermissions(\"query_permissions\", {\n    projectId: example.id,\n    path: std.index.format({\n        input: \"%s/%s\",\n        args: [\n            teamFolder.name,\n            myTeamBugs.name,\n        ],\n    }).result,\n    principal: example_readers.apply(example_readers =\u003e example_readers.id),\n    permissions: {\n        Read: \"Allow\",\n        Contribute: \"Deny\",\n        ManagePermissions: \"Deny\",\n        Delete: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\nimport pulumi_std as std\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\")\nteam_folder = azuredevops.WorkitemqueryFolder(\"team_folder\",\n    project_id=example.id,\n    name=\"Team\",\n    area=\"Shared Queries\")\nmy_team_bugs = azuredevops.Workitemquery(\"my_team_bugs\",\n    project_id=example.id,\n    name=\"Team Bugs\",\n    parent_id=team_folder.id,\n    wiql=\"\"\"SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n\"\"\")\nexample_readers = azuredevops.get_group_output(project_id=example.id,\n    name=\"Readers\")\nquery_permissions = azuredevops.WorkItemQueryPermissions(\"query_permissions\",\n    project_id=example.id,\n    path=std.index.format(input=\"%s/%s\",\n        args=[\n            team_folder.name,\n            my_team_bugs.name,\n        ])[\"result\"],\n    principal=example_readers.id,\n    permissions={\n        \"Read\": \"Allow\",\n        \"Contribute\": \"Deny\",\n        \"ManagePermissions\": \"Deny\",\n        \"Delete\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\nusing Std = Pulumi.Std;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n    });\n\n    var teamFolder = new AzureDevOps.WorkitemqueryFolder(\"team_folder\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Team\",\n        Area = \"Shared Queries\",\n    });\n\n    var myTeamBugs = new AzureDevOps.Workitemquery(\"my_team_bugs\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Team Bugs\",\n        ParentId = teamFolder.Id,\n        Wiql = @\"SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n\",\n    });\n\n    var example_readers = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"Readers\",\n    });\n\n    var queryPermissions = new AzureDevOps.WorkItemQueryPermissions(\"query_permissions\", new()\n    {\n        ProjectId = example.Id,\n        Path = Std.Index.Format.Invoke(new()\n        {\n            Input = \"%s/%s\",\n            Args = new[]\n            {\n                teamFolder.Name,\n                myTeamBugs.Name,\n            },\n        }).Result,\n        Principal = example_readers.Apply(example_readers =\u003e example_readers.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Read\", \"Allow\" },\n            { \"Contribute\", \"Deny\" },\n            { \"ManagePermissions\", \"Deny\" },\n            { \"Delete\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi-std/sdk/go/std\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tteamFolder, err := azuredevops.NewWorkitemqueryFolder(ctx, \"team_folder\", \u0026azuredevops.WorkitemqueryFolderArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Team\"),\n\t\t\tArea:      pulumi.String(\"Shared Queries\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmyTeamBugs, err := azuredevops.NewWorkitemquery(ctx, \"my_team_bugs\", \u0026azuredevops.WorkitemqueryArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Team Bugs\"),\n\t\t\tParentId:  teamFolder.ID(),\n\t\t\tWiql: pulumi.String(`SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n`),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_readers := azuredevops.LookupGroupOutput(ctx, azuredevops.GetGroupOutputArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Readers\"),\n\t\t}, nil)\n\t\tinvokeFormat, err := std.Format(ctx, map[string]interface{}{\n\t\t\t\"input\": \"%s/%s\",\n\t\t\t\"args\": pulumi.StringArray{\n\t\t\t\tteamFolder.Name,\n\t\t\t\tmyTeamBugs.Name,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkItemQueryPermissions(ctx, \"query_permissions\", \u0026azuredevops.WorkItemQueryPermissionsArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tPath:      invokeFormat.Result,\n\t\t\tPrincipal: pulumi.String(example_readers.ApplyT(func(example_readers azuredevops.GetGroupResult) (*string, error) {\n\t\t\t\treturn \u0026example_readers.Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Read\":              pulumi.String(\"Allow\"),\n\t\t\t\t\"Contribute\":        pulumi.String(\"Deny\"),\n\t\t\t\t\"ManagePermissions\": pulumi.String(\"Deny\"),\n\t\t\t\t\"Delete\":            pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.WorkitemqueryFolder;\nimport com.pulumi.azuredevops.WorkitemqueryFolderArgs;\nimport com.pulumi.azuredevops.Workitemquery;\nimport com.pulumi.azuredevops.WorkitemqueryArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkItemQueryPermissions;\nimport com.pulumi.azuredevops.WorkItemQueryPermissionsArgs;\nimport com.pulumi.std.StdFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .build());\n\n        var teamFolder = new WorkitemqueryFolder(\"teamFolder\", WorkitemqueryFolderArgs.builder()\n            .projectId(example.id())\n            .name(\"Team\")\n            .area(\"Shared Queries\")\n            .build());\n\n        var myTeamBugs = new Workitemquery(\"myTeamBugs\", WorkitemqueryArgs.builder()\n            .projectId(example.id())\n            .name(\"Team Bugs\")\n            .parentId(teamFolder.id())\n            .wiql(\"\"\"\nSELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\nFROM WorkItems\nWHERE [System.WorkItemType] = 'Bug'\n  AND [System.State] \u003c\u003e 'Closed'\nORDER BY [System.CreatedDate] DESC\n            \"\"\")\n            .build());\n\n        final var example-readers = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Readers\")\n            .build());\n\n        var queryPermissions = new WorkItemQueryPermissions(\"queryPermissions\", WorkItemQueryPermissionsArgs.builder()\n            .projectId(example.id())\n            .path(StdFunctions.format(Map.ofEntries(\n                Map.entry(\"input\", \"%s/%s\"),\n                Map.entry(\"args\",                 \n                    teamFolder.name(),\n                    myTeamBugs.name())\n            )).result())\n            .principal(example_readers.applyValue(_example_readers -\u003e _example_readers.id()))\n            .permissions(Map.ofEntries(\n                Map.entry(\"Read\", \"Allow\"),\n                Map.entry(\"Contribute\", \"Deny\"),\n                Map.entry(\"ManagePermissions\", \"Deny\"),\n                Map.entry(\"Delete\", \"Deny\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n  teamFolder:\n    type: azuredevops:WorkitemqueryFolder\n    name: team_folder\n    properties:\n      projectId: ${example.id}\n      name: Team\n      area: Shared Queries\n  myTeamBugs:\n    type: azuredevops:Workitemquery\n    name: my_team_bugs\n    properties:\n      projectId: ${example.id}\n      name: Team Bugs\n      parentId: ${teamFolder.id}\n      wiql: |\n        SELECT [System.Id], [System.Title], [System.State], [System.AssignedTo]\n        FROM WorkItems\n        WHERE [System.WorkItemType] = 'Bug'\n          AND [System.State] \u003c\u003e 'Closed'\n        ORDER BY [System.CreatedDate] DESC\n  queryPermissions:\n    type: azuredevops:WorkItemQueryPermissions\n    name: query_permissions\n    properties:\n      projectId: ${example.id}\n      path:\n        fn::invoke:\n          function: std:format\n          arguments:\n            input: '%s/%s'\n            args:\n              - ${teamFolder.name}\n              - ${myTeamBugs.name}\n          return: result\n      principal: ${[\"example-readers\"].id}\n      permissions:\n        Read: Allow\n        Contribute: Deny\n        ManagePermissions: Deny\n        Delete: Deny\nvariables:\n  example-readers:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Readers\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps REST API - Work Item Query (Queries)](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/queries?view=azure-devops-rest-7.1)\n* [WIQL Syntax Reference](https://learn.microsoft.com/en-us/azure/devops/boards/queries/wiql-syntax?view=azure-devops)\n\n## PAT Permissions Required\n\n* **Work Items**: Read \u0026 Write\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"area":{"type":"string","description":"Root folder for the query. Must be one of `Shared Queries` or `My Queries`.\n"},"name":{"type":"string","description":"The display name of the query.\n"},"parentId":{"type":"string","description":"The ID of the parent query folder under which to create the query.\n"},"projectId":{"type":"string","description":"The ID of the Project containing the query.\n"},"wiql":{"type":"string","description":"The WIQL (Work Item Query Language) statement. Length 1–32000 characters.\n"}},"required":["name","projectId","wiql"],"inputProperties":{"area":{"type":"string","description":"Root folder for the query. Must be one of `Shared Queries` or `My Queries`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The display name of the query.\n"},"parentId":{"type":"string","description":"The ID of the parent query folder under which to create the query.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project containing the query.\n","willReplaceOnChanges":true},"wiql":{"type":"string","description":"The WIQL (Work Item Query Language) statement. Length 1–32000 characters.\n"}},"requiredInputs":["projectId","wiql"],"stateInputs":{"description":"Input properties used for looking up and filtering Workitemquery resources.\n","properties":{"area":{"type":"string","description":"Root folder for the query. Must be one of `Shared Queries` or `My Queries`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The display name of the query.\n"},"parentId":{"type":"string","description":"The ID of the parent query folder under which to create the query.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project containing the query.\n","willReplaceOnChanges":true},"wiql":{"type":"string","description":"The WIQL (Work Item Query Language) statement. Length 1–32000 characters.\n"}},"type":"object"}},"azuredevops:index/workitemqueryFolder:WorkitemqueryFolder":{"description":"Manages a Work Item Query Folder in Azure DevOps.\n\nFolders allow you to organize queries in a hierarchy beneath either the `Shared Queries` or `My Queries` root folder (area).\nYou must provide exactly one of \u003cspan pulumi-lang-nodejs=\"`area`\" pulumi-lang-dotnet=\"`Area`\" pulumi-lang-go=\"`area`\" pulumi-lang-python=\"`area`\" pulumi-lang-yaml=\"`area`\" pulumi-lang-java=\"`area`\"\u003e`area`\u003c/span\u003e (either `Shared Queries` or `My Queries`) or \u003cspan pulumi-lang-nodejs=\"`parentId`\" pulumi-lang-dotnet=\"`ParentId`\" pulumi-lang-go=\"`parentId`\" pulumi-lang-python=\"`parent_id`\" pulumi-lang-yaml=\"`parentId`\" pulumi-lang-java=\"`parentId`\"\u003e`parent_id`\u003c/span\u003e (an existing folder's ID) when creating a folder.\n\n## Example Usage\n\n### Basic folder under Shared Queries\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst teamFolder = new azuredevops.WorkitemqueryFolder(\"team_folder\", {\n    projectId: example.id,\n    name: \"Team\",\n    area: \"Shared Queries\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nteam_folder = azuredevops.WorkitemqueryFolder(\"team_folder\",\n    project_id=example.id,\n    name=\"Team\",\n    area=\"Shared Queries\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var teamFolder = new AzureDevOps.WorkitemqueryFolder(\"team_folder\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Team\",\n        Area = \"Shared Queries\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemqueryFolder(ctx, \"team_folder\", \u0026azuredevops.WorkitemqueryFolderArgs{\n\t\t\tProjectId: example.ID(),\n\t\t\tName:      pulumi.String(\"Team\"),\n\t\t\tArea:      pulumi.String(\"Shared Queries\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.WorkitemqueryFolder;\nimport com.pulumi.azuredevops.WorkitemqueryFolderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var teamFolder = new WorkitemqueryFolder(\"teamFolder\", WorkitemqueryFolderArgs.builder()\n            .projectId(example.id())\n            .name(\"Team\")\n            .area(\"Shared Queries\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  teamFolder:\n    type: azuredevops:WorkitemqueryFolder\n    name: team_folder\n    properties:\n      projectId: ${example.id}\n      name: Team\n      area: Shared Queries\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Nested folder\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst parent = new azuredevops.WorkitemqueryFolder(\"parent\", {\n    projectId: example.id,\n    name: \"Parent\",\n    area: \"Shared Queries\",\n});\nconst child = new azuredevops.WorkitemqueryFolder(\"child\", {\n    projectId: example.id,\n    name: \"Child\",\n    parentId: parent.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nparent = azuredevops.WorkitemqueryFolder(\"parent\",\n    project_id=example[\"id\"],\n    name=\"Parent\",\n    area=\"Shared Queries\")\nchild = azuredevops.WorkitemqueryFolder(\"child\",\n    project_id=example[\"id\"],\n    name=\"Child\",\n    parent_id=parent.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var parent = new AzureDevOps.WorkitemqueryFolder(\"parent\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Parent\",\n        Area = \"Shared Queries\",\n    });\n\n    var child = new AzureDevOps.WorkitemqueryFolder(\"child\", new()\n    {\n        ProjectId = example.Id,\n        Name = \"Child\",\n        ParentId = parent.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tparent, err := azuredevops.NewWorkitemqueryFolder(ctx, \"parent\", \u0026azuredevops.WorkitemqueryFolderArgs{\n\t\t\tProjectId: pulumi.Any(example.Id),\n\t\t\tName:      pulumi.String(\"Parent\"),\n\t\t\tArea:      pulumi.String(\"Shared Queries\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemqueryFolder(ctx, \"child\", \u0026azuredevops.WorkitemqueryFolderArgs{\n\t\t\tProjectId: pulumi.Any(example.Id),\n\t\t\tName:      pulumi.String(\"Child\"),\n\t\t\tParentId:  parent.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemqueryFolder;\nimport com.pulumi.azuredevops.WorkitemqueryFolderArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var parent = new WorkitemqueryFolder(\"parent\", WorkitemqueryFolderArgs.builder()\n            .projectId(example.id())\n            .name(\"Parent\")\n            .area(\"Shared Queries\")\n            .build());\n\n        var child = new WorkitemqueryFolder(\"child\", WorkitemqueryFolderArgs.builder()\n            .projectId(example.id())\n            .name(\"Child\")\n            .parentId(parent.id())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  parent:\n    type: azuredevops:WorkitemqueryFolder\n    properties:\n      projectId: ${example.id}\n      name: Parent\n      area: Shared Queries\n  child:\n    type: azuredevops:WorkitemqueryFolder\n    properties:\n      projectId: ${example.id}\n      name: Child\n      parentId: ${parent.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps REST API - Work Item Query (Queries)](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/queries?view=azure-devops-rest-7.1)\n\n## PAT Permissions Required\n\n* **Work Items**: Read \u0026 Write\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"area":{"type":"string","description":"Root folder. Must be one of `Shared Queries` or `My Queries`.\n"},"name":{"type":"string","description":"The display name of the folder.\n"},"parentId":{"type":"string","description":"The ID of the parent query folder.\n"},"projectId":{"type":"string","description":"The ID of the Project containing the folder.\n"}},"required":["name","projectId"],"inputProperties":{"area":{"type":"string","description":"Root folder. Must be one of `Shared Queries` or `My Queries`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The display name of the folder.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"The ID of the parent query folder.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project containing the folder.\n","willReplaceOnChanges":true}},"requiredInputs":["projectId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemqueryFolder resources.\n","properties":{"area":{"type":"string","description":"Root folder. Must be one of `Shared Queries` or `My Queries`.\n","willReplaceOnChanges":true},"name":{"type":"string","description":"The display name of the folder.\n","willReplaceOnChanges":true},"parentId":{"type":"string","description":"The ID of the parent query folder.\n","willReplaceOnChanges":true},"projectId":{"type":"string","description":"The ID of the Project containing the folder.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingField:WorkitemtrackingField":{"description":"Manages a work item field in Azure DevOps.\n\n\u003e **Note:** Custom fields are created at the organization level, not the project level. The Azure DevOps API does not support project-scoped custom fields.\n\n## Example Usage\n\n### Basic Field\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingField(\"example\", {\n    name: \"My Custom Field\",\n    referenceName: \"Custom.MyCustomField\",\n    type: \"string\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingField(\"example\",\n    name=\"My Custom Field\",\n    reference_name=\"Custom.MyCustomField\",\n    type=\"string\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingField(\"example\", new()\n    {\n        Name = \"My Custom Field\",\n        ReferenceName = \"Custom.MyCustomField\",\n        Type = \"string\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingField(ctx, \"example\", \u0026azuredevops.WorkitemtrackingFieldArgs{\n\t\t\tName:          pulumi.String(\"My Custom Field\"),\n\t\t\tReferenceName: pulumi.String(\"Custom.MyCustomField\"),\n\t\t\tType:          pulumi.String(\"string\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingField;\nimport com.pulumi.azuredevops.WorkitemtrackingFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingField(\"example\", WorkitemtrackingFieldArgs.builder()\n            .name(\"My Custom Field\")\n            .referenceName(\"Custom.MyCustomField\")\n            .type(\"string\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingField\n    properties:\n      name: My Custom Field\n      referenceName: Custom.MyCustomField\n      type: string\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Restore a Deleted Field\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst restored = new azuredevops.WorkitemtrackingField(\"restored\", {\n    name: \"Restored Field\",\n    referenceName: \"Custom.RestoredField\",\n    type: \"string\",\n    restore: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nrestored = azuredevops.WorkitemtrackingField(\"restored\",\n    name=\"Restored Field\",\n    reference_name=\"Custom.RestoredField\",\n    type=\"string\",\n    restore=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var restored = new AzureDevOps.WorkitemtrackingField(\"restored\", new()\n    {\n        Name = \"Restored Field\",\n        ReferenceName = \"Custom.RestoredField\",\n        Type = \"string\",\n        Restore = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingField(ctx, \"restored\", \u0026azuredevops.WorkitemtrackingFieldArgs{\n\t\t\tName:          pulumi.String(\"Restored Field\"),\n\t\t\tReferenceName: pulumi.String(\"Custom.RestoredField\"),\n\t\t\tType:          pulumi.String(\"string\"),\n\t\t\tRestore:       pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingField;\nimport com.pulumi.azuredevops.WorkitemtrackingFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var restored = new WorkitemtrackingField(\"restored\", WorkitemtrackingFieldArgs.builder()\n            .name(\"Restored Field\")\n            .referenceName(\"Custom.RestoredField\")\n            .type(\"string\")\n            .restore(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  restored:\n    type: azuredevops:WorkitemtrackingField\n    properties:\n      name: Restored Field\n      referenceName: Custom.RestoredField\n      type: string\n      restore: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Fields](https://learn.microsoft.com/en-us/rest/api/azure/devops/wit/fields?view=azure-devops-rest-7.1)\n\n## Import\n\nFields can be imported using the reference name:\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingField:WorkitemtrackingField example Custom.MyCustomField\n```\n\n","properties":{"canSortBy":{"type":"boolean","description":"Indicates whether the field can be sorted in server queries.\n"},"description":{"type":"string","description":"The description of the field. Changing this forces a new field to be created.\n"},"isIdentity":{"type":"boolean","description":"Indicates whether this field is an identity field.\n"},"isLocked":{"type":"boolean","description":"Indicates whether this field is locked for editing. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"isPicklist":{"type":"boolean","description":"Indicates whether this field is a picklist.\n"},"isPicklistSuggested":{"type":"boolean","description":"Indicates whether this field is a suggested picklist. \n\n\u003e **Note:** This field is kept for backwards compatibility, it should never be set as it is determined by the optional list referenced by \u003cspan pulumi-lang-nodejs=\"`picklistId`\" pulumi-lang-dotnet=\"`PicklistId`\" pulumi-lang-go=\"`picklistId`\" pulumi-lang-python=\"`picklist_id`\" pulumi-lang-yaml=\"`picklistId`\" pulumi-lang-java=\"`picklistId`\"\u003e`picklist_id`\u003c/span\u003e\n"},"isQueryable":{"type":"boolean","description":"Indicates whether the field can be queried in the server.\n"},"name":{"type":"string","description":"The friendly name of the field. Changing this forces a new field to be created.\n"},"picklistId":{"type":"string","description":"The identifier of the picklist associated with this field, if applicable. Changing this forces a new field to be created.\n"},"readOnly":{"type":"boolean","description":"Indicates whether the field is read-only. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Changing this forces a new field to be created.\n"},"referenceName":{"type":"string","description":"The reference name of the field (e.g., `Custom.MyField`). Changing this forces a new field to be created.\n"},"restore":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSet to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to restore a previously deleted field instead of creating a new one. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource will attempt to restore the field with the specified \u003cspan pulumi-lang-nodejs=\"`referenceName`\" pulumi-lang-dotnet=\"`ReferenceName`\" pulumi-lang-go=\"`referenceName`\" pulumi-lang-python=\"`reference_name`\" pulumi-lang-yaml=\"`referenceName`\" pulumi-lang-java=\"`referenceName`\"\u003e`reference_name`\u003c/span\u003e.\n","secret":true},"supportedOperations":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingFieldSupportedOperation:WorkitemtrackingFieldSupportedOperation"},"description":"The supported operations on this field. A \u003cspan pulumi-lang-nodejs=\"`supportedOperations`\" pulumi-lang-dotnet=\"`SupportedOperations`\" pulumi-lang-go=\"`supportedOperations`\" pulumi-lang-python=\"`supported_operations`\" pulumi-lang-yaml=\"`supportedOperations`\" pulumi-lang-java=\"`supportedOperations`\"\u003e`supported_operations`\u003c/span\u003e block as defined below.\n"},"type":{"type":"string","description":"The type of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e, `dateTime`, `plainText`, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, `treePath`, \u003cspan pulumi-lang-nodejs=\"`history`\" pulumi-lang-dotnet=\"`History`\" pulumi-lang-go=\"`history`\" pulumi-lang-python=\"`history`\" pulumi-lang-yaml=\"`history`\" pulumi-lang-java=\"`history`\"\u003e`history`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`double`\" pulumi-lang-dotnet=\"`Double`\" pulumi-lang-go=\"`double`\" pulumi-lang-python=\"`double`\" pulumi-lang-yaml=\"`double`\" pulumi-lang-java=\"`double`\"\u003e`double`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`guid`\" pulumi-lang-dotnet=\"`Guid`\" pulumi-lang-go=\"`guid`\" pulumi-lang-python=\"`guid`\" pulumi-lang-yaml=\"`guid`\" pulumi-lang-java=\"`guid`\"\u003e`guid`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`boolean`\" pulumi-lang-dotnet=\"`Boolean`\" pulumi-lang-go=\"`boolean`\" pulumi-lang-python=\"`boolean`\" pulumi-lang-yaml=\"`boolean`\" pulumi-lang-java=\"`boolean`\"\u003e`boolean`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\"\u003e`identity`\u003c/span\u003e. Changing this forces a new field to be created.\n"},"url":{"type":"string","description":"The URL of the field resource.\n"},"usage":{"type":"string","description":"The usage of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, `workItem`, `workItemLink`, \u003cspan pulumi-lang-nodejs=\"`tree`\" pulumi-lang-dotnet=\"`Tree`\" pulumi-lang-go=\"`tree`\" pulumi-lang-python=\"`tree`\" pulumi-lang-yaml=\"`tree`\" pulumi-lang-java=\"`tree`\"\u003e`tree`\u003c/span\u003e, `workItemTypeExtension`. Default: `workItem`. Changing this forces a new field to be created.\n"}},"required":["canSortBy","isIdentity","isPicklist","isPicklistSuggested","isQueryable","name","referenceName","supportedOperations","type","url"],"inputProperties":{"description":{"type":"string","description":"The description of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"isLocked":{"type":"boolean","description":"Indicates whether this field is locked for editing. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"isPicklistSuggested":{"type":"boolean","description":"Indicates whether this field is a suggested picklist. \n\n\u003e **Note:** This field is kept for backwards compatibility, it should never be set as it is determined by the optional list referenced by \u003cspan pulumi-lang-nodejs=\"`picklistId`\" pulumi-lang-dotnet=\"`PicklistId`\" pulumi-lang-go=\"`picklistId`\" pulumi-lang-python=\"`picklist_id`\" pulumi-lang-yaml=\"`picklistId`\" pulumi-lang-java=\"`picklistId`\"\u003e`picklist_id`\u003c/span\u003e\n"},"name":{"type":"string","description":"The friendly name of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"picklistId":{"type":"string","description":"The identifier of the picklist associated with this field, if applicable. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"Indicates whether the field is read-only. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"referenceName":{"type":"string","description":"The reference name of the field (e.g., `Custom.MyField`). Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"restore":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSet to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to restore a previously deleted field instead of creating a new one. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource will attempt to restore the field with the specified \u003cspan pulumi-lang-nodejs=\"`referenceName`\" pulumi-lang-dotnet=\"`ReferenceName`\" pulumi-lang-go=\"`referenceName`\" pulumi-lang-python=\"`reference_name`\" pulumi-lang-yaml=\"`referenceName`\" pulumi-lang-java=\"`referenceName`\"\u003e`reference_name`\u003c/span\u003e.\n","secret":true},"type":{"type":"string","description":"The type of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e, `dateTime`, `plainText`, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, `treePath`, \u003cspan pulumi-lang-nodejs=\"`history`\" pulumi-lang-dotnet=\"`History`\" pulumi-lang-go=\"`history`\" pulumi-lang-python=\"`history`\" pulumi-lang-yaml=\"`history`\" pulumi-lang-java=\"`history`\"\u003e`history`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`double`\" pulumi-lang-dotnet=\"`Double`\" pulumi-lang-go=\"`double`\" pulumi-lang-python=\"`double`\" pulumi-lang-yaml=\"`double`\" pulumi-lang-java=\"`double`\"\u003e`double`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`guid`\" pulumi-lang-dotnet=\"`Guid`\" pulumi-lang-go=\"`guid`\" pulumi-lang-python=\"`guid`\" pulumi-lang-yaml=\"`guid`\" pulumi-lang-java=\"`guid`\"\u003e`guid`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`boolean`\" pulumi-lang-dotnet=\"`Boolean`\" pulumi-lang-go=\"`boolean`\" pulumi-lang-python=\"`boolean`\" pulumi-lang-yaml=\"`boolean`\" pulumi-lang-java=\"`boolean`\"\u003e`boolean`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\"\u003e`identity`\u003c/span\u003e. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"usage":{"type":"string","description":"The usage of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, `workItem`, `workItemLink`, \u003cspan pulumi-lang-nodejs=\"`tree`\" pulumi-lang-dotnet=\"`Tree`\" pulumi-lang-go=\"`tree`\" pulumi-lang-python=\"`tree`\" pulumi-lang-yaml=\"`tree`\" pulumi-lang-java=\"`tree`\"\u003e`tree`\u003c/span\u003e, `workItemTypeExtension`. Default: `workItem`. Changing this forces a new field to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["referenceName","type"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingField resources.\n","properties":{"canSortBy":{"type":"boolean","description":"Indicates whether the field can be sorted in server queries.\n"},"description":{"type":"string","description":"The description of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"isIdentity":{"type":"boolean","description":"Indicates whether this field is an identity field.\n"},"isLocked":{"type":"boolean","description":"Indicates whether this field is locked for editing. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"isPicklist":{"type":"boolean","description":"Indicates whether this field is a picklist.\n"},"isPicklistSuggested":{"type":"boolean","description":"Indicates whether this field is a suggested picklist. \n\n\u003e **Note:** This field is kept for backwards compatibility, it should never be set as it is determined by the optional list referenced by \u003cspan pulumi-lang-nodejs=\"`picklistId`\" pulumi-lang-dotnet=\"`PicklistId`\" pulumi-lang-go=\"`picklistId`\" pulumi-lang-python=\"`picklist_id`\" pulumi-lang-yaml=\"`picklistId`\" pulumi-lang-java=\"`picklistId`\"\u003e`picklist_id`\u003c/span\u003e\n"},"isQueryable":{"type":"boolean","description":"Indicates whether the field can be queried in the server.\n"},"name":{"type":"string","description":"The friendly name of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"picklistId":{"type":"string","description":"The identifier of the picklist associated with this field, if applicable. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"Indicates whether the field is read-only. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"referenceName":{"type":"string","description":"The reference name of the field (e.g., `Custom.MyField`). Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"restore":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nSet to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e to restore a previously deleted field instead of creating a new one. When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the resource will attempt to restore the field with the specified \u003cspan pulumi-lang-nodejs=\"`referenceName`\" pulumi-lang-dotnet=\"`ReferenceName`\" pulumi-lang-go=\"`referenceName`\" pulumi-lang-python=\"`reference_name`\" pulumi-lang-yaml=\"`referenceName`\" pulumi-lang-java=\"`referenceName`\"\u003e`reference_name`\u003c/span\u003e.\n","secret":true},"supportedOperations":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingFieldSupportedOperation:WorkitemtrackingFieldSupportedOperation"},"description":"The supported operations on this field. A \u003cspan pulumi-lang-nodejs=\"`supportedOperations`\" pulumi-lang-dotnet=\"`SupportedOperations`\" pulumi-lang-go=\"`supportedOperations`\" pulumi-lang-python=\"`supported_operations`\" pulumi-lang-yaml=\"`supportedOperations`\" pulumi-lang-java=\"`supportedOperations`\"\u003e`supported_operations`\u003c/span\u003e block as defined below.\n"},"type":{"type":"string","description":"The type of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e, `dateTime`, `plainText`, \u003cspan pulumi-lang-nodejs=\"`html`\" pulumi-lang-dotnet=\"`Html`\" pulumi-lang-go=\"`html`\" pulumi-lang-python=\"`html`\" pulumi-lang-yaml=\"`html`\" pulumi-lang-java=\"`html`\"\u003e`html`\u003c/span\u003e, `treePath`, \u003cspan pulumi-lang-nodejs=\"`history`\" pulumi-lang-dotnet=\"`History`\" pulumi-lang-go=\"`history`\" pulumi-lang-python=\"`history`\" pulumi-lang-yaml=\"`history`\" pulumi-lang-java=\"`history`\"\u003e`history`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`double`\" pulumi-lang-dotnet=\"`Double`\" pulumi-lang-go=\"`double`\" pulumi-lang-python=\"`double`\" pulumi-lang-yaml=\"`double`\" pulumi-lang-java=\"`double`\"\u003e`double`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`guid`\" pulumi-lang-dotnet=\"`Guid`\" pulumi-lang-go=\"`guid`\" pulumi-lang-python=\"`guid`\" pulumi-lang-yaml=\"`guid`\" pulumi-lang-java=\"`guid`\"\u003e`guid`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`boolean`\" pulumi-lang-dotnet=\"`Boolean`\" pulumi-lang-go=\"`boolean`\" pulumi-lang-python=\"`boolean`\" pulumi-lang-yaml=\"`boolean`\" pulumi-lang-java=\"`boolean`\"\u003e`boolean`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`identity`\" pulumi-lang-dotnet=\"`Identity`\" pulumi-lang-go=\"`identity`\" pulumi-lang-python=\"`identity`\" pulumi-lang-yaml=\"`identity`\" pulumi-lang-java=\"`identity`\"\u003e`identity`\u003c/span\u003e. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"The URL of the field resource.\n"},"usage":{"type":"string","description":"The usage of the field. Possible values: \u003cspan pulumi-lang-nodejs=\"`none`\" pulumi-lang-dotnet=\"`None`\" pulumi-lang-go=\"`none`\" pulumi-lang-python=\"`none`\" pulumi-lang-yaml=\"`none`\" pulumi-lang-java=\"`none`\"\u003e`none`\u003c/span\u003e, `workItem`, `workItemLink`, \u003cspan pulumi-lang-nodejs=\"`tree`\" pulumi-lang-dotnet=\"`Tree`\" pulumi-lang-go=\"`tree`\" pulumi-lang-python=\"`tree`\" pulumi-lang-yaml=\"`tree`\" pulumi-lang-java=\"`tree`\"\u003e`tree`\u003c/span\u003e, `workItemTypeExtension`. Default: `workItem`. Changing this forces a new field to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessControl:WorkitemtrackingprocessControl":{"description":"Manages a control within a group for a work item type. Controls can be field controls or contribution controls (extensions).\n\n## Example Usage\n\n### Basic Field Control\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessGroup = new azuredevops.WorkitemtrackingprocessGroup(\"example\", {\n    processId: example.id,\n    workItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].id),\n    sectionId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].sections?.[0]?.id),\n    label: \"Custom Group\",\n});\nconst exampleWorkitemtrackingprocessControl = new azuredevops.WorkitemtrackingprocessControl(\"example\", {\n    processId: example.id,\n    workItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    groupId: exampleWorkitemtrackingprocessGroup.id,\n    controlId: \"System.Title\",\n    label: \"Title\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_group = azuredevops.WorkitemtrackingprocessGroup(\"example\",\n    process_id=example.id,\n    work_item_type_reference_name=example_workitemtrackingprocess_workitemtype.reference_name,\n    page_id=example_workitemtrackingprocess_workitemtype.pages[0].id,\n    section_id=example_workitemtrackingprocess_workitemtype.pages[0].sections[0].id,\n    label=\"Custom Group\")\nexample_workitemtrackingprocess_control = azuredevops.WorkitemtrackingprocessControl(\"example\",\n    process_id=example.id,\n    work_item_type_reference_name=example_workitemtrackingprocess_workitemtype.reference_name,\n    group_id=example_workitemtrackingprocess_group.id,\n    control_id=\"System.Title\",\n    label=\"Title\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessGroup = new AzureDevOps.WorkitemtrackingprocessGroup(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeReferenceName = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Id),\n        SectionId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Sections[0]?.Id),\n        Label = \"Custom Group\",\n    });\n\n    var exampleWorkitemtrackingprocessControl = new AzureDevOps.WorkitemtrackingprocessControl(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeReferenceName = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        GroupId = exampleWorkitemtrackingprocessGroup.Id,\n        ControlId = \"System.Title\",\n        Label = \"Title\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessGroup, err := azuredevops.NewWorkitemtrackingprocessGroup(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessGroupArgs{\n\t\t\tProcessId:                 example.ID(),\n\t\t\tWorkItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tPageId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tSectionId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Sections[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tLabel: pulumi.String(\"Custom Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessControl(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessControlArgs{\n\t\t\tProcessId:                 example.ID(),\n\t\t\tWorkItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tGroupId:                   exampleWorkitemtrackingprocessGroup.ID(),\n\t\t\tControlId:                 pulumi.String(\"System.Title\"),\n\t\t\tLabel:                     pulumi.String(\"Title\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroup;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroupArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessControl;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessGroup = new WorkitemtrackingprocessGroup(\"exampleWorkitemtrackingprocessGroup\", WorkitemtrackingprocessGroupArgs.builder()\n            .processId(example.id())\n            .workItemTypeReferenceName(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].id()))\n            .sectionId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].sections()[0].id()))\n            .label(\"Custom Group\")\n            .build());\n\n        var exampleWorkitemtrackingprocessControl = new WorkitemtrackingprocessControl(\"exampleWorkitemtrackingprocessControl\", WorkitemtrackingprocessControlArgs.builder()\n            .processId(example.id())\n            .workItemTypeReferenceName(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .groupId(exampleWorkitemtrackingprocessGroup.id())\n            .controlId(\"System.Title\")\n            .label(\"Title\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessGroup:\n    type: azuredevops:WorkitemtrackingprocessGroup\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeReferenceName: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      sectionId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id}\n      label: Custom Group\n  exampleWorkitemtrackingprocessControl:\n    type: azuredevops:WorkitemtrackingprocessControl\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeReferenceName: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      groupId: ${exampleWorkitemtrackingprocessGroup.id}\n      controlId: System.Title\n      label: Title\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Contribution Control (Extension)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessGroup = new azuredevops.WorkitemtrackingprocessGroup(\"example\", {\n    processId: example.id,\n    workItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].id),\n    sectionId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].sections?.[0]?.id),\n    label: \"Custom Group\",\n});\nconst exampleWorkitemtrackingprocessControl = new azuredevops.WorkitemtrackingprocessControl(\"example\", {\n    processId: example.id,\n    workItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    groupId: exampleWorkitemtrackingprocessGroup.id,\n    controlId: \"MultiValueControl\",\n    isContribution: true,\n    contribution: {\n        contributionId: \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n        height: 50,\n        inputs: {\n            FieldName: \"System.Tags\",\n            Values: \"Option1;Option2;Option3\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_group = azuredevops.WorkitemtrackingprocessGroup(\"example\",\n    process_id=example.id,\n    work_item_type_reference_name=example_workitemtrackingprocess_workitemtype.reference_name,\n    page_id=example_workitemtrackingprocess_workitemtype.pages[0].id,\n    section_id=example_workitemtrackingprocess_workitemtype.pages[0].sections[0].id,\n    label=\"Custom Group\")\nexample_workitemtrackingprocess_control = azuredevops.WorkitemtrackingprocessControl(\"example\",\n    process_id=example.id,\n    work_item_type_reference_name=example_workitemtrackingprocess_workitemtype.reference_name,\n    group_id=example_workitemtrackingprocess_group.id,\n    control_id=\"MultiValueControl\",\n    is_contribution=True,\n    contribution={\n        \"contribution_id\": \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n        \"height\": 50,\n        \"inputs\": {\n            \"FieldName\": \"System.Tags\",\n            \"Values\": \"Option1;Option2;Option3\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessGroup = new AzureDevOps.WorkitemtrackingprocessGroup(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeReferenceName = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Id),\n        SectionId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Sections[0]?.Id),\n        Label = \"Custom Group\",\n    });\n\n    var exampleWorkitemtrackingprocessControl = new AzureDevOps.WorkitemtrackingprocessControl(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeReferenceName = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        GroupId = exampleWorkitemtrackingprocessGroup.Id,\n        ControlId = \"MultiValueControl\",\n        IsContribution = true,\n        Contribution = new AzureDevOps.Inputs.WorkitemtrackingprocessControlContributionArgs\n        {\n            ContributionId = \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n            Height = 50,\n            Inputs = \n            {\n                { \"FieldName\", \"System.Tags\" },\n                { \"Values\", \"Option1;Option2;Option3\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessGroup, err := azuredevops.NewWorkitemtrackingprocessGroup(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessGroupArgs{\n\t\t\tProcessId:                 example.ID(),\n\t\t\tWorkItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tPageId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tSectionId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Sections[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tLabel: pulumi.String(\"Custom Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessControl(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessControlArgs{\n\t\t\tProcessId:                 example.ID(),\n\t\t\tWorkItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tGroupId:                   exampleWorkitemtrackingprocessGroup.ID(),\n\t\t\tControlId:                 pulumi.String(\"MultiValueControl\"),\n\t\t\tIsContribution:            pulumi.Bool(true),\n\t\t\tContribution: \u0026azuredevops.WorkitemtrackingprocessControlContributionArgs{\n\t\t\t\tContributionId: pulumi.String(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\"),\n\t\t\t\tHeight:         pulumi.Int(50),\n\t\t\t\tInputs: pulumi.StringMap{\n\t\t\t\t\t\"FieldName\": pulumi.String(\"System.Tags\"),\n\t\t\t\t\t\"Values\":    pulumi.String(\"Option1;Option2;Option3\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroup;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroupArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessControl;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessControlArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessControlContributionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessGroup = new WorkitemtrackingprocessGroup(\"exampleWorkitemtrackingprocessGroup\", WorkitemtrackingprocessGroupArgs.builder()\n            .processId(example.id())\n            .workItemTypeReferenceName(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].id()))\n            .sectionId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].sections()[0].id()))\n            .label(\"Custom Group\")\n            .build());\n\n        var exampleWorkitemtrackingprocessControl = new WorkitemtrackingprocessControl(\"exampleWorkitemtrackingprocessControl\", WorkitemtrackingprocessControlArgs.builder()\n            .processId(example.id())\n            .workItemTypeReferenceName(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .groupId(exampleWorkitemtrackingprocessGroup.id())\n            .controlId(\"MultiValueControl\")\n            .isContribution(true)\n            .contribution(WorkitemtrackingprocessControlContributionArgs.builder()\n                .contributionId(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\")\n                .height(50)\n                .inputs(Map.ofEntries(\n                    Map.entry(\"FieldName\", \"System.Tags\"),\n                    Map.entry(\"Values\", \"Option1;Option2;Option3\")\n                ))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessGroup:\n    type: azuredevops:WorkitemtrackingprocessGroup\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeReferenceName: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      sectionId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id}\n      label: Custom Group\n  exampleWorkitemtrackingprocessControl:\n    type: azuredevops:WorkitemtrackingprocessControl\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeReferenceName: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      groupId: ${exampleWorkitemtrackingprocessGroup.id}\n      controlId: MultiValueControl\n      isContribution: true\n      contribution:\n        contributionId: ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\n        height: 50\n        inputs:\n          FieldName: System.Tags\n          Values: Option1;Option2;Option3\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Controls](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/controls?view=azure-devops-rest-7.1)\n\n## Import\n\nControls can be imported using the complete resource id `process_id/work_item_type_reference_name/group_id/control_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessControl:WorkitemtrackingprocessControl example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/group-id/System.Title\n```\n\n","properties":{"contribution":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessControlContribution:WorkitemtrackingprocessControlContribution","description":"Contribution configuration for extension controls. A \u003cspan pulumi-lang-nodejs=\"`contribution`\" pulumi-lang-dotnet=\"`Contribution`\" pulumi-lang-go=\"`contribution`\" pulumi-lang-python=\"`contribution`\" pulumi-lang-yaml=\"`contribution`\" pulumi-lang-java=\"`contribution`\"\u003e`contribution`\u003c/span\u003e block as defined below.\n"},"controlId":{"type":"string","description":"The ID for the control. For field controls, this is the field reference name. Changing this forces a new control to be created.\n"},"controlType":{"type":"string","description":"The type of the control (e.g., FieldControl, HtmlFieldControl, DateTimeControl).\n"},"groupId":{"type":"string","description":"The ID of the group to add the control to. Changing this moves the control to the new group.\n"},"inherited":{"type":"boolean","description":"A value indicating whether this layout node has been inherited from a parent layout.\n"},"isContribution":{"type":"boolean","description":"A value indicating if the control is a contribution (extension) control. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"label":{"type":"string","description":"Label for the control.\n"},"metadata":{"type":"string","description":"Inner text of the control.\n"},"order":{"type":"integer","description":"Order in which the control should appear in its group.\n"},"overridden":{"type":"boolean","description":"A value indicating whether this layout node has been overridden by a child layout.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new control to be created.\n"},"readOnly":{"type":"boolean","description":"A value indicating if the control is readonly. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"visible":{"type":"boolean","description":"A value indicating if the control should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"watermark":{"type":"string","description":"Watermark text for the textbox.\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new control to be created.\n"}},"required":["controlId","controlType","groupId","inherited","label","metadata","order","overridden","processId","watermark","workItemTypeReferenceName"],"inputProperties":{"contribution":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessControlContribution:WorkitemtrackingprocessControlContribution","description":"Contribution configuration for extension controls. A \u003cspan pulumi-lang-nodejs=\"`contribution`\" pulumi-lang-dotnet=\"`Contribution`\" pulumi-lang-go=\"`contribution`\" pulumi-lang-python=\"`contribution`\" pulumi-lang-yaml=\"`contribution`\" pulumi-lang-java=\"`contribution`\"\u003e`contribution`\u003c/span\u003e block as defined below.\n"},"controlId":{"type":"string","description":"The ID for the control. For field controls, this is the field reference name. Changing this forces a new control to be created.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the group to add the control to. Changing this moves the control to the new group.\n"},"isContribution":{"type":"boolean","description":"A value indicating if the control is a contribution (extension) control. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"label":{"type":"string","description":"Label for the control.\n"},"metadata":{"type":"string","description":"Inner text of the control.\n"},"order":{"type":"integer","description":"Order in which the control should appear in its group.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new control to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"A value indicating if the control is readonly. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"visible":{"type":"boolean","description":"A value indicating if the control should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"watermark":{"type":"string","description":"Watermark text for the textbox.\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new control to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["controlId","groupId","processId","workItemTypeReferenceName"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessControl resources.\n","properties":{"contribution":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessControlContribution:WorkitemtrackingprocessControlContribution","description":"Contribution configuration for extension controls. A \u003cspan pulumi-lang-nodejs=\"`contribution`\" pulumi-lang-dotnet=\"`Contribution`\" pulumi-lang-go=\"`contribution`\" pulumi-lang-python=\"`contribution`\" pulumi-lang-yaml=\"`contribution`\" pulumi-lang-java=\"`contribution`\"\u003e`contribution`\u003c/span\u003e block as defined below.\n"},"controlId":{"type":"string","description":"The ID for the control. For field controls, this is the field reference name. Changing this forces a new control to be created.\n","willReplaceOnChanges":true},"controlType":{"type":"string","description":"The type of the control (e.g., FieldControl, HtmlFieldControl, DateTimeControl).\n"},"groupId":{"type":"string","description":"The ID of the group to add the control to. Changing this moves the control to the new group.\n"},"inherited":{"type":"boolean","description":"A value indicating whether this layout node has been inherited from a parent layout.\n"},"isContribution":{"type":"boolean","description":"A value indicating if the control is a contribution (extension) control. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"label":{"type":"string","description":"Label for the control.\n"},"metadata":{"type":"string","description":"Inner text of the control.\n"},"order":{"type":"integer","description":"Order in which the control should appear in its group.\n"},"overridden":{"type":"boolean","description":"A value indicating whether this layout node has been overridden by a child layout.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new control to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"A value indicating if the control is readonly. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e\n"},"visible":{"type":"boolean","description":"A value indicating if the control should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"watermark":{"type":"string","description":"Watermark text for the textbox.\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new control to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessField:WorkitemtrackingprocessField":{"description":"Manages a field for a work item type in a process. This resource adds an existing field to a work item type and allows configuring field-specific settings like default value, required, and read-only status.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n    description: \"Example work item type\",\n});\nconst exampleWorkitemtrackingField = new azuredevops.WorkitemtrackingField(\"example\", {\n    name: \"Priority Level\",\n    referenceName: \"Custom.PriorityLevel\",\n    type: \"string\",\n});\nconst exampleWorkitemtrackingprocessField = new azuredevops.WorkitemtrackingprocessField(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.id,\n    fieldId: exampleWorkitemtrackingField.id,\n    required: true,\n    defaultValue: \"Medium\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\",\n    description=\"Example work item type\")\nexample_workitemtracking_field = azuredevops.WorkitemtrackingField(\"example\",\n    name=\"Priority Level\",\n    reference_name=\"Custom.PriorityLevel\",\n    type=\"string\")\nexample_workitemtrackingprocess_field = azuredevops.WorkitemtrackingprocessField(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.id,\n    field_id=example_workitemtracking_field.id,\n    required=True,\n    default_value=\"Medium\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n        Description = \"Example work item type\",\n    });\n\n    var exampleWorkitemtrackingField = new AzureDevOps.WorkitemtrackingField(\"example\", new()\n    {\n        Name = \"Priority Level\",\n        ReferenceName = \"Custom.PriorityLevel\",\n        Type = \"string\",\n    });\n\n    var exampleWorkitemtrackingprocessField = new AzureDevOps.WorkitemtrackingprocessField(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.Id,\n        FieldId = exampleWorkitemtrackingField.Id,\n        Required = true,\n        DefaultValue = \"Medium\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId:   example.ID(),\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"Example work item type\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingField, err := azuredevops.NewWorkitemtrackingField(ctx, \"example\", \u0026azuredevops.WorkitemtrackingFieldArgs{\n\t\t\tName:          pulumi.String(\"Priority Level\"),\n\t\t\tReferenceName: pulumi.String(\"Custom.PriorityLevel\"),\n\t\t\tType:          pulumi.String(\"string\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessField(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessFieldArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ID(),\n\t\t\tFieldId:        exampleWorkitemtrackingField.ID(),\n\t\t\tRequired:       pulumi.Bool(true),\n\t\t\tDefaultValue:   pulumi.String(\"Medium\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingField;\nimport com.pulumi.azuredevops.WorkitemtrackingFieldArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessField;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessFieldArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .description(\"Example work item type\")\n            .build());\n\n        var exampleWorkitemtrackingField = new WorkitemtrackingField(\"exampleWorkitemtrackingField\", WorkitemtrackingFieldArgs.builder()\n            .name(\"Priority Level\")\n            .referenceName(\"Custom.PriorityLevel\")\n            .type(\"string\")\n            .build());\n\n        var exampleWorkitemtrackingprocessField = new WorkitemtrackingprocessField(\"exampleWorkitemtrackingprocessField\", WorkitemtrackingprocessFieldArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.id())\n            .fieldId(exampleWorkitemtrackingField.id())\n            .required(true)\n            .defaultValue(\"Medium\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n      description: Example work item type\n  exampleWorkitemtrackingField:\n    type: azuredevops:WorkitemtrackingField\n    name: example\n    properties:\n      name: Priority Level\n      referenceName: Custom.PriorityLevel\n      type: string\n  exampleWorkitemtrackingprocessField:\n    type: azuredevops:WorkitemtrackingprocessField\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.id}\n      fieldId: ${exampleWorkitemtrackingField.id}\n      required: true\n      defaultValue: Medium\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Fields](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/fields?view=azure-devops-rest-7.1)\n\n## Import\n\nFields can be imported using the complete resource id `process_id/work_item_type_id/field_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessField:WorkitemtrackingprocessField example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/Custom.MyField\n```\n\n","properties":{"allowGroups":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nAllow setting field value to a group identity. Only applies to identity fields.  \n**Note**: Due to limitations in the downstream API this field is WriteOnly, meaning this field will not trigger a plan difference. Change another field alongside this field in order to trigger a plan difference.\n","secret":true},"customization":{"type":"string","description":"Indicates the type of customization on this work item. Possible values are \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inherited`\" pulumi-lang-dotnet=\"`Inherited`\" pulumi-lang-go=\"`inherited`\" pulumi-lang-python=\"`inherited`\" pulumi-lang-yaml=\"`inherited`\" pulumi-lang-java=\"`inherited`\"\u003e`inherited`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"defaultValue":{"type":"string","description":"The default value of the field.\n"},"fieldId":{"type":"string","description":"The ID (reference name) of the field. Changing this forces a new field to be created.\n"},"isLocked":{"type":"boolean","description":"Indicates whether the field definition is locked for editing.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new field to be created.\n"},"readOnly":{"type":"boolean","description":"If true, the field cannot be edited. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"required":{"type":"boolean","description":"If true, the field cannot be empty. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the field resource.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new field to be created.\n"}},"required":["customization","fieldId","isLocked","processId","url","workItemTypeId"],"inputProperties":{"allowGroups":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nAllow setting field value to a group identity. Only applies to identity fields.  \n**Note**: Due to limitations in the downstream API this field is WriteOnly, meaning this field will not trigger a plan difference. Change another field alongside this field in order to trigger a plan difference.\n","secret":true},"defaultValue":{"type":"string","description":"The default value of the field.\n"},"fieldId":{"type":"string","description":"The ID (reference name) of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"If true, the field cannot be edited. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"required":{"type":"boolean","description":"If true, the field cannot be empty. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new field to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["fieldId","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessField resources.\n","properties":{"allowGroups":{"type":"boolean","description":"**NOTE:** This field is write-only and its value will not be updated in state as part of read operations.\nAllow setting field value to a group identity. Only applies to identity fields.  \n**Note**: Due to limitations in the downstream API this field is WriteOnly, meaning this field will not trigger a plan difference. Change another field alongside this field in order to trigger a plan difference.\n","secret":true},"customization":{"type":"string","description":"Indicates the type of customization on this work item. Possible values are \u003cspan pulumi-lang-nodejs=\"`system`\" pulumi-lang-dotnet=\"`System`\" pulumi-lang-go=\"`system`\" pulumi-lang-python=\"`system`\" pulumi-lang-yaml=\"`system`\" pulumi-lang-java=\"`system`\"\u003e`system`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`inherited`\" pulumi-lang-dotnet=\"`Inherited`\" pulumi-lang-go=\"`inherited`\" pulumi-lang-python=\"`inherited`\" pulumi-lang-yaml=\"`inherited`\" pulumi-lang-java=\"`inherited`\"\u003e`inherited`\u003c/span\u003e, or \u003cspan pulumi-lang-nodejs=\"`custom`\" pulumi-lang-dotnet=\"`Custom`\" pulumi-lang-go=\"`custom`\" pulumi-lang-python=\"`custom`\" pulumi-lang-yaml=\"`custom`\" pulumi-lang-java=\"`custom`\"\u003e`custom`\u003c/span\u003e.\n"},"defaultValue":{"type":"string","description":"The default value of the field.\n"},"fieldId":{"type":"string","description":"The ID (reference name) of the field. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"isLocked":{"type":"boolean","description":"Indicates whether the field definition is locked for editing.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new field to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"If true, the field cannot be edited. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"required":{"type":"boolean","description":"If true, the field cannot be empty. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"url":{"type":"string","description":"The URL of the field resource.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new field to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessGroup:WorkitemtrackingprocessGroup":{"description":"Manages a group within a page and section for a work item type.\n\n## Example Usage\n\n### Basic Group\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n    description: \"Example work item type\",\n    color: \"#FF5733\",\n    icon: \"icon_clipboard\",\n});\nconst exampleWorkitemtrackingprocessGroup = new azuredevops.WorkitemtrackingprocessGroup(\"example\", {\n    processId: example.id,\n    workItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].id),\n    sectionId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].sections?.[0]?.id),\n    label: \"Custom Group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\",\n    description=\"Example work item type\",\n    color=\"#FF5733\",\n    icon=\"icon_clipboard\")\nexample_workitemtrackingprocess_group = azuredevops.WorkitemtrackingprocessGroup(\"example\",\n    process_id=example.id,\n    work_item_type_reference_name=example_workitemtrackingprocess_workitemtype.reference_name,\n    page_id=example_workitemtrackingprocess_workitemtype.pages[0].id,\n    section_id=example_workitemtrackingprocess_workitemtype.pages[0].sections[0].id,\n    label=\"Custom Group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n        Description = \"Example work item type\",\n        Color = \"#FF5733\",\n        Icon = \"icon_clipboard\",\n    });\n\n    var exampleWorkitemtrackingprocessGroup = new AzureDevOps.WorkitemtrackingprocessGroup(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeReferenceName = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Id),\n        SectionId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Sections[0]?.Id),\n        Label = \"Custom Group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId:   example.ID(),\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"Example work item type\"),\n\t\t\tColor:       pulumi.String(\"#FF5733\"),\n\t\t\tIcon:        pulumi.String(\"icon_clipboard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessGroup(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessGroupArgs{\n\t\t\tProcessId:                 example.ID(),\n\t\t\tWorkItemTypeReferenceName: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tPageId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tSectionId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Sections[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tLabel: pulumi.String(\"Custom Group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroup;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .description(\"Example work item type\")\n            .color(\"#FF5733\")\n            .icon(\"icon_clipboard\")\n            .build());\n\n        var exampleWorkitemtrackingprocessGroup = new WorkitemtrackingprocessGroup(\"exampleWorkitemtrackingprocessGroup\", WorkitemtrackingprocessGroupArgs.builder()\n            .processId(example.id())\n            .workItemTypeReferenceName(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].id()))\n            .sectionId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].sections()[0].id()))\n            .label(\"Custom Group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n      description: Example work item type\n      color: '#FF5733'\n      icon: icon_clipboard\n  exampleWorkitemtrackingprocessGroup:\n    type: azuredevops:WorkitemtrackingprocessGroup\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeReferenceName: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      sectionId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id}\n      label: Custom Group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Group with Controls\n\nThis example creates a group with multiple controls, including an HTML field control (System.Description) which can only be added when creating the group.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessGroup(\"example\", {\n    processId: exampleAzuredevopsWorkitemtrackingprocessProcess.id,\n    workItemTypeReferenceName: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].id,\n    sectionId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id,\n    label: \"Details Group\",\n    controls: [\n        {\n            id: \"System.Description\",\n            label: \"Description\",\n        },\n        {\n            id: \"System.Title\",\n            label: \"Title\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessGroup(\"example\",\n    process_id=example_azuredevops_workitemtrackingprocess_process[\"id\"],\n    work_item_type_reference_name=example_azuredevops_workitemtrackingprocess_workitemtype[\"referenceName\"],\n    page_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"pages\"][0][\"id\"],\n    section_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"pages\"][0][\"sections\"][0][\"id\"],\n    label=\"Details Group\",\n    controls=[\n        {\n            \"id\": \"System.Description\",\n            \"label\": \"Description\",\n        },\n        {\n            \"id\": \"System.Title\",\n            \"label\": \"Title\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessGroup(\"example\", new()\n    {\n        ProcessId = exampleAzuredevopsWorkitemtrackingprocessProcess.Id,\n        WorkItemTypeReferenceName = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Id,\n        SectionId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Sections[0].Id,\n        Label = \"Details Group\",\n        Controls = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessGroupControlArgs\n            {\n                Id = \"System.Description\",\n                Label = \"Description\",\n            },\n            new AzureDevOps.Inputs.WorkitemtrackingprocessGroupControlArgs\n            {\n                Id = \"System.Title\",\n                Label = \"Title\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingprocessGroup(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessGroupArgs{\n\t\t\tProcessId:                 pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessProcess.Id),\n\t\t\tWorkItemTypeReferenceName: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName),\n\t\t\tPageId:                    pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Id),\n\t\t\tSectionId:                 pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Sections[0].Id),\n\t\t\tLabel:                     pulumi.String(\"Details Group\"),\n\t\t\tControls: azuredevops.WorkitemtrackingprocessGroupControlArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessGroupControlArgs{\n\t\t\t\t\tId:    pulumi.String(\"System.Description\"),\n\t\t\t\t\tLabel: pulumi.String(\"Description\"),\n\t\t\t\t},\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessGroupControlArgs{\n\t\t\t\t\tId:    pulumi.String(\"System.Title\"),\n\t\t\t\t\tLabel: pulumi.String(\"Title\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroup;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroupArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessGroupControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessGroup(\"example\", WorkitemtrackingprocessGroupArgs.builder()\n            .processId(exampleAzuredevopsWorkitemtrackingprocessProcess.id())\n            .workItemTypeReferenceName(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages()[0].id())\n            .sectionId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages()[0].sections()[0].id())\n            .label(\"Details Group\")\n            .controls(            \n                WorkitemtrackingprocessGroupControlArgs.builder()\n                    .id(\"System.Description\")\n                    .label(\"Description\")\n                    .build(),\n                WorkitemtrackingprocessGroupControlArgs.builder()\n                    .id(\"System.Title\")\n                    .label(\"Title\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessGroup\n    properties:\n      processId: ${exampleAzuredevopsWorkitemtrackingprocessProcess.id}\n      workItemTypeReferenceName: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      sectionId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id}\n      label: Details Group\n      controls:\n        - id: System.Description\n          label: Description\n        - id: System.Title\n          label: Title\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Group with Contribution Control (Extension)\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst multivalue = new azuredevops.Extension(\"multivalue\", {\n    publisherId: \"ms-devlabs\",\n    extensionId: \"vsts-extensions-multivalue-control\",\n});\nconst example = new azuredevops.WorkitemtrackingprocessGroup(\"example\", {\n    processId: exampleAzuredevopsWorkitemtrackingprocessProcess.id,\n    workItemTypeReferenceName: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].id,\n    sectionId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id,\n    label: \"Extension Group\",\n    controls: [{\n        id: \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n        isContribution: true,\n        contribution: {\n            contributionId: \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n            height: 50,\n            inputs: {\n                FieldName: \"System.Tags\",\n                Values: \"Option1;Option2;Option3\",\n            },\n        },\n    }],\n}, {\n    dependsOn: [multivalue],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nmultivalue = azuredevops.Extension(\"multivalue\",\n    publisher_id=\"ms-devlabs\",\n    extension_id=\"vsts-extensions-multivalue-control\")\nexample = azuredevops.WorkitemtrackingprocessGroup(\"example\",\n    process_id=example_azuredevops_workitemtrackingprocess_process[\"id\"],\n    work_item_type_reference_name=example_azuredevops_workitemtrackingprocess_workitemtype[\"referenceName\"],\n    page_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"pages\"][0][\"id\"],\n    section_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"pages\"][0][\"sections\"][0][\"id\"],\n    label=\"Extension Group\",\n    controls=[{\n        \"id\": \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n        \"is_contribution\": True,\n        \"contribution\": {\n            \"contribution_id\": \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n            \"height\": 50,\n            \"inputs\": {\n                \"FieldName\": \"System.Tags\",\n                \"Values\": \"Option1;Option2;Option3\",\n            },\n        },\n    }],\n    opts = pulumi.ResourceOptions(depends_on=[multivalue]))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var multivalue = new AzureDevOps.Extension(\"multivalue\", new()\n    {\n        PublisherId = \"ms-devlabs\",\n        ExtensionId = \"vsts-extensions-multivalue-control\",\n    });\n\n    var example = new AzureDevOps.WorkitemtrackingprocessGroup(\"example\", new()\n    {\n        ProcessId = exampleAzuredevopsWorkitemtrackingprocessProcess.Id,\n        WorkItemTypeReferenceName = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Id,\n        SectionId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Sections[0].Id,\n        Label = \"Extension Group\",\n        Controls = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessGroupControlArgs\n            {\n                Id = \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n                IsContribution = true,\n                Contribution = new AzureDevOps.Inputs.WorkitemtrackingprocessGroupControlContributionArgs\n                {\n                    ContributionId = \"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\",\n                    Height = 50,\n                    Inputs = \n                    {\n                        { \"FieldName\", \"System.Tags\" },\n                        { \"Values\", \"Option1;Option2;Option3\" },\n                    },\n                },\n            },\n        },\n    }, new CustomResourceOptions\n    {\n        DependsOn =\n        {\n            multivalue,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmultivalue, err := azuredevops.NewExtension(ctx, \"multivalue\", \u0026azuredevops.ExtensionArgs{\n\t\t\tPublisherId: pulumi.String(\"ms-devlabs\"),\n\t\t\tExtensionId: pulumi.String(\"vsts-extensions-multivalue-control\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessGroup(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessGroupArgs{\n\t\t\tProcessId:                 pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessProcess.Id),\n\t\t\tWorkItemTypeReferenceName: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName),\n\t\t\tPageId:                    pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Id),\n\t\t\tSectionId:                 pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Pages[0].Sections[0].Id),\n\t\t\tLabel:                     pulumi.String(\"Extension Group\"),\n\t\t\tControls: azuredevops.WorkitemtrackingprocessGroupControlArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessGroupControlArgs{\n\t\t\t\t\tId:             pulumi.String(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\"),\n\t\t\t\t\tIsContribution: pulumi.Bool(true),\n\t\t\t\t\tContribution: \u0026azuredevops.WorkitemtrackingprocessGroupControlContributionArgs{\n\t\t\t\t\t\tContributionId: pulumi.String(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\"),\n\t\t\t\t\t\tHeight:         pulumi.Int(50),\n\t\t\t\t\t\tInputs: pulumi.StringMap{\n\t\t\t\t\t\t\t\"FieldName\": pulumi.String(\"System.Tags\"),\n\t\t\t\t\t\t\t\"Values\":    pulumi.String(\"Option1;Option2;Option3\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t}, pulumi.DependsOn([]pulumi.Resource{\n\t\t\tmultivalue,\n\t\t}))\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Extension;\nimport com.pulumi.azuredevops.ExtensionArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroup;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessGroupArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessGroupControlArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessGroupControlContributionArgs;\nimport com.pulumi.resources.CustomResourceOptions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var multivalue = new Extension(\"multivalue\", ExtensionArgs.builder()\n            .publisherId(\"ms-devlabs\")\n            .extensionId(\"vsts-extensions-multivalue-control\")\n            .build());\n\n        var example = new WorkitemtrackingprocessGroup(\"example\", WorkitemtrackingprocessGroupArgs.builder()\n            .processId(exampleAzuredevopsWorkitemtrackingprocessProcess.id())\n            .workItemTypeReferenceName(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages()[0].id())\n            .sectionId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages()[0].sections()[0].id())\n            .label(\"Extension Group\")\n            .controls(WorkitemtrackingprocessGroupControlArgs.builder()\n                .id(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\")\n                .isContribution(true)\n                .contribution(WorkitemtrackingprocessGroupControlContributionArgs.builder()\n                    .contributionId(\"ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\")\n                    .height(50)\n                    .inputs(Map.ofEntries(\n                        Map.entry(\"FieldName\", \"System.Tags\"),\n                        Map.entry(\"Values\", \"Option1;Option2;Option3\")\n                    ))\n                    .build())\n                .build())\n            .build(), CustomResourceOptions.builder()\n                .dependsOn(multivalue)\n                .build());\n\n    }\n}\n```\n```yaml\nresources:\n  multivalue:\n    type: azuredevops:Extension\n    properties:\n      publisherId: ms-devlabs\n      extensionId: vsts-extensions-multivalue-control\n  example:\n    type: azuredevops:WorkitemtrackingprocessGroup\n    properties:\n      processId: ${exampleAzuredevopsWorkitemtrackingprocessProcess.id}\n      workItemTypeReferenceName: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      sectionId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].id}\n      label: Extension Group\n      controls:\n        - id: ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\n          isContribution: true\n          contribution:\n            contributionId: ms-devlabs.vsts-extensions-multivalue-control.multivalue-form-control\n            height: 50\n            inputs:\n              FieldName: System.Tags\n              Values: Option1;Option2;Option3\n    options:\n      dependsOn:\n        - ${multivalue}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Groups](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/groups?view=azure-devops-rest-7.1)\n\n## Import\n\nGroups can be imported using the complete resource id `process_id/work_item_type_reference_name/page_id/section_id/group_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessGroup:WorkitemtrackingprocessGroup example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/page-id/section-id/group-id\n```\n\n","properties":{"controls":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessGroupControl:WorkitemtrackingprocessGroupControl"},"description":"Controls to be created with the group. Required for HTML controls which cannot be added to existing groups. This is mutally exclusive with 'azuredevops_workitemtrackingprocess_control' resources. A \u003cspan pulumi-lang-nodejs=\"`control`\" pulumi-lang-dotnet=\"`Control`\" pulumi-lang-go=\"`control`\" pulumi-lang-python=\"`control`\" pulumi-lang-yaml=\"`control`\" pulumi-lang-java=\"`control`\"\u003e`control`\u003c/span\u003e block as defined below.\n"},"label":{"type":"string","description":"Label for the group.\n"},"order":{"type":"integer","description":"Order in which the group should appear in the section.\n"},"pageId":{"type":"string","description":"The ID of the page to add the group to. Changing this moves the group to the new page.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new group to be created.\n"},"sectionId":{"type":"string","description":"The ID of the section to add the group to. Changing this moves the group to the new section.\n"},"visible":{"type":"boolean","description":"A value indicating if the group should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new group to be created.\n"}},"required":["controls","label","order","pageId","processId","sectionId","workItemTypeReferenceName"],"inputProperties":{"controls":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessGroupControl:WorkitemtrackingprocessGroupControl"},"description":"Controls to be created with the group. Required for HTML controls which cannot be added to existing groups. This is mutally exclusive with 'azuredevops_workitemtrackingprocess_control' resources. A \u003cspan pulumi-lang-nodejs=\"`control`\" pulumi-lang-dotnet=\"`Control`\" pulumi-lang-go=\"`control`\" pulumi-lang-python=\"`control`\" pulumi-lang-yaml=\"`control`\" pulumi-lang-java=\"`control`\"\u003e`control`\u003c/span\u003e block as defined below.\n"},"label":{"type":"string","description":"Label for the group.\n"},"order":{"type":"integer","description":"Order in which the group should appear in the section.\n"},"pageId":{"type":"string","description":"The ID of the page to add the group to. Changing this moves the group to the new page.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new group to be created.\n","willReplaceOnChanges":true},"sectionId":{"type":"string","description":"The ID of the section to add the group to. Changing this moves the group to the new section.\n"},"visible":{"type":"boolean","description":"A value indicating if the group should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new group to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["label","pageId","processId","sectionId","workItemTypeReferenceName"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessGroup resources.\n","properties":{"controls":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessGroupControl:WorkitemtrackingprocessGroupControl"},"description":"Controls to be created with the group. Required for HTML controls which cannot be added to existing groups. This is mutally exclusive with 'azuredevops_workitemtrackingprocess_control' resources. A \u003cspan pulumi-lang-nodejs=\"`control`\" pulumi-lang-dotnet=\"`Control`\" pulumi-lang-go=\"`control`\" pulumi-lang-python=\"`control`\" pulumi-lang-yaml=\"`control`\" pulumi-lang-java=\"`control`\"\u003e`control`\u003c/span\u003e block as defined below.\n"},"label":{"type":"string","description":"Label for the group.\n"},"order":{"type":"integer","description":"Order in which the group should appear in the section.\n"},"pageId":{"type":"string","description":"The ID of the page to add the group to. Changing this moves the group to the new page.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new group to be created.\n","willReplaceOnChanges":true},"sectionId":{"type":"string","description":"The ID of the section to add the group to. Changing this moves the group to the new section.\n"},"visible":{"type":"boolean","description":"A value indicating if the group should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeReferenceName":{"type":"string","description":"The reference name of the work item type. Changing this forces a new group to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessInheritedControl:WorkitemtrackingprocessInheritedControl":{"description":"Manages an inherited control customization for a work item type.\n\nInherited controls are controls that exist in the parent process template and are inherited by derived processes. This resource allows you to customize inherited controls.\n\n\u003e **Note:** This resource customizes inherited controls. When the resource is deleted, the control reverts to its inherited state rather than being removed.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\n// Customize the first control in the first group\nconst exampleWorkitemtrackingprocessInheritedControl = new azuredevops.WorkitemtrackingprocessInheritedControl(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    groupId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].sections?.[0]?.groups?.[0]?.id),\n    controlId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].sections?.[0]?.groups?.[0]?.controls?.[0]?.id),\n    visible: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\n# Customize the first control in the first group\nexample_workitemtrackingprocess_inherited_control = azuredevops.WorkitemtrackingprocessInheritedControl(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    group_id=example_workitemtrackingprocess_workitemtype.pages[0].sections[0].groups[0].id,\n    control_id=example_workitemtrackingprocess_workitemtype.pages[0].sections[0].groups[0].controls[0].id,\n    visible=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    // Customize the first control in the first group\n    var exampleWorkitemtrackingprocessInheritedControl = new AzureDevOps.WorkitemtrackingprocessInheritedControl(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        GroupId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Sections[0]?.Groups[0]?.Id),\n        ControlId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Sections[0]?.Groups[0]?.Controls[0]?.Id),\n        Visible = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Customize the first control in the first group\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessInheritedControl(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessInheritedControlArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tGroupId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Sections[0].Groups[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tControlId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Sections[0].Groups[0].Controls[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tVisible: pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedControl;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        // Customize the first control in the first group\n        var exampleWorkitemtrackingprocessInheritedControl = new WorkitemtrackingprocessInheritedControl(\"exampleWorkitemtrackingprocessInheritedControl\", WorkitemtrackingprocessInheritedControlArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .groupId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].sections()[0].groups()[0].id()))\n            .controlId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].sections()[0].groups()[0].controls()[0].id()))\n            .visible(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  # Customize the first control in the first group\n  exampleWorkitemtrackingprocessInheritedControl:\n    type: azuredevops:WorkitemtrackingprocessInheritedControl\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      groupId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].groups[0].id}\n      controlId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].sections[0].groups[0].controls[0].id}\n      visible: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Controls](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/controls?view=azure-devops-rest-7.1)\n\n## Import\n\nInherited control customizations can be imported using the complete resource id `process_id/work_item_type_id/group_id/control_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessInheritedControl:WorkitemtrackingprocessInheritedControl example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/group-id/System.Title\n```\n\n","properties":{"controlId":{"type":"string","description":"The ID of the inherited control to customize. Changing this forces a new resource to be created.\n"},"groupId":{"type":"string","description":"The ID of the group containing the control. Changing this forces a new resource to be created.\n"},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n"},"visible":{"type":"boolean","description":"Whether the control should be visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n"}},"required":["controlId","groupId","label","processId","visible","workItemTypeId"],"inputProperties":{"controlId":{"type":"string","description":"The ID of the inherited control to customize. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the group containing the control. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"Whether the control should be visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["controlId","groupId","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessInheritedControl resources.\n","properties":{"controlId":{"type":"string","description":"The ID of the inherited control to customize. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"groupId":{"type":"string","description":"The ID of the group containing the control. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"Whether the control should be visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessInheritedPage:WorkitemtrackingprocessInheritedPage":{"description":"Manages inherited page customizations for a work item type.\n\nInherited pages are pages that exist in the parent process template and are inherited by derived processes.\n\n\u003e **Note:** When the resource is deleted, the page reverts to its inherited state rather than being removed.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\n// Relabel the Details page\nconst exampleWorkitemtrackingprocessInheritedPage = new azuredevops.WorkitemtrackingprocessInheritedPage(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    pageId: exampleWorkitemtrackingprocessWorkitemtype.pages.apply(pages =\u003e pages[0].id),\n    label: \"Custom Details\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\n# Relabel the Details page\nexample_workitemtrackingprocess_inherited_page = azuredevops.WorkitemtrackingprocessInheritedPage(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    page_id=example_workitemtrackingprocess_workitemtype.pages[0].id,\n    label=\"Custom Details\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    // Relabel the Details page\n    var exampleWorkitemtrackingprocessInheritedPage = new AzureDevOps.WorkitemtrackingprocessInheritedPage(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        PageId = exampleWorkitemtrackingprocessWorkitemtype.Pages.Apply(pages =\u003e pages[0].Id),\n        Label = \"Custom Details\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Relabel the Details page\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessInheritedPage(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessInheritedPageArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tPageId: pulumi.String(exampleWorkitemtrackingprocessWorkitemtype.Pages.ApplyT(func(pages []azuredevops.WorkitemtrackingprocessWorkitemtypePage) (*string, error) {\n\t\t\t\treturn \u0026pages[0].Id, nil\n\t\t\t}).(pulumi.StringPtrOutput)),\n\t\t\tLabel: pulumi.String(\"Custom Details\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedPage;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedPageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        // Relabel the Details page\n        var exampleWorkitemtrackingprocessInheritedPage = new WorkitemtrackingprocessInheritedPage(\"exampleWorkitemtrackingprocessInheritedPage\", WorkitemtrackingprocessInheritedPageArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .pageId(exampleWorkitemtrackingprocessWorkitemtype.pages().applyValue(_pages -\u003e _pages[0].id()))\n            .label(\"Custom Details\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  # Relabel the Details page\n  exampleWorkitemtrackingprocessInheritedPage:\n    type: azuredevops:WorkitemtrackingprocessInheritedPage\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      pageId: ${exampleWorkitemtrackingprocessWorkitemtype.pages[0].id}\n      label: Custom Details\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Pages](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/pages?view=azure-devops-rest-7.1)\n\n## Import\n\nInherited page customizations can be imported using the complete resource id `process_id/work_item_type_id/page_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessInheritedPage:WorkitemtrackingprocessInheritedPage example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/page-id\n```\n\n","properties":{"label":{"type":"string","description":"Label for the page.\n"},"pageId":{"type":"string","description":"The ID of the inherited page to customize. Changing this forces a new resource to be created.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n"}},"required":["label","pageId","processId","workItemTypeId"],"inputProperties":{"label":{"type":"string","description":"Label for the page.\n"},"pageId":{"type":"string","description":"The ID of the inherited page to customize. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["label","pageId","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessInheritedPage resources.\n","properties":{"label":{"type":"string","description":"Label for the page.\n"},"pageId":{"type":"string","description":"The ID of the inherited page to customize. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessInheritedState:WorkitemtrackingprocessInheritedState":{"description":"Manage a state inherited from an inherited work item type.\n\n\u003e **Note:** When the resource is deleted, the state is reverted to default inherited state.\n\n\u003e **Note:** Only inherited states can be managed by this resource. Use \u003cspan pulumi-lang-nodejs=\"`azuredevops.WorkitemtrackingprocessState`\" pulumi-lang-dotnet=\"`azuredevops.WorkitemtrackingprocessState`\" pulumi-lang-go=\"`WorkitemtrackingprocessState`\" pulumi-lang-python=\"`WorkitemtrackingprocessState`\" pulumi-lang-yaml=\"`azuredevops.WorkitemtrackingprocessState`\" pulumi-lang-java=\"`azuredevops.WorkitemtrackingprocessState`\"\u003e`azuredevops.WorkitemtrackingprocessState`\u003c/span\u003e to manage custom states.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"Bug\",\n    parentWorkItemReferenceName: \"Microsoft.VSTS.WorkItemTypes.Bug\",\n});\n// Hide an inherited state\nconst exampleWorkitemtrackingprocessInheritedState = new azuredevops.WorkitemtrackingprocessInheritedState(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"New\",\n    visible: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"Bug\",\n    parent_work_item_reference_name=\"Microsoft.VSTS.WorkItemTypes.Bug\")\n# Hide an inherited state\nexample_workitemtrackingprocess_inherited_state = azuredevops.WorkitemtrackingprocessInheritedState(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    name=\"New\",\n    visible=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"Bug\",\n        ParentWorkItemReferenceName = \"Microsoft.VSTS.WorkItemTypes.Bug\",\n    });\n\n    // Hide an inherited state\n    var exampleWorkitemtrackingprocessInheritedState = new AzureDevOps.WorkitemtrackingprocessInheritedState(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"New\",\n        Visible = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId:                   example.ID(),\n\t\t\tName:                        pulumi.String(\"Bug\"),\n\t\t\tParentWorkItemReferenceName: pulumi.String(\"Microsoft.VSTS.WorkItemTypes.Bug\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Hide an inherited state\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessInheritedState(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessInheritedStateArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tName:           pulumi.String(\"New\"),\n\t\t\tVisible:        pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedState;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessInheritedStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"Bug\")\n            .parentWorkItemReferenceName(\"Microsoft.VSTS.WorkItemTypes.Bug\")\n            .build());\n\n        // Hide an inherited state\n        var exampleWorkitemtrackingprocessInheritedState = new WorkitemtrackingprocessInheritedState(\"exampleWorkitemtrackingprocessInheritedState\", WorkitemtrackingprocessInheritedStateArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"New\")\n            .visible(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: Bug\n      parentWorkItemReferenceName: Microsoft.VSTS.WorkItemTypes.Bug\n  # Hide an inherited state\n  exampleWorkitemtrackingprocessInheritedState:\n    type: azuredevops:WorkitemtrackingprocessInheritedState\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: New\n      visible: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - States](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/states?view=azure-devops-rest-7.1)\n\n## Import\n\nInherited states can be imported using the complete resource id `process_id/work_item_type_id/name`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessInheritedState:WorkitemtrackingprocessInheritedState example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/New\n```\n\n","properties":{"name":{"type":"string","description":"Name of the inherited state to manage. This is used to look up the state and must match an existing inherited state name. Changing this forces a new resource to be created.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n"},"visible":{"type":"boolean","description":"Whether the state is visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n"}},"required":["name","processId","visible","workItemTypeId"],"inputProperties":{"name":{"type":"string","description":"Name of the inherited state to manage. This is used to look up the state and must match an existing inherited state name. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"Whether the state is visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessInheritedState resources.\n","properties":{"name":{"type":"string","description":"Name of the inherited state to manage. This is used to look up the state and must match an existing inherited state name. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"Whether the state is visible.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessList:WorkitemtrackingprocessList":{"description":"Manages an organization-scoped list for work item tracking processes.\n\n\u003e **Note** Lists are organization-scoped resources, not process-specific. They can be referenced by custom fields across multiple processes.\n\n## Example Usage\n\n### String List\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessList(\"example\", {\n    name: \"Priority Levels\",\n    items: [\n        \"Low\",\n        \"Medium\",\n        \"High\",\n        \"Critical\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessList(\"example\",\n    name=\"Priority Levels\",\n    items=[\n        \"Low\",\n        \"Medium\",\n        \"High\",\n        \"Critical\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessList(\"example\", new()\n    {\n        Name = \"Priority Levels\",\n        Items = new[]\n        {\n            \"Low\",\n            \"Medium\",\n            \"High\",\n            \"Critical\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingprocessList(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessListArgs{\n\t\t\tName: pulumi.String(\"Priority Levels\"),\n\t\t\tItems: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"Low\"),\n\t\t\t\tpulumi.String(\"Medium\"),\n\t\t\t\tpulumi.String(\"High\"),\n\t\t\t\tpulumi.String(\"Critical\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessList;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessList(\"example\", WorkitemtrackingprocessListArgs.builder()\n            .name(\"Priority Levels\")\n            .items(            \n                \"Low\",\n                \"Medium\",\n                \"High\",\n                \"Critical\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessList\n    properties:\n      name: Priority Levels\n      items:\n        - Low\n        - Medium\n        - High\n        - Critical\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Integer List\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessList(\"example\", {\n    name: \"Story Points\",\n    type: \"integer\",\n    items: [\n        \"1\",\n        \"2\",\n        \"3\",\n        \"5\",\n        \"8\",\n        \"13\",\n        \"21\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessList(\"example\",\n    name=\"Story Points\",\n    type=\"integer\",\n    items=[\n        \"1\",\n        \"2\",\n        \"3\",\n        \"5\",\n        \"8\",\n        \"13\",\n        \"21\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessList(\"example\", new()\n    {\n        Name = \"Story Points\",\n        Type = \"integer\",\n        Items = new[]\n        {\n            \"1\",\n            \"2\",\n            \"3\",\n            \"5\",\n            \"8\",\n            \"13\",\n            \"21\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingprocessList(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessListArgs{\n\t\t\tName: pulumi.String(\"Story Points\"),\n\t\t\tType: pulumi.String(\"integer\"),\n\t\t\tItems: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"1\"),\n\t\t\t\tpulumi.String(\"2\"),\n\t\t\t\tpulumi.String(\"3\"),\n\t\t\t\tpulumi.String(\"5\"),\n\t\t\t\tpulumi.String(\"8\"),\n\t\t\t\tpulumi.String(\"13\"),\n\t\t\t\tpulumi.String(\"21\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessList;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessListArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessList(\"example\", WorkitemtrackingprocessListArgs.builder()\n            .name(\"Story Points\")\n            .type(\"integer\")\n            .items(            \n                \"1\",\n                \"2\",\n                \"3\",\n                \"5\",\n                \"8\",\n                \"13\",\n                \"21\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessList\n    properties:\n      name: Story Points\n      type: integer\n      items:\n        - '1'\n        - '2'\n        - '3'\n        - '5'\n        - '8'\n        - '13'\n        - '21'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Lists](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/lists?view=azure-devops-rest-7.1)\n\n## Import\n\nLists can be imported using the list ID, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessList:WorkitemtrackingprocessList example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"isSuggested":{"type":"boolean","description":"Indicates whether items outside of the suggested list are allowed. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"items":{"type":"array","items":{"type":"string"},"description":"A list of items.\n"},"name":{"type":"string","description":"Name of the list.\n"},"type":{"type":"string","description":"Data type of the list. Valid values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e. Changing this forces a new resource to be created.\n"},"url":{"type":"string","description":"URL of the list.\n"}},"required":["items","name","url"],"inputProperties":{"isSuggested":{"type":"boolean","description":"Indicates whether items outside of the suggested list are allowed. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"items":{"type":"array","items":{"type":"string"},"description":"A list of items.\n"},"name":{"type":"string","description":"Name of the list.\n"},"type":{"type":"string","description":"Data type of the list. Valid values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["items"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessList resources.\n","properties":{"isSuggested":{"type":"boolean","description":"Indicates whether items outside of the suggested list are allowed. Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n"},"items":{"type":"array","items":{"type":"string"},"description":"A list of items.\n"},"name":{"type":"string","description":"Name of the list.\n"},"type":{"type":"string","description":"Data type of the list. Valid values: \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`integer`\" pulumi-lang-dotnet=\"`Integer`\" pulumi-lang-go=\"`integer`\" pulumi-lang-python=\"`integer`\" pulumi-lang-yaml=\"`integer`\" pulumi-lang-java=\"`integer`\"\u003e`integer`\u003c/span\u003e. Defaults to \u003cspan pulumi-lang-nodejs=\"`string`\" pulumi-lang-dotnet=\"`String`\" pulumi-lang-go=\"`string`\" pulumi-lang-python=\"`string`\" pulumi-lang-yaml=\"`string`\" pulumi-lang-java=\"`string`\"\u003e`string`\u003c/span\u003e. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"URL of the list.\n"}},"type":"object"}},"azuredevops:index/workitemtrackingprocessPage:WorkitemtrackingprocessPage":{"description":"Manages a page in the work item form layout for a work item type.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessPage = new azuredevops.WorkitemtrackingprocessPage(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.id,\n    label: \"Custom Page\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_page = azuredevops.WorkitemtrackingprocessPage(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.id,\n    label=\"Custom Page\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessPage = new AzureDevOps.WorkitemtrackingprocessPage(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.Id,\n        Label = \"Custom Page\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessPage(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessPageArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ID(),\n\t\t\tLabel:          pulumi.String(\"Custom Page\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessPage;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessPageArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessPage = new WorkitemtrackingprocessPage(\"exampleWorkitemtrackingprocessPage\", WorkitemtrackingprocessPageArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.id())\n            .label(\"Custom Page\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessPage:\n    type: azuredevops:WorkitemtrackingprocessPage\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.id}\n      label: Custom Page\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Pages](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/pages?view=azure-devops-rest-7.1)\n\n## Import\n\nPages can be imported using the complete resource id `process_id/work_item_type_id/page_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessPage:WorkitemtrackingprocessPage example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/page-id\n```\n\n","properties":{"label":{"type":"string","description":"The label for the page.\n"},"order":{"type":"integer","description":"Order in which the page should appear in the layout.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new page to be created.\n"},"sections":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessPageSection:WorkitemtrackingprocessPageSection"},"description":"The sections of the page. A \u003cspan pulumi-lang-nodejs=\"`sections`\" pulumi-lang-dotnet=\"`Sections`\" pulumi-lang-go=\"`sections`\" pulumi-lang-python=\"`sections`\" pulumi-lang-yaml=\"`sections`\" pulumi-lang-java=\"`sections`\"\u003e`sections`\u003c/span\u003e block as defined below.\n"},"visible":{"type":"boolean","description":"A value indicating if the page should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new page to be created.\n"}},"required":["label","order","processId","sections","workItemTypeId"],"inputProperties":{"label":{"type":"string","description":"The label for the page.\n"},"order":{"type":"integer","description":"Order in which the page should appear in the layout.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new page to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"A value indicating if the page should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new page to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["label","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessPage resources.\n","properties":{"label":{"type":"string","description":"The label for the page.\n"},"order":{"type":"integer","description":"Order in which the page should appear in the layout.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new page to be created.\n","willReplaceOnChanges":true},"sections":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessPageSection:WorkitemtrackingprocessPageSection"},"description":"The sections of the page. A \u003cspan pulumi-lang-nodejs=\"`sections`\" pulumi-lang-dotnet=\"`Sections`\" pulumi-lang-go=\"`sections`\" pulumi-lang-python=\"`sections`\" pulumi-lang-yaml=\"`sections`\" pulumi-lang-java=\"`sections`\"\u003e`sections`\u003c/span\u003e block as defined below.\n"},"visible":{"type":"boolean","description":"A value indicating if the page should be visible or not. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new page to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessProcess:WorkitemtrackingprocessProcess":{"description":"Manages a process.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst customAgile = new azuredevops.WorkitemtrackingprocessProcess(\"custom_agile\", {\n    name: \"custom_agile\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ncustom_agile = azuredevops.WorkitemtrackingprocessProcess(\"custom_agile\",\n    name=\"custom_agile\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var customAgile = new AzureDevOps.WorkitemtrackingprocessProcess(\"custom_agile\", new()\n    {\n        Name = \"custom_agile\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"custom_agile\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"custom_agile\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var customAgile = new WorkitemtrackingprocessProcess(\"customAgile\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"custom_agile\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  customAgile:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    name: custom_agile\n    properties:\n      name: custom_agile\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Processes](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/processes?view=azure-devops-rest-7.1)\n\n## Import\n\nA process can be imported using the process id, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessProcess:WorkitemtrackingprocessProcess example 00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"customizationType":{"type":"string","description":"Indicates the type of customization on this process. System Process is default process. Inherited Process is modified process that was System process before.\n"},"description":{"type":"string","description":"Description of the process. Default: \"\"\n"},"isDefault":{"type":"boolean","description":"Is the process default? Default: false\n"},"isEnabled":{"type":"boolean","description":"Is the process enabled? Default: true\n"},"name":{"type":"string","description":"Name of the process.\n"},"parentProcessTypeId":{"type":"string","description":"ID of the parent process. Changing this forces a new process to be created.\n"},"referenceName":{"type":"string","description":"Reference name of process being created. If not specified, server will assign a unique reference name. Changing this forces a new process to be created.\n"}},"required":["customizationType","name","parentProcessTypeId","referenceName"],"inputProperties":{"description":{"type":"string","description":"Description of the process. Default: \"\"\n"},"isDefault":{"type":"boolean","description":"Is the process default? Default: false\n"},"isEnabled":{"type":"boolean","description":"Is the process enabled? Default: true\n"},"name":{"type":"string","description":"Name of the process.\n"},"parentProcessTypeId":{"type":"string","description":"ID of the parent process. Changing this forces a new process to be created.\n","willReplaceOnChanges":true},"referenceName":{"type":"string","description":"Reference name of process being created. If not specified, server will assign a unique reference name. Changing this forces a new process to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["parentProcessTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessProcess resources.\n","properties":{"customizationType":{"type":"string","description":"Indicates the type of customization on this process. System Process is default process. Inherited Process is modified process that was System process before.\n"},"description":{"type":"string","description":"Description of the process. Default: \"\"\n"},"isDefault":{"type":"boolean","description":"Is the process default? Default: false\n"},"isEnabled":{"type":"boolean","description":"Is the process enabled? Default: true\n"},"name":{"type":"string","description":"Name of the process.\n"},"parentProcessTypeId":{"type":"string","description":"ID of the parent process. Changing this forces a new process to be created.\n","willReplaceOnChanges":true},"referenceName":{"type":"string","description":"Reference name of process being created. If not specified, server will assign a unique reference name. Changing this forces a new process to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessProcessPermissions:WorkitemtrackingprocessProcessPermissions":{"description":"Manages permissions for an Azure DevOps Process\n\n## Example Usage\n\n### Permissions on an inherited process\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"Example Process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst example_group = azuredevops.getGroup({\n    name: \"Example Group\",\n});\nconst exampleWorkitemtrackingprocessProcessPermissions = new azuredevops.WorkitemtrackingprocessProcessPermissions(\"example\", {\n    processId: example.id,\n    principal: example_group.then(example_group =\u003e example_group.id),\n    permissions: {\n        Edit: \"Allow\",\n        Delete: \"Deny\",\n        AdministerProcessPermissions: \"Allow\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"Example Process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_group = azuredevops.get_group(name=\"Example Group\")\nexample_workitemtrackingprocess_process_permissions = azuredevops.WorkitemtrackingprocessProcessPermissions(\"example\",\n    process_id=example.id,\n    principal=example_group.id,\n    permissions={\n        \"Edit\": \"Allow\",\n        \"Delete\": \"Deny\",\n        \"AdministerProcessPermissions\": \"Allow\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"Example Process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var example_group = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Example Group\",\n    });\n\n    var exampleWorkitemtrackingprocessProcessPermissions = new AzureDevOps.WorkitemtrackingprocessProcessPermissions(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Principal = example_group.Apply(example_group =\u003e example_group.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Edit\", \"Allow\" },\n            { \"Delete\", \"Deny\" },\n            { \"AdministerProcessPermissions\", \"Allow\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"Example Process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample_group, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Example Group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessProcessPermissions(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessPermissionsArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tPrincipal: pulumi.String(example_group.Id),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Edit\":                         pulumi.String(\"Allow\"),\n\t\t\t\t\"Delete\":                       pulumi.String(\"Deny\"),\n\t\t\t\t\"AdministerProcessPermissions\": pulumi.String(\"Allow\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessPermissions;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"Example Process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        final var example-group = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Example Group\")\n            .build());\n\n        var exampleWorkitemtrackingprocessProcessPermissions = new WorkitemtrackingprocessProcessPermissions(\"exampleWorkitemtrackingprocessProcessPermissions\", WorkitemtrackingprocessProcessPermissionsArgs.builder()\n            .processId(example.id())\n            .principal(example_group.id())\n            .permissions(Map.ofEntries(\n                Map.entry(\"Edit\", \"Allow\"),\n                Map.entry(\"Delete\", \"Deny\"),\n                Map.entry(\"AdministerProcessPermissions\", \"Allow\")\n            ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: Example Process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessProcessPermissions:\n    type: azuredevops:WorkitemtrackingprocessProcessPermissions\n    name: example\n    properties:\n      processId: ${example.id}\n      principal: ${[\"example-group\"].id}\n      permissions:\n        Edit: Allow\n        Delete: Deny\n        AdministerProcessPermissions: Allow\nvariables:\n  example-group:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Example Group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Permissions on a system process\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example_group = azuredevops.getGroup({\n    name: \"Example Group\",\n});\nconst example = new azuredevops.WorkitemtrackingprocessProcessPermissions(\"example\", {\n    processId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    principal: example_group.then(example_group =\u003e example_group.id),\n    permissions: {\n        Create: \"Deny\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_group = azuredevops.get_group(name=\"Example Group\")\nexample = azuredevops.WorkitemtrackingprocessProcessPermissions(\"example\",\n    process_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    principal=example_group.id,\n    permissions={\n        \"Create\": \"Deny\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example_group = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Example Group\",\n    });\n\n    var example = new AzureDevOps.WorkitemtrackingprocessProcessPermissions(\"example\", new()\n    {\n        ProcessId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n        Principal = example_group.Apply(example_group =\u003e example_group.Apply(getGroupResult =\u003e getGroupResult.Id)),\n        Permissions = \n        {\n            { \"Create\", \"Deny\" },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample_group, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Example Group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessProcessPermissions(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessPermissionsArgs{\n\t\t\tProcessId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t\tPrincipal: pulumi.String(example_group.Id),\n\t\t\tPermissions: pulumi.StringMap{\n\t\t\t\t\"Create\": pulumi.String(\"Deny\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessPermissions;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example-group = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Example Group\")\n            .build());\n\n        var example = new WorkitemtrackingprocessProcessPermissions(\"example\", WorkitemtrackingprocessProcessPermissionsArgs.builder()\n            .processId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .principal(example_group.id())\n            .permissions(Map.of(\"Create\", \"Deny\"))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcessPermissions\n    properties:\n      processId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n      principal: ${[\"example-group\"].id}\n      permissions:\n        Create: Deny\nvariables:\n  example-group:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Example Group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.1 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.1)\n\n## PAT Permissions Required\n\n- **Security**: Manage\n- **Identity**: Read\n\n## Import\n\nThe resource does not support import.\n\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n**Inherited process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Edit                           | Edit process                   |\n| Delete                         | Delete process                 |\n| AdministerProcessPermissions   | Administer process permissions |\n\n**System process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Create                         | Create inherited process       |\n"},"principal":{"type":"string","description":"The principal to assign the permissions.\n"},"processId":{"type":"string","description":"The ID of the process to assign the permissions.\n"},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"required":["permissions","principal","processId"],"inputProperties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n**Inherited process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Edit                           | Edit process                   |\n| Delete                         | Delete process                 |\n| AdministerProcessPermissions   | Administer process permissions |\n\n**System process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Create                         | Create inherited process       |\n"},"principal":{"type":"string","description":"The principal to assign the permissions.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"requiredInputs":["permissions","principal","processId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessProcessPermissions resources.\n","properties":{"permissions":{"type":"object","additionalProperties":{"type":"string"},"description":"the permissions to assign. The following permissions are available\n\n**Inherited process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Edit                           | Edit process                   |\n| Delete                         | Delete process                 |\n| AdministerProcessPermissions   | Administer process permissions |\n\n**System process permissions:**\n\n| Permission                     | Description                    |\n|--------------------------------|--------------------------------|\n| Create                         | Create inherited process       |\n"},"principal":{"type":"string","description":"The principal to assign the permissions.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process to assign the permissions.\n","willReplaceOnChanges":true},"replace":{"type":"boolean","description":"Replace (\u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e) or merge (\u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e) the permissions. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"}},"type":"object"}},"azuredevops:index/workitemtrackingprocessRule:WorkitemtrackingprocessRule":{"description":"Manages a rule for a work item type in a process. Rules define conditions and actions that are triggered during work item lifecycle events.\n\n## Example Usage\n\n### Basic Rule\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessRule = new azuredevops.WorkitemtrackingprocessRule(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"Require Title When New\",\n    conditions: [{\n        conditionType: \"when\",\n        field: \"System.State\",\n        value: \"New\",\n    }],\n    actions: [{\n        actionType: \"makeRequired\",\n        targetField: \"System.Title\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_rule = azuredevops.WorkitemtrackingprocessRule(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    name=\"Require Title When New\",\n    conditions=[{\n        \"condition_type\": \"when\",\n        \"field\": \"System.State\",\n        \"value\": \"New\",\n    }],\n    actions=[{\n        \"action_type\": \"makeRequired\",\n        \"target_field\": \"System.Title\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessRule = new AzureDevOps.WorkitemtrackingprocessRule(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"Require Title When New\",\n        Conditions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleConditionArgs\n            {\n                ConditionType = \"when\",\n                Field = \"System.State\",\n                Value = \"New\",\n            },\n        },\n        Actions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleActionArgs\n            {\n                ActionType = \"makeRequired\",\n                TargetField = \"System.Title\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessRule(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessRuleArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tName:           pulumi.String(\"Require Title When New\"),\n\t\t\tConditions: azuredevops.WorkitemtrackingprocessRuleConditionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleConditionArgs{\n\t\t\t\t\tConditionType: pulumi.String(\"when\"),\n\t\t\t\t\tField:         pulumi.String(\"System.State\"),\n\t\t\t\t\tValue:         pulumi.String(\"New\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tActions: azuredevops.WorkitemtrackingprocessRuleActionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleActionArgs{\n\t\t\t\t\tActionType:  pulumi.String(\"makeRequired\"),\n\t\t\t\t\tTargetField: pulumi.String(\"System.Title\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRule;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRuleArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleConditionArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessRule = new WorkitemtrackingprocessRule(\"exampleWorkitemtrackingprocessRule\", WorkitemtrackingprocessRuleArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"Require Title When New\")\n            .conditions(WorkitemtrackingprocessRuleConditionArgs.builder()\n                .conditionType(\"when\")\n                .field(\"System.State\")\n                .value(\"New\")\n                .build())\n            .actions(WorkitemtrackingprocessRuleActionArgs.builder()\n                .actionType(\"makeRequired\")\n                .targetField(\"System.Title\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessRule:\n    type: azuredevops:WorkitemtrackingprocessRule\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: Require Title When New\n      conditions:\n        - conditionType: when\n          field: System.State\n          value: New\n      actions:\n        - actionType: makeRequired\n          targetField: System.Title\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Group Membership Condition\n\nThe `whenCurrentUserIsMemberOfGroup` and `whenCurrentUserIsNotMemberOfGroup` conditions require a group entitlement ID.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.GroupEntitlement(\"example\", {displayName: \"example-group\"});\nconst groupMembership = new azuredevops.WorkitemtrackingprocessRule(\"group_membership\", {\n    processId: exampleAzuredevopsWorkitemtrackingprocessProcess.id,\n    workItemTypeId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"Require Title for Group Members\",\n    conditions: [{\n        conditionType: \"whenCurrentUserIsMemberOfGroup\",\n        value: example.id,\n    }],\n    actions: [{\n        actionType: \"makeRequired\",\n        targetField: \"System.Title\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.GroupEntitlement(\"example\", display_name=\"example-group\")\ngroup_membership = azuredevops.WorkitemtrackingprocessRule(\"group_membership\",\n    process_id=example_azuredevops_workitemtrackingprocess_process[\"id\"],\n    work_item_type_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"referenceName\"],\n    name=\"Require Title for Group Members\",\n    conditions=[{\n        \"condition_type\": \"whenCurrentUserIsMemberOfGroup\",\n        \"value\": example.id,\n    }],\n    actions=[{\n        \"action_type\": \"makeRequired\",\n        \"target_field\": \"System.Title\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.GroupEntitlement(\"example\", new()\n    {\n        DisplayName = \"example-group\",\n    });\n\n    var groupMembership = new AzureDevOps.WorkitemtrackingprocessRule(\"group_membership\", new()\n    {\n        ProcessId = exampleAzuredevopsWorkitemtrackingprocessProcess.Id,\n        WorkItemTypeId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"Require Title for Group Members\",\n        Conditions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleConditionArgs\n            {\n                ConditionType = \"whenCurrentUserIsMemberOfGroup\",\n                Value = example.Id,\n            },\n        },\n        Actions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleActionArgs\n            {\n                ActionType = \"makeRequired\",\n                TargetField = \"System.Title\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewGroupEntitlement(ctx, \"example\", \u0026azuredevops.GroupEntitlementArgs{\n\t\t\tDisplayName: pulumi.String(\"example-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessRule(ctx, \"group_membership\", \u0026azuredevops.WorkitemtrackingprocessRuleArgs{\n\t\t\tProcessId:      pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessProcess.Id),\n\t\t\tWorkItemTypeId: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName),\n\t\t\tName:           pulumi.String(\"Require Title for Group Members\"),\n\t\t\tConditions: azuredevops.WorkitemtrackingprocessRuleConditionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleConditionArgs{\n\t\t\t\t\tConditionType: pulumi.String(\"whenCurrentUserIsMemberOfGroup\"),\n\t\t\t\t\tValue:         example.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tActions: azuredevops.WorkitemtrackingprocessRuleActionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleActionArgs{\n\t\t\t\t\tActionType:  pulumi.String(\"makeRequired\"),\n\t\t\t\t\tTargetField: pulumi.String(\"System.Title\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.GroupEntitlement;\nimport com.pulumi.azuredevops.GroupEntitlementArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRule;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRuleArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleConditionArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new GroupEntitlement(\"example\", GroupEntitlementArgs.builder()\n            .displayName(\"example-group\")\n            .build());\n\n        var groupMembership = new WorkitemtrackingprocessRule(\"groupMembership\", WorkitemtrackingprocessRuleArgs.builder()\n            .processId(exampleAzuredevopsWorkitemtrackingprocessProcess.id())\n            .workItemTypeId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"Require Title for Group Members\")\n            .conditions(WorkitemtrackingprocessRuleConditionArgs.builder()\n                .conditionType(\"whenCurrentUserIsMemberOfGroup\")\n                .value(example.id())\n                .build())\n            .actions(WorkitemtrackingprocessRuleActionArgs.builder()\n                .actionType(\"makeRequired\")\n                .targetField(\"System.Title\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:GroupEntitlement\n    properties:\n      displayName: example-group\n  groupMembership:\n    type: azuredevops:WorkitemtrackingprocessRule\n    name: group_membership\n    properties:\n      processId: ${exampleAzuredevopsWorkitemtrackingprocessProcess.id}\n      workItemTypeId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: Require Title for Group Members\n      conditions:\n        - conditionType: whenCurrentUserIsMemberOfGroup\n          value: ${example.id}\n      actions:\n        - actionType: makeRequired\n          targetField: System.Title\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Disallow Value Action\n\nThe `disallowValue` action must target `System.State` and be paired with a `whenWas` condition on `System.State`.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst disallowValue = new azuredevops.WorkitemtrackingprocessRule(\"disallow_value\", {\n    processId: example.id,\n    workItemTypeId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"Prevent Closing from New\",\n    conditions: [{\n        conditionType: \"whenWas\",\n        field: \"System.State\",\n        value: \"New\",\n    }],\n    actions: [{\n        actionType: \"disallowValue\",\n        targetField: \"System.State\",\n        value: \"Closed\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ndisallow_value = azuredevops.WorkitemtrackingprocessRule(\"disallow_value\",\n    process_id=example[\"id\"],\n    work_item_type_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"referenceName\"],\n    name=\"Prevent Closing from New\",\n    conditions=[{\n        \"condition_type\": \"whenWas\",\n        \"field\": \"System.State\",\n        \"value\": \"New\",\n    }],\n    actions=[{\n        \"action_type\": \"disallowValue\",\n        \"target_field\": \"System.State\",\n        \"value\": \"Closed\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var disallowValue = new AzureDevOps.WorkitemtrackingprocessRule(\"disallow_value\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"Prevent Closing from New\",\n        Conditions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleConditionArgs\n            {\n                ConditionType = \"whenWas\",\n                Field = \"System.State\",\n                Value = \"New\",\n            },\n        },\n        Actions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleActionArgs\n            {\n                ActionType = \"disallowValue\",\n                TargetField = \"System.State\",\n                Value = \"Closed\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.NewWorkitemtrackingprocessRule(ctx, \"disallow_value\", \u0026azuredevops.WorkitemtrackingprocessRuleArgs{\n\t\t\tProcessId:      pulumi.Any(example.Id),\n\t\t\tWorkItemTypeId: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName),\n\t\t\tName:           pulumi.String(\"Prevent Closing from New\"),\n\t\t\tConditions: azuredevops.WorkitemtrackingprocessRuleConditionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleConditionArgs{\n\t\t\t\t\tConditionType: pulumi.String(\"whenWas\"),\n\t\t\t\t\tField:         pulumi.String(\"System.State\"),\n\t\t\t\t\tValue:         pulumi.String(\"New\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tActions: azuredevops.WorkitemtrackingprocessRuleActionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleActionArgs{\n\t\t\t\t\tActionType:  pulumi.String(\"disallowValue\"),\n\t\t\t\t\tTargetField: pulumi.String(\"System.State\"),\n\t\t\t\t\tValue:       pulumi.String(\"Closed\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRule;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRuleArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleConditionArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var disallowValue = new WorkitemtrackingprocessRule(\"disallowValue\", WorkitemtrackingprocessRuleArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"Prevent Closing from New\")\n            .conditions(WorkitemtrackingprocessRuleConditionArgs.builder()\n                .conditionType(\"whenWas\")\n                .field(\"System.State\")\n                .value(\"New\")\n                .build())\n            .actions(WorkitemtrackingprocessRuleActionArgs.builder()\n                .actionType(\"disallowValue\")\n                .targetField(\"System.State\")\n                .value(\"Closed\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  disallowValue:\n    type: azuredevops:WorkitemtrackingprocessRule\n    name: disallow_value\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: Prevent Closing from New\n      conditions:\n        - conditionType: whenWas\n          field: System.State\n          value: New\n      actions:\n        - actionType: disallowValue\n          targetField: System.State\n          value: Closed\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Hide Target Field Action\n\nThe `hideTargetField` action requires group membership conditions.\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.GroupEntitlement(\"example\", {displayName: \"example-group\"});\nconst custom = new azuredevops.WorkitemtrackingField(\"custom\", {\n    name: \"Custom Field\",\n    referenceName: \"Custom.Field\",\n    type: \"string\",\n});\nconst customWorkitemtrackingprocessField = new azuredevops.WorkitemtrackingprocessField(\"custom\", {\n    processId: exampleAzuredevopsWorkitemtrackingprocessProcess.id,\n    workItemTypeId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.id,\n    fieldId: custom.id,\n});\nconst hideField = new azuredevops.WorkitemtrackingprocessRule(\"hide_field\", {\n    processId: exampleAzuredevopsWorkitemtrackingprocessProcess.id,\n    workItemTypeId: exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"Hide Custom Field for Non-Members\",\n    conditions: [{\n        conditionType: \"whenCurrentUserIsNotMemberOfGroup\",\n        value: example.id,\n    }],\n    actions: [{\n        actionType: \"hideTargetField\",\n        targetField: customWorkitemtrackingprocessField.fieldId,\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.GroupEntitlement(\"example\", display_name=\"example-group\")\ncustom = azuredevops.WorkitemtrackingField(\"custom\",\n    name=\"Custom Field\",\n    reference_name=\"Custom.Field\",\n    type=\"string\")\ncustom_workitemtrackingprocess_field = azuredevops.WorkitemtrackingprocessField(\"custom\",\n    process_id=example_azuredevops_workitemtrackingprocess_process[\"id\"],\n    work_item_type_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"id\"],\n    field_id=custom.id)\nhide_field = azuredevops.WorkitemtrackingprocessRule(\"hide_field\",\n    process_id=example_azuredevops_workitemtrackingprocess_process[\"id\"],\n    work_item_type_id=example_azuredevops_workitemtrackingprocess_workitemtype[\"referenceName\"],\n    name=\"Hide Custom Field for Non-Members\",\n    conditions=[{\n        \"condition_type\": \"whenCurrentUserIsNotMemberOfGroup\",\n        \"value\": example.id,\n    }],\n    actions=[{\n        \"action_type\": \"hideTargetField\",\n        \"target_field\": custom_workitemtrackingprocess_field.field_id,\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.GroupEntitlement(\"example\", new()\n    {\n        DisplayName = \"example-group\",\n    });\n\n    var custom = new AzureDevOps.WorkitemtrackingField(\"custom\", new()\n    {\n        Name = \"Custom Field\",\n        ReferenceName = \"Custom.Field\",\n        Type = \"string\",\n    });\n\n    var customWorkitemtrackingprocessField = new AzureDevOps.WorkitemtrackingprocessField(\"custom\", new()\n    {\n        ProcessId = exampleAzuredevopsWorkitemtrackingprocessProcess.Id,\n        WorkItemTypeId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Id,\n        FieldId = custom.Id,\n    });\n\n    var hideField = new AzureDevOps.WorkitemtrackingprocessRule(\"hide_field\", new()\n    {\n        ProcessId = exampleAzuredevopsWorkitemtrackingprocessProcess.Id,\n        WorkItemTypeId = exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"Hide Custom Field for Non-Members\",\n        Conditions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleConditionArgs\n            {\n                ConditionType = \"whenCurrentUserIsNotMemberOfGroup\",\n                Value = example.Id,\n            },\n        },\n        Actions = new[]\n        {\n            new AzureDevOps.Inputs.WorkitemtrackingprocessRuleActionArgs\n            {\n                ActionType = \"hideTargetField\",\n                TargetField = customWorkitemtrackingprocessField.FieldId,\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewGroupEntitlement(ctx, \"example\", \u0026azuredevops.GroupEntitlementArgs{\n\t\t\tDisplayName: pulumi.String(\"example-group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcustom, err := azuredevops.NewWorkitemtrackingField(ctx, \"custom\", \u0026azuredevops.WorkitemtrackingFieldArgs{\n\t\t\tName:          pulumi.String(\"Custom Field\"),\n\t\t\tReferenceName: pulumi.String(\"Custom.Field\"),\n\t\t\tType:          pulumi.String(\"string\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tcustomWorkitemtrackingprocessField, err := azuredevops.NewWorkitemtrackingprocessField(ctx, \"custom\", \u0026azuredevops.WorkitemtrackingprocessFieldArgs{\n\t\t\tProcessId:      pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessProcess.Id),\n\t\t\tWorkItemTypeId: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.Id),\n\t\t\tFieldId:        custom.ID(),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessRule(ctx, \"hide_field\", \u0026azuredevops.WorkitemtrackingprocessRuleArgs{\n\t\t\tProcessId:      pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessProcess.Id),\n\t\t\tWorkItemTypeId: pulumi.Any(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.ReferenceName),\n\t\t\tName:           pulumi.String(\"Hide Custom Field for Non-Members\"),\n\t\t\tConditions: azuredevops.WorkitemtrackingprocessRuleConditionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleConditionArgs{\n\t\t\t\t\tConditionType: pulumi.String(\"whenCurrentUserIsNotMemberOfGroup\"),\n\t\t\t\t\tValue:         example.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tActions: azuredevops.WorkitemtrackingprocessRuleActionArray{\n\t\t\t\t\u0026azuredevops.WorkitemtrackingprocessRuleActionArgs{\n\t\t\t\t\tActionType:  pulumi.String(\"hideTargetField\"),\n\t\t\t\t\tTargetField: customWorkitemtrackingprocessField.FieldId,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.GroupEntitlement;\nimport com.pulumi.azuredevops.GroupEntitlementArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingField;\nimport com.pulumi.azuredevops.WorkitemtrackingFieldArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessField;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessFieldArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRule;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessRuleArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleConditionArgs;\nimport com.pulumi.azuredevops.inputs.WorkitemtrackingprocessRuleActionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new GroupEntitlement(\"example\", GroupEntitlementArgs.builder()\n            .displayName(\"example-group\")\n            .build());\n\n        var custom = new WorkitemtrackingField(\"custom\", WorkitemtrackingFieldArgs.builder()\n            .name(\"Custom Field\")\n            .referenceName(\"Custom.Field\")\n            .type(\"string\")\n            .build());\n\n        var customWorkitemtrackingprocessField = new WorkitemtrackingprocessField(\"customWorkitemtrackingprocessField\", WorkitemtrackingprocessFieldArgs.builder()\n            .processId(exampleAzuredevopsWorkitemtrackingprocessProcess.id())\n            .workItemTypeId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.id())\n            .fieldId(custom.id())\n            .build());\n\n        var hideField = new WorkitemtrackingprocessRule(\"hideField\", WorkitemtrackingprocessRuleArgs.builder()\n            .processId(exampleAzuredevopsWorkitemtrackingprocessProcess.id())\n            .workItemTypeId(exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"Hide Custom Field for Non-Members\")\n            .conditions(WorkitemtrackingprocessRuleConditionArgs.builder()\n                .conditionType(\"whenCurrentUserIsNotMemberOfGroup\")\n                .value(example.id())\n                .build())\n            .actions(WorkitemtrackingprocessRuleActionArgs.builder()\n                .actionType(\"hideTargetField\")\n                .targetField(customWorkitemtrackingprocessField.fieldId())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:GroupEntitlement\n    properties:\n      displayName: example-group\n  custom:\n    type: azuredevops:WorkitemtrackingField\n    properties:\n      name: Custom Field\n      referenceName: Custom.Field\n      type: string\n  customWorkitemtrackingprocessField:\n    type: azuredevops:WorkitemtrackingprocessField\n    name: custom\n    properties:\n      processId: ${exampleAzuredevopsWorkitemtrackingprocessProcess.id}\n      workItemTypeId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.id}\n      fieldId: ${custom.id}\n  hideField:\n    type: azuredevops:WorkitemtrackingprocessRule\n    name: hide_field\n    properties:\n      processId: ${exampleAzuredevopsWorkitemtrackingprocessProcess.id}\n      workItemTypeId: ${exampleAzuredevopsWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: Hide Custom Field for Non-Members\n      conditions:\n        - conditionType: whenCurrentUserIsNotMemberOfGroup\n          value: ${example.id}\n      actions:\n        - actionType: hideTargetField\n          targetField: ${customWorkitemtrackingprocessField.fieldId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Rules](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/rules?view=azure-devops-rest-7.1)\n\n## Import\n\nRules can be imported using the complete resource id `process_id/work_item_type_id/rule_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessRule:WorkitemtrackingprocessRule example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/11111111-1111-1111-1111-111111111111\n```\n\n","properties":{"actions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleAction:WorkitemtrackingprocessRuleAction"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e blocks as defined below.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleCondition:WorkitemtrackingprocessRuleCondition"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e blocks as defined below.\n"},"isEnabled":{"type":"boolean","description":"Indicates if the rule is enabled. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"name":{"type":"string","description":"Name of the rule.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new rule to be created.\n"},"url":{"type":"string","description":"URL of the rule resource.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new rule to be created.\n"}},"required":["actions","conditions","name","processId","url","workItemTypeId"],"inputProperties":{"actions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleAction:WorkitemtrackingprocessRuleAction"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e blocks as defined below.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleCondition:WorkitemtrackingprocessRuleCondition"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e blocks as defined below.\n"},"isEnabled":{"type":"boolean","description":"Indicates if the rule is enabled. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"name":{"type":"string","description":"Name of the rule.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new rule to be created.\n","willReplaceOnChanges":true},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new rule to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["actions","conditions","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessRule resources.\n","properties":{"actions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleAction:WorkitemtrackingprocessRuleAction"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e blocks as defined below.\n"},"conditions":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessRuleCondition:WorkitemtrackingprocessRuleCondition"},"description":"One or more \u003cspan pulumi-lang-nodejs=\"`condition`\" pulumi-lang-dotnet=\"`Condition`\" pulumi-lang-go=\"`condition`\" pulumi-lang-python=\"`condition`\" pulumi-lang-yaml=\"`condition`\" pulumi-lang-java=\"`condition`\"\u003e`condition`\u003c/span\u003e blocks as defined below.\n"},"isEnabled":{"type":"boolean","description":"Indicates if the rule is enabled. Default: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"name":{"type":"string","description":"Name of the rule.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new rule to be created.\n","willReplaceOnChanges":true},"url":{"type":"string","description":"URL of the rule resource.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new rule to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessState:WorkitemtrackingprocessState":{"description":"Manages a state for a work item type.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessState = new azuredevops.WorkitemtrackingprocessState(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    name: \"Ready\",\n    color: \"#5688E0\",\n    stateCategory: \"Proposed\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_state = azuredevops.WorkitemtrackingprocessState(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    name=\"Ready\",\n    color=\"#5688E0\",\n    state_category=\"Proposed\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessState = new AzureDevOps.WorkitemtrackingprocessState(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        Name = \"Ready\",\n        Color = \"#5688E0\",\n        StateCategory = \"Proposed\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessState(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessStateArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tName:           pulumi.String(\"Ready\"),\n\t\t\tColor:          pulumi.String(\"#5688E0\"),\n\t\t\tStateCategory:  pulumi.String(\"Proposed\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessState;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessStateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessState = new WorkitemtrackingprocessState(\"exampleWorkitemtrackingprocessState\", WorkitemtrackingprocessStateArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .name(\"Ready\")\n            .color(\"#5688E0\")\n            .stateCategory(\"Proposed\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessState:\n    type: azuredevops:WorkitemtrackingprocessState\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      name: Ready\n      color: '#5688E0'\n      stateCategory: Proposed\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - States](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/states?view=azure-devops-rest-7.1)\n\n## Import\n\nStates can be imported using the complete resource id `process_id/work_item_type_id/state_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessState:WorkitemtrackingprocessState example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/00000000-0000-0000-0000-000000000000\n```\n\n","properties":{"color":{"type":"string","description":"Color hexadecimal code to represent the state, e.g. `#b2b2b2`.\n"},"name":{"type":"string","description":"Name of the state. Changing this forces a new state to be created.\n"},"order":{"type":"integer","description":"Order within the category where the state should appear.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new state to be created.\n"},"stateCategory":{"type":"string","description":"Category of the state. Valid values: `Proposed`, `InProgress`, `Resolved`, `Completed`, `Removed`.\n"},"url":{"type":"string","description":"URL of the state.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new state to be created.\n"}},"required":["color","name","order","processId","stateCategory","url","workItemTypeId"],"inputProperties":{"color":{"type":"string","description":"Color hexadecimal code to represent the state, e.g. `#b2b2b2`.\n"},"name":{"type":"string","description":"Name of the state. Changing this forces a new state to be created.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"Order within the category where the state should appear.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new state to be created.\n","willReplaceOnChanges":true},"stateCategory":{"type":"string","description":"Category of the state. Valid values: `Proposed`, `InProgress`, `Resolved`, `Completed`, `Removed`.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new state to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["color","processId","stateCategory","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessState resources.\n","properties":{"color":{"type":"string","description":"Color hexadecimal code to represent the state, e.g. `#b2b2b2`.\n"},"name":{"type":"string","description":"Name of the state. Changing this forces a new state to be created.\n","willReplaceOnChanges":true},"order":{"type":"integer","description":"Order within the category where the state should appear.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new state to be created.\n","willReplaceOnChanges":true},"stateCategory":{"type":"string","description":"Category of the state. Valid values: `Proposed`, `InProgress`, `Resolved`, `Completed`, `Removed`.\n"},"url":{"type":"string","description":"URL of the state.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new state to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessSystemControl:WorkitemtrackingprocessSystemControl":{"description":"Manages a system control customization for a work item type.\n\nSystem controls are built-in controls like Area Path, Iteration Path, and Reason that can have their visibility and label customized. Unlike regular controls, system controls cannot be removed - only their display properties can be modified.\n\n\u003e **Note:** This resource modifies system controls. When the resource is deleted, the system control reverts to its default state rather than being removed.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n});\nconst exampleWorkitemtrackingprocessSystemControl = new azuredevops.WorkitemtrackingprocessSystemControl(\"example\", {\n    processId: example.id,\n    workItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.referenceName,\n    controlId: \"System.AreaPath\",\n    visible: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\")\nexample_workitemtrackingprocess_system_control = azuredevops.WorkitemtrackingprocessSystemControl(\"example\",\n    process_id=example.id,\n    work_item_type_id=example_workitemtrackingprocess_workitemtype.reference_name,\n    control_id=\"System.AreaPath\",\n    visible=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n    });\n\n    var exampleWorkitemtrackingprocessSystemControl = new AzureDevOps.WorkitemtrackingprocessSystemControl(\"example\", new()\n    {\n        ProcessId = example.Id,\n        WorkItemTypeId = exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n        ControlId = \"System.AreaPath\",\n        Visible = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleWorkitemtrackingprocessWorkitemtype, err := azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId: example.ID(),\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessSystemControl(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessSystemControlArgs{\n\t\t\tProcessId:      example.ID(),\n\t\t\tWorkItemTypeId: exampleWorkitemtrackingprocessWorkitemtype.ReferenceName,\n\t\t\tControlId:      pulumi.String(\"System.AreaPath\"),\n\t\t\tVisible:        pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessSystemControl;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessSystemControlArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .build());\n\n        var exampleWorkitemtrackingprocessSystemControl = new WorkitemtrackingprocessSystemControl(\"exampleWorkitemtrackingprocessSystemControl\", WorkitemtrackingprocessSystemControlArgs.builder()\n            .processId(example.id())\n            .workItemTypeId(exampleWorkitemtrackingprocessWorkitemtype.referenceName())\n            .controlId(\"System.AreaPath\")\n            .visible(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n  exampleWorkitemtrackingprocessSystemControl:\n    type: azuredevops:WorkitemtrackingprocessSystemControl\n    name: example\n    properties:\n      processId: ${example.id}\n      workItemTypeId: ${exampleWorkitemtrackingprocessWorkitemtype.referenceName}\n      controlId: System.AreaPath\n      visible: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - System Controls](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/system-controls?view=azure-devops-rest-7.1)\n\n## Import\n\nSystem control customizations can be imported using the complete resource id `process_id/work_item_type_id/control_id`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessSystemControl:WorkitemtrackingprocessSystemControl example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType/System.AreaPath\n```\n\n","properties":{"controlId":{"type":"string","description":"The ID of the system control (e.g., `System.AreaPath`, `System.IterationPath`, `System.Reason`). Changing this forces a new resource to be created.\n"},"controlType":{"type":"string","description":"Type of the control.\n"},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n"},"readOnly":{"type":"boolean","description":"Whether the control is read-only.\n"},"visible":{"type":"boolean","description":"Whether the control should be visible. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n"}},"required":["controlId","controlType","label","processId","readOnly","workItemTypeId"],"inputProperties":{"controlId":{"type":"string","description":"The ID of the system control (e.g., `System.AreaPath`, `System.IterationPath`, `System.Reason`). Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"visible":{"type":"boolean","description":"Whether the control should be visible. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["controlId","processId","workItemTypeId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessSystemControl resources.\n","properties":{"controlId":{"type":"string","description":"The ID of the system control (e.g., `System.AreaPath`, `System.IterationPath`, `System.Reason`). Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"controlType":{"type":"string","description":"Type of the control.\n"},"label":{"type":"string","description":"Label for the control.\n"},"processId":{"type":"string","description":"The ID of the process. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true},"readOnly":{"type":"boolean","description":"Whether the control is read-only.\n"},"visible":{"type":"boolean","description":"Whether the control should be visible. Defaults to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"workItemTypeId":{"type":"string","description":"The ID (reference name) of the work item type. Changing this forces a new resource to be created.\n","willReplaceOnChanges":true}},"type":"object"}},"azuredevops:index/workitemtrackingprocessWorkitemtype:WorkitemtrackingprocessWorkitemtype":{"description":"Manages a work item type for a process.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.WorkitemtrackingprocessProcess(\"example\", {\n    name: \"example-process\",\n    parentProcessTypeId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nconst exampleWorkitemtrackingprocessWorkitemtype = new azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\", {\n    processId: example.id,\n    name: \"example\",\n    description: \"Example work item type\",\n    color: \"#FF5733\",\n    icon: \"icon_clipboard\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.WorkitemtrackingprocessProcess(\"example\",\n    name=\"example-process\",\n    parent_process_type_id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\nexample_workitemtrackingprocess_workitemtype = azuredevops.WorkitemtrackingprocessWorkitemtype(\"example\",\n    process_id=example.id,\n    name=\"example\",\n    description=\"Example work item type\",\n    color=\"#FF5733\",\n    icon=\"icon_clipboard\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.WorkitemtrackingprocessProcess(\"example\", new()\n    {\n        Name = \"example-process\",\n        ParentProcessTypeId = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    var exampleWorkitemtrackingprocessWorkitemtype = new AzureDevOps.WorkitemtrackingprocessWorkitemtype(\"example\", new()\n    {\n        ProcessId = example.Id,\n        Name = \"example\",\n        Description = \"Example work item type\",\n        Color = \"#FF5733\",\n        Icon = \"icon_clipboard\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewWorkitemtrackingprocessProcess(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessProcessArgs{\n\t\t\tName:                pulumi.String(\"example-process\"),\n\t\t\tParentProcessTypeId: pulumi.String(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.NewWorkitemtrackingprocessWorkitemtype(ctx, \"example\", \u0026azuredevops.WorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId:   example.ID(),\n\t\t\tName:        pulumi.String(\"example\"),\n\t\t\tDescription: pulumi.String(\"Example work item type\"),\n\t\t\tColor:       pulumi.String(\"#FF5733\"),\n\t\t\tIcon:        pulumi.String(\"icon_clipboard\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcess;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessProcessArgs;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtype;\nimport com.pulumi.azuredevops.WorkitemtrackingprocessWorkitemtypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new WorkitemtrackingprocessProcess(\"example\", WorkitemtrackingprocessProcessArgs.builder()\n            .name(\"example-process\")\n            .parentProcessTypeId(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        var exampleWorkitemtrackingprocessWorkitemtype = new WorkitemtrackingprocessWorkitemtype(\"exampleWorkitemtrackingprocessWorkitemtype\", WorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(example.id())\n            .name(\"example\")\n            .description(\"Example work item type\")\n            .color(\"#FF5733\")\n            .icon(\"icon_clipboard\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:WorkitemtrackingprocessProcess\n    properties:\n      name: example-process\n      parentProcessTypeId: adcc42ab-9882-485e-a3ed-7678f01f66bc\n  exampleWorkitemtrackingprocessWorkitemtype:\n    type: azuredevops:WorkitemtrackingprocessWorkitemtype\n    name: example\n    properties:\n      processId: ${example.id}\n      name: example\n      description: Example work item type\n      color: '#FF5733'\n      icon: icon_clipboard\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Work Item Types](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/work-item-types?view=azure-devops-rest-7.1)\n\n## Import\n\nwork item types can be imported using the complete resource id `process_id/reference_name`, e.g.\n\n```sh\n$ pulumi import azuredevops:index/workitemtrackingprocessWorkitemtype:WorkitemtrackingprocessWorkitemtype example 00000000-0000-0000-0000-000000000000/MyProcess.CustomWorkItemType\n```\n\n","properties":{"color":{"type":"string","description":"Color hexadecimal code to represent the work item type. Default: \"#009ccc\"\n"},"description":{"type":"string","description":"Description of the work item type.\n"},"icon":{"type":"string","description":"Icon to represent the work item type. Default: \u003cspan pulumi-lang-nodejs=\"\"iconClipboard\"\" pulumi-lang-dotnet=\"\"IconClipboard\"\" pulumi-lang-go=\"\"iconClipboard\"\" pulumi-lang-python=\"\"icon_clipboard\"\" pulumi-lang-yaml=\"\"iconClipboard\"\" pulumi-lang-java=\"\"iconClipboard\"\"\u003e\"icon_clipboard\"\u003c/span\u003e\n"},"isEnabled":{"type":"boolean","description":"True if the work item type is enabled. Default: true\n"},"name":{"type":"string","description":"Name of work item type. Changing this forces a new work item type to be created.\n"},"pages":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessWorkitemtypePage:WorkitemtrackingprocessWorkitemtypePage"},"description":"A \u003cspan pulumi-lang-nodejs=\"`pages`\" pulumi-lang-dotnet=\"`Pages`\" pulumi-lang-go=\"`pages`\" pulumi-lang-python=\"`pages`\" pulumi-lang-yaml=\"`pages`\" pulumi-lang-java=\"`pages`\"\u003e`pages`\u003c/span\u003e block as defined below.\n"},"parentWorkItemReferenceName":{"type":"string","description":"Reference name of the parent work item type. Changing this forces a new work item type to be created.\n"},"processId":{"type":"string","description":"The ID of the process the work item type belongs to. Changing this forces a new work item type to be created.\n"},"referenceName":{"type":"string","description":"Reference name of the work item type.\n"},"url":{"type":"string","description":"Url of the work item type.\n"}},"required":["name","pages","processId","referenceName","url"],"inputProperties":{"color":{"type":"string","description":"Color hexadecimal code to represent the work item type. Default: \"#009ccc\"\n"},"description":{"type":"string","description":"Description of the work item type.\n"},"icon":{"type":"string","description":"Icon to represent the work item type. Default: \u003cspan pulumi-lang-nodejs=\"\"iconClipboard\"\" pulumi-lang-dotnet=\"\"IconClipboard\"\" pulumi-lang-go=\"\"iconClipboard\"\" pulumi-lang-python=\"\"icon_clipboard\"\" pulumi-lang-yaml=\"\"iconClipboard\"\" pulumi-lang-java=\"\"iconClipboard\"\"\u003e\"icon_clipboard\"\u003c/span\u003e\n"},"isEnabled":{"type":"boolean","description":"True if the work item type is enabled. Default: true\n"},"name":{"type":"string","description":"Name of work item type. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true},"parentWorkItemReferenceName":{"type":"string","description":"Reference name of the parent work item type. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process the work item type belongs to. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true}},"requiredInputs":["processId"],"stateInputs":{"description":"Input properties used for looking up and filtering WorkitemtrackingprocessWorkitemtype resources.\n","properties":{"color":{"type":"string","description":"Color hexadecimal code to represent the work item type. Default: \"#009ccc\"\n"},"description":{"type":"string","description":"Description of the work item type.\n"},"icon":{"type":"string","description":"Icon to represent the work item type. Default: \u003cspan pulumi-lang-nodejs=\"\"iconClipboard\"\" pulumi-lang-dotnet=\"\"IconClipboard\"\" pulumi-lang-go=\"\"iconClipboard\"\" pulumi-lang-python=\"\"icon_clipboard\"\" pulumi-lang-yaml=\"\"iconClipboard\"\" pulumi-lang-java=\"\"iconClipboard\"\"\u003e\"icon_clipboard\"\u003c/span\u003e\n"},"isEnabled":{"type":"boolean","description":"True if the work item type is enabled. Default: true\n"},"name":{"type":"string","description":"Name of work item type. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true},"pages":{"type":"array","items":{"$ref":"#/types/azuredevops:index/WorkitemtrackingprocessWorkitemtypePage:WorkitemtrackingprocessWorkitemtypePage"},"description":"A \u003cspan pulumi-lang-nodejs=\"`pages`\" pulumi-lang-dotnet=\"`Pages`\" pulumi-lang-go=\"`pages`\" pulumi-lang-python=\"`pages`\" pulumi-lang-yaml=\"`pages`\" pulumi-lang-java=\"`pages`\"\u003e`pages`\u003c/span\u003e block as defined below.\n"},"parentWorkItemReferenceName":{"type":"string","description":"Reference name of the parent work item type. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true},"processId":{"type":"string","description":"The ID of the process the work item type belongs to. Changing this forces a new work item type to be created.\n","willReplaceOnChanges":true},"referenceName":{"type":"string","description":"Reference name of the work item type.\n"},"url":{"type":"string","description":"Url of the work item type.\n"}},"type":"object"}}},"functions":{"azuredevops:index/getAgentQueue:getAgentQueue":{"description":"Use this data source to access information about an existing Agent Queue within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example = azuredevops.getAgentQueueOutput({\n    projectId: exampleProject.id,\n    name: \"Example Agent Queue\",\n});\nexport const name = example.apply(example =\u003e example.name);\nexport const poolId = example.apply(example =\u003e example.agentPoolId);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample = azuredevops.get_agent_queue_output(project_id=example_project.id,\n    name=\"Example Agent Queue\")\npulumi.export(\"name\", example.name)\npulumi.export(\"poolId\", example.agent_pool_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example = AzureDevOps.GetAgentQueue.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Example Agent Queue\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"name\"] = example.Apply(getAgentQueueResult =\u003e getAgentQueueResult.Name),\n        [\"poolId\"] = example.Apply(getAgentQueueResult =\u003e getAgentQueueResult.AgentPoolId),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texample := azuredevops.GetAgentQueueOutput(ctx, azuredevops.GetAgentQueueOutputArgs{\n\t\t\tProjectId: exampleProject.ID(),\n\t\t\tName:      pulumi.String(\"Example Agent Queue\"),\n\t\t}, nil)\n\t\tctx.Export(\"name\", example.ApplyT(func(example azuredevops.GetAgentQueueResult) (*string, error) {\n\t\t\treturn \u0026example.Name, nil\n\t\t}).(pulumi.StringPtrOutput))\n\t\tctx.Export(\"poolId\", example.ApplyT(func(example azuredevops.GetAgentQueueResult) (*int, error) {\n\t\t\treturn \u0026example.AgentPoolId, nil\n\t\t}).(pulumi.IntPtrOutput))\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetAgentQueueArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example = AzuredevopsFunctions.getAgentQueue(GetAgentQueueArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Example Agent Queue\")\n            .build());\n\n        ctx.export(\"name\", example.applyValue(_example -\u003e _example.name()));\n        ctx.export(\"poolId\", example.applyValue(_example -\u003e _example.agentPoolId()));\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getAgentQueue\n      arguments:\n        projectId: ${exampleProject.id}\n        name: Example Agent Queue\noutputs:\n  name: ${example.name}\n  poolId: ${example.agentPoolId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Agent Queues - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/queues/get?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getAgentQueue.\n","properties":{"name":{"type":"string","description":"Name of the Agent Queue.\n"},"projectId":{"type":"string","description":"The Project Id.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getAgentQueue.\n","properties":{"agentPoolId":{"description":"The ID of the Agent pool to which the agent queue belongs.\n","type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the agent queue.\n","type":"string"},"projectId":{"description":"The ID of the Project to which the agent queue belongs.\n","type":"string"}},"required":["agentPoolId","name","projectId","id"],"type":"object"}},"azuredevops:index/getArea:getArea":{"description":"Use this data source to access information about an existing Area (Component) within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example = exampleProject.id.apply(id =\u003e azuredevops.getAreaOutput({\n    projectId: id,\n    path: \"/\",\n    fetchChildren: false,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample = example_project.id.apply(lambda id: azuredevops.get_area_output(project_id=id,\n    path=\"/\",\n    fetch_children=False))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example = AzureDevOps.GetArea.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        Path = \"/\",\n        FetchChildren = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = exampleProject.ID().ApplyT(func(id string) (azuredevops.GetAreaResult, error) {\n\t\t\treturn azuredevops.GetAreaResult(interface{}(azuredevops.GetArea(ctx, \u0026azuredevops.GetAreaArgs{\n\t\t\t\tProjectId:     id,\n\t\t\t\tPath:          pulumi.StringRef(pulumi.StringRef(\"/\")),\n\t\t\t\tFetchChildren: pulumi.BoolRef(pulumi.BoolRef(false)),\n\t\t\t}, nil))), nil\n\t\t}).(azuredevops.GetAreaResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetAreaArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example = exampleProject.id().applyValue(_id -\u003e AzuredevopsFunctions.getArea(GetAreaArgs.builder()\n            .projectId(_id)\n            .path(\"/\")\n            .fetchChildren(false)\n            .build()));\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getArea\n      arguments:\n        projectId: ${exampleProject.id}\n        path: /\n        fetchChildren: 'false'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Classification Nodes - Get Classification Nodes](https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/classification-nodes/create-or-update?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.work - Grants the ability to read work items, queries, boards, area and iterations paths, and other work item tracking related metadata. Also grants the ability to execute queries, search work items and to receive notifications about work item events via service hooks.\n","inputs":{"description":"A collection of arguments for invoking getArea.\n","properties":{"fetchChildren":{"type":"boolean","description":"Read children nodes, _Depth_: 1, _Default_: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"path":{"type":"string","description":"The path to the Area; _Format_: URL relative; if omitted, or value `\"/\"` is used, the root Area will be returned\n"},"projectId":{"type":"string","description":"The project ID.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getArea.\n","properties":{"childrens":{"description":"A list of \u003cspan pulumi-lang-nodejs=\"`children`\" pulumi-lang-dotnet=\"`Children`\" pulumi-lang-go=\"`children`\" pulumi-lang-python=\"`children`\" pulumi-lang-yaml=\"`children`\" pulumi-lang-java=\"`children`\"\u003e`children`\u003c/span\u003e blocks as defined below, empty if \u003cspan pulumi-lang-nodejs=\"`hasChildren \" pulumi-lang-dotnet=\"`HasChildren \" pulumi-lang-go=\"`hasChildren \" pulumi-lang-python=\"`has_children \" pulumi-lang-yaml=\"`hasChildren \" pulumi-lang-java=\"`hasChildren \"\u003e`has_children \u003c/span\u003e== false`\n","items":{"$ref":"#/types/azuredevops:index/getAreaChildren:getAreaChildren"},"type":"array"},"fetchChildren":{"type":"boolean"},"hasChildren":{"description":"Indicator if the child Area node has child nodes\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the child Area node\n","type":"string"},"path":{"description":"The complete path (in relative URL format) of the child Area\n","type":"string"},"projectId":{"description":"The ID of project.\n","type":"string"}},"required":["childrens","hasChildren","name","path","projectId","id"],"type":"object"}},"azuredevops:index/getBuildDefinition:getBuildDefinition":{"description":"Use this data source to access information about an existing Build Definition.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetBuildDefinition = example.then(example =\u003e azuredevops.getBuildDefinition({\n    projectId: example.id,\n    name: \"existing\",\n}));\nexport const id = exampleGetBuildDefinition.then(exampleGetBuildDefinition =\u003e exampleGetBuildDefinition.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_build_definition = azuredevops.get_build_definition(project_id=example.id,\n    name=\"existing\")\npulumi.export(\"id\", example_get_build_definition.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetBuildDefinition = AzureDevOps.GetBuildDefinition.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"existing\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = exampleGetBuildDefinition.Apply(getBuildDefinitionResult =\u003e getBuildDefinitionResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetBuildDefinition, err := azuredevops.LookupBuildDefinition(ctx, \u0026azuredevops.LookupBuildDefinitionArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleGetBuildDefinition.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetBuildDefinitionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetBuildDefinition = AzuredevopsFunctions.getBuildDefinition(GetBuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"existing\")\n            .build());\n\n        ctx.export(\"id\", exampleGetBuildDefinition.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetBuildDefinition:\n    fn::invoke:\n      function: azuredevops:getBuildDefinition\n      arguments:\n        projectId: ${example.id}\n        name: existing\noutputs:\n  id: ${exampleGetBuildDefinition.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getBuildDefinition.\n","properties":{"name":{"type":"string","description":"The name of this Build Definition.\n"},"path":{"type":"string","description":"The path of the build definition. Default to `\\`.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getBuildDefinition.\n","properties":{"agentPoolName":{"description":"The agent pool that should execute the build.\n","type":"string"},"agentSpecification":{"description":"The Agent Specification to run the pipelines. Example: `windows-2019`, `windows-latest`, `macos-13` etc.\n","type":"string"},"ciTriggers":{"description":"A \u003cspan pulumi-lang-nodejs=\"`ciTrigger`\" pulumi-lang-dotnet=\"`CiTrigger`\" pulumi-lang-go=\"`ciTrigger`\" pulumi-lang-python=\"`ci_trigger`\" pulumi-lang-yaml=\"`ciTrigger`\" pulumi-lang-java=\"`ciTrigger`\"\u003e`ci_trigger`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionCiTrigger:getBuildDefinitionCiTrigger"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"jobAuthorizationScope":{"description":"The job authorization scope for builds queued against this definition.\n","type":"string"},"jobs":{"description":"A \u003cspan pulumi-lang-nodejs=\"`jobs`\" pulumi-lang-dotnet=\"`Jobs`\" pulumi-lang-go=\"`jobs`\" pulumi-lang-python=\"`jobs`\" pulumi-lang-yaml=\"`jobs`\" pulumi-lang-java=\"`jobs`\"\u003e`jobs`\u003c/span\u003e blocks as documented below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionJob:getBuildDefinitionJob"},"type":"array"},"name":{"description":"The name of the variable.\n","type":"string"},"path":{"type":"string"},"projectId":{"type":"string"},"pullRequestTriggers":{"description":"A \u003cspan pulumi-lang-nodejs=\"`pullRequestTrigger`\" pulumi-lang-dotnet=\"`PullRequestTrigger`\" pulumi-lang-go=\"`pullRequestTrigger`\" pulumi-lang-python=\"`pull_request_trigger`\" pulumi-lang-yaml=\"`pullRequestTrigger`\" pulumi-lang-java=\"`pullRequestTrigger`\"\u003e`pull_request_trigger`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionPullRequestTrigger:getBuildDefinitionPullRequestTrigger"},"type":"array"},"queueStatus":{"description":"The queue status of the build definition.\n","type":"string"},"repositories":{"description":"A \u003cspan pulumi-lang-nodejs=\"`repository`\" pulumi-lang-dotnet=\"`Repository`\" pulumi-lang-go=\"`repository`\" pulumi-lang-python=\"`repository`\" pulumi-lang-yaml=\"`repository`\" pulumi-lang-java=\"`repository`\"\u003e`repository`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionRepository:getBuildDefinitionRepository"},"type":"array"},"revision":{"description":"The revision of the build definition.\n","type":"integer"},"schedules":{"description":"A \u003cspan pulumi-lang-nodejs=\"`schedules`\" pulumi-lang-dotnet=\"`Schedules`\" pulumi-lang-go=\"`schedules`\" pulumi-lang-python=\"`schedules`\" pulumi-lang-yaml=\"`schedules`\" pulumi-lang-java=\"`schedules`\"\u003e`schedules`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionSchedule:getBuildDefinitionSchedule"},"type":"array"},"variableGroups":{"description":"A list of variable group IDs.\n","items":{"type":"integer"},"type":"array"},"variables":{"description":"A \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getBuildDefinitionVariable:getBuildDefinitionVariable"},"type":"array"}},"required":["agentPoolName","agentSpecification","ciTriggers","jobAuthorizationScope","jobs","name","projectId","pullRequestTriggers","queueStatus","repositories","revision","schedules","variables","variableGroups","id"],"type":"object"}},"azuredevops:index/getClientConfig:getClientConfig":{"description":"Use this data source to access information about the Azure DevOps organization configured for the provider.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getClientConfig({});\nexport const orgUrl = example.then(example =\u003e example.organizationUrl);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_client_config()\npulumi.export(\"orgUrl\", example.organization_url)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetClientConfig.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"orgUrl\"] = example.Apply(getClientConfigResult =\u003e getClientConfigResult.OrganizationUrl),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetClientConfig(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"orgUrl\", example.OrganizationUrl)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getClientConfig(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"orgUrl\", example.organizationUrl());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getClientConfig\n      arguments: {}\noutputs:\n  orgUrl: ${example.organizationUrl}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","outputs":{"description":"A collection of values returned by getClientConfig.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the organization.\n","type":"string"},"organizationUrl":{"description":"The URL of the organization.\n","type":"string"},"ownerId":{"description":"The owner ID of the organization.\n","type":"string"},"status":{"description":"The status of the organization.\n","type":"string"},"tenantId":{"description":"The Tenant ID of the connected Azure Directory.\n","type":"string"}},"required":["name","organizationUrl","ownerId","status","tenantId","id"],"type":"object"}},"azuredevops:index/getDescriptor:getDescriptor":{"description":"Use this data source to access information about an existing Descriptor.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getDescriptor({\n    storageKey: \"00000000-0000-0000-0000-000000000000\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_descriptor(storage_key=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetDescriptor.Invoke(new()\n    {\n        StorageKey = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getDescriptorResult =\u003e getDescriptorResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetDescriptor(ctx, \u0026azuredevops.GetDescriptorArgs{\n\t\t\tStorageKey: \"00000000-0000-0000-0000-000000000000\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetDescriptorArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getDescriptor(GetDescriptorArgs.builder()\n            .storageKey(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        ctx.export(\"id\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getDescriptor\n      arguments:\n        storageKey: 00000000-0000-0000-0000-000000000000\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Descriptors - Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/graph/descriptors/get?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getDescriptor.\n","properties":{"storageKey":{"type":"string","description":"The ID of the resource(\u003cspan pulumi-lang-nodejs=\"`user`\" pulumi-lang-dotnet=\"`User`\" pulumi-lang-go=\"`user`\" pulumi-lang-python=\"`user`\" pulumi-lang-yaml=\"`user`\" pulumi-lang-java=\"`user`\"\u003e`user`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`group`\" pulumi-lang-dotnet=\"`Group`\" pulumi-lang-go=\"`group`\" pulumi-lang-python=\"`group`\" pulumi-lang-yaml=\"`group`\" pulumi-lang-java=\"`group`\"\u003e`group`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scope`\" pulumi-lang-dotnet=\"`Scope`\" pulumi-lang-go=\"`scope`\" pulumi-lang-python=\"`scope`\" pulumi-lang-yaml=\"`scope`\" pulumi-lang-java=\"`scope`\"\u003e`scope`\u003c/span\u003e, etc.) that will be resolved to a descriptor.\n"}},"type":"object","required":["storageKey"]},"outputs":{"description":"A collection of values returned by getDescriptor.\n","properties":{"descriptor":{"description":"The descriptor of the storage key.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"storageKey":{"type":"string"}},"required":["descriptor","storageKey","id"],"type":"object"}},"azuredevops:index/getEnvironment:getEnvironment":{"description":"Use this data source to access information about an Environment.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst exampleEnvironment = new azuredevops.Environment(\"example\", {\n    projectId: exampleProject.id,\n    name: \"Example Environment\",\n    description: \"Managed by Pulumi\",\n});\nconst example = pulumi.all([exampleProject.id, exampleEnvironment.id]).apply(([exampleProjectId, exampleEnvironmentId]) =\u003e azuredevops.getEnvironmentOutput({\n    projectId: exampleProjectId,\n    environmentId: exampleEnvironmentId,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_environment = azuredevops.Environment(\"example\",\n    project_id=example_project.id,\n    name=\"Example Environment\",\n    description=\"Managed by Pulumi\")\nexample = pulumi.Output.all(\n    exampleProjectId=example_project.id,\n    exampleEnvironmentId=example_environment.id\n).apply(lambda resolved_outputs: azuredevops.get_environment_output(project_id=resolved_outputs['exampleProjectId'],\n    environment_id=%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference)))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var exampleEnvironment = new AzureDevOps.Environment(\"example\", new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Example Environment\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example = AzureDevOps.GetEnvironment.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        EnvironmentId = exampleEnvironment.Id,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleEnvironment, err := azuredevops.NewEnvironment(ctx, \"example\", \u0026azuredevops.EnvironmentArgs{\n\t\t\tProjectId:   exampleProject.ID(),\n\t\t\tName:        pulumi.String(\"Example Environment\"),\n\t\t\tDescription: pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = pulumi.All(exampleProject.ID(), exampleEnvironment.ID()).ApplyT(func(_args []interface{}) (azuredevops.GetEnvironmentResult, error) {\n\t\t\texampleProjectId := _args[0].(string)\n\t\t\texampleEnvironmentId := _args[1].(string)\n\t\t\treturn azuredevops.GetEnvironmentResult(interface{}(azuredevops.LookupEnvironment(ctx, \u0026azuredevops.LookupEnvironmentArgs{\n\t\t\t\tProjectId:     exampleProjectId,\n\t\t\t\tEnvironmentId: pulumi.IntRef(pulumi.IntRef(int(exampleEnvironmentId))),\n\t\t\t}, nil))), nil\n\t\t}).(azuredevops.GetEnvironmentResultOutput)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.Environment;\nimport com.pulumi.azuredevops.EnvironmentArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetEnvironmentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        var exampleEnvironment = new Environment(\"exampleEnvironment\", EnvironmentArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Example Environment\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example = Output.tuple(exampleProject.id(), exampleEnvironment.id()).applyValue(values -\u003e {\n            var exampleProjectId = values.t1;\n            var exampleEnvironmentId = values.t2;\n            return AzuredevopsFunctions.getEnvironment(GetEnvironmentArgs.builder()\n                .projectId(exampleProjectId)\n                .environmentId(exampleEnvironmentId)\n                .build());\n        });\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\n  exampleEnvironment:\n    type: azuredevops:Environment\n    name: example\n    properties:\n      projectId: ${exampleProject.id}\n      name: Example Environment\n      description: Managed by Pulumi\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getEnvironment\n      arguments:\n        projectId: ${exampleProject.id}\n        environmentId: ${exampleEnvironment.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n* [Azure DevOps Service REST API 7.0 - Environments](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/environments?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getEnvironment.\n","properties":{"environmentId":{"type":"integer","description":"The ID of the Environment.\n"},"name":{"type":"string","description":"Name of the Environment.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`environmentId`\" pulumi-lang-dotnet=\"`EnvironmentId`\" pulumi-lang-go=\"`environmentId`\" pulumi-lang-python=\"`environment_id`\" pulumi-lang-yaml=\"`environmentId`\" pulumi-lang-java=\"`environmentId`\"\u003e`environment_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be specified.\n"},"projectId":{"type":"string","description":"The ID of the project.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getEnvironment.\n","properties":{"description":{"description":"A description for the Environment.\n","type":"string"},"environmentId":{"type":"integer"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the Environment.\n","type":"string"},"projectId":{"type":"string"}},"required":["description","name","projectId","id"],"type":"object"}},"azuredevops:index/getFeed:getFeed":{"description":"Use this data source to access information about existing Feed within a given project in Azure DevOps.\n\n## Example Usage\n\n### Basic Example\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getFeed({\n    name: \"releases\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_feed(name=\"releases\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetFeed.Invoke(new()\n    {\n        Name = \"releases\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.LookupFeed(ctx, \u0026azuredevops.LookupFeedArgs{\n\t\t\tName: pulumi.StringRef(\"releases\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetFeedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getFeed(GetFeedArgs.builder()\n            .name(\"releases\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getFeed\n      arguments:\n        name: releases\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Access feed within a project\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetFeed = example.then(example =\u003e azuredevops.getFeed({\n    name: \"releases\",\n    projectId: example.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_feed = azuredevops.get_feed(name=\"releases\",\n    project_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetFeed = AzureDevOps.GetFeed.Invoke(new()\n    {\n        Name = \"releases\",\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.LookupFeed(ctx, \u0026azuredevops.LookupFeedArgs{\n\t\t\tName:      pulumi.StringRef(\"releases\"),\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetFeedArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetFeed = AzuredevopsFunctions.getFeed(GetFeedArgs.builder()\n            .name(\"releases\")\n            .projectId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetFeed:\n    fn::invoke:\n      function: azuredevops:getFeed\n      arguments:\n        name: releases\n        projectId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Feed - Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed-management/get-feed?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getFeed.\n","properties":{"feedId":{"type":"string","description":"The ID of the Feed.\n\n\u003e **Note** Only one of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`feedId`\" pulumi-lang-dotnet=\"`FeedId`\" pulumi-lang-go=\"`feedId`\" pulumi-lang-python=\"`feed_id`\" pulumi-lang-yaml=\"`feedId`\" pulumi-lang-java=\"`feedId`\"\u003e`feed_id`\u003c/span\u003e can be set at the same time.\n"},"name":{"type":"string","description":"The Name of the Feed.\n"},"projectId":{"type":"string","description":"ID of the Project Feed is created in.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getFeed.\n","properties":{"feedId":{"description":"The ID of the Feed.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the Feed.\n","type":"string"},"projectId":{"description":"The ID of the Project.\n","type":"string"}},"required":["id"],"type":"object"}},"azuredevops:index/getGitRepository:getGitRepository":{"description":"Use this data source to access information about a **single** (existing) Git Repository within Azure DevOps.\nTo read information about **multiple** Git Repositories use the data source \u003cspan pulumi-lang-nodejs=\"`azuredevops.getRepositories`\" pulumi-lang-dotnet=\"`azuredevops.getRepositories`\" pulumi-lang-go=\"`getRepositories`\" pulumi-lang-python=\"`get_repositories`\" pulumi-lang-yaml=\"`azuredevops.getRepositories`\" pulumi-lang-java=\"`azuredevops.getRepositories`\"\u003e`azuredevops.getRepositories`\u003c/span\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\n// Load a specific Git repository by name\nconst example_single_repo = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\n# Load a specific Git repository by name\nexample_single_repo = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    // Load a specific Git repository by name\n    var example_single_repo = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Load a specific Git repository by name\n\t\t_, err = azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        // Load a specific Git repository by name\n        final var example-single-repo = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  # Load a specific Git repository by name\n  example-single-repo:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Git API](https://docs.microsoft.com/en-us/rest/api/azure/devops/git/?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getGitRepository.\n","properties":{"name":{"type":"string","description":"The Name of the Git repository to retrieve\n"},"projectId":{"type":"string","description":"The ID of project to list Git repositories\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getGitRepository.\n","properties":{"defaultBranch":{"description":"The ref of the default branch.\n","type":"string"},"disabled":{"description":"Indicates whether the repository is disabled.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isFork":{"type":"boolean"},"name":{"description":"The name of the Git repository.\n","type":"string"},"projectId":{"description":"Project identifier to which the Git repository belongs.\n","type":"string"},"remoteUrl":{"description":"HTTPS Url to clone the Git repository\n","type":"string"},"size":{"description":"Compressed size (bytes) of the repository.\n","type":"integer"},"sshUrl":{"description":"SSH Url to clone the Git repository\n","type":"string"},"url":{"description":"The details REST API endpoint for the Git Repository.\n","type":"string"},"webUrl":{"description":"The Url of the Git repository web view\n","type":"string"}},"required":["defaultBranch","disabled","isFork","name","projectId","remoteUrl","size","sshUrl","url","webUrl","id"],"type":"object"}},"azuredevops:index/getGitRepositoryFile:getGitRepositoryFile":{"description":"Use this data source to get an existing Git Repository File.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\n// Load a specific Git repository by name\nconst exampleGetGitRepository = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\nconst exampleGetGitRepositoryFile = exampleGetGitRepository.then(exampleGetGitRepository =\u003e azuredevops.getGitRepositoryFile({\n    repositoryId: exampleGetGitRepository.id,\n    branch: \"refs/heads/main\",\n    file: \"MyFile.txt\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\n# Load a specific Git repository by name\nexample_get_git_repository = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\nexample_get_git_repository_file = azuredevops.get_git_repository_file(repository_id=example_get_git_repository.id,\n    branch=\"refs/heads/main\",\n    file=\"MyFile.txt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    // Load a specific Git repository by name\n    var exampleGetGitRepository = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n    var exampleGetGitRepositoryFile = AzureDevOps.GetGitRepositoryFile.Invoke(new()\n    {\n        RepositoryId = exampleGetGitRepository.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id),\n        Branch = \"refs/heads/main\",\n        File = \"MyFile.txt\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Load a specific Git repository by name\n\t\texampleGetGitRepository, err := azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.LookupGitRepositoryFile(ctx, \u0026azuredevops.LookupGitRepositoryFileArgs{\n\t\t\tRepositoryId: exampleGetGitRepository.Id,\n\t\t\tBranch:       pulumi.StringRef(\"refs/heads/main\"),\n\t\t\tFile:         \"MyFile.txt\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryFileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        // Load a specific Git repository by name\n        final var exampleGetGitRepository = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n        final var exampleGetGitRepositoryFile = AzuredevopsFunctions.getGitRepositoryFile(GetGitRepositoryFileArgs.builder()\n            .repositoryId(exampleGetGitRepository.id())\n            .branch(\"refs/heads/main\")\n            .file(\"MyFile.txt\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  # Load a specific Git repository by name\n  exampleGetGitRepository:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n  exampleGetGitRepositoryFile:\n    fn::invoke:\n      function: azuredevops:getGitRepositoryFile\n      arguments:\n        repositoryId: ${exampleGetGitRepository.id}\n        branch: refs/heads/main\n        file: MyFile.txt\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGitRepositoryFile.\n","properties":{"branch":{"type":"string","description":"The git branch to use. Conflicts with \u003cspan pulumi-lang-nodejs=\"`tag`\" pulumi-lang-dotnet=\"`Tag`\" pulumi-lang-go=\"`tag`\" pulumi-lang-python=\"`tag`\" pulumi-lang-yaml=\"`tag`\" pulumi-lang-java=\"`tag`\"\u003e`tag`\u003c/span\u003e; one or the other must be specified.\n"},"file":{"type":"string","description":"The path of the file to get.\n"},"repositoryId":{"type":"string","description":"The ID of the Git repository.\n"},"tag":{"type":"string","description":"The tag to use.Conflicts with \u003cspan pulumi-lang-nodejs=\"`branch`\" pulumi-lang-dotnet=\"`Branch`\" pulumi-lang-go=\"`branch`\" pulumi-lang-python=\"`branch`\" pulumi-lang-yaml=\"`branch`\" pulumi-lang-java=\"`branch`\"\u003e`branch`\u003c/span\u003e; one or the other must be specified.\n"}},"type":"object","required":["file","repositoryId"]},"outputs":{"description":"A collection of values returned by getGitRepositoryFile.\n","properties":{"branch":{"type":"string"},"content":{"description":"The file content.\n","type":"string"},"file":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"lastCommitMessage":{"description":"The commit message for the file.\n","type":"string"},"repositoryId":{"type":"string"},"tag":{"type":"string"}},"required":["content","file","lastCommitMessage","repositoryId","id"],"type":"object"}},"azuredevops:index/getGroup:getGroup":{"description":"Use this data source to access information about an existing Group within Azure DevOps\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetGroup = example.then(example =\u003e azuredevops.getGroup({\n    projectId: example.id,\n    name: \"Example Group\",\n}));\nexport const groupId = exampleGetGroup.then(exampleGetGroup =\u003e exampleGetGroup.id);\nexport const groupDescriptor = exampleGetGroup.then(exampleGetGroup =\u003e exampleGetGroup.descriptor);\nconst example_collection_group = azuredevops.getGroup({\n    name: \"Project Collection Administrators\",\n});\nexport const collectionGroupId = exampleGetGroup.then(exampleGetGroup =\u003e exampleGetGroup.id);\nexport const collectionGroupDescriptor = exampleGetGroup.then(exampleGetGroup =\u003e exampleGetGroup.descriptor);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_group = azuredevops.get_group(project_id=example.id,\n    name=\"Example Group\")\npulumi.export(\"groupId\", example_get_group.id)\npulumi.export(\"groupDescriptor\", example_get_group.descriptor)\nexample_collection_group = azuredevops.get_group(name=\"Project Collection Administrators\")\npulumi.export(\"collectionGroupId\", example_get_group.id)\npulumi.export(\"collectionGroupDescriptor\", example_get_group.descriptor)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetGroup = AzureDevOps.GetGroup.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Group\",\n    });\n\n    var example_collection_group = AzureDevOps.GetGroup.Invoke(new()\n    {\n        Name = \"Project Collection Administrators\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"groupId\"] = exampleGetGroup.Apply(getGroupResult =\u003e getGroupResult.Id),\n        [\"groupDescriptor\"] = exampleGetGroup.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n        [\"collectionGroupId\"] = exampleGetGroup.Apply(getGroupResult =\u003e getGroupResult.Id),\n        [\"collectionGroupDescriptor\"] = exampleGetGroup.Apply(getGroupResult =\u003e getGroupResult.Descriptor),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetGroup, err := azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t\tName:      \"Example Group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"groupId\", exampleGetGroup.Id)\n\t\tctx.Export(\"groupDescriptor\", exampleGetGroup.Descriptor)\n\t\t_, err = azuredevops.LookupGroup(ctx, \u0026azuredevops.LookupGroupArgs{\n\t\t\tName: \"Project Collection Administrators\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"collectionGroupId\", exampleGetGroup.Id)\n\t\tctx.Export(\"collectionGroupDescriptor\", exampleGetGroup.Descriptor)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetGroup = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Group\")\n            .build());\n\n        ctx.export(\"groupId\", exampleGetGroup.id());\n        ctx.export(\"groupDescriptor\", exampleGetGroup.descriptor());\n        final var example-collection-group = AzuredevopsFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"Project Collection Administrators\")\n            .build());\n\n        ctx.export(\"collectionGroupId\", exampleGetGroup.id());\n        ctx.export(\"collectionGroupDescriptor\", exampleGetGroup.descriptor());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetGroup:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        projectId: ${example.id}\n        name: Example Group\n  example-collection-group:\n    fn::invoke:\n      function: azuredevops:getGroup\n      arguments:\n        name: Project Collection Administrators\noutputs:\n  groupId: ${exampleGetGroup.id}\n  groupDescriptor: ${exampleGetGroup.descriptor}\n  collectionGroupId: ${exampleGetGroup.id}\n  collectionGroupDescriptor: ${exampleGetGroup.descriptor}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Groups - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/groups/get?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Graph**: Read\n- **Work Items**: Read\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"name":{"type":"string","description":"The Name of the Group.\n"},"projectId":{"type":"string","description":"The ID of the Project. If \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e is not specified the project collection groups will be searched.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"descriptor":{"description":"The Descriptor is the primary way to reference the graph subject. This field will uniquely identify the same graph subject across both Accounts and Organizations. In format of `vssgp.xxxxxxxxxxxxxxxxxxx`\n","type":"string"},"groupId":{"description":"The ID of the group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"origin":{"description":"The type of source provider for the origin identifier (ex:AD, AAD, MSA)\n","type":"string"},"originId":{"description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. Linking and unlinking operations can cause this value to change for a user because the user is not backed by a different provider and has a different unique id in the new provider.\n","type":"string"},"projectId":{"type":"string"}},"required":["descriptor","groupId","name","origin","originId","id"],"type":"object"}},"azuredevops:index/getGroupMembership:getGroupMembership":{"description":"Use this data source to access information about an existing Group Memberships within Azure DevOps\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getGroupMembership({\n    groupDescriptor: \"groupdescroptpr\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_group_membership(group_descriptor=\"groupdescroptpr\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetGroupMembership.Invoke(new()\n    {\n        GroupDescriptor = \"groupdescroptpr\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.LookupGroupMembership(ctx, \u0026azuredevops.LookupGroupMembershipArgs{\n\t\t\tGroupDescriptor: \"groupdescroptpr\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetGroupMembershipArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getGroupMembership(GetGroupMembershipArgs.builder()\n            .groupDescriptor(\"groupdescroptpr\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getGroupMembership\n      arguments:\n        groupDescriptor: groupdescroptpr\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Memberships](https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/memberships?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getGroupMembership.\n","properties":{"groupDescriptor":{"type":"string","description":"The descriptor of the group.\n"}},"type":"object","required":["groupDescriptor"]},"outputs":{"description":"A collection of values returned by getGroupMembership.\n","properties":{"groupDescriptor":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"members":{"description":"A list of user or group descriptors.\n","items":{"type":"string"},"type":"array"}},"required":["groupDescriptor","members","id"],"type":"object"}},"azuredevops:index/getGroups:getGroups":{"description":"Use this data source to access information about existing Groups within Azure DevOps\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\n// load all existing groups inside an organization\nconst example_all_groups = azuredevops.getGroups({});\n// load all existing groups inside a specific project\nconst example_project_groups = example.then(example =\u003e azuredevops.getGroups({\n    projectId: example.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\n# load all existing groups inside an organization\nexample_all_groups = azuredevops.get_groups()\n# load all existing groups inside a specific project\nexample_project_groups = azuredevops.get_groups(project_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    // load all existing groups inside an organization\n    var example_all_groups = AzureDevOps.GetGroups.Invoke();\n\n    // load all existing groups inside a specific project\n    var example_project_groups = AzureDevOps.GetGroups.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// load all existing groups inside an organization\n\t\t_, err = azuredevops.GetGroups(ctx, \u0026azuredevops.GetGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// load all existing groups inside a specific project\n\t\t_, err = azuredevops.GetGroups(ctx, \u0026azuredevops.GetGroupsArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        // load all existing groups inside an organization\n        final var example-all-groups = AzuredevopsFunctions.getGroups(GetGroupsArgs.builder()\n            .build());\n\n        // load all existing groups inside a specific project\n        final var example-project-groups = AzuredevopsFunctions.getGroups(GetGroupsArgs.builder()\n            .projectId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  # load all existing groups inside an organization\n  example-all-groups:\n    fn::invoke:\n      function: azuredevops:getGroups\n      arguments: {}\n  # load all existing groups inside a specific project\n  example-project-groups:\n    fn::invoke:\n      function: azuredevops:getGroups\n      arguments:\n        projectId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Groups - List](https://docs.microsoft.com/en-us/rest/api/azure/devops/graph/groups/list?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"projectId":{"type":"string","description":"The ID of the Project. If no project ID is specified all groups of an organization will be returned\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"A \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e blocks as documented below. A set of existing groups in your Azure DevOps Organization or project with details about every single group which includes:\n","items":{"$ref":"#/types/azuredevops:index/getGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["groups","id"],"type":"object"}},"azuredevops:index/getIdentityGroup:getIdentityGroup":{"description":"Use this data source to access information about an existing Group within Azure DevOps On-Premise(Azure DevOps Server).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\n// load existing group with specific name\nconst example_project_group = azuredevops.getIdentityGroup({\n    projectId: example.id,\n    name: \"[Project-Name]\\\\Group-Name\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\n# load existing group with specific name\nexample_project_group = azuredevops.get_identity_group(project_id=example[\"id\"],\n    name=\"[Project-Name]\\\\Group-Name\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    // load existing group with specific name\n    var example_project_group = AzureDevOps.GetIdentityGroup.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Name = \"[Project-Name]\\\\Group-Name\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t// load existing group with specific name\n\t\t_, err := azuredevops.GetIdentityGroup(ctx, \u0026azuredevops.GetIdentityGroupArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"[Project-Name]\\\\Group-Name\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetIdentityGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        // load existing group with specific name\n        final var example-project-group = AzuredevopsFunctions.getIdentityGroup(GetIdentityGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"[Project-Name]\\\\Group-Name\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  # load existing group with specific name\n  example-project-group:\n    fn::invoke:\n      function: azuredevops:getIdentityGroup\n      arguments:\n        projectId: ${example.id}\n        name: '[Project-Name]\\Group-Name'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Identities](https://docs.microsoft.com/en-us/rest/api/azure/devops/ims/?view=azure-devops-rest-7.2)\n","inputs":{"description":"A collection of arguments for invoking getIdentityGroup.\n","properties":{"name":{"type":"string","description":"The name of the group.\n"},"projectId":{"type":"string","description":"The Project ID.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getIdentityGroup.\n","properties":{"descriptor":{"description":"The descriptor of the identity group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"This is the non-unique display name of the identity subject. To change this field, you must alter its value in the source provider.\n","type":"string"},"projectId":{"type":"string"},"subjectDescriptor":{"description":"The subject descriptor of the identity group.\n","type":"string"}},"required":["descriptor","name","projectId","subjectDescriptor","id"],"type":"object"}},"azuredevops:index/getIdentityGroups:getIdentityGroups":{"description":"Use this data source to access information about existing Groups within Azure DevOps On-Premise(Azure DevOps Server).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\n// load all existing groups inside an organization\nconst example_all_groups = azuredevops.getIdentityGroups({});\n// load all existing groups inside a specific project\nconst example_project_groups = example.then(example =\u003e azuredevops.getIdentityGroups({\n    projectId: example.id,\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\n# load all existing groups inside an organization\nexample_all_groups = azuredevops.get_identity_groups()\n# load all existing groups inside a specific project\nexample_project_groups = azuredevops.get_identity_groups(project_id=example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    // load all existing groups inside an organization\n    var example_all_groups = AzureDevOps.GetIdentityGroups.Invoke();\n\n    // load all existing groups inside a specific project\n    var example_project_groups = AzureDevOps.GetIdentityGroups.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// load all existing groups inside an organization\n\t\t_, err = azuredevops.GetIdentityGroups(ctx, \u0026azuredevops.GetIdentityGroupsArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// load all existing groups inside a specific project\n\t\t_, err = azuredevops.GetIdentityGroups(ctx, \u0026azuredevops.GetIdentityGroupsArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetIdentityGroupsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        // load all existing groups inside an organization\n        final var example-all-groups = AzuredevopsFunctions.getIdentityGroups(GetIdentityGroupsArgs.builder()\n            .build());\n\n        // load all existing groups inside a specific project\n        final var example-project-groups = AzuredevopsFunctions.getIdentityGroups(GetIdentityGroupsArgs.builder()\n            .projectId(example.id())\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  # load all existing groups inside an organization\n  example-all-groups:\n    fn::invoke:\n      function: azuredevops:getIdentityGroups\n      arguments: {}\n  # load all existing groups inside a specific project\n  example-project-groups:\n    fn::invoke:\n      function: azuredevops:getIdentityGroups\n      arguments:\n        projectId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Identities](https://docs.microsoft.com/en-us/rest/api/azure/devops/ims/?view=azure-devops-rest-7.2)\n","inputs":{"description":"A collection of arguments for invoking getIdentityGroups.\n","properties":{"projectId":{"type":"string","description":"The Project ID. If no project ID is specified all groups of an organization will be returned\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getIdentityGroups.\n","properties":{"groups":{"description":"A \u003cspan pulumi-lang-nodejs=\"`groups`\" pulumi-lang-dotnet=\"`Groups`\" pulumi-lang-go=\"`groups`\" pulumi-lang-python=\"`groups`\" pulumi-lang-yaml=\"`groups`\" pulumi-lang-java=\"`groups`\"\u003e`groups`\u003c/span\u003e blocks as documented below. A set of existing groups in your Azure DevOps Organization or project with details about every single group.\n","items":{"$ref":"#/types/azuredevops:index/getIdentityGroupsGroup:getIdentityGroupsGroup"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"}},"required":["groups","id"],"type":"object"}},"azuredevops:index/getIdentityUsers:getIdentityUsers":{"description":"Use this data source to access information about an existing users within Azure DevOps On-Premise(Azure DevOps Server).\n\n","inputs":{"description":"A collection of arguments for invoking getIdentityUsers.\n","properties":{"name":{"type":"string","description":"The PrincipalName of this identity member from the source provider.\n"},"searchFilter":{"type":"string","description":"The type of search to perform. Possible values are: `AccountName`, `DisplayName`, and `MailAddress`. Default is `General`.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getIdentityUsers.\n","properties":{"descriptor":{"description":"The Descriptor of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"type":"string"},"searchFilter":{"type":"string"},"subjectDescriptor":{"description":"The Subject Descriptor of the user.\n","type":"string"}},"required":["descriptor","name","subjectDescriptor","id"],"type":"object"}},"azuredevops:index/getIteration:getIteration":{"description":"Use this data source to access information about an existing Iteration (Sprint) within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example_root_iteration = azuredevops.getIterationOutput({\n    projectId: example.id,\n    path: \"/\",\n    fetchChildren: true,\n});\nconst example_child_iteration = azuredevops.getIterationOutput({\n    projectId: example.id,\n    path: \"/Iteration 1\",\n    fetchChildren: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample_root_iteration = azuredevops.get_iteration_output(project_id=example.id,\n    path=\"/\",\n    fetch_children=True)\nexample_child_iteration = azuredevops.get_iteration_output(project_id=example.id,\n    path=\"/Iteration 1\",\n    fetch_children=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example_root_iteration = AzureDevOps.GetIteration.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Path = \"/\",\n        FetchChildren = true,\n    });\n\n    var example_child_iteration = AzureDevOps.GetIteration.Invoke(new()\n    {\n        ProjectId = example.Id,\n        Path = \"/Iteration 1\",\n        FetchChildren = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = azuredevops.GetIterationOutput(ctx, azuredevops.GetIterationOutputArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tPath:          pulumi.String(\"/\"),\n\t\t\tFetchChildren: pulumi.Bool(true),\n\t\t}, nil)\n\t\t_ = azuredevops.GetIterationOutput(ctx, azuredevops.GetIterationOutputArgs{\n\t\t\tProjectId:     example.ID(),\n\t\t\tPath:          pulumi.String(\"/Iteration 1\"),\n\t\t\tFetchChildren: pulumi.Bool(true),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetIterationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var example = new Project(\"example\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example-root-iteration = AzuredevopsFunctions.getIteration(GetIterationArgs.builder()\n            .projectId(example.id())\n            .path(\"/\")\n            .fetchChildren(true)\n            .build());\n\n        final var example-child-iteration = AzuredevopsFunctions.getIteration(GetIterationArgs.builder()\n            .projectId(example.id())\n            .path(\"/Iteration 1\")\n            .fetchChildren(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  example:\n    type: azuredevops:Project\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\nvariables:\n  example-root-iteration:\n    fn::invoke:\n      function: azuredevops:getIteration\n      arguments:\n        projectId: ${example.id}\n        path: /\n        fetchChildren: true\n  example-child-iteration:\n    fn::invoke:\n      function: azuredevops:getIteration\n      arguments:\n        projectId: ${example.id}\n        path: /Iteration 1\n        fetchChildren: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Classification Nodes - Get Classification Nodes](https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/classification-nodes/get-classification-nodes?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: vso.work - Grants the ability to read work items, queries, boards, area and iterations paths, and other work item tracking related metadata. Also grants the ability to execute queries, search work items and to receive notifications about work item events via service hooks.\n","inputs":{"description":"A collection of arguments for invoking getIteration.\n","properties":{"fetchChildren":{"type":"boolean","description":"Read children nodes, _Depth_: 1, _Default_: \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e\n"},"path":{"type":"string","description":"The path to the Iteration, _Format_: URL relative; if omitted, or value `\"/\"` is used, the root Iteration will be returned\n"},"projectId":{"type":"string","description":"The project ID.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getIteration.\n","properties":{"childrens":{"description":"A list of \u003cspan pulumi-lang-nodejs=\"`children`\" pulumi-lang-dotnet=\"`Children`\" pulumi-lang-go=\"`children`\" pulumi-lang-python=\"`children`\" pulumi-lang-yaml=\"`children`\" pulumi-lang-java=\"`children`\"\u003e`children`\u003c/span\u003e blocks as defined below, empty if \u003cspan pulumi-lang-nodejs=\"`hasChildren \" pulumi-lang-dotnet=\"`HasChildren \" pulumi-lang-go=\"`hasChildren \" pulumi-lang-python=\"`has_children \" pulumi-lang-yaml=\"`hasChildren \" pulumi-lang-java=\"`hasChildren \"\u003e`has_children \u003c/span\u003e== false`\n","items":{"$ref":"#/types/azuredevops:index/getIterationChildren:getIterationChildren"},"type":"array"},"fetchChildren":{"type":"boolean"},"hasChildren":{"description":"Indicator if the child Iteration node has child nodes\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the child Iteration node\n","type":"string"},"path":{"description":"The complete path (in relative URL format) of the child Iteration\n","type":"string"},"projectId":{"description":"The project ID of the child Iteration node\n","type":"string"}},"required":["childrens","hasChildren","name","path","projectId","id"],"type":"object"}},"azuredevops:index/getPool:getPool":{"description":"Use this data source to access information about an existing Agent Pool within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getPool({\n    name: \"Example Agent Pool\",\n});\nexport const name = example.then(example =\u003e example.name);\nexport const poolType = example.then(example =\u003e example.poolType);\nexport const autoProvision = example.then(example =\u003e example.autoProvision);\nexport const autoUpdate = example.then(example =\u003e example.autoUpdate);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_pool(name=\"Example Agent Pool\")\npulumi.export(\"name\", example.name)\npulumi.export(\"poolType\", example.pool_type)\npulumi.export(\"autoProvision\", example.auto_provision)\npulumi.export(\"autoUpdate\", example.auto_update)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetPool.Invoke(new()\n    {\n        Name = \"Example Agent Pool\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"name\"] = example.Apply(getPoolResult =\u003e getPoolResult.Name),\n        [\"poolType\"] = example.Apply(getPoolResult =\u003e getPoolResult.PoolType),\n        [\"autoProvision\"] = example.Apply(getPoolResult =\u003e getPoolResult.AutoProvision),\n        [\"autoUpdate\"] = example.Apply(getPoolResult =\u003e getPoolResult.AutoUpdate),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupPool(ctx, \u0026azuredevops.LookupPoolArgs{\n\t\t\tName: \"Example Agent Pool\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"name\", example.Name)\n\t\tctx.Export(\"poolType\", example.PoolType)\n\t\tctx.Export(\"autoProvision\", example.AutoProvision)\n\t\tctx.Export(\"autoUpdate\", example.AutoUpdate)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetPoolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getPool(GetPoolArgs.builder()\n            .name(\"Example Agent Pool\")\n            .build());\n\n        ctx.export(\"name\", example.name());\n        ctx.export(\"poolType\", example.poolType());\n        ctx.export(\"autoProvision\", example.autoProvision());\n        ctx.export(\"autoUpdate\", example.autoUpdate());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getPool\n      arguments:\n        name: Example Agent Pool\noutputs:\n  name: ${example.name}\n  poolType: ${example.poolType}\n  autoProvision: ${example.autoProvision}\n  autoUpdate: ${example.autoUpdate}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Agent Pools - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/get?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getPool.\n","properties":{"name":{"type":"string","description":"Name of the Agent Pool.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getPool.\n","properties":{"autoProvision":{"description":"Specifies whether a queue should be automatically provisioned for each project collection.\n","type":"boolean"},"autoUpdate":{"description":"Specifies whether or not agents within the pool should be automatically updated.\n","type":"boolean"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the agent pool\n","type":"string"},"poolType":{"description":"Specifies whether the agent pool type is Automation or Deployment.\n","type":"string"}},"required":["autoProvision","autoUpdate","name","poolType","id"],"type":"object"}},"azuredevops:index/getPools:getPools":{"description":"Use this data source to access information about existing Agent Pools within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getPools({});\nexport const agentPoolName = example.then(example =\u003e example.agentPools.map(__item =\u003e __item.name));\nexport const autoProvision = example.then(example =\u003e example.agentPools.map(__item =\u003e __item.autoProvision));\nexport const autoUpdate = example.then(example =\u003e example.agentPools.map(__item =\u003e __item.autoUpdate));\nexport const poolType = example.then(example =\u003e example.agentPools.map(__item =\u003e __item.poolType));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_pools()\npulumi.export(\"agentPoolName\", [__item.name for __item in example.agent_pools])\npulumi.export(\"autoProvision\", [__item.auto_provision for __item in example.agent_pools])\npulumi.export(\"autoUpdate\", [__item.auto_update for __item in example.agent_pools])\npulumi.export(\"poolType\", [__item.pool_type for __item in example.agent_pools])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetPools.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"agentPoolName\"] = example.Apply(getPoolsResult =\u003e getPoolsResult.AgentPools).Select(__item =\u003e __item.Name).ToList(),\n        [\"autoProvision\"] = example.Apply(getPoolsResult =\u003e getPoolsResult.AgentPools).Select(__item =\u003e __item.AutoProvision).ToList(),\n        [\"autoUpdate\"] = example.Apply(getPoolsResult =\u003e getPoolsResult.AgentPools).Select(__item =\u003e __item.AutoUpdate).ToList(),\n        [\"poolType\"] = example.Apply(getPoolsResult =\u003e getPoolsResult.AgentPools).Select(__item =\u003e __item.PoolType).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexample, err := azuredevops.GetPools(ctx, map[string]interface{}{\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"agentPoolName\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:3,11-37)))\nctx.Export(\"autoProvision\", pulumi.BoolArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,11-46)))\nctx.Export(\"autoUpdate\", pulumi.BoolArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:11,11-43)))\nctx.Export(\"poolType\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:15,11-41)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getPools(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"agentPoolName\", example.agentPools().stream().map(element -\u003e element.name()).collect(toList()));\n        ctx.export(\"autoProvision\", example.agentPools().stream().map(element -\u003e element.autoProvision()).collect(toList()));\n        ctx.export(\"autoUpdate\", example.agentPools().stream().map(element -\u003e element.autoUpdate()).collect(toList()));\n        ctx.export(\"poolType\", example.agentPools().stream().map(element -\u003e element.poolType()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Agent Pools - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/get?view=azure-devops-rest-7.1)\n","outputs":{"description":"A collection of values returned by getPools.\n","properties":{"agentPools":{"description":"An \u003cspan pulumi-lang-nodejs=\"`agentPools`\" pulumi-lang-dotnet=\"`AgentPools`\" pulumi-lang-go=\"`agentPools`\" pulumi-lang-python=\"`agent_pools`\" pulumi-lang-yaml=\"`agentPools`\" pulumi-lang-java=\"`agentPools`\"\u003e`agent_pools`\u003c/span\u003e blocks as documented below. A list of existing agent pools in your Azure DevOps Organization with the following details about every agent pool:\n","items":{"$ref":"#/types/azuredevops:index/getPoolsAgentPool:getPoolsAgentPool"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"}},"required":["agentPools","id"],"type":"object"}},"azuredevops:index/getProject:getProject":{"description":"Use this data source to access information about an existing Project within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nexport const project = example;\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\npulumi.export(\"project\", example)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"project\"] = example,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"project\", example)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        ctx.export(\"project\", example);\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\noutputs:\n  project: ${example}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Projects - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/get?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: Read\n- **Work Items**: Read\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"name":{"type":"string","description":"Name of the Project.\n"},"projectId":{"type":"string","description":"ID of the Project.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e must be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"description":{"description":"The description of the project.\n","type":"string"},"features":{"additionalProperties":{"type":"string"},"type":"object"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the project.\n","type":"string"},"processTemplateId":{"description":"The process template ID for the project.\n","type":"string"},"projectId":{"type":"string"},"versionControl":{"description":"The version control of the project.\n","type":"string"},"visibility":{"description":"The visibility of the project.\n","type":"string"},"workItemTemplate":{"description":"The work item template for the project.\n","type":"string"}},"required":["description","features","processTemplateId","versionControl","visibility","workItemTemplate","id"],"type":"object"}},"azuredevops:index/getProjects:getProjects":{"description":"Use this data source to access information about existing Projects within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProjects({\n    name: \"Example Project\",\n    state: \"wellFormed\",\n});\nexport const projectId = example.then(example =\u003e example.projects.map(__item =\u003e __item.projectId));\nexport const name = example.then(example =\u003e example.projects.map(__item =\u003e __item.name));\nexport const projectUrl = example.then(example =\u003e example.projects.map(__item =\u003e __item.projectUrl));\nexport const state = example.then(example =\u003e example.projects.map(__item =\u003e __item.state));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_projects(name=\"Example Project\",\n    state=\"wellFormed\")\npulumi.export(\"projectId\", [__item.project_id for __item in example.projects])\npulumi.export(\"name\", [__item.name for __item in example.projects])\npulumi.export(\"projectUrl\", [__item.project_url for __item in example.projects])\npulumi.export(\"state\", [__item.state for __item in example.projects])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProjects.Invoke(new()\n    {\n        Name = \"Example Project\",\n        State = \"wellFormed\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectId\"] = example.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Select(__item =\u003e __item.ProjectId).ToList(),\n        [\"name\"] = example.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Select(__item =\u003e __item.Name).ToList(),\n        [\"projectUrl\"] = example.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Select(__item =\u003e __item.ProjectUrl).ToList(),\n        [\"state\"] = example.Apply(getProjectsResult =\u003e getProjectsResult.Projects).Select(__item =\u003e __item.State).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexample, err := azuredevops.GetProjects(ctx, \u0026azuredevops.GetProjectsArgs{\nName: pulumi.StringRef(\"Example Project\"),\nState: pulumi.StringRef(\"wellFormed\"),\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"projectId\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:6,11-40)))\nctx.Export(\"name\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:10,11-35)))\nctx.Export(\"projectUrl\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:14,11-41)))\nctx.Export(\"state\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:18,11-36)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProjects(GetProjectsArgs.builder()\n            .name(\"Example Project\")\n            .state(\"wellFormed\")\n            .build());\n\n        ctx.export(\"projectId\", example.projects().stream().map(element -\u003e element.projectId()).collect(toList()));\n        ctx.export(\"name\", example.projects().stream().map(element -\u003e element.name()).collect(toList()));\n        ctx.export(\"projectUrl\", example.projects().stream().map(element -\u003e element.projectUrl()).collect(toList()));\n        ctx.export(\"state\", example.projects().stream().map(element -\u003e element.state()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Projects - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/get?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getProjects.\n","properties":{"name":{"type":"string","description":"Name of the Project, if not specified all projects will be returned.\n","willReplaceOnChanges":true},"state":{"type":"string","description":"State of the Project, if not specified all projects will be returned. Valid values are \u003cspan pulumi-lang-nodejs=\"`all`\" pulumi-lang-dotnet=\"`All`\" pulumi-lang-go=\"`all`\" pulumi-lang-python=\"`all`\" pulumi-lang-yaml=\"`all`\" pulumi-lang-java=\"`all`\"\u003e`all`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`deleting`\" pulumi-lang-dotnet=\"`Deleting`\" pulumi-lang-go=\"`deleting`\" pulumi-lang-python=\"`deleting`\" pulumi-lang-yaml=\"`deleting`\" pulumi-lang-java=\"`deleting`\"\u003e`deleting`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`new`\" pulumi-lang-dotnet=\"`New`\" pulumi-lang-go=\"`new`\" pulumi-lang-python=\"`new`\" pulumi-lang-yaml=\"`new`\" pulumi-lang-java=\"`new`\"\u003e`new`\u003c/span\u003e, `wellFormed`, `createPending`, \u003cspan pulumi-lang-nodejs=\"`unchanged`\" pulumi-lang-dotnet=\"`Unchanged`\" pulumi-lang-go=\"`unchanged`\" pulumi-lang-python=\"`unchanged`\" pulumi-lang-yaml=\"`unchanged`\" pulumi-lang-java=\"`unchanged`\"\u003e`unchanged`\u003c/span\u003e,\u003cspan pulumi-lang-nodejs=\"`deleted`\" pulumi-lang-dotnet=\"`Deleted`\" pulumi-lang-go=\"`deleted`\" pulumi-lang-python=\"`deleted`\" pulumi-lang-yaml=\"`deleted`\" pulumi-lang-java=\"`deleted`\"\u003e`deleted`\u003c/span\u003e.\n\n\u003e **NOTE:** DataSource without specifying any arguments will return all projects.\n","willReplaceOnChanges":true}},"type":"object"},"outputs":{"description":"A collection of values returned by getProjects.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"name":{"description":"The name of the Project.\n","type":"string"},"projects":{"description":"A list of \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e blocks as documented below. A list of existing projects in your Azure DevOps Organization with details about every project which includes:\n","items":{"$ref":"#/types/azuredevops:index/getProjectsProject:getProjectsProject"},"type":"array"},"state":{"description":"The state of the Project.\n","type":"string"}},"required":["projects","id"],"type":"object"}},"azuredevops:index/getRepositories:getRepositories":{"description":"Use this data source to access information about **multiple** existing Git Repositories within Azure DevOps.\nTo read informations about a **single** Git Repository use the data source \u003cspan pulumi-lang-nodejs=\"`azuredevops.Git`\" pulumi-lang-dotnet=\"`azuredevops.Git`\" pulumi-lang-go=\"`Git`\" pulumi-lang-python=\"`Git`\" pulumi-lang-yaml=\"`azuredevops.Git`\" pulumi-lang-java=\"`azuredevops.Git`\"\u003e`azuredevops.Git`\u003c/span\u003e\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\n// Load all Git repositories of a project, which are accessible for the current user\nconst example_all_repos = example.then(example =\u003e azuredevops.getRepositories({\n    projectId: example.id,\n    includeHidden: true,\n}));\n// Load a specific Git repository by name\nconst example_single_repo = example.then(example =\u003e azuredevops.getRepositories({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\n# Load all Git repositories of a project, which are accessible for the current user\nexample_all_repos = azuredevops.get_repositories(project_id=example.id,\n    include_hidden=True)\n# Load a specific Git repository by name\nexample_single_repo = azuredevops.get_repositories(project_id=example.id,\n    name=\"Example Repository\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    // Load all Git repositories of a project, which are accessible for the current user\n    var example_all_repos = AzureDevOps.GetRepositories.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        IncludeHidden = true,\n    });\n\n    // Load a specific Git repository by name\n    var example_single_repo = AzureDevOps.GetRepositories.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Load all Git repositories of a project, which are accessible for the current user\n\t\t_, err = azuredevops.GetRepositories(ctx, \u0026azuredevops.GetRepositoriesArgs{\n\t\t\tProjectId:     pulumi.StringRef(example.Id),\n\t\t\tIncludeHidden: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// Load a specific Git repository by name\n\t\t_, err = azuredevops.GetRepositories(ctx, \u0026azuredevops.GetRepositoriesArgs{\n\t\t\tProjectId: pulumi.StringRef(example.Id),\n\t\t\tName:      pulumi.StringRef(\"Example Repository\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetRepositoriesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        // Load all Git repositories of a project, which are accessible for the current user\n        final var example-all-repos = AzuredevopsFunctions.getRepositories(GetRepositoriesArgs.builder()\n            .projectId(example.id())\n            .includeHidden(true)\n            .build());\n\n        // Load a specific Git repository by name\n        final var example-single-repo = AzuredevopsFunctions.getRepositories(GetRepositoriesArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  # Load all Git repositories of a project, which are accessible for the current user\n  example-all-repos:\n    fn::invoke:\n      function: azuredevops:getRepositories\n      arguments:\n        projectId: ${example.id}\n        includeHidden: true\n  # Load a specific Git repository by name\n  example-single-repo:\n    fn::invoke:\n      function: azuredevops:getRepositories\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Git API](https://docs.microsoft.com/en-us/rest/api/azure/devops/git/?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getRepositories.\n","properties":{"includeHidden":{"type":"boolean","description":"Defaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nDataSource without specifying any arguments will return all Git repositories of an organization.\n"},"name":{"type":"string","description":"Name of the Git repository to retrieve; requires \u003cspan pulumi-lang-nodejs=\"`projectId`\" pulumi-lang-dotnet=\"`ProjectId`\" pulumi-lang-go=\"`projectId`\" pulumi-lang-python=\"`project_id`\" pulumi-lang-yaml=\"`projectId`\" pulumi-lang-java=\"`projectId`\"\u003e`project_id`\u003c/span\u003e to be specified as well\n"},"projectId":{"type":"string","description":"ID of project to list Git repositories\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getRepositories.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"includeHidden":{"type":"boolean"},"name":{"description":"Git repository name.\n","type":"string"},"projectId":{"description":"Project identifier to which the Git repository belongs.\n","type":"string"},"repositories":{"description":"A \u003cspan pulumi-lang-nodejs=\"`repositories`\" pulumi-lang-dotnet=\"`Repositories`\" pulumi-lang-go=\"`repositories`\" pulumi-lang-python=\"`repositories`\" pulumi-lang-yaml=\"`repositories`\" pulumi-lang-java=\"`repositories`\"\u003e`repositories`\u003c/span\u003e blocks as documented below. A list of existing projects in your Azure DevOps Organization with details about every project.\n","items":{"$ref":"#/types/azuredevops:index/getRepositoriesRepository:getRepositoriesRepository"},"type":"array"}},"required":["repositories","id"],"type":"object"}},"azuredevops:index/getSecurityNamespace:getSecurityNamespace":{"description":"Use this data source to access information about a specific security namespace within Azure DevOps. Security namespaces define the security model for different resources and operations in Azure DevOps.\n\n## Example Usage\n\n### Find a Specific Namespace by Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst git = azuredevops.getSecurityNamespace({\n    name: \"Git Repositories\",\n});\nexport const gitId = git.then(git =\u003e git.id);\nexport const gitPermissions = git.then(git =\u003e git.actions);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ngit = azuredevops.get_security_namespace(name=\"Git Repositories\")\npulumi.export(\"gitId\", git.id)\npulumi.export(\"gitPermissions\", git.actions)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var git = AzureDevOps.GetSecurityNamespace.Invoke(new()\n    {\n        Name = \"Git Repositories\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gitId\"] = git.Apply(getSecurityNamespaceResult =\u003e getSecurityNamespaceResult.Id),\n        [\"gitPermissions\"] = git.Apply(getSecurityNamespaceResult =\u003e getSecurityNamespaceResult.Actions),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgit, err := azuredevops.GetSecurityNamespace(ctx, \u0026azuredevops.GetSecurityNamespaceArgs{\n\t\t\tName: pulumi.StringRef(\"Git Repositories\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gitId\", git.Id)\n\t\tctx.Export(\"gitPermissions\", git.Actions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var git = AzuredevopsFunctions.getSecurityNamespace(GetSecurityNamespaceArgs.builder()\n            .name(\"Git Repositories\")\n            .build());\n\n        ctx.export(\"gitId\", git.id());\n        ctx.export(\"gitPermissions\", git.actions());\n    }\n}\n```\n```yaml\nvariables:\n  git:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespace\n      arguments:\n        name: Git Repositories\noutputs:\n  gitId: ${git.id}\n  gitPermissions: ${git.actions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Find a Specific Namespace by ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst project = azuredevops.getSecurityNamespace({\n    id: \"52d39943-cb85-4d7f-8fa8-c6baac873819\",\n});\nexport const projectNamespaceName = project.then(project =\u003e project.name);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nproject = azuredevops.get_security_namespace(id=\"52d39943-cb85-4d7f-8fa8-c6baac873819\")\npulumi.export(\"projectNamespaceName\", project.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = AzureDevOps.GetSecurityNamespace.Invoke(new()\n    {\n        Id = \"52d39943-cb85-4d7f-8fa8-c6baac873819\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectNamespaceName\"] = project.Apply(getSecurityNamespaceResult =\u003e getSecurityNamespaceResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tproject, err := azuredevops.GetSecurityNamespace(ctx, \u0026azuredevops.GetSecurityNamespaceArgs{\n\t\t\tId: pulumi.StringRef(\"52d39943-cb85-4d7f-8fa8-c6baac873819\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"projectNamespaceName\", project.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var project = AzuredevopsFunctions.getSecurityNamespace(GetSecurityNamespaceArgs.builder()\n            .id(\"52d39943-cb85-4d7f-8fa8-c6baac873819\")\n            .build());\n\n        ctx.export(\"projectNamespaceName\", project.name());\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespace\n      arguments:\n        id: 52d39943-cb85-4d7f-8fa8-c6baac873819\noutputs:\n  projectNamespaceName: ${project.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Security Namespaces - Query](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/security-namespaces/query?view=azure-devops-rest-7.0)\n- [Security Namespaces Documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/security/security-glossary?view=azure-devops)\n","inputs":{"description":"A collection of arguments for invoking getSecurityNamespace.\n","properties":{"id":{"type":"string","description":"The ID of the security namespace.\n\n\u003e **NOTE:** One of \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e must be specified.\n"},"name":{"type":"string","description":"The name of the security namespace.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityNamespace.\n","properties":{"actions":{"description":"A set of available actions (permissions) in this namespace. Each \u003cspan pulumi-lang-nodejs=\"`action`\" pulumi-lang-dotnet=\"`Action`\" pulumi-lang-go=\"`action`\" pulumi-lang-python=\"`action`\" pulumi-lang-yaml=\"`action`\" pulumi-lang-java=\"`action`\"\u003e`action`\u003c/span\u003e block exports the following:\n","items":{"$ref":"#/types/azuredevops:index/getSecurityNamespaceAction:getSecurityNamespaceAction"},"type":"array"},"displayName":{"description":"The display name of the action/permission.\n","type":"string"},"id":{"description":"The unique identifier (UUID) of the security namespace.\n","type":"string"},"name":{"description":"The name of the action/permission.\n","type":"string"}},"required":["actions","displayName"],"type":"object"}},"azuredevops:index/getSecurityNamespaceToken:getSecurityNamespaceToken":{"description":"Use this data source to generate security tokens for Azure DevOps security namespaces. Security tokens are required when managing permissions with the \u003cspan pulumi-lang-nodejs=\"`azuredevops.SecurityPermissions`\" pulumi-lang-dotnet=\"`azuredevops.SecurityPermissions`\" pulumi-lang-go=\"`SecurityPermissions`\" pulumi-lang-python=\"`SecurityPermissions`\" pulumi-lang-yaml=\"`azuredevops.SecurityPermissions`\" pulumi-lang-java=\"`azuredevops.SecurityPermissions`\"\u003e`azuredevops.SecurityPermissions`\u003c/span\u003e resource.\n\n## Example Usage\n\n### Discovering Required Identifiers for a Namespace\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst gitInfo = azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Git Repositories\",\n    returnIdentifierInfo: true,\n});\nexport const gitRequiredIdentifiers = gitInfo.then(gitInfo =\u003e gitInfo.requiredIdentifiers);\nexport const gitOptionalIdentifiers = gitInfo.then(gitInfo =\u003e gitInfo.optionalIdentifiers);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ngit_info = azuredevops.get_security_namespace_token(namespace_name=\"Git Repositories\",\n    return_identifier_info=True)\npulumi.export(\"gitRequiredIdentifiers\", git_info.required_identifiers)\npulumi.export(\"gitOptionalIdentifiers\", git_info.optional_identifiers)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gitInfo = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Git Repositories\",\n        ReturnIdentifierInfo = true,\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gitRequiredIdentifiers\"] = gitInfo.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.RequiredIdentifiers),\n        [\"gitOptionalIdentifiers\"] = gitInfo.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.OptionalIdentifiers),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgitInfo, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName:        pulumi.StringRef(\"Git Repositories\"),\n\t\t\tReturnIdentifierInfo: pulumi.BoolRef(true),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gitRequiredIdentifiers\", gitInfo.RequiredIdentifiers)\n\t\tctx.Export(\"gitOptionalIdentifiers\", gitInfo.OptionalIdentifiers)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var gitInfo = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Git Repositories\")\n            .returnIdentifierInfo(true)\n            .build());\n\n        ctx.export(\"gitRequiredIdentifiers\", gitInfo.requiredIdentifiers());\n        ctx.export(\"gitOptionalIdentifiers\", gitInfo.optionalIdentifiers());\n    }\n}\n```\n```yaml\nvariables:\n  gitInfo:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Git Repositories\n        returnIdentifierInfo: true\noutputs:\n  gitRequiredIdentifiers: ${gitInfo.requiredIdentifiers}\n  gitOptionalIdentifiers: ${gitInfo.optionalIdentifiers}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Collection-level Token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst collection = azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Collection\",\n});\nexport const collectionToken = collection.then(collection =\u003e collection.token);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ncollection = azuredevops.get_security_namespace_token(namespace_name=\"Collection\")\npulumi.export(\"collectionToken\", collection.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var collection = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Collection\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"collectionToken\"] = collection.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcollection, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Collection\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"collectionToken\", collection.Token)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var collection = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Collection\")\n            .build());\n\n        ctx.export(\"collectionToken\", collection.token());\n    }\n}\n```\n```yaml\nvariables:\n  collection:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Collection\noutputs:\n  collectionToken: ${collection.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Project-level Token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst project = example.then(example =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Project\",\n    identifiers: {\n        project_id: example.id,\n    },\n}));\nexport const projectToken = project.then(project =\u003e project.token);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nproject = azuredevops.get_security_namespace_token(namespace_name=\"Project\",\n    identifiers={\n        \"project_id\": example.id,\n    })\npulumi.export(\"projectToken\", project.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var project = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Project\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectToken\"] = project.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tproject, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Project\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\": example.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"projectToken\", project.Token)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var project = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Project\")\n            .identifiers(Map.of(\"project_id\", example.id()))\n            .build());\n\n        ctx.export(\"projectToken\", project.token());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  project:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Project\n        identifiers:\n          project_id: ${example.id}\noutputs:\n  projectToken: ${project.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Git Repository Token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetGitRepository = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\nconst gitRepo = Promise.all([example, exampleGetGitRepository]).then(([example, exampleGetGitRepository]) =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Git Repositories\",\n    identifiers: {\n        project_id: example.id,\n        repository_id: exampleGetGitRepository.id,\n    },\n}));\nexport const gitRepoToken = gitRepo.then(gitRepo =\u003e gitRepo.token);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_git_repository = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\ngit_repo = azuredevops.get_security_namespace_token(namespace_name=\"Git Repositories\",\n    identifiers={\n        \"project_id\": example.id,\n        \"repository_id\": example_get_git_repository.id,\n    })\npulumi.export(\"gitRepoToken\", git_repo.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetGitRepository = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n    var gitRepo = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Git Repositories\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n            { \"repository_id\", exampleGetGitRepository.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id) },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gitRepoToken\"] = gitRepo.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetGitRepository, err := azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgitRepo, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Git Repositories\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\":    example.Id,\n\t\t\t\t\"repository_id\": exampleGetGitRepository.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gitRepoToken\", gitRepo.Token)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetGitRepository = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n        final var gitRepo = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Git Repositories\")\n            .identifiers(Map.ofEntries(\n                Map.entry(\"project_id\", example.id()),\n                Map.entry(\"repository_id\", exampleGetGitRepository.id())\n            ))\n            .build());\n\n        ctx.export(\"gitRepoToken\", gitRepo.token());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetGitRepository:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n  gitRepo:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Git Repositories\n        identifiers:\n          project_id: ${example.id}\n          repository_id: ${exampleGetGitRepository.id}\noutputs:\n  gitRepoToken: ${gitRepo.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Git Repository Branch Token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetGitRepository = example.then(example =\u003e azuredevops.getGitRepository({\n    projectId: example.id,\n    name: \"Example Repository\",\n}));\nconst gitBranch = Promise.all([example, exampleGetGitRepository]).then(([example, exampleGetGitRepository]) =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Git Repositories\",\n    identifiers: {\n        project_id: example.id,\n        repository_id: exampleGetGitRepository.id,\n        ref_name: \"refs/heads/main\",\n    },\n}));\nexport const gitBranchToken = gitBranch.then(gitBranch =\u003e gitBranch.token);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_git_repository = azuredevops.get_git_repository(project_id=example.id,\n    name=\"Example Repository\")\ngit_branch = azuredevops.get_security_namespace_token(namespace_name=\"Git Repositories\",\n    identifiers={\n        \"project_id\": example.id,\n        \"repository_id\": example_get_git_repository.id,\n        \"ref_name\": \"refs/heads/main\",\n    })\npulumi.export(\"gitBranchToken\", git_branch.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetGitRepository = AzureDevOps.GetGitRepository.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Repository\",\n    });\n\n    var gitBranch = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Git Repositories\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n            { \"repository_id\", exampleGetGitRepository.Apply(getGitRepositoryResult =\u003e getGitRepositoryResult.Id) },\n            { \"ref_name\", \"refs/heads/main\" },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"gitBranchToken\"] = gitBranch.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetGitRepository, err := azuredevops.GetGitRepository(ctx, \u0026azuredevops.GetGitRepositoryArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Repository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tgitBranch, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Git Repositories\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\":    example.Id,\n\t\t\t\t\"repository_id\": exampleGetGitRepository.Id,\n\t\t\t\t\"ref_name\":      \"refs/heads/main\",\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"gitBranchToken\", gitBranch.Token)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetGitRepositoryArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetGitRepository = AzuredevopsFunctions.getGitRepository(GetGitRepositoryArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Repository\")\n            .build());\n\n        final var gitBranch = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Git Repositories\")\n            .identifiers(Map.ofEntries(\n                Map.entry(\"project_id\", example.id()),\n                Map.entry(\"repository_id\", exampleGetGitRepository.id()),\n                Map.entry(\"ref_name\", \"refs/heads/main\")\n            ))\n            .build());\n\n        ctx.export(\"gitBranchToken\", gitBranch.token());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetGitRepository:\n    fn::invoke:\n      function: azuredevops:getGitRepository\n      arguments:\n        projectId: ${example.id}\n        name: Example Repository\n  gitBranch:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Git Repositories\n        identifiers:\n          project_id: ${example.id}\n          repository_id: ${exampleGetGitRepository.id}\n          ref_name: refs/heads/main\noutputs:\n  gitBranchToken: ${gitBranch.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Build Definition Token\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetBuildDefinition = example.then(example =\u003e azuredevops.getBuildDefinition({\n    projectId: example.id,\n    name: \"Example Build Pipeline\",\n}));\nconst buildDef = Promise.all([example, exampleGetBuildDefinition]).then(([example, exampleGetBuildDefinition]) =\u003e azuredevops.getSecurityNamespaceToken({\n    namespaceName: \"Build\",\n    identifiers: {\n        project_id: example.id,\n        definition_id: exampleGetBuildDefinition.id,\n    },\n}));\nexport const buildDefToken = buildDef.then(buildDef =\u003e buildDef.token);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_build_definition = azuredevops.get_build_definition(project_id=example.id,\n    name=\"Example Build Pipeline\")\nbuild_def = azuredevops.get_security_namespace_token(namespace_name=\"Build\",\n    identifiers={\n        \"project_id\": example.id,\n        \"definition_id\": example_get_build_definition.id,\n    })\npulumi.export(\"buildDefToken\", build_def.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetBuildDefinition = AzureDevOps.GetBuildDefinition.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Build Pipeline\",\n    });\n\n    var buildDef = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceName = \"Build\",\n        Identifiers = \n        {\n            { \"project_id\", example.Apply(getProjectResult =\u003e getProjectResult.Id) },\n            { \"definition_id\", exampleGetBuildDefinition.Apply(getBuildDefinitionResult =\u003e getBuildDefinitionResult.Id) },\n        },\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"buildDefToken\"] = buildDef.Apply(getSecurityNamespaceTokenResult =\u003e getSecurityNamespaceTokenResult.Token),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetBuildDefinition, err := azuredevops.LookupBuildDefinition(ctx, \u0026azuredevops.LookupBuildDefinitionArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Build Pipeline\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tbuildDef, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceName: pulumi.StringRef(\"Build\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\":    example.Id,\n\t\t\t\t\"definition_id\": exampleGetBuildDefinition.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"buildDefToken\", buildDef.Token)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetBuildDefinitionArgs;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetBuildDefinition = AzuredevopsFunctions.getBuildDefinition(GetBuildDefinitionArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Build Pipeline\")\n            .build());\n\n        final var buildDef = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceName(\"Build\")\n            .identifiers(Map.ofEntries(\n                Map.entry(\"project_id\", example.id()),\n                Map.entry(\"definition_id\", exampleGetBuildDefinition.id())\n            ))\n            .build());\n\n        ctx.export(\"buildDefToken\", buildDef.token());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetBuildDefinition:\n    fn::invoke:\n      function: azuredevops:getBuildDefinition\n      arguments:\n        projectId: ${example.id}\n        name: Example Build Pipeline\n  buildDef:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceName: Build\n        identifiers:\n          project_id: ${example.id}\n          definition_id: ${exampleGetBuildDefinition.id}\noutputs:\n  buildDefToken: ${buildDef.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Namespace ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst analytics = azuredevops.getSecurityNamespaceToken({\n    namespaceId: \"58450c49-b02d-465a-ab12-59ae512d6531\",\n    identifiers: {\n        project_id: example.id,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nanalytics = azuredevops.get_security_namespace_token(namespace_id=\"58450c49-b02d-465a-ab12-59ae512d6531\",\n    identifiers={\n        \"project_id\": example[\"id\"],\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var analytics = AzureDevOps.GetSecurityNamespaceToken.Invoke(new()\n    {\n        NamespaceId = \"58450c49-b02d-465a-ab12-59ae512d6531\",\n        Identifiers = \n        {\n            { \"project_id\", example.Id },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.GetSecurityNamespaceToken(ctx, \u0026azuredevops.GetSecurityNamespaceTokenArgs{\n\t\t\tNamespaceId: pulumi.StringRef(\"58450c49-b02d-465a-ab12-59ae512d6531\"),\n\t\t\tIdentifiers: pulumi.StringMap{\n\t\t\t\t\"project_id\": example.Id,\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityNamespaceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var analytics = AzuredevopsFunctions.getSecurityNamespaceToken(GetSecurityNamespaceTokenArgs.builder()\n            .namespaceId(\"58450c49-b02d-465a-ab12-59ae512d6531\")\n            .identifiers(Map.of(\"project_id\", example.id()))\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  analytics:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaceToken\n      arguments:\n        namespaceId: 58450c49-b02d-465a-ab12-59ae512d6531\n        identifiers:\n          project_id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Security](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/?view=azure-devops-rest-7.0)\n- [Security Namespaces Documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/security/security-glossary?view=azure-devops)\n\n## Notes\n\n- Security tokens are namespace-specific string identifiers that represent resources within Azure DevOps\n- Tokens are used in conjunction with security permissions to control access to various resources\n- The format of the token varies depending on the namespace and the resource being targeted\n- For Git repositories, you can specify tokens at the repository level or branch level by providing the \u003cspan pulumi-lang-nodejs=\"`refName`\" pulumi-lang-dotnet=\"`RefName`\" pulumi-lang-go=\"`refName`\" pulumi-lang-python=\"`ref_name`\" pulumi-lang-yaml=\"`refName`\" pulumi-lang-java=\"`refName`\"\u003e`ref_name`\u003c/span\u003e identifier\n- Branch reference names must follow the Git reference format (e.g., `refs/heads/main`, `refs/tags/v1.0.0`)\n","inputs":{"description":"A collection of arguments for invoking getSecurityNamespaceToken.\n","properties":{"identifiers":{"type":"object","additionalProperties":{"type":"string"},"description":"A map of identifiers required for token generation. The required identifiers depend on the namespace. Not used when \u003cspan pulumi-lang-nodejs=\"`returnIdentifierInfo`\" pulumi-lang-dotnet=\"`ReturnIdentifierInfo`\" pulumi-lang-go=\"`returnIdentifierInfo`\" pulumi-lang-python=\"`return_identifier_info`\" pulumi-lang-yaml=\"`returnIdentifierInfo`\" pulumi-lang-java=\"`returnIdentifierInfo`\"\u003e`return_identifier_info`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n"},"namespaceId":{"type":"string","description":"The ID of the security namespace. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namespaceName`\" pulumi-lang-dotnet=\"`NamespaceName`\" pulumi-lang-go=\"`namespaceName`\" pulumi-lang-python=\"`namespace_name`\" pulumi-lang-yaml=\"`namespaceName`\" pulumi-lang-java=\"`namespaceName`\"\u003e`namespace_name`\u003c/span\u003e.\n"},"namespaceName":{"type":"string","description":"The name of the security namespace. Conflicts with \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e. Common values include:\n- `Collection` - Organization/collection-level permissions\n- `Project` - Project-level permissions\n- `Git Repositories` - Git repository permissions\n- `Analytics` - Analytics permissions\n- `AnalyticsViews` - Analytics Views permissions\n- `Process` - Process permissions\n- `AuditLog` - Audit log permissions\n- `BuildAdministration` - Build administration permissions\n- `Server` - Server-level permissions\n- `VersionControlPrivileges` - Version control privileges\n"},"returnIdentifierInfo":{"type":"boolean","description":"When set to \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e, the data source will return the lists of required and optional identifiers for the namespace instead of generating a token. This is useful for discovering what identifiers are needed for a particular namespace. Default: \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`namespaceId`\" pulumi-lang-dotnet=\"`NamespaceId`\" pulumi-lang-go=\"`namespaceId`\" pulumi-lang-python=\"`namespace_id`\" pulumi-lang-yaml=\"`namespaceId`\" pulumi-lang-java=\"`namespaceId`\"\u003e`namespace_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`namespaceName`\" pulumi-lang-dotnet=\"`NamespaceName`\" pulumi-lang-go=\"`namespaceName`\" pulumi-lang-python=\"`namespace_name`\" pulumi-lang-yaml=\"`namespaceName`\" pulumi-lang-java=\"`namespaceName`\"\u003e`namespace_name`\u003c/span\u003e must be specified.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getSecurityNamespaceToken.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"identifiers":{"additionalProperties":{"type":"string"},"type":"object"},"namespaceId":{"type":"string"},"namespaceName":{"type":"string"},"optionalIdentifiers":{"description":"A list of optional identifier names for this namespace. Only populated when \u003cspan pulumi-lang-nodejs=\"`returnIdentifierInfo`\" pulumi-lang-dotnet=\"`ReturnIdentifierInfo`\" pulumi-lang-go=\"`returnIdentifierInfo`\" pulumi-lang-python=\"`return_identifier_info`\" pulumi-lang-yaml=\"`returnIdentifierInfo`\" pulumi-lang-java=\"`returnIdentifierInfo`\"\u003e`return_identifier_info`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"requiredIdentifiers":{"description":"A list of required identifier names for this namespace. Only populated when \u003cspan pulumi-lang-nodejs=\"`returnIdentifierInfo`\" pulumi-lang-dotnet=\"`ReturnIdentifierInfo`\" pulumi-lang-go=\"`returnIdentifierInfo`\" pulumi-lang-python=\"`return_identifier_info`\" pulumi-lang-yaml=\"`returnIdentifierInfo`\" pulumi-lang-java=\"`returnIdentifierInfo`\"\u003e`return_identifier_info`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`true`\" pulumi-lang-dotnet=\"`True`\" pulumi-lang-go=\"`true`\" pulumi-lang-python=\"`true`\" pulumi-lang-yaml=\"`true`\" pulumi-lang-java=\"`true`\"\u003e`true`\u003c/span\u003e.\n","items":{"type":"string"},"type":"array"},"returnIdentifierInfo":{"type":"boolean"},"token":{"description":"The generated security token for the namespace. This token can be used with the \u003cspan pulumi-lang-nodejs=\"`azuredevops.SecurityPermissions`\" pulumi-lang-dotnet=\"`azuredevops.SecurityPermissions`\" pulumi-lang-go=\"`SecurityPermissions`\" pulumi-lang-python=\"`SecurityPermissions`\" pulumi-lang-yaml=\"`azuredevops.SecurityPermissions`\" pulumi-lang-java=\"`azuredevops.SecurityPermissions`\"\u003e`azuredevops.SecurityPermissions`\u003c/span\u003e resource. Only populated when \u003cspan pulumi-lang-nodejs=\"`returnIdentifierInfo`\" pulumi-lang-dotnet=\"`ReturnIdentifierInfo`\" pulumi-lang-go=\"`returnIdentifierInfo`\" pulumi-lang-python=\"`return_identifier_info`\" pulumi-lang-yaml=\"`returnIdentifierInfo`\" pulumi-lang-java=\"`returnIdentifierInfo`\"\u003e`return_identifier_info`\u003c/span\u003e is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n","type":"string"}},"required":["optionalIdentifiers","requiredIdentifiers","token","id"],"type":"object"}},"azuredevops:index/getSecurityNamespaces:getSecurityNamespaces":{"description":"Use this data source to access information about security namespaces within Azure DevOps. Security namespaces define the security model for different resources and operations in Azure DevOps.\n\n\u003e **NOTE:** If you need to find a specific security namespace by name or ID, consider using the\u003cspan pulumi-lang-nodejs=\" azuredevops.getSecurityNamespace \" pulumi-lang-dotnet=\" azuredevops.getSecurityNamespace \" pulumi-lang-go=\" getSecurityNamespace \" pulumi-lang-python=\" get_security_namespace \" pulumi-lang-yaml=\" azuredevops.getSecurityNamespace \" pulumi-lang-java=\" azuredevops.getSecurityNamespace \"\u003e azuredevops.getSecurityNamespace \u003c/span\u003edata source.\n\n## Example Usage\n\n### List All Security Namespaces\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst all = azuredevops.getSecurityNamespaces({});\nexport const namespaces = all.then(all =\u003e all.namespaces);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nall = azuredevops.get_security_namespaces()\npulumi.export(\"namespaces\", all.namespaces)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = AzureDevOps.GetSecurityNamespaces.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"namespaces\"] = all.Apply(getSecurityNamespacesResult =\u003e getSecurityNamespacesResult.Namespaces),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := azuredevops.GetSecurityNamespaces(ctx, map[string]interface{}{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"namespaces\", all.Namespaces)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = AzuredevopsFunctions.getSecurityNamespaces(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);\n\n        ctx.export(\"namespaces\", all.namespaces());\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: azuredevops:getSecurityNamespaces\n      arguments: {}\noutputs:\n  namespaces: ${all.namespaces}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n### Discover Available Permissions for a Namespace\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst all = azuredevops.getSecurityNamespaces({});\nconst projectNamespace = all.then(all =\u003e .filter(ns =\u003e ns.name == \"Project\").map(ns =\u003e (ns))[0]);\nexport const projectPermissions = .reduce((__obj, action) =\u003e ({ ...__obj, [action.name]: {\n    displayName: action.displayName,\n    bit: action.bit,\n} }));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nall = azuredevops.get_security_namespaces()\nproject_namespace = [ns for ns in all.namespaces if ns.name == \"Project\"][0]\npulumi.export(\"projectPermissions\", {action.name: {\n    \"displayName\": action.display_name,\n    \"bit\": action.bit,\n} for action in project_namespace.actions})\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = AzureDevOps.GetSecurityNamespaces.Invoke();\n\n    var projectNamespace = .Where(ns =\u003e ns.Name == \"Project\").Select(ns =\u003e \n    {\n        return ns;\n    }).ToList()[0];\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectPermissions\"] = .ToDictionary(item =\u003e {\n            var action = item.Value;\n            return action.Name;\n        }, item =\u003e {\n            var action = item.Value;\n            return \n            {\n                { \"displayName\", action.DisplayName },\n                { \"bit\", action.Bit },\n            };\n        }),\n    };\n});\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Common Security Namespaces\n\nThe following are common security namespaces available in Azure DevOps:\n\n| Namespace Name | Namespace ID | Description |\n|---------------|--------------|-------------|\n| **Collection** | `3e65f728-f8bc-4ecd-8764-7e378b19bfa7` | Organization/collection-level security |\n| **Project** | `52d39943-cb85-4d7f-8fa8-c6baac873819` | Project-level security |\n| **Git Repositories** | `2e9eb7ed-3c0a-47d4-87c1-0ffdd275fd87` | Git repository security |\n| **Analytics** | `58450c49-b02d-465a-ab12-59ae512d6531` | Analytics security |\n| **AnalyticsViews** | `d34d3680-dfe5-4cc6-a949-7d9c68f73cba` | Analytics Views security |\n| **Process** | `2dab47f9-bd70-49ed-9bd5-8eb051e59c02` | Process template security |\n| **AuditLog** | `a6cc6381-a1ca-4b36-b3c1-4e65211e82b6` | Audit log security |\n| **BuildAdministration** | `302acaca-b667-436d-a946-87133492041c` | Build administration security |\n| **Server** | `1f4179b3-6bac-4d01-b421-71ea09171400` | Server-level security |\n| **VersionControlPrivileges** | `66312704-deb5-43f9-b51c-ab4ff5e351c3` | Version control privileges |\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Security Namespaces - Query](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/security-namespaces/query?view=azure-devops-rest-7.0)\n- [Security Namespaces Documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/security/security-glossary?view=azure-devops)\n\n## PAT Permissions Required\n\n- **Project \u0026 Team**: Read\n\n## Notes\n\n- Security namespaces define the security model for different resources and operations in Azure DevOps\n- Each namespace has a unique identifier (UUID) that doesn't change across organizations\n- Namespaces contain actions (permissions) that can be granted or denied to users and groups\n- Permission bits are used to calculate effective permissions when multiple permissions are set\n- This data source is useful for discovering available permissions and namespace IDs for use with \u003cspan pulumi-lang-nodejs=\"`azuredevops.SecurityPermissions`\" pulumi-lang-dotnet=\"`azuredevops.SecurityPermissions`\" pulumi-lang-go=\"`SecurityPermissions`\" pulumi-lang-python=\"`SecurityPermissions`\" pulumi-lang-yaml=\"`azuredevops.SecurityPermissions`\" pulumi-lang-java=\"`azuredevops.SecurityPermissions`\"\u003e`azuredevops.SecurityPermissions`\u003c/span\u003e resources\n","outputs":{"description":"A collection of values returned by getSecurityNamespaces.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"namespaces":{"description":"A set of security namespaces. Each \u003cspan pulumi-lang-nodejs=\"`namespace`\" pulumi-lang-dotnet=\"`Namespace`\" pulumi-lang-go=\"`namespace`\" pulumi-lang-python=\"`namespace`\" pulumi-lang-yaml=\"`namespace`\" pulumi-lang-java=\"`namespace`\"\u003e`namespace`\u003c/span\u003e block exports the following:\n","items":{"$ref":"#/types/azuredevops:index/getSecurityNamespacesNamespace:getSecurityNamespacesNamespace"},"type":"array"}},"required":["namespaces","id"],"type":"object"}},"azuredevops:index/getSecurityroleDefinitions:getSecurityroleDefinitions":{"description":"Use this data source to access information about existing Security Role Definitions within a given scope in Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getSecurityroleDefinitions({\n    scope: \"distributedtask.environmentreferencerole\",\n});\nexport const securityroleDefinitions = exampleAazuredevopsSecurityroleDefinitions.definitions;\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_securityrole_definitions(scope=\"distributedtask.environmentreferencerole\")\npulumi.export(\"securityroleDefinitions\", example_aazuredevops_securityrole_definitions[\"definitions\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetSecurityroleDefinitions.Invoke(new()\n    {\n        Scope = \"distributedtask.environmentreferencerole\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"securityroleDefinitions\"] = exampleAazuredevopsSecurityroleDefinitions.Definitions,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.GetSecurityroleDefinitions(ctx, \u0026azuredevops.GetSecurityroleDefinitionsArgs{\n\t\t\tScope: \"distributedtask.environmentreferencerole\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"securityroleDefinitions\", exampleAazuredevopsSecurityroleDefinitions.Definitions)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetSecurityroleDefinitionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getSecurityroleDefinitions(GetSecurityroleDefinitionsArgs.builder()\n            .scope(\"distributedtask.environmentreferencerole\")\n            .build());\n\n        ctx.export(\"securityroleDefinitions\", exampleAazuredevopsSecurityroleDefinitions.definitions());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getSecurityroleDefinitions\n      arguments:\n        scope: distributedtask.environmentreferencerole\noutputs:\n  securityroleDefinitions: ${exampleAazuredevopsSecurityroleDefinitions.definitions}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Role Definitions - List](https://learn.microsoft.com/en-us/rest/api/azure/devops/securityroles/roledefinitions/list?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getSecurityroleDefinitions.\n","properties":{"scope":{"type":"string","description":"Name of the Scope for which Security Role Definitions will be returned.\n\n\u003e **NOTE:** DataSource without specifying any arguments will return all projects.\n"}},"type":"object","required":["scope"]},"outputs":{"description":"A collection of values returned by getSecurityroleDefinitions.\n","properties":{"definitions":{"description":"A list of existing Security Role Definitions in a Scope in your Azure DevOps Organization with details about every definition which includes. A \u003cspan pulumi-lang-nodejs=\"`definitions`\" pulumi-lang-dotnet=\"`Definitions`\" pulumi-lang-go=\"`definitions`\" pulumi-lang-python=\"`definitions`\" pulumi-lang-yaml=\"`definitions`\" pulumi-lang-java=\"`definitions`\"\u003e`definitions`\u003c/span\u003e block as defined below.\n","items":{"$ref":"#/types/azuredevops:index/getSecurityroleDefinitionsDefinition:getSecurityroleDefinitionsDefinition"},"type":"array"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"scope":{"description":"The scope of the Security Role Definition.\n","type":"string"}},"required":["definitions","scope","id"],"type":"object"}},"azuredevops:index/getServiceEndpointAzureRM:getServiceEndpointAzureRM":{"description":"Use this data source to access information about an existing AzureRM service Endpoint.\n\n## Example Usage\n\n### By Service Endpoint ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst sample = azuredevops.getProject({\n    name: \"Sample Project\",\n});\nconst serviceendpoint = sample.then(sample =\u003e azuredevops.getServiceEndpointAzureRM({\n    projectId: sample.id,\n    serviceEndpointId: \"00000000-0000-0000-0000-000000000000\",\n}));\nexport const serviceEndpointName = serviceendpoint.then(serviceendpoint =\u003e serviceendpoint.serviceEndpointName);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nsample = azuredevops.get_project(name=\"Sample Project\")\nserviceendpoint = azuredevops.get_service_endpoint_azure_rm(project_id=sample.id,\n    service_endpoint_id=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"serviceEndpointName\", serviceendpoint.service_endpoint_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sample = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Sample Project\",\n    });\n\n    var serviceendpoint = AzureDevOps.GetServiceEndpointAzureRM.Invoke(new()\n    {\n        ProjectId = sample.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointName\"] = serviceendpoint.Apply(getServiceEndpointAzureRMResult =\u003e getServiceEndpointAzureRMResult.ServiceEndpointName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Sample Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceendpoint, err := azuredevops.LookupServiceEndpointAzureRM(ctx, \u0026azuredevops.LookupServiceEndpointAzureRMArgs{\n\t\t\tProjectId:         sample.Id,\n\t\t\tServiceEndpointId: pulumi.StringRef(\"00000000-0000-0000-0000-000000000000\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointName\", serviceendpoint.ServiceEndpointName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceEndpointAzureRMArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sample = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Sample Project\")\n            .build());\n\n        final var serviceendpoint = AzuredevopsFunctions.getServiceEndpointAzureRM(GetServiceEndpointAzureRMArgs.builder()\n            .projectId(sample.id())\n            .serviceEndpointId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        ctx.export(\"serviceEndpointName\", serviceendpoint.serviceEndpointName());\n    }\n}\n```\n```yaml\nvariables:\n  sample:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Sample Project\n  serviceendpoint:\n    fn::invoke:\n      function: azuredevops:getServiceEndpointAzureRM\n      arguments:\n        projectId: ${sample.id}\n        serviceEndpointId: 00000000-0000-0000-0000-000000000000\noutputs:\n  serviceEndpointName: ${serviceendpoint.serviceEndpointName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By Service Endpoint Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst sample = azuredevops.getProject({\n    name: \"Sample Project\",\n});\nconst serviceendpoint = sample.then(sample =\u003e azuredevops.getServiceEndpointAzureRM({\n    projectId: sample.id,\n    serviceEndpointName: \"Example-Service-Endpoint\",\n}));\nexport const serviceEndpointId = serviceendpoint.then(serviceendpoint =\u003e serviceendpoint.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nsample = azuredevops.get_project(name=\"Sample Project\")\nserviceendpoint = azuredevops.get_service_endpoint_azure_rm(project_id=sample.id,\n    service_endpoint_name=\"Example-Service-Endpoint\")\npulumi.export(\"serviceEndpointId\", serviceendpoint.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sample = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Sample Project\",\n    });\n\n    var serviceendpoint = AzureDevOps.GetServiceEndpointAzureRM.Invoke(new()\n    {\n        ProjectId = sample.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointName = \"Example-Service-Endpoint\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = serviceendpoint.Apply(getServiceEndpointAzureRMResult =\u003e getServiceEndpointAzureRMResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Sample Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceendpoint, err := azuredevops.LookupServiceEndpointAzureRM(ctx, \u0026azuredevops.LookupServiceEndpointAzureRMArgs{\n\t\t\tProjectId:           sample.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example-Service-Endpoint\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", serviceendpoint.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceEndpointAzureRMArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sample = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Sample Project\")\n            .build());\n\n        final var serviceendpoint = AzuredevopsFunctions.getServiceEndpointAzureRM(GetServiceEndpointAzureRMArgs.builder()\n            .projectId(sample.id())\n            .serviceEndpointName(\"Example-Service-Endpoint\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", serviceendpoint.id());\n    }\n}\n```\n```yaml\nvariables:\n  sample:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Sample Project\n  serviceendpoint:\n    fn::invoke:\n      function: azuredevops:getServiceEndpointAzureRM\n      arguments:\n        projectId: ${sample.id}\n        serviceEndpointName: Example-Service-Endpoint\noutputs:\n  serviceEndpointId: ${serviceendpoint.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceEndpointAzureRM.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** 1. One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n\u003cbr\u003e2. When supplying \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e, take care to ensure that this is a unique name.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceEndpointAzureRM.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"azurermManagementGroupId":{"description":"The Management Group ID of the Service Endpoint is target, if available.\n","type":"string"},"azurermManagementGroupName":{"description":"The Management Group Name of the Service Endpoint target, if available.\n","type":"string"},"azurermSpnTenantid":{"description":"The Tenant ID of the Azure targets.\n","type":"string"},"azurermSubscriptionId":{"description":"The Subscription ID of the Service Endpoint target, if available.\n","type":"string"},"azurermSubscriptionName":{"description":"The Subscription Name of the Service Endpoint target, if available.\n","type":"string"},"description":{"description":"The description of the Service Endpoint.\n","type":"string"},"environment":{"description":"The Cloud Environment.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"resourceGroup":{"description":"The Resource Group of the Service Endpoint target, if available.\n","type":"string"},"serverUrl":{"description":"The server URL of the service Endpoint.\n","type":"string"},"serviceEndpointAuthenticationScheme":{"description":"The authentication scheme of Azure Resource Management Endpoint\n","type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"},"servicePrincipalId":{"description":"The Application(Client) ID of the Service Principal.\n","type":"string"},"workloadIdentityFederationIssuer":{"description":"The issuer if `of the Workload Identity Federation Subject\n","type":"string"},"workloadIdentityFederationSubject":{"description":"The subject of the Workload Identity Federation Subject.\n","type":"string"}},"required":["authorization","azurermManagementGroupId","azurermManagementGroupName","azurermSpnTenantid","azurermSubscriptionId","azurermSubscriptionName","description","environment","projectId","resourceGroup","serverUrl","serviceEndpointAuthenticationScheme","serviceEndpointId","serviceEndpointName","servicePrincipalId","workloadIdentityFederationIssuer","workloadIdentityFederationSubject","id"],"type":"object"}},"azuredevops:index/getServiceEndpointGithub:getServiceEndpointGithub":{"description":"Use this data source to access information about an existing GitHub service Endpoint.\n\n## Example Usage\n\n### By Service Endpoint ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst sample = azuredevops.getProject({\n    name: \"Sample Project\",\n});\nconst serviceendpoint = sample.then(sample =\u003e azuredevops.getServiceEndpointGithub({\n    projectId: sample.id,\n    serviceEndpointId: \"00000000-0000-0000-0000-000000000000\",\n}));\nexport const serviceEndpointName = serviceendpoint.then(serviceendpoint =\u003e serviceendpoint.serviceEndpointName);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nsample = azuredevops.get_project(name=\"Sample Project\")\nserviceendpoint = azuredevops.get_service_endpoint_github(project_id=sample.id,\n    service_endpoint_id=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"serviceEndpointName\", serviceendpoint.service_endpoint_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sample = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Sample Project\",\n    });\n\n    var serviceendpoint = AzureDevOps.GetServiceEndpointGithub.Invoke(new()\n    {\n        ProjectId = sample.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointName\"] = serviceendpoint.Apply(getServiceEndpointGithubResult =\u003e getServiceEndpointGithubResult.ServiceEndpointName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Sample Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceendpoint, err := azuredevops.GetServiceEndpointGithub(ctx, \u0026azuredevops.GetServiceEndpointGithubArgs{\n\t\t\tProjectId:         sample.Id,\n\t\t\tServiceEndpointId: pulumi.StringRef(\"00000000-0000-0000-0000-000000000000\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointName\", serviceendpoint.ServiceEndpointName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceEndpointGithubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sample = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Sample Project\")\n            .build());\n\n        final var serviceendpoint = AzuredevopsFunctions.getServiceEndpointGithub(GetServiceEndpointGithubArgs.builder()\n            .projectId(sample.id())\n            .serviceEndpointId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        ctx.export(\"serviceEndpointName\", serviceendpoint.serviceEndpointName());\n    }\n}\n```\n```yaml\nvariables:\n  sample:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Sample Project\n  serviceendpoint:\n    fn::invoke:\n      function: azuredevops:getServiceEndpointGithub\n      arguments:\n        projectId: ${sample.id}\n        serviceEndpointId: 00000000-0000-0000-0000-000000000000\noutputs:\n  serviceEndpointName: ${serviceendpoint.serviceEndpointName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By Service Endpoint Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst sample = azuredevops.getProject({\n    name: \"Sample Project\",\n});\nconst serviceendpoint = sample.then(sample =\u003e azuredevops.getServiceEndpointGithub({\n    projectId: sample.id,\n    serviceEndpointName: \"Example-Service-Endpoint\",\n}));\nexport const serviceEndpointId = serviceendpoint.then(serviceendpoint =\u003e serviceendpoint.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nsample = azuredevops.get_project(name=\"Sample Project\")\nserviceendpoint = azuredevops.get_service_endpoint_github(project_id=sample.id,\n    service_endpoint_name=\"Example-Service-Endpoint\")\npulumi.export(\"serviceEndpointId\", serviceendpoint.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var sample = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Sample Project\",\n    });\n\n    var serviceendpoint = AzureDevOps.GetServiceEndpointGithub.Invoke(new()\n    {\n        ProjectId = sample.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointName = \"Example-Service-Endpoint\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = serviceendpoint.Apply(getServiceEndpointGithubResult =\u003e getServiceEndpointGithubResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tsample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Sample Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tserviceendpoint, err := azuredevops.GetServiceEndpointGithub(ctx, \u0026azuredevops.GetServiceEndpointGithubArgs{\n\t\t\tProjectId:           sample.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example-Service-Endpoint\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", serviceendpoint.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceEndpointGithubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var sample = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Sample Project\")\n            .build());\n\n        final var serviceendpoint = AzuredevopsFunctions.getServiceEndpointGithub(GetServiceEndpointGithubArgs.builder()\n            .projectId(sample.id())\n            .serviceEndpointName(\"Example-Service-Endpoint\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", serviceendpoint.id());\n    }\n}\n```\n```yaml\nvariables:\n  sample:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Sample Project\n  serviceendpoint:\n    fn::invoke:\n      function: azuredevops:getServiceEndpointGithub\n      arguments:\n        projectId: ${sample.id}\n        serviceEndpointName: Example-Service-Endpoint\noutputs:\n  serviceEndpointId: ${serviceendpoint.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceEndpointGithub.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** 1. One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n\u003cbr\u003e2. When supplying \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e, take care to ensure that this is a unique name.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceEndpointGithub.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"description":{"description":"The description of the Service Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"}},"required":["authorization","description","projectId","serviceEndpointId","serviceEndpointName","id"],"type":"object"}},"azuredevops:index/getServicePrincipal:getServicePrincipal":{"description":"Use this data source to access information about an existing Service Principal.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getServicePrincipal({\n    displayName: \"existing\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_service_principal(display_name=\"existing\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetServicePrincipal.Invoke(new()\n    {\n        DisplayName = \"existing\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getServicePrincipalResult =\u003e getServicePrincipalResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetServicePrincipal(ctx, \u0026azuredevops.GetServicePrincipalArgs{\n\t\t\tDisplayName: \"existing\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetServicePrincipalArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getServicePrincipal(GetServicePrincipalArgs.builder()\n            .displayName(\"existing\")\n            .build());\n\n        ctx.export(\"id\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getServicePrincipal\n      arguments:\n        displayName: existing\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServicePrincipal.\n","properties":{"displayName":{"type":"string","description":"The Display Name of the Service Principal. Changing this forces a new Service Principal to be created.\n","willReplaceOnChanges":true}},"type":"object","required":["displayName"]},"outputs":{"description":"A collection of values returned by getServicePrincipal.\n","properties":{"descriptor":{"description":"The descriptor of the Service Principal.\n","type":"string"},"displayName":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"origin":{"description":"The origin of the Service Principal.\n","type":"string"},"originId":{"description":"The origin ID of the Service Principal..\n","type":"string"}},"required":["descriptor","displayName","origin","originId","id"],"type":"object"}},"azuredevops:index/getServiceendpointAzurecr:getServiceendpointAzurecr":{"description":"Use this data source to access information about an existing Azure Container Registry Service Endpoint.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getServiceendpointAzurecr({\n    projectId: exampleAzuredevopsProject.id,\n    serviceEndpointName: \"Example Azure Container Registry\",\n});\nexport const serviceEndpointId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_serviceendpoint_azurecr(project_id=example_azuredevops_project[\"id\"],\n    service_endpoint_name=\"Example Azure Container Registry\")\npulumi.export(\"serviceEndpointId\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetServiceendpointAzurecr.Invoke(new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        ServiceEndpointName = \"Example Azure Container Registry\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = example.Apply(getServiceendpointAzurecrResult =\u003e getServiceendpointAzurecrResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetServiceendpointAzurecr(ctx, \u0026azuredevops.GetServiceendpointAzurecrArgs{\n\t\t\tProjectId:           exampleAzuredevopsProject.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example Azure Container Registry\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointAzurecrArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getServiceendpointAzurecr(GetServiceendpointAzurecrArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .serviceEndpointName(\"Example Azure Container Registry\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getServiceendpointAzurecr\n      arguments:\n        projectId: ${exampleAzuredevopsProject.id}\n        serviceEndpointName: Example Azure Container Registry\noutputs:\n  serviceEndpointId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointAzurecr.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointAzurecr.\n","properties":{"appObjectId":{"description":"The Object ID of the Service Principal.\n","type":"string"},"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"azSpnRoleAssignmentId":{"description":"The ID of Service Principal Role Assignment.\n","type":"string"},"azSpnRolePermissions":{"description":"The Service Principal Role Permissions.\n","type":"string"},"azurecrName":{"description":"The Azure Container Registry name.\n","type":"string"},"azurecrSpnTenantid":{"description":"The Tenant ID of the service principal.\n","type":"string"},"azurecrSubscriptionId":{"description":"The Subscription ID of the Azure targets.\n","type":"string"},"azurecrSubscriptionName":{"description":"The Subscription Name of the Azure targets.\n","type":"string"},"description":{"description":"The Service Endpoint description.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"resourceGroup":{"description":"The Resource Group to which the Container Registry belongs.\n","type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"},"servicePrincipalId":{"description":"The Application(Client) ID of the Service Principal.\n","type":"string"},"spnObjectId":{"description":"The ID of the Service Principal.\n","type":"string"}},"required":["appObjectId","authorization","azSpnRoleAssignmentId","azSpnRolePermissions","azurecrName","azurecrSpnTenantid","azurecrSubscriptionId","azurecrSubscriptionName","description","projectId","resourceGroup","serviceEndpointId","serviceEndpointName","servicePrincipalId","spnObjectId","id"],"type":"object"}},"azuredevops:index/getServiceendpointBitbucket:getServiceendpointBitbucket":{"description":"Use this data source to access information about an existing Bitbucket service Endpoint.\n\n## Example Usage\n\n### By Service Endpoint ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetServiceendpointBitbucket = example.then(example =\u003e azuredevops.getServiceendpointBitbucket({\n    projectId: example.id,\n    serviceEndpointId: \"00000000-0000-0000-0000-000000000000\",\n}));\nexport const serviceEndpointName = exampleGetServiceendpointBitbucket.then(exampleGetServiceendpointBitbucket =\u003e exampleGetServiceendpointBitbucket.serviceEndpointName);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_serviceendpoint_bitbucket = azuredevops.get_serviceendpoint_bitbucket(project_id=example.id,\n    service_endpoint_id=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"serviceEndpointName\", example_get_serviceendpoint_bitbucket.service_endpoint_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetServiceendpointBitbucket = AzureDevOps.GetServiceendpointBitbucket.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointName\"] = exampleGetServiceendpointBitbucket.Apply(getServiceendpointBitbucketResult =\u003e getServiceendpointBitbucketResult.ServiceEndpointName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetServiceendpointBitbucket, err := azuredevops.GetServiceendpointBitbucket(ctx, \u0026azuredevops.GetServiceendpointBitbucketArgs{\n\t\t\tProjectId:         example.Id,\n\t\t\tServiceEndpointId: pulumi.StringRef(\"00000000-0000-0000-0000-000000000000\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointName\", exampleGetServiceendpointBitbucket.ServiceEndpointName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointBitbucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetServiceendpointBitbucket = AzuredevopsFunctions.getServiceendpointBitbucket(GetServiceendpointBitbucketArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        ctx.export(\"serviceEndpointName\", exampleGetServiceendpointBitbucket.serviceEndpointName());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetServiceendpointBitbucket:\n    fn::invoke:\n      function: azuredevops:getServiceendpointBitbucket\n      arguments:\n        projectId: ${example.id}\n        serviceEndpointId: 00000000-0000-0000-0000-000000000000\noutputs:\n  serviceEndpointName: ${exampleGetServiceendpointBitbucket.serviceEndpointName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By Service Endpoint Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetServiceendpointBitbucket = example.then(example =\u003e azuredevops.getServiceendpointBitbucket({\n    projectId: example.id,\n    serviceEndpointName: \"Example\",\n}));\nexport const serviceEndpointId = exampleGetServiceendpointBitbucket.then(exampleGetServiceendpointBitbucket =\u003e exampleGetServiceendpointBitbucket.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_serviceendpoint_bitbucket = azuredevops.get_serviceendpoint_bitbucket(project_id=example.id,\n    service_endpoint_name=\"Example\")\npulumi.export(\"serviceEndpointId\", example_get_serviceendpoint_bitbucket.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetServiceendpointBitbucket = AzureDevOps.GetServiceendpointBitbucket.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointName = \"Example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = exampleGetServiceendpointBitbucket.Apply(getServiceendpointBitbucketResult =\u003e getServiceendpointBitbucketResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetServiceendpointBitbucket, err := azuredevops.GetServiceendpointBitbucket(ctx, \u0026azuredevops.GetServiceendpointBitbucketArgs{\n\t\t\tProjectId:           example.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", exampleGetServiceendpointBitbucket.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointBitbucketArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetServiceendpointBitbucket = AzuredevopsFunctions.getServiceendpointBitbucket(GetServiceendpointBitbucketArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", exampleGetServiceendpointBitbucket.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetServiceendpointBitbucket:\n    fn::invoke:\n      function: azuredevops:getServiceendpointBitbucket\n      arguments:\n        projectId: ${example.id}\n        serviceEndpointName: Example\noutputs:\n  serviceEndpointId: ${exampleGetServiceendpointBitbucket.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## PAT Permissions Required\n\n- **vso.serviceendpoint**: Grants the ability to read service endpoints.\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointBitbucket.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** 1. One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n\u003cbr\u003e2. When supplying \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e, take care to ensure that this is a unique name.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointBitbucket.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"description":{"description":"The description of the Service Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"}},"required":["authorization","description","projectId","serviceEndpointId","serviceEndpointName","id"],"type":"object"}},"azuredevops:index/getServiceendpointDockerregistry:getServiceendpointDockerregistry":{"description":"Use this data source to access information about an existing Docker Registry Service Endpoint.\n\n## Example Usage\n\n### By Service Endpoint ID\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetServiceendpointDockerregistry = example.then(example =\u003e azuredevops.getServiceendpointDockerregistry({\n    projectId: example.id,\n    serviceEndpointId: \"00000000-0000-0000-0000-000000000000\",\n}));\nexport const serviceEndpointName = exampleGetServiceendpointDockerregistry.then(exampleGetServiceendpointDockerregistry =\u003e exampleGetServiceendpointDockerregistry.serviceEndpointName);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_serviceendpoint_dockerregistry = azuredevops.get_serviceendpoint_dockerregistry(project_id=example.id,\n    service_endpoint_id=\"00000000-0000-0000-0000-000000000000\")\npulumi.export(\"serviceEndpointName\", example_get_serviceendpoint_dockerregistry.service_endpoint_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetServiceendpointDockerregistry = AzureDevOps.GetServiceendpointDockerregistry.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointId = \"00000000-0000-0000-0000-000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointName\"] = exampleGetServiceendpointDockerregistry.Apply(getServiceendpointDockerregistryResult =\u003e getServiceendpointDockerregistryResult.ServiceEndpointName),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetServiceendpointDockerregistry, err := azuredevops.GetServiceendpointDockerregistry(ctx, \u0026azuredevops.GetServiceendpointDockerregistryArgs{\n\t\t\tProjectId:         example.Id,\n\t\t\tServiceEndpointId: pulumi.StringRef(\"00000000-0000-0000-0000-000000000000\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointName\", exampleGetServiceendpointDockerregistry.ServiceEndpointName)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointDockerregistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetServiceendpointDockerregistry = AzuredevopsFunctions.getServiceendpointDockerregistry(GetServiceendpointDockerregistryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointId(\"00000000-0000-0000-0000-000000000000\")\n            .build());\n\n        ctx.export(\"serviceEndpointName\", exampleGetServiceendpointDockerregistry.serviceEndpointName());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetServiceendpointDockerregistry:\n    fn::invoke:\n      function: azuredevops:getServiceendpointDockerregistry\n      arguments:\n        projectId: ${example.id}\n        serviceEndpointId: 00000000-0000-0000-0000-000000000000\noutputs:\n  serviceEndpointName: ${exampleGetServiceendpointDockerregistry.serviceEndpointName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### By Service Endpoint Name\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetServiceendpointDockerregistry = example.then(example =\u003e azuredevops.getServiceendpointDockerregistry({\n    projectId: example.id,\n    serviceEndpointName: \"Example-Service-Endpoint\",\n}));\nexport const serviceEndpointId = serviceendpoint.id;\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_serviceendpoint_dockerregistry = azuredevops.get_serviceendpoint_dockerregistry(project_id=example.id,\n    service_endpoint_name=\"Example-Service-Endpoint\")\npulumi.export(\"serviceEndpointId\", serviceendpoint[\"id\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetServiceendpointDockerregistry = AzureDevOps.GetServiceendpointDockerregistry.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        ServiceEndpointName = \"Example-Service-Endpoint\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = serviceendpoint.Id,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = azuredevops.GetServiceendpointDockerregistry(ctx, \u0026azuredevops.GetServiceendpointDockerregistryArgs{\n\t\t\tProjectId:           example.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example-Service-Endpoint\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", serviceendpoint.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointDockerregistryArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetServiceendpointDockerregistry = AzuredevopsFunctions.getServiceendpointDockerregistry(GetServiceendpointDockerregistryArgs.builder()\n            .projectId(example.id())\n            .serviceEndpointName(\"Example-Service-Endpoint\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", serviceendpoint.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetServiceendpointDockerregistry:\n    fn::invoke:\n      function: azuredevops:getServiceendpointDockerregistry\n      arguments:\n        projectId: ${example.id}\n        serviceEndpointName: Example-Service-Endpoint\noutputs:\n  serviceEndpointId: ${serviceendpoint.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointDockerregistry.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** 1. One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n\u003cbr\u003e2. When supplying \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e, take care to ensure that this is a unique name.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointDockerregistry.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"description":{"description":"The Service Endpoint description.\n","type":"string"},"dockerEmail":{"description":"The email for Docker account user.\n","type":"string"},"dockerPassword":{"description":"The password for the account user identified above.\n","type":"string"},"dockerRegistry":{"description":"The URL of the Docker registry.\n","type":"string"},"dockerUsername":{"description":"The identifier of the Docker account user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"registryType":{"description":"Can be \"DockerHub\" or \"Others\" (Default \"DockerHub\")\n","type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"}},"required":["authorization","description","dockerEmail","dockerPassword","dockerRegistry","dockerUsername","projectId","registryType","serviceEndpointId","serviceEndpointName","id"],"type":"object"}},"azuredevops:index/getServiceendpointGenericV2:getServiceendpointGenericV2":{"description":"Use this data source to access information about an existing Generic Service Endpoint (v2) within Azure DevOps.\n\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointGenericV2.\n","properties":{"id":{"type":"string","description":"The ID of the service endpoint to retrieve. One of \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n"},"name":{"type":"string","description":"The name of the service endpoint to retrieve. One of \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n"},"projectId":{"type":"string","description":"The ID of the project to which the service endpoint belongs.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointGenericV2.\n","properties":{"authorizationParameters":{"additionalProperties":{"type":"string"},"description":"The authorization parameters of the service endpoint.\n","type":"object"},"authorizationScheme":{"description":"The authorization type of the service endpoint.\n","type":"string"},"data":{"additionalProperties":{"type":"string"},"description":"Additional data of the service endpoint.\n","type":"object"},"description":{"description":"The description of the service endpoint.\n","type":"string"},"id":{"description":"The ID of the service endpoint.\n","type":"string"},"name":{"type":"string"},"projectId":{"type":"string"},"serverUrl":{"description":"The URL of the server associated with the service endpoint.\n","type":"string"},"sharedProjectIds":{"description":"The list of project IDs where the service endpoint is shared.\n","items":{"type":"string"},"type":"array"},"type":{"description":"The type of the service endpoint.\n","type":"string"}},"required":["authorizationParameters","authorizationScheme","data","description","id","name","projectId","serverUrl","sharedProjectIds","type"],"type":"object"}},"azuredevops:index/getServiceendpointNpm:getServiceendpointNpm":{"description":"Use this data source to access information about an existing NPM Service Endpoint.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getServiceendpointNpm({\n    projectId: exampleAzuredevopsProject.id,\n    serviceEndpointName: \"Example npm\",\n});\nexport const serviceEndpointId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_serviceendpoint_npm(project_id=example_azuredevops_project[\"id\"],\n    service_endpoint_name=\"Example npm\")\npulumi.export(\"serviceEndpointId\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetServiceendpointNpm.Invoke(new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        ServiceEndpointName = \"Example npm\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = example.Apply(getServiceendpointNpmResult =\u003e getServiceendpointNpmResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetServiceendpointNpm(ctx, \u0026azuredevops.GetServiceendpointNpmArgs{\n\t\t\tProjectId:           exampleAzuredevopsProject.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example npm\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointNpmArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getServiceendpointNpm(GetServiceendpointNpmArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .serviceEndpointName(\"Example npm\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getServiceendpointNpm\n      arguments:\n        projectId: ${exampleAzuredevopsProject.id}\n        serviceEndpointName: Example npm\noutputs:\n  serviceEndpointId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointNpm.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointNpm.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"description":{"description":"The description of the Service Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"},"url":{"description":"The URL of the NPM registry to connect with.\n","type":"string"}},"required":["authorization","description","projectId","serviceEndpointId","serviceEndpointName","url","id"],"type":"object"}},"azuredevops:index/getServiceendpointSonarcloud:getServiceendpointSonarcloud":{"description":"Use this data source to access information about an existing Sonar Cloud Service Endpoint.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getServiceendpointSonarcloud({\n    projectId: exampleAzuredevopsProject.id,\n    serviceEndpointName: \"Example Sonar Cloud\",\n});\nexport const serviceEndpointId = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_serviceendpoint_sonarcloud(project_id=example_azuredevops_project[\"id\"],\n    service_endpoint_name=\"Example Sonar Cloud\")\npulumi.export(\"serviceEndpointId\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetServiceendpointSonarcloud.Invoke(new()\n    {\n        ProjectId = exampleAzuredevopsProject.Id,\n        ServiceEndpointName = \"Example Sonar Cloud\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"serviceEndpointId\"] = example.Apply(getServiceendpointSonarcloudResult =\u003e getServiceendpointSonarcloudResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetServiceendpointSonarcloud(ctx, \u0026azuredevops.GetServiceendpointSonarcloudArgs{\n\t\t\tProjectId:           exampleAzuredevopsProject.Id,\n\t\t\tServiceEndpointName: pulumi.StringRef(\"Example Sonar Cloud\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"serviceEndpointId\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetServiceendpointSonarcloudArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getServiceendpointSonarcloud(GetServiceendpointSonarcloudArgs.builder()\n            .projectId(exampleAzuredevopsProject.id())\n            .serviceEndpointName(\"Example Sonar Cloud\")\n            .build());\n\n        ctx.export(\"serviceEndpointId\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getServiceendpointSonarcloud\n      arguments:\n        projectId: ${exampleAzuredevopsProject.id}\n        serviceEndpointName: Example Sonar Cloud\noutputs:\n  serviceEndpointId: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getServiceendpointSonarcloud.\n","properties":{"projectId":{"type":"string","description":"The ID of the project.\n"},"serviceEndpointId":{"type":"string","description":"the ID of the Service Endpoint.\n"},"serviceEndpointName":{"type":"string","description":"the Name of the Service Endpoint.\n\n\u003e **NOTE:** One of either \u003cspan pulumi-lang-nodejs=\"`serviceEndpointId`\" pulumi-lang-dotnet=\"`ServiceEndpointId`\" pulumi-lang-go=\"`serviceEndpointId`\" pulumi-lang-python=\"`service_endpoint_id`\" pulumi-lang-yaml=\"`serviceEndpointId`\" pulumi-lang-java=\"`serviceEndpointId`\"\u003e`service_endpoint_id`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`serviceEndpointName`\" pulumi-lang-dotnet=\"`ServiceEndpointName`\" pulumi-lang-go=\"`serviceEndpointName`\" pulumi-lang-python=\"`service_endpoint_name`\" pulumi-lang-yaml=\"`serviceEndpointName`\" pulumi-lang-java=\"`serviceEndpointName`\"\u003e`service_endpoint_name`\u003c/span\u003e must be specified.\n"}},"type":"object","required":["projectId"]},"outputs":{"description":"A collection of values returned by getServiceendpointSonarcloud.\n","properties":{"authorization":{"additionalProperties":{"type":"string"},"description":"The Authorization scheme.\n","type":"object"},"description":{"description":"The description of the Service Endpoint.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"type":"string"},"serviceEndpointId":{"type":"string"},"serviceEndpointName":{"type":"string"}},"required":["authorization","description","projectId","serviceEndpointId","serviceEndpointName","id"],"type":"object"}},"azuredevops:index/getStorageKey:getStorageKey":{"description":"Use this data source to access information about an existing Storage Key.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getStorageKey({\n    descriptor: \"aad.000000000000000000000000000000000000\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_storage_key(descriptor=\"aad.000000000000000000000000000000000000\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetStorageKey.Invoke(new()\n    {\n        Descriptor = \"aad.000000000000000000000000000000000000\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getStorageKeyResult =\u003e getStorageKeyResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.GetStorageKey(ctx, \u0026azuredevops.GetStorageKeyArgs{\n\t\t\tDescriptor: \"aad.000000000000000000000000000000000000\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetStorageKeyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getStorageKey(GetStorageKeyArgs.builder()\n            .descriptor(\"aad.000000000000000000000000000000000000\")\n            .build());\n\n        ctx.export(\"id\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getStorageKey\n      arguments:\n        descriptor: aad.000000000000000000000000000000000000\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Storage Key - Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/graph/storage-keys/get?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getStorageKey.\n","properties":{"descriptor":{"type":"string","description":"The descriptor that will be resolved to a storage key.\n"}},"type":"object","required":["descriptor"]},"outputs":{"description":"A collection of values returned by getStorageKey.\n","properties":{"descriptor":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"storageKey":{"description":"The Storage Key of the descriptor.\n","type":"string"}},"required":["descriptor","storageKey","id"],"type":"object"}},"azuredevops:index/getTeam:getTeam":{"description":"Use this data source to access information about an existing Team in a Project within Azure DevOps.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst exampleProject = new azuredevops.Project(\"example\", {\n    name: \"Example Project\",\n    workItemTemplate: \"Agile\",\n    versionControl: \"Git\",\n    visibility: \"private\",\n    description: \"Managed by Pulumi\",\n});\nconst example = azuredevops.getTeamOutput({\n    projectId: exampleProject.id,\n    name: \"Example Project Team\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample_project = azuredevops.Project(\"example\",\n    name=\"Example Project\",\n    work_item_template=\"Agile\",\n    version_control=\"Git\",\n    visibility=\"private\",\n    description=\"Managed by Pulumi\")\nexample = azuredevops.get_team_output(project_id=example_project.id,\n    name=\"Example Project Team\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var exampleProject = new AzureDevOps.Project(\"example\", new()\n    {\n        Name = \"Example Project\",\n        WorkItemTemplate = \"Agile\",\n        VersionControl = \"Git\",\n        Visibility = \"private\",\n        Description = \"Managed by Pulumi\",\n    });\n\n    var example = AzureDevOps.GetTeam.Invoke(new()\n    {\n        ProjectId = exampleProject.Id,\n        Name = \"Example Project Team\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleProject, err := azuredevops.NewProject(ctx, \"example\", \u0026azuredevops.ProjectArgs{\n\t\t\tName:             pulumi.String(\"Example Project\"),\n\t\t\tWorkItemTemplate: pulumi.String(\"Agile\"),\n\t\t\tVersionControl:   pulumi.String(\"Git\"),\n\t\t\tVisibility:       pulumi.String(\"private\"),\n\t\t\tDescription:      pulumi.String(\"Managed by Pulumi\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_ = azuredevops.LookupTeamOutput(ctx, azuredevops.GetTeamOutputArgs{\n\t\t\tProjectId: exampleProject.ID(),\n\t\t\tName:      pulumi.String(\"Example Project Team\"),\n\t\t}, nil)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.Project;\nimport com.pulumi.azuredevops.ProjectArgs;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetTeamArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var exampleProject = new Project(\"exampleProject\", ProjectArgs.builder()\n            .name(\"Example Project\")\n            .workItemTemplate(\"Agile\")\n            .versionControl(\"Git\")\n            .visibility(\"private\")\n            .description(\"Managed by Pulumi\")\n            .build());\n\n        final var example = AzuredevopsFunctions.getTeam(GetTeamArgs.builder()\n            .projectId(exampleProject.id())\n            .name(\"Example Project Team\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  exampleProject:\n    type: azuredevops:Project\n    name: example\n    properties:\n      name: Example Project\n      workItemTemplate: Agile\n      versionControl: Git\n      visibility: private\n      description: Managed by Pulumi\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getTeam\n      arguments:\n        projectId: ${exampleProject.id}\n        name: Example Project Team\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Teams - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/teams/get?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **vso.project**:\tGrants the ability to read projects and teams.\n","inputs":{"description":"A collection of arguments for invoking getTeam.\n","properties":{"name":{"type":"string","description":"The name of the Team.\n"},"projectId":{"type":"string","description":"The Project ID.\n"},"top":{"type":"integer","description":"The maximum number of teams to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e. This property is deprecated and will be removed in the feature\n","deprecationMessage":"This property is deprecated and will be removed in the feature"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getTeam.\n","properties":{"administrators":{"description":"List of subject descriptors for \u003cspan pulumi-lang-nodejs=\"`administrators`\" pulumi-lang-dotnet=\"`Administrators`\" pulumi-lang-go=\"`administrators`\" pulumi-lang-python=\"`administrators`\" pulumi-lang-yaml=\"`administrators`\" pulumi-lang-java=\"`administrators`\"\u003e`administrators`\u003c/span\u003e of the team.\n","items":{"type":"string"},"type":"array"},"description":{"description":"The description of the team.\n","type":"string"},"descriptor":{"description":"The descriptor of the Team.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"members":{"description":"List of subject descriptors for \u003cspan pulumi-lang-nodejs=\"`members`\" pulumi-lang-dotnet=\"`Members`\" pulumi-lang-go=\"`members`\" pulumi-lang-python=\"`members`\" pulumi-lang-yaml=\"`members`\" pulumi-lang-java=\"`members`\"\u003e`members`\u003c/span\u003e of the team.\n","items":{"type":"string"},"type":"array"},"name":{"type":"string"},"projectId":{"type":"string"},"top":{"deprecationMessage":"This property is deprecated and will be removed in the feature","type":"integer"}},"required":["administrators","description","descriptor","members","name","projectId","id"],"type":"object"}},"azuredevops:index/getTeams:getTeams":{"description":"Use this data source to access information about existing Teams in a Project or globally within an Azure DevOps organization\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getTeams({});\nexport const projectId = example.then(example =\u003e example.teams.map(__item =\u003e __item.projectId));\nexport const name = example.then(example =\u003e example.teams.map(__item =\u003e __item.name));\nexport const allAdministrators = example.then(example =\u003e example.teams.map(__item =\u003e __item.administrators));\nexport const administrators = example.then(example =\u003e example.teams.map(__item =\u003e __item.members));\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_teams()\npulumi.export(\"projectId\", [__item.project_id for __item in example.teams])\npulumi.export(\"name\", [__item.name for __item in example.teams])\npulumi.export(\"allAdministrators\", [__item.administrators for __item in example.teams])\npulumi.export(\"administrators\", [__item.members for __item in example.teams])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetTeams.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectId\"] = example.Apply(getTeamsResult =\u003e getTeamsResult.Teams).Select(__item =\u003e __item.ProjectId).ToList(),\n        [\"name\"] = example.Apply(getTeamsResult =\u003e getTeamsResult.Teams).Select(__item =\u003e __item.Name).ToList(),\n        [\"allAdministrators\"] = example.Apply(getTeamsResult =\u003e getTeamsResult.Teams).Select(__item =\u003e __item.Administrators).ToList(),\n        [\"administrators\"] = example.Apply(getTeamsResult =\u003e getTeamsResult.Teams).Select(__item =\u003e __item.Members).ToList(),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\nfunc main() {\npulumi.Run(func(ctx *pulumi.Context) error {\nexample, err := azuredevops.GetTeams(ctx, \u0026azuredevops.GetTeamsArgs{\n}, nil);\nif err != nil {\nreturn err\n}\nctx.Export(\"projectId\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:3,11-37)))\nctx.Export(\"name\", pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:7,11-32)))\nctx.Export(\"allAdministrators\", []interface{}(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:11,11-42)))\nctx.Export(\"administrators\", []interface{}(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:15,11-35)))\nreturn nil\n})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetTeamsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getTeams(GetTeamsArgs.builder()\n            .build());\n\n        ctx.export(\"projectId\", example.teams().stream().map(element -\u003e element.projectId()).collect(toList()));\n        ctx.export(\"name\", example.teams().stream().map(element -\u003e element.name()).collect(toList()));\n        ctx.export(\"allAdministrators\", example.teams().stream().map(element -\u003e element.administrators()).collect(toList()));\n        ctx.export(\"administrators\", example.teams().stream().map(element -\u003e element.members()).collect(toList()));\n    }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Teams - Get](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/teams/get?view=azure-devops-rest-7.0)\n\n## PAT Permissions Required\n\n- **vso.project**:\tGrants the ability to read projects and teams.\n","inputs":{"description":"A collection of arguments for invoking getTeams.\n","properties":{"projectId":{"type":"string","description":"The Project ID. If no project ID all teams of the organization will be returned.\n"},"top":{"type":"integer","description":"The maximum number of teams to return. Defaults to \u003cspan pulumi-lang-nodejs=\"`100`\" pulumi-lang-dotnet=\"`100`\" pulumi-lang-go=\"`100`\" pulumi-lang-python=\"`100`\" pulumi-lang-yaml=\"`100`\" pulumi-lang-java=\"`100`\"\u003e`100`\u003c/span\u003e.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getTeams.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"projectId":{"description":"The ID of the Project.\n","type":"string"},"teams":{"description":"A list of \u003cspan pulumi-lang-nodejs=\"`teams`\" pulumi-lang-dotnet=\"`Teams`\" pulumi-lang-go=\"`teams`\" pulumi-lang-python=\"`teams`\" pulumi-lang-yaml=\"`teams`\" pulumi-lang-java=\"`teams`\"\u003e`teams`\u003c/span\u003e blocks as documented below. A list of existing projects in your Azure DevOps Organization with details about every project which includes:\n","items":{"$ref":"#/types/azuredevops:index/getTeamsTeam:getTeamsTeam"},"type":"array"},"top":{"type":"integer"}},"required":["teams","id"],"type":"object"}},"azuredevops:index/getUser:getUser":{"description":"Use this data source to access information about an existing user within Azure DevOps.\n\n~\u003e**NOTE:** If you only have the Storage Key(UUID) of the user, you can use \u003cspan pulumi-lang-nodejs=\"`azuredevops.getDescriptor`\" pulumi-lang-dotnet=\"`azuredevops.getDescriptor`\" pulumi-lang-go=\"`getDescriptor`\" pulumi-lang-python=\"`get_descriptor`\" pulumi-lang-yaml=\"`azuredevops.getDescriptor`\" pulumi-lang-java=\"`azuredevops.getDescriptor`\"\u003e`azuredevops.getDescriptor`\u003c/span\u003e to resolve the Storage Key(UUID) to a \u003cspan pulumi-lang-nodejs=\"`descriptor`\" pulumi-lang-dotnet=\"`Descriptor`\" pulumi-lang-go=\"`descriptor`\" pulumi-lang-python=\"`descriptor`\" pulumi-lang-yaml=\"`descriptor`\" pulumi-lang-java=\"`descriptor`\"\u003e`descriptor`\u003c/span\u003e.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getUser({\n    descriptor: \"descriptor\",\n});\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_user(descriptor=\"descriptor\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetUser.Invoke(new()\n    {\n        Descriptor = \"descriptor\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := azuredevops.LookupUser(ctx, \u0026azuredevops.LookupUserArgs{\n\t\t\tDescriptor: \"descriptor\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetUserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getUser(GetUserArgs.builder()\n            .descriptor(\"descriptor\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getUser\n      arguments:\n        descriptor: descriptor\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Graph Users API](https://learn.microsoft.com/en-us/rest/api/azure/devops/graph/users/get?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"descriptor":{"type":"string","description":"The descriptor of the user.\n"}},"type":"object","required":["descriptor"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"descriptor":{"type":"string"},"displayName":{"description":"The display name of the User.\n","type":"string"},"domain":{"description":"The domain of the user.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"mailAddress":{"description":"The email address of the user.\n","type":"string"},"origin":{"description":"The type of source provider for the origin identifier (ex:`AD`, `AAD`, `MSA`).\n","type":"string"},"originId":{"description":"The origin ID of the user.\n","type":"string"},"principalName":{"description":"The principal name of the user.\n","type":"string"},"subjectKind":{"description":"The subject kind of the user (ex: `Group`, `Scope`, `User`).\n","type":"string"}},"required":["descriptor","displayName","domain","mailAddress","origin","originId","principalName","subjectKind","id"],"type":"object"}},"azuredevops:index/getUsers:getUsers":{"description":"Use this data source to access information about an existing users within Azure DevOps.\n\n\u003e **NOTE:** This resource will try to get all the users within the organization which may result in poor performance. \u003cspan pulumi-lang-nodejs=\"`azuredevops.getIdentityUsers`\" pulumi-lang-dotnet=\"`azuredevops.getIdentityUsers`\" pulumi-lang-go=\"`getIdentityUsers`\" pulumi-lang-python=\"`get_identity_users`\" pulumi-lang-yaml=\"`azuredevops.getIdentityUsers`\" pulumi-lang-java=\"`azuredevops.getIdentityUsers`\"\u003e`azuredevops.getIdentityUsers`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`azuredevops.getUser`\" pulumi-lang-dotnet=\"`azuredevops.getUser`\" pulumi-lang-go=\"`getUser`\" pulumi-lang-python=\"`get_user`\" pulumi-lang-yaml=\"`azuredevops.getUser`\" pulumi-lang-java=\"`azuredevops.getUser`\"\u003e`azuredevops.getUser`\u003c/span\u003e can be used to replace this resource.\n\n\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"features":{"$ref":"#/types/azuredevops:index/getUsersFeatures:getUsersFeatures","description":"A \u003cspan pulumi-lang-nodejs=\"`features`\" pulumi-lang-dotnet=\"`Features`\" pulumi-lang-go=\"`features`\" pulumi-lang-python=\"`features`\" pulumi-lang-yaml=\"`features`\" pulumi-lang-java=\"`features`\"\u003e`features`\u003c/span\u003e block as defined below.\n"},"origin":{"type":"string","description":"The type of source provider for the \u003cspan pulumi-lang-nodejs=\"`originId`\" pulumi-lang-dotnet=\"`OriginId`\" pulumi-lang-go=\"`originId`\" pulumi-lang-python=\"`origin_id`\" pulumi-lang-yaml=\"`originId`\" pulumi-lang-java=\"`originId`\"\u003e`origin_id`\u003c/span\u003e parameter (ex:AD, AAD, MSA) The supported origins are listed below.\n\u003cpre\u003eList of possible origins\n```hcl\nActiveDirectory          = \"ad\"   # Windows Active Directory\nAzureActiveDirectory     = \"aad\"  # Azure Active Directory\nMicrosoftAccount         = \"msa\"  # Windows Live Account\nVisualStudioTeamServices = \"vsts\" # DevOps\nGitHubDirectory          = \"ghb\"  # GitHub\n```\n\u003c/pre\u003e\n"},"originId":{"type":"string","description":"The unique identifier from the system of origin.\n"},"principalName":{"type":"string","description":"The PrincipalName of this graph member from the source provider.\n"},"subjectTypes":{"type":"array","items":{"type":"string"},"description":"A list of user subject subtypes to reduce the retrieved results, e.g. \u003cspan pulumi-lang-nodejs=\"`msa`\" pulumi-lang-dotnet=\"`Msa`\" pulumi-lang-go=\"`msa`\" pulumi-lang-python=\"`msa`\" pulumi-lang-yaml=\"`msa`\" pulumi-lang-java=\"`msa`\"\u003e`msa`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`aad`\" pulumi-lang-dotnet=\"`Aad`\" pulumi-lang-go=\"`aad`\" pulumi-lang-python=\"`aad`\" pulumi-lang-yaml=\"`aad`\" pulumi-lang-java=\"`aad`\"\u003e`aad`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`svc`\" pulumi-lang-dotnet=\"`Svc`\" pulumi-lang-go=\"`svc`\" pulumi-lang-python=\"`svc`\" pulumi-lang-yaml=\"`svc`\" pulumi-lang-java=\"`svc`\"\u003e`svc`\u003c/span\u003e (service identity), \u003cspan pulumi-lang-nodejs=\"`imp`\" pulumi-lang-dotnet=\"`Imp`\" pulumi-lang-go=\"`imp`\" pulumi-lang-python=\"`imp`\" pulumi-lang-yaml=\"`imp`\" pulumi-lang-java=\"`imp`\"\u003e`imp`\u003c/span\u003e (imported identity), etc. The supported subject types are listed below.\n\u003cpre\u003eList of possible subject types\n```hcl\nAadUser                 = \"aad\" # Azure Active Directory Tenant\nMsaUser                 = \"msa\" # Windows Live\nUnknownUser             = \"unusr\"\nBindPendingUser         = \"bnd\" # Invited user with pending redeem status\nWindowsIdentity         = \"win\" # Windows Active Directory user\nUnauthenticatedIdentity = \"uauth\"\nServiceIdentity         = \"svc\"\nAggregateIdentity       = \"agg\"\nImportedIdentity        = \"imp\"\nServerTestIdentity      = \"tst\"\nGroupScopeType          = \"scp\"\nCspPartnerIdentity      = \"csp\"\nSystemServicePrincipal  = \"s2s\"\nSystemLicense           = \"slic\"\nSystemScope             = \"sscp\"\nSystemCspPartner        = \"scsp\"\nSystemPublicAccess      = \"spa\"\nSystemAccessControl     = \"sace\"\nAcsServiceIdentity      = \"acs\"\nUnknown                 = \"ukn\"\n```\n\u003c/pre\u003e\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"features":{"$ref":"#/types/azuredevops:index/getUsersFeatures:getUsersFeatures"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"origin":{"description":"The type of source provider for the origin identifier (ex:AD, AAD, MSA)\n","type":"string"},"originId":{"description":"The unique identifier from the system of origin. Typically a sid, object id or Guid. Linking and unlinking operations can cause this value to change for a user because the user is not backed by a different provider and has a different unique id in the new provider.\n","type":"string"},"principalName":{"description":"This is the PrincipalName of this graph member from the source provider. The source provider may change this field over time and it is not guaranteed to be immutable for the life of the graph member by VSTS.\n","type":"string"},"subjectTypes":{"items":{"type":"string"},"type":"array"},"users":{"description":"A \u003cspan pulumi-lang-nodejs=\"`users`\" pulumi-lang-dotnet=\"`Users`\" pulumi-lang-go=\"`users`\" pulumi-lang-python=\"`users`\" pulumi-lang-yaml=\"`users`\" pulumi-lang-java=\"`users`\"\u003e`users`\u003c/span\u003e block as defined below. A set of existing users in your Azure DevOps Organization with details about every single user.\n","items":{"$ref":"#/types/azuredevops:index/getUsersUser:getUsersUser"},"type":"array"}},"required":["users","id"],"type":"object"}},"azuredevops:index/getVariableGroup:getVariableGroup":{"description":"Use this data source to access information about existing Variable Groups within Azure DevOps.\n\n\u003e **Note:** Secret values are masked by service and cannot be obtained through API. [Set secret variables](https://docs.microsoft.com/en-us/azure/devops/pipelines/process/variables?view=azure-devops\u0026tabs=yaml%2Cbatch#secret-variables)\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getProject({\n    name: \"Example Project\",\n});\nconst exampleGetVariableGroup = example.then(example =\u003e azuredevops.getVariableGroup({\n    projectId: example.id,\n    name: \"Example Variable Group\",\n}));\nexport const id = exampleGetVariableGroup.then(exampleGetVariableGroup =\u003e exampleGetVariableGroup.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_project(name=\"Example Project\")\nexample_get_variable_group = azuredevops.get_variable_group(project_id=example.id,\n    name=\"Example Variable Group\")\npulumi.export(\"id\", example_get_variable_group.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetProject.Invoke(new()\n    {\n        Name = \"Example Project\",\n    });\n\n    var exampleGetVariableGroup = AzureDevOps.GetVariableGroup.Invoke(new()\n    {\n        ProjectId = example.Apply(getProjectResult =\u003e getProjectResult.Id),\n        Name = \"Example Variable Group\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = exampleGetVariableGroup.Apply(getVariableGroupResult =\u003e getVariableGroupResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupProject(ctx, \u0026azuredevops.LookupProjectArgs{\n\t\t\tName: pulumi.StringRef(\"Example Project\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleGetVariableGroup, err := azuredevops.LookupVariableGroup(ctx, \u0026azuredevops.LookupVariableGroupArgs{\n\t\t\tProjectId: example.Id,\n\t\t\tName:      \"Example Variable Group\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", exampleGetVariableGroup.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetProjectArgs;\nimport com.pulumi.azuredevops.inputs.GetVariableGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getProject(GetProjectArgs.builder()\n            .name(\"Example Project\")\n            .build());\n\n        final var exampleGetVariableGroup = AzuredevopsFunctions.getVariableGroup(GetVariableGroupArgs.builder()\n            .projectId(example.id())\n            .name(\"Example Variable Group\")\n            .build());\n\n        ctx.export(\"id\", exampleGetVariableGroup.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getProject\n      arguments:\n        name: Example Project\n  exampleGetVariableGroup:\n    fn::invoke:\n      function: azuredevops:getVariableGroup\n      arguments:\n        projectId: ${example.id}\n        name: Example Variable Group\noutputs:\n  id: ${exampleGetVariableGroup.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.0 - Variable Groups](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/variablegroups?view=azure-devops-rest-7.0)\n","inputs":{"description":"A collection of arguments for invoking getVariableGroup.\n","properties":{"name":{"type":"string","description":"The name of the Variable Group to retrieve.\n"},"projectId":{"type":"string","description":"The project ID.\n"}},"type":"object","required":["name","projectId"]},"outputs":{"description":"A collection of values returned by getVariableGroup.\n","properties":{"allowAccess":{"description":"Boolean that indicate if this Variable Group is shared by all pipelines of this project.\n","type":"boolean"},"description":{"description":"The description of the Variable Group.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"keyVaults":{"description":"A list of \u003cspan pulumi-lang-nodejs=\"`keyVault`\" pulumi-lang-dotnet=\"`KeyVault`\" pulumi-lang-go=\"`keyVault`\" pulumi-lang-python=\"`key_vault`\" pulumi-lang-yaml=\"`keyVault`\" pulumi-lang-java=\"`keyVault`\"\u003e`key_vault`\u003c/span\u003e blocks as documented below.\n","items":{"$ref":"#/types/azuredevops:index/getVariableGroupKeyVault:getVariableGroupKeyVault"},"type":"array"},"name":{"description":"The name of the Azure key vault to link secrets from as variables.\n","type":"string"},"projectId":{"type":"string"},"variables":{"description":"One or more \u003cspan pulumi-lang-nodejs=\"`variable`\" pulumi-lang-dotnet=\"`Variable`\" pulumi-lang-go=\"`variable`\" pulumi-lang-python=\"`variable`\" pulumi-lang-yaml=\"`variable`\" pulumi-lang-java=\"`variable`\"\u003e`variable`\u003c/span\u003e blocks as documented below.\n","items":{"$ref":"#/types/azuredevops:index/getVariableGroupVariable:getVariableGroupVariable"},"type":"array"}},"required":["allowAccess","description","keyVaults","name","projectId","variables","id"],"type":"object"}},"azuredevops:index/getWorkitemtrackingprocessProcess:getWorkitemtrackingprocessProcess":{"description":"Use this data source to access information about an existing process.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getWorkitemtrackingprocessProcess({\n    id: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n});\nexport const id = example.then(example =\u003e example.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_workitemtrackingprocess_process(id=\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\npulumi.export(\"id\", example.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetWorkitemtrackingprocessProcess.Invoke(new()\n    {\n        Id = \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = example.Apply(getWorkitemtrackingprocessProcessResult =\u003e getWorkitemtrackingprocessProcessResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupWorkitemtrackingprocessProcess(ctx, \u0026azuredevops.LookupWorkitemtrackingprocessProcessArgs{\n\t\t\tId: \"adcc42ab-9882-485e-a3ed-7678f01f66bc\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", example.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetWorkitemtrackingprocessProcessArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getWorkitemtrackingprocessProcess(GetWorkitemtrackingprocessProcessArgs.builder()\n            .id(\"adcc42ab-9882-485e-a3ed-7678f01f66bc\")\n            .build());\n\n        ctx.export(\"id\", example.id());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getWorkitemtrackingprocessProcess\n      arguments:\n        id: adcc42ab-9882-485e-a3ed-7678f01f66bc\noutputs:\n  id: ${example.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Process - Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/processes/get?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getWorkitemtrackingprocessProcess.\n","properties":{"expand":{"type":"string","description":"Specifies the expand option when getting the processes. Default: \"none\"\n"},"id":{"type":"string","description":"The ID of the process.\n"}},"type":"object","required":["id"]},"outputs":{"description":"A collection of values returned by getWorkitemtrackingprocessProcess.\n","properties":{"customizationType":{"description":"Indicates the type of customization on this process. System Process is default process. Inherited Process is modified process that was System process before.\n","type":"string"},"description":{"description":"Description of the project.\n","type":"string"},"expand":{"type":"string"},"id":{"description":"The ID of the project.\n","type":"string"},"isDefault":{"description":"Is the process default?\n","type":"boolean"},"isEnabled":{"description":"Is the process enabled?\n","type":"boolean"},"name":{"description":"Name of the project.\n","type":"string"},"parentProcessTypeId":{"description":"ID of the parent process.\n","type":"string"},"projects":{"description":"A \u003cspan pulumi-lang-nodejs=\"`projects`\" pulumi-lang-dotnet=\"`Projects`\" pulumi-lang-go=\"`projects`\" pulumi-lang-python=\"`projects`\" pulumi-lang-yaml=\"`projects`\" pulumi-lang-java=\"`projects`\"\u003e`projects`\u003c/span\u003e block as defined below. Returns associated projects when using the 'projects' expand option.\n","items":{"$ref":"#/types/azuredevops:index/getWorkitemtrackingprocessProcessProject:getWorkitemtrackingprocessProcessProject"},"type":"array"},"referenceName":{"description":"Reference name of process being created. If not specified, server will assign a unique reference name.\n","type":"string"}},"required":["customizationType","description","id","isDefault","isEnabled","name","parentProcessTypeId","projects","referenceName"],"type":"object"}},"azuredevops:index/getWorkitemtrackingprocessProcesses:getWorkitemtrackingprocessProcesses":{"description":"Use this data source to access information about existing processes.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst all = azuredevops.getWorkitemtrackingprocessProcesses({});\nexport const id = all.then(all =\u003e all.id);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nall = azuredevops.get_workitemtrackingprocess_processes()\npulumi.export(\"id\", all.id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var all = AzureDevOps.GetWorkitemtrackingprocessProcesses.Invoke();\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"id\"] = all.Apply(getWorkitemtrackingprocessProcessesResult =\u003e getWorkitemtrackingprocessProcessesResult.Id),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tall, err := azuredevops.GetWorkitemtrackingprocessProcesses(ctx, \u0026azuredevops.GetWorkitemtrackingprocessProcessesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", all.Id)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetWorkitemtrackingprocessProcessesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var all = AzuredevopsFunctions.getWorkitemtrackingprocessProcesses(GetWorkitemtrackingprocessProcessesArgs.builder()\n            .build());\n\n        ctx.export(\"id\", all.id());\n    }\n}\n```\n```yaml\nvariables:\n  all:\n    fn::invoke:\n      function: azuredevops:getWorkitemtrackingprocessProcesses\n      arguments: {}\noutputs:\n  id: ${all.id}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Processes - List](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/processes/list?view=azure-devops-rest-7.1)\n","inputs":{"description":"A collection of arguments for invoking getWorkitemtrackingprocessProcesses.\n","properties":{"expand":{"type":"string","description":"Specifies the expand option when getting the processes. Default: \"none\"\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getWorkitemtrackingprocessProcesses.\n","properties":{"expand":{"type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"processes":{"description":"A \u003cspan pulumi-lang-nodejs=\"`processes`\" pulumi-lang-dotnet=\"`Processes`\" pulumi-lang-go=\"`processes`\" pulumi-lang-python=\"`processes`\" pulumi-lang-yaml=\"`processes`\" pulumi-lang-java=\"`processes`\"\u003e`processes`\u003c/span\u003e block as defined below. A list of all processes including system and inherited.\n","items":{"$ref":"#/types/azuredevops:index/getWorkitemtrackingprocessProcessesProcess:getWorkitemtrackingprocessProcessesProcess"},"type":"array"}},"required":["processes","id"],"type":"object"}},"azuredevops:index/getWorkitemtrackingprocessWorkitemtype:getWorkitemtrackingprocessWorkitemtype":{"description":"Use this data source to access information about an existing work item type for a process.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst example = azuredevops.getWorkitemtrackingprocessWorkitemtype({\n    processId: \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n    referenceName: \"MyProcess.Example\",\n});\nexport const name = example.then(example =\u003e example.name);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\nexample = azuredevops.get_workitemtrackingprocess_workitemtype(process_id=\"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n    reference_name=\"MyProcess.Example\")\npulumi.export(\"name\", example.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = AzureDevOps.GetWorkitemtrackingprocessWorkitemtype.Invoke(new()\n    {\n        ProcessId = \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n        ReferenceName = \"MyProcess.Example\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"name\"] = example.Apply(getWorkitemtrackingprocessWorkitemtypeResult =\u003e getWorkitemtrackingprocessWorkitemtypeResult.Name),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := azuredevops.LookupWorkitemtrackingprocessWorkitemtype(ctx, \u0026azuredevops.LookupWorkitemtrackingprocessWorkitemtypeArgs{\n\t\t\tProcessId:     \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n\t\t\tReferenceName: \"MyProcess.Example\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"name\", example.Name)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetWorkitemtrackingprocessWorkitemtypeArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var example = AzuredevopsFunctions.getWorkitemtrackingprocessWorkitemtype(GetWorkitemtrackingprocessWorkitemtypeArgs.builder()\n            .processId(\"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\")\n            .referenceName(\"MyProcess.Example\")\n            .build());\n\n        ctx.export(\"name\", example.name());\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: azuredevops:getWorkitemtrackingprocessWorkitemtype\n      arguments:\n        processId: f22ab9cc-acad-47ab-b31d-e43ef8d72b89\n        referenceName: MyProcess.Example\noutputs:\n  name: ${example.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Work Item Types - Get](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/work-item-types/get?view=azure-devops-rest-7.1\u0026tabs=HTTP)\n","inputs":{"description":"A collection of arguments for invoking getWorkitemtrackingprocessWorkitemtype.\n","properties":{"processId":{"type":"string","description":"The ID of the process.\n"},"referenceName":{"type":"string","description":"The reference name of the work item type.\n"}},"type":"object","required":["processId","referenceName"]},"outputs":{"description":"A collection of values returned by getWorkitemtrackingprocessWorkitemtype.\n","properties":{"color":{"description":"Color hexadecimal code to represent the work item type.\n","type":"string"},"customization":{"description":"Indicates the type of customization on this work item type.\n","type":"string"},"description":{"description":"Description of the work item type.\n","type":"string"},"icon":{"description":"Icon to represent the work item type.\n","type":"string"},"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"isEnabled":{"description":"Indicates if the work item type is enabled.\n","type":"boolean"},"name":{"description":"Name of the work item type.\n","type":"string"},"parentWorkItemReferenceName":{"description":"Reference name of the parent work item type.\n","type":"string"},"processId":{"type":"string"},"referenceName":{"type":"string"},"url":{"description":"URL of the work item type.\n","type":"string"}},"required":["color","customization","description","icon","isEnabled","name","parentWorkItemReferenceName","processId","referenceName","url","id"],"type":"object"}},"azuredevops:index/getWorkitemtrackingprocessWorkitemtypes:getWorkitemtrackingprocessWorkitemtypes":{"description":"Use this data source to access information about all work item types in a process.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azuredevops from \"@pulumi/azuredevops\";\n\nconst customProcess = azuredevops.getWorkitemtrackingprocessWorkitemtypes({\n    processId: \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n});\nexport const workItemTypes = customProcess.then(customProcess =\u003e customProcess.workItemTypes);\n```\n```python\nimport pulumi\nimport pulumi_azuredevops as azuredevops\n\ncustom_process = azuredevops.get_workitemtrackingprocess_workitemtypes(process_id=\"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\")\npulumi.export(\"workItemTypes\", custom_process.work_item_types)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing AzureDevOps = Pulumi.AzureDevOps;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var customProcess = AzureDevOps.GetWorkitemtrackingprocessWorkitemtypes.Invoke(new()\n    {\n        ProcessId = \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"workItemTypes\"] = customProcess.Apply(getWorkitemtrackingprocessWorkitemtypesResult =\u003e getWorkitemtrackingprocessWorkitemtypesResult.WorkItemTypes),\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azuredevops/sdk/v3/go/azuredevops\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcustomProcess, err := azuredevops.GetWorkitemtrackingprocessWorkitemtypes(ctx, \u0026azuredevops.GetWorkitemtrackingprocessWorkitemtypesArgs{\n\t\t\tProcessId: \"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"workItemTypes\", customProcess.WorkItemTypes)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azuredevops.AzuredevopsFunctions;\nimport com.pulumi.azuredevops.inputs.GetWorkitemtrackingprocessWorkitemtypesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var customProcess = AzuredevopsFunctions.getWorkitemtrackingprocessWorkitemtypes(GetWorkitemtrackingprocessWorkitemtypesArgs.builder()\n            .processId(\"f22ab9cc-acad-47ab-b31d-e43ef8d72b89\")\n            .build());\n\n        ctx.export(\"workItemTypes\", customProcess.workItemTypes());\n    }\n}\n```\n```yaml\nvariables:\n  customProcess:\n    fn::invoke:\n      function: azuredevops:getWorkitemtrackingprocessWorkitemtypes\n      arguments:\n        processId: f22ab9cc-acad-47ab-b31d-e43ef8d72b89\noutputs:\n  workItemTypes: ${customProcess.workItemTypes}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Relevant Links\n\n- [Azure DevOps Service REST API 7.1 - Work Item Types - List](https://learn.microsoft.com/en-us/rest/api/azure/devops/processes/work-item-types/list?view=azure-devops-rest-7.1\u0026tabs=HTTP)\n","inputs":{"description":"A collection of arguments for invoking getWorkitemtrackingprocessWorkitemtypes.\n","properties":{"processId":{"type":"string","description":"The ID of the process.\n"}},"type":"object","required":["processId"]},"outputs":{"description":"A collection of values returned by getWorkitemtrackingprocessWorkitemtypes.\n","properties":{"id":{"description":"The provider-assigned unique ID for this managed resource.","type":"string"},"processId":{"type":"string"},"workItemTypes":{"description":"A \u003cspan pulumi-lang-nodejs=\"`workItemTypes`\" pulumi-lang-dotnet=\"`WorkItemTypes`\" pulumi-lang-go=\"`workItemTypes`\" pulumi-lang-python=\"`work_item_types`\" pulumi-lang-yaml=\"`workItemTypes`\" pulumi-lang-java=\"`workItemTypes`\"\u003e`work_item_types`\u003c/span\u003e block as defined below. A list of work item types for the process.\n","items":{"$ref":"#/types/azuredevops:index/getWorkitemtrackingprocessWorkitemtypesWorkItemType:getWorkitemtrackingprocessWorkitemtypesWorkItemType"},"type":"array"}},"required":["processId","workItemTypes","id"],"type":"object"}},"pulumi:providers:azuredevops/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"type":"ref","$ref":"#/provider"}},"type":"pulumi:providers:azuredevops/terraformConfig","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}}}}