{"name":"sonarqube","version":"0.16.19","description":"A Pulumi provider dynamically bridged from sonarqube.","attribution":"This Pulumi package is based on the [`sonarqube` Terraform Provider](https://github.com/jdamata/terraform-provider-sonarqube).","repository":"https://github.com/jdamata/terraform-provider-sonarqube","publisher":"jdamata","meta":{"moduleFormat":"(.*)(?:/[^/]*)"},"language":{"csharp":{"compatibility":"tfbridge20","liftSingleValueMethodReturns":true,"respectSchemaVersion":true},"go":{"generateExtraInputTypes":true,"importBasePath":"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube","liftSingleValueMethodReturns":true,"respectSchemaVersion":true,"rootPackageName":"sonarqube"},"java":{"basePackage":"","buildFiles":"","gradleNexusPublishPluginVersion":"","gradleTest":""},"nodejs":{"compatibility":"tfbridge20","disableUnionOutputTypes":true,"liftSingleValueMethodReturns":true,"packageDescription":"A Pulumi provider dynamically bridged from sonarqube.","readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/jdamata/terraform-provider-sonarqube)\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 please consult the source [`terraform-provider-sonarqube` repo](https://github.com/jdamata/terraform-provider-sonarqube/issues).","respectSchemaVersion":true},"python":{"compatibility":"tfbridge20","pyproject":{"enabled":true},"readme":"\u003e This provider is a derived work of the [Terraform Provider](https://github.com/jdamata/terraform-provider-sonarqube)\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 please consult the source [`terraform-provider-sonarqube` repo](https://github.com/jdamata/terraform-provider-sonarqube/issues).","respectSchemaVersion":true}},"config":{"variables":{"anonymizeUserOnDelete":{"type":"boolean","description":"Allows anonymizing users on destroy. Requires Sonarqube version \u003e= 9.7."},"host":{"type":"string"},"httpProxy":{"type":"string"},"installedEdition":{"type":"string"},"installedVersion":{"type":"string"},"pass":{"type":"string","secret":true},"tlsInsecureSkipVerify":{"type":"boolean","description":"Allows ignoring insecure certificates when set to true. Defaults to false. Disabling TLS verification is dangerous and should only be done for local testing."},"token":{"type":"string","secret":true},"user":{"type":"string"}},"defaults":["host"]},"types":{"sonarqube:index/PortfolioSelectedProject:PortfolioSelectedProject":{"properties":{"projectKey":{"type":"string","description":"The project key of the project to add to the portfolio\n"},"selectedBranches":{"type":"array","items":{"type":"string"},"description":"A set of branches for the project to add to the portfolio\n"}},"type":"object","required":["projectKey"]},"sonarqube:index/ProjectSetting:ProjectSetting":{"properties":{"fieldValues":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"Setting field values for the supplied key\n"},"key":{"type":"string","description":"Setting key\n"},"value":{"type":"string","description":"Setting a value for the supplied key\n"},"values":{"type":"array","items":{"type":"string"},"description":"Setting multi values for the supplied key\n"}},"type":"object","required":["key"]},"sonarqube:index/QualitygateCondition:QualitygateCondition":{"properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"metric":{"type":"string","description":"Condition metric.\n"},"op":{"type":"string","description":"Condition operator. Possible values are: LT and GT\n"},"threshold":{"type":"string","description":"Condition error threshold (For ratings: A=1, B=2, C=3, D=4)\n"}},"type":"object","required":["metric","op","threshold"],"language":{"nodejs":{"requiredOutputs":["id","metric","op","threshold"]}}},"sonarqube:index/getGroupMembersMember:getGroupMembersMember":{"properties":{"loginName":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["loginName","name"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getGroupsGroup:getGroupsGroup":{"properties":{"description":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["description","name"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getLanguagesLanguage:getLanguagesLanguage":{"properties":{"key":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["key","name"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getPermissionTemplatesPermissionTemplate:getPermissionTemplatesPermissionTemplate":{"properties":{"description":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"projectKeyPattern":{"type":"string"}},"type":"object","required":["description","id","name","projectKeyPattern"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualitygateCondition:getQualitygateCondition":{"properties":{"id":{"type":"string"},"metric":{"type":"string"},"op":{"type":"string"},"threshold":{"type":"string"}},"type":"object","required":["id","metric","op","threshold"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualitygatesQualityGate:getQualitygatesQualityGate":{"properties":{"conditions":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FgetQualitygatesQualityGateCondition:getQualitygatesQualityGateCondition"}},"copyFrom":{"type":"string"},"id":{"type":"string"},"isDefault":{"type":"boolean"},"name":{"type":"string"}},"type":"object","required":["conditions","copyFrom","id","isDefault","name"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualitygatesQualityGateCondition:getQualitygatesQualityGateCondition":{"properties":{"id":{"type":"string"},"metric":{"type":"string"},"op":{"type":"string"},"threshold":{"type":"string"}},"type":"object","required":["id","metric","op","threshold"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualityprofileActiveRulesRule:getQualityprofileActiveRulesRule":{"properties":{"key":{"type":"string"},"language":{"type":"string"},"name":{"type":"string"},"repo":{"type":"string"},"severity":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["key","language","name","repo","severity","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualityprofileDeactivatedRulesRule:getQualityprofileDeactivatedRulesRule":{"properties":{"key":{"type":"string"},"language":{"type":"string"},"name":{"type":"string"},"repo":{"type":"string"},"severity":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["key","language","name","repo","severity","status","type"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getQualityprofilesQualityProfile:getQualityprofilesQualityProfile":{"properties":{"isDefault":{"type":"boolean"},"key":{"type":"string"},"language":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["isDefault","key","language","name"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getUserTokensUserToken:getUserTokensUserToken":{"properties":{"createdAt":{"type":"string"},"expirationDate":{"type":"string"},"id":{"type":"string"},"name":{"type":"string"},"projectKey":{"type":"string"},"type":{"type":"string"}},"type":"object","required":["createdAt","expirationDate","id","name","projectKey","type"],"language":{"nodejs":{"requiredInputs":[]}}},"sonarqube:index/getUsersUser:getUsersUser":{"properties":{"email":{"type":"string"},"isLocal":{"type":"boolean"},"loginName":{"type":"string"},"name":{"type":"string"}},"type":"object","required":["email","isLocal","loginName","name"],"language":{"nodejs":{"requiredInputs":[]}}}},"provider":{"description":"The provider type for the sonarqube 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":{"host":{"type":"string"},"httpProxy":{"type":"string"},"installedEdition":{"type":"string"},"installedVersion":{"type":"string"},"pass":{"type":"string","secret":true},"token":{"type":"string","secret":true},"user":{"type":"string"}},"type":"object","required":["host"],"inputProperties":{"anonymizeUserOnDelete":{"type":"boolean","description":"Allows anonymizing users on destroy. Requires Sonarqube version \u003e= 9.7."},"host":{"type":"string"},"httpProxy":{"type":"string"},"installedEdition":{"type":"string"},"installedVersion":{"type":"string"},"pass":{"type":"string","secret":true},"tlsInsecureSkipVerify":{"type":"boolean","description":"Allows ignoring insecure certificates when set to true. Defaults to false. Disabling TLS verification is dangerous and should only be done for local testing."},"token":{"type":"string","secret":true},"user":{"type":"string"}},"requiredInputs":["host"],"methods":{"terraformConfig":"pulumi:providers:sonarqube/terraformConfig"}},"resources":{"sonarqube:index/almAzure:AlmAzure":{"description":"Provides a Sonarqube Azure Devops Alm/Devops Platform Integration resource. This can be used to create and manage a Alm/Devops\nPlatform Integration for Azure Devops.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst az1 = new sonarqube.AlmAzure(\"az1\", {\n    key: \"az1\",\n    personalAccessToken: \"my_pat\",\n    url: \"https://dev.azure.com/my-org\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\naz1 = sonarqube.AlmAzure(\"az1\",\n    key=\"az1\",\n    personal_access_token=\"my_pat\",\n    url=\"https://dev.azure.com/my-org\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var az1 = new Sonarqube.AlmAzure(\"az1\", new()\n    {\n        Key = \"az1\",\n        PersonalAccessToken = \"my_pat\",\n        Url = \"https://dev.azure.com/my-org\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewAlmAzure(ctx, \"az1\", \u0026sonarqube.AlmAzureArgs{\n\t\t\tKey:                 pulumi.String(\"az1\"),\n\t\t\tPersonalAccessToken: pulumi.String(\"my_pat\"),\n\t\t\tUrl:                 pulumi.String(\"https://dev.azure.com/my-org\"),\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.sonarqube.AlmAzure;\nimport com.pulumi.sonarqube.AlmAzureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 az1 = new AlmAzure(\"az1\", AlmAzureArgs.builder()\n            .key(\"az1\")\n            .personalAccessToken(\"my_pat\")\n            .url(\"https://dev.azure.com/my-org\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  az1:\n    type: sonarqube:AlmAzure\n    properties:\n      key: az1\n      personalAccessToken: my_pat\n      url: https://dev.azure.com/my-org\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almAzureId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the Azure Devops instance setting\n"},"personalAccessToken":{"type":"string","description":"Azure Devops personal access token\n","secret":true},"url":{"type":"string","description":"Azure API URL\n"}},"type":"object","required":["almAzureId","key","personalAccessToken","url"],"inputProperties":{"almAzureId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the Azure Devops instance setting\n"},"personalAccessToken":{"type":"string","description":"Azure Devops personal access token\n","secret":true},"url":{"type":"string","description":"Azure API URL\n"}},"requiredInputs":["key","personalAccessToken","url"],"stateInputs":{"description":"Input properties used for looking up and filtering AlmAzure resources.\n","properties":{"almAzureId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the Azure Devops instance setting\n"},"personalAccessToken":{"type":"string","description":"Azure Devops personal access token\n","secret":true},"url":{"type":"string","description":"Azure API URL\n"}},"type":"object"}},"sonarqube:index/almGithub:AlmGithub":{"description":"Provides a Sonarqube GitHub Alm/Devops Platform Integration resource. This can be used to create and manage a Alm/Devops\nPlatform Integration for GitHub.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst github_alm = new sonarqube.AlmGithub(\"github-alm\", {\n    appId: \"12345\",\n    clientId: \"56789\",\n    clientSecret: \"secret\",\n    key: \"myalm\",\n    privateKey: \"myprivate_key\",\n    url: \"https://api.github.com\",\n    webhookSecret: \"mysecret\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngithub_alm = sonarqube.AlmGithub(\"github-alm\",\n    app_id=\"12345\",\n    client_id=\"56789\",\n    client_secret=\"secret\",\n    key=\"myalm\",\n    private_key=\"myprivate_key\",\n    url=\"https://api.github.com\",\n    webhook_secret=\"mysecret\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var github_alm = new Sonarqube.AlmGithub(\"github-alm\", new()\n    {\n        AppId = \"12345\",\n        ClientId = \"56789\",\n        ClientSecret = \"secret\",\n        Key = \"myalm\",\n        PrivateKey = \"myprivate_key\",\n        Url = \"https://api.github.com\",\n        WebhookSecret = \"mysecret\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewAlmGithub(ctx, \"github-alm\", \u0026sonarqube.AlmGithubArgs{\n\t\t\tAppId:         pulumi.String(\"12345\"),\n\t\t\tClientId:      pulumi.String(\"56789\"),\n\t\t\tClientSecret:  pulumi.String(\"secret\"),\n\t\t\tKey:           pulumi.String(\"myalm\"),\n\t\t\tPrivateKey:    pulumi.String(\"myprivate_key\"),\n\t\t\tUrl:           pulumi.String(\"https://api.github.com\"),\n\t\t\tWebhookSecret: pulumi.String(\"mysecret\"),\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.sonarqube.AlmGithub;\nimport com.pulumi.sonarqube.AlmGithubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 github_alm = new AlmGithub(\"github-alm\", AlmGithubArgs.builder()\n            .appId(\"12345\")\n            .clientId(\"56789\")\n            .clientSecret(\"secret\")\n            .key(\"myalm\")\n            .privateKey(\"myprivate_key\")\n            .url(\"https://api.github.com\")\n            .webhookSecret(\"mysecret\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  github-alm:\n    type: sonarqube:AlmGithub\n    properties:\n      appId: '12345'\n      clientId: '56789'\n      clientSecret: secret\n      key: myalm\n      privateKey: myprivate_key\n      url: https://api.github.com\n      webhookSecret: mysecret\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almGithubId":{"type":"string","description":"The ID of this resource.\n"},"appId":{"type":"string","description":"GitHub App ID. Maximum length: 80\n"},"clientId":{"type":"string","description":"GitHub App Client ID. Maximum length: 80\n"},"clientSecret":{"type":"string","description":"GitHub App Client Secret. Maximum length: 160\n"},"key":{"type":"string","description":"Unique key of the GitHUb instance setting. Maximum length: 200\n"},"privateKey":{"type":"string","description":"GitHub App private key. Maximum length: 2500\n"},"url":{"type":"string","description":"GitHub API URL. Maximum length: 2000\n"},"webhookSecret":{"type":"string","description":"GitHub App Webhook Secret. Maximum length: 160\n"}},"type":"object","required":["almGithubId","appId","clientId","clientSecret","key","privateKey","url"],"inputProperties":{"almGithubId":{"type":"string","description":"The ID of this resource.\n"},"appId":{"type":"string","description":"GitHub App ID. Maximum length: 80\n"},"clientId":{"type":"string","description":"GitHub App Client ID. Maximum length: 80\n"},"clientSecret":{"type":"string","description":"GitHub App Client Secret. Maximum length: 160\n"},"key":{"type":"string","description":"Unique key of the GitHUb instance setting. Maximum length: 200\n"},"privateKey":{"type":"string","description":"GitHub App private key. Maximum length: 2500\n"},"url":{"type":"string","description":"GitHub API URL. Maximum length: 2000\n"},"webhookSecret":{"type":"string","description":"GitHub App Webhook Secret. Maximum length: 160\n"}},"requiredInputs":["appId","clientId","clientSecret","key","privateKey","url"],"stateInputs":{"description":"Input properties used for looking up and filtering AlmGithub resources.\n","properties":{"almGithubId":{"type":"string","description":"The ID of this resource.\n"},"appId":{"type":"string","description":"GitHub App ID. Maximum length: 80\n"},"clientId":{"type":"string","description":"GitHub App Client ID. Maximum length: 80\n"},"clientSecret":{"type":"string","description":"GitHub App Client Secret. Maximum length: 160\n"},"key":{"type":"string","description":"Unique key of the GitHUb instance setting. Maximum length: 200\n"},"privateKey":{"type":"string","description":"GitHub App private key. Maximum length: 2500\n"},"url":{"type":"string","description":"GitHub API URL. Maximum length: 2000\n"},"webhookSecret":{"type":"string","description":"GitHub App Webhook Secret. Maximum length: 160\n"}},"type":"object"}},"sonarqube:index/almGitlab:AlmGitlab":{"description":"Provides a Sonarqube GitLab Alm/Devops Platform Integration resource. This can be used to create and manage a Alm/Devops\nPlatform Integration for GitLab.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst gitlab_alm = new sonarqube.AlmGitlab(\"gitlab-alm\", {\n    key: \"myalm\",\n    personalAccessToken: \"my_personal_access_token\",\n    url: \"https://gitlab.com/api/v4\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngitlab_alm = sonarqube.AlmGitlab(\"gitlab-alm\",\n    key=\"myalm\",\n    personal_access_token=\"my_personal_access_token\",\n    url=\"https://gitlab.com/api/v4\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gitlab_alm = new Sonarqube.AlmGitlab(\"gitlab-alm\", new()\n    {\n        Key = \"myalm\",\n        PersonalAccessToken = \"my_personal_access_token\",\n        Url = \"https://gitlab.com/api/v4\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewAlmGitlab(ctx, \"gitlab-alm\", \u0026sonarqube.AlmGitlabArgs{\n\t\t\tKey:                 pulumi.String(\"myalm\"),\n\t\t\tPersonalAccessToken: pulumi.String(\"my_personal_access_token\"),\n\t\t\tUrl:                 pulumi.String(\"https://gitlab.com/api/v4\"),\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.sonarqube.AlmGitlab;\nimport com.pulumi.sonarqube.AlmGitlabArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 gitlab_alm = new AlmGitlab(\"gitlab-alm\", AlmGitlabArgs.builder()\n            .key(\"myalm\")\n            .personalAccessToken(\"my_personal_access_token\")\n            .url(\"https://gitlab.com/api/v4\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gitlab-alm:\n    type: sonarqube:AlmGitlab\n    properties:\n      key: myalm\n      personalAccessToken: my_personal_access_token\n      url: https://gitlab.com/api/v4\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almGitlabId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the GitLab instance setting. Maximum length: 200\n"},"personalAccessToken":{"type":"string","description":"GitLab App personal access token with the \u003cspan pulumi-lang-nodejs=\"`readApi`\" pulumi-lang-dotnet=\"`ReadApi`\" pulumi-lang-go=\"`readApi`\" pulumi-lang-python=\"`read_api`\" pulumi-lang-yaml=\"`readApi`\" pulumi-lang-java=\"`readApi`\"\u003e`read_api`\u003c/span\u003e scope. See [this doc](https://docs.sonarqube.org/latest/devops-platform-integration/gitlab-integration/#importing-your-gitlab-projects-into-sonarqube) for more information. Maximum length: 2000\n","secret":true},"url":{"type":"string","description":"GitLab API URL. Maximum length: 2000\n"}},"type":"object","required":["almGitlabId","key","personalAccessToken","url"],"inputProperties":{"almGitlabId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the GitLab instance setting. Maximum length: 200\n"},"personalAccessToken":{"type":"string","description":"GitLab App personal access token with the \u003cspan pulumi-lang-nodejs=\"`readApi`\" pulumi-lang-dotnet=\"`ReadApi`\" pulumi-lang-go=\"`readApi`\" pulumi-lang-python=\"`read_api`\" pulumi-lang-yaml=\"`readApi`\" pulumi-lang-java=\"`readApi`\"\u003e`read_api`\u003c/span\u003e scope. See [this doc](https://docs.sonarqube.org/latest/devops-platform-integration/gitlab-integration/#importing-your-gitlab-projects-into-sonarqube) for more information. Maximum length: 2000\n","secret":true},"url":{"type":"string","description":"GitLab API URL. Maximum length: 2000\n"}},"requiredInputs":["key","personalAccessToken","url"],"stateInputs":{"description":"Input properties used for looking up and filtering AlmGitlab resources.\n","properties":{"almGitlabId":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the GitLab instance setting. Maximum length: 200\n"},"personalAccessToken":{"type":"string","description":"GitLab App personal access token with the \u003cspan pulumi-lang-nodejs=\"`readApi`\" pulumi-lang-dotnet=\"`ReadApi`\" pulumi-lang-go=\"`readApi`\" pulumi-lang-python=\"`read_api`\" pulumi-lang-yaml=\"`readApi`\" pulumi-lang-java=\"`readApi`\"\u003e`read_api`\u003c/span\u003e scope. See [this doc](https://docs.sonarqube.org/latest/devops-platform-integration/gitlab-integration/#importing-your-gitlab-projects-into-sonarqube) for more information. Maximum length: 2000\n","secret":true},"url":{"type":"string","description":"GitLab API URL. Maximum length: 2000\n"}},"type":"object"}},"sonarqube:index/azureBinding:AzureBinding":{"description":"Provides a Sonarqube Azure Devops binding resource. This can be used to create and manage the binding between an\nAzure Devops repository and a SonarQube project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst az1 = new sonarqube.AlmAzure(\"az1\", {\n    key: \"az1\",\n    personalAccessToken: \"my_pat\",\n    url: \"https://dev.azure.com/my-org\",\n});\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"main\",\n    visibility: \"public\",\n});\nconst mainAzureBinding = new sonarqube.AzureBinding(\"main\", {\n    almSetting: az1.key,\n    project: main.project,\n    projectName: \"my_azure_project\",\n    repositoryName: \"my_repo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\naz1 = sonarqube.AlmAzure(\"az1\",\n    key=\"az1\",\n    personal_access_token=\"my_pat\",\n    url=\"https://dev.azure.com/my-org\")\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"main\",\n    visibility=\"public\")\nmain_azure_binding = sonarqube.AzureBinding(\"main\",\n    alm_setting=az1.key,\n    project=main.project,\n    project_name=\"my_azure_project\",\n    repository_name=\"my_repo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var az1 = new Sonarqube.AlmAzure(\"az1\", new()\n    {\n        Key = \"az1\",\n        PersonalAccessToken = \"my_pat\",\n        Url = \"https://dev.azure.com/my-org\",\n    });\n\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"main\",\n        Visibility = \"public\",\n    });\n\n    var mainAzureBinding = new Sonarqube.AzureBinding(\"main\", new()\n    {\n        AlmSetting = az1.Key,\n        Project = main.Project,\n        ProjectName = \"my_azure_project\",\n        RepositoryName = \"my_repo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\taz1, err := sonarqube.NewAlmAzure(ctx, \"az1\", \u0026sonarqube.AlmAzureArgs{\n\t\t\tKey:                 pulumi.String(\"az1\"),\n\t\t\tPersonalAccessToken: pulumi.String(\"my_pat\"),\n\t\t\tUrl:                 pulumi.String(\"https://dev.azure.com/my-org\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmain, err := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"main\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewAzureBinding(ctx, \"main\", \u0026sonarqube.AzureBindingArgs{\n\t\t\tAlmSetting:     az1.Key,\n\t\t\tProject:        main.Project,\n\t\t\tProjectName:    pulumi.String(\"my_azure_project\"),\n\t\t\tRepositoryName: pulumi.String(\"my_repo\"),\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.sonarqube.AlmAzure;\nimport com.pulumi.sonarqube.AlmAzureArgs;\nimport com.pulumi.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.AzureBinding;\nimport com.pulumi.sonarqube.AzureBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 az1 = new AlmAzure(\"az1\", AlmAzureArgs.builder()\n            .key(\"az1\")\n            .personalAccessToken(\"my_pat\")\n            .url(\"https://dev.azure.com/my-org\")\n            .build());\n\n        var main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"main\")\n            .visibility(\"public\")\n            .build());\n\n        var mainAzureBinding = new AzureBinding(\"mainAzureBinding\", AzureBindingArgs.builder()\n            .almSetting(az1.key())\n            .project(main.project())\n            .projectName(\"my_azure_project\")\n            .repositoryName(\"my_repo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  az1:\n    type: sonarqube:AlmAzure\n    properties:\n      key: az1\n      personalAccessToken: my_pat\n      url: https://dev.azure.com/my-org\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: main\n      visibility: public\n  mainAzureBinding:\n    type: sonarqube:AzureBinding\n    name: main\n    properties:\n      almSetting: ${az1.key}\n      project: ${main.project}\n      projectName: my_azure_project\n      repositoryName: my_repo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almSetting":{"type":"string","description":"Azure DevOps setting key\n"},"azureBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"boolean","description":"Is this project part of a monorepo\n"},"project":{"type":"string","description":"SonarQube project key\n"},"projectName":{"type":"string","description":"Azure project name\n"},"repositoryName":{"type":"string","description":"Azure repository name\n"}},"type":"object","required":["almSetting","azureBindingId","project","projectName","repositoryName"],"inputProperties":{"almSetting":{"type":"string","description":"Azure DevOps setting key\n"},"azureBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"boolean","description":"Is this project part of a monorepo\n"},"project":{"type":"string","description":"SonarQube project key\n"},"projectName":{"type":"string","description":"Azure project name\n"},"repositoryName":{"type":"string","description":"Azure repository name\n"}},"requiredInputs":["almSetting","project","projectName","repositoryName"],"stateInputs":{"description":"Input properties used for looking up and filtering AzureBinding resources.\n","properties":{"almSetting":{"type":"string","description":"Azure DevOps setting key\n"},"azureBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"boolean","description":"Is this project part of a monorepo\n"},"project":{"type":"string","description":"SonarQube project key\n"},"projectName":{"type":"string","description":"Azure project name\n"},"repositoryName":{"type":"string","description":"Azure repository name\n"}},"type":"object"}},"sonarqube:index/githubBinding:GithubBinding":{"description":"Provides a Sonarqube GitHub binding resource. This can be used to create and manage the binding between a\nGitHub repository and a SonarQube project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst github_alm = new sonarqube.AlmGithub(\"github-alm\", {\n    appId: \"12345\",\n    clientId: \"56789\",\n    clientSecret: \"secret\",\n    key: \"myalm\",\n    privateKey: \"myprivate_key\",\n    url: \"https://api.github.com\",\n    webhookSecret: \"mysecret\",\n});\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst github_binding = new sonarqube.GithubBinding(\"github-binding\", {\n    almSetting: github_alm.key,\n    project: \"my_project\",\n    repository: \"myorg/myrepo\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngithub_alm = sonarqube.AlmGithub(\"github-alm\",\n    app_id=\"12345\",\n    client_id=\"56789\",\n    client_secret=\"secret\",\n    key=\"myalm\",\n    private_key=\"myprivate_key\",\n    url=\"https://api.github.com\",\n    webhook_secret=\"mysecret\")\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\ngithub_binding = sonarqube.GithubBinding(\"github-binding\",\n    alm_setting=github_alm.key,\n    project=\"my_project\",\n    repository=\"myorg/myrepo\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var github_alm = new Sonarqube.AlmGithub(\"github-alm\", new()\n    {\n        AppId = \"12345\",\n        ClientId = \"56789\",\n        ClientSecret = \"secret\",\n        Key = \"myalm\",\n        PrivateKey = \"myprivate_key\",\n        Url = \"https://api.github.com\",\n        WebhookSecret = \"mysecret\",\n    });\n\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var github_binding = new Sonarqube.GithubBinding(\"github-binding\", new()\n    {\n        AlmSetting = github_alm.Key,\n        Project = \"my_project\",\n        Repository = \"myorg/myrepo\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgithub_alm, err := sonarqube.NewAlmGithub(ctx, \"github-alm\", \u0026sonarqube.AlmGithubArgs{\n\t\t\tAppId:         pulumi.String(\"12345\"),\n\t\t\tClientId:      pulumi.String(\"56789\"),\n\t\t\tClientSecret:  pulumi.String(\"secret\"),\n\t\t\tKey:           pulumi.String(\"myalm\"),\n\t\t\tPrivateKey:    pulumi.String(\"myprivate_key\"),\n\t\t\tUrl:           pulumi.String(\"https://api.github.com\"),\n\t\t\tWebhookSecret: pulumi.String(\"mysecret\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewGithubBinding(ctx, \"github-binding\", \u0026sonarqube.GithubBindingArgs{\n\t\t\tAlmSetting: github_alm.Key,\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tRepository: pulumi.String(\"myorg/myrepo\"),\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.sonarqube.AlmGithub;\nimport com.pulumi.sonarqube.AlmGithubArgs;\nimport com.pulumi.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.GithubBinding;\nimport com.pulumi.sonarqube.GithubBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 github_alm = new AlmGithub(\"github-alm\", AlmGithubArgs.builder()\n            .appId(\"12345\")\n            .clientId(\"56789\")\n            .clientSecret(\"secret\")\n            .key(\"myalm\")\n            .privateKey(\"myprivate_key\")\n            .url(\"https://api.github.com\")\n            .webhookSecret(\"mysecret\")\n            .build());\n\n        var main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var github_binding = new GithubBinding(\"github-binding\", GithubBindingArgs.builder()\n            .almSetting(github_alm.key())\n            .project(\"my_project\")\n            .repository(\"myorg/myrepo\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  github-alm:\n    type: sonarqube:AlmGithub\n    properties:\n      appId: '12345'\n      clientId: '56789'\n      clientSecret: secret\n      key: myalm\n      privateKey: myprivate_key\n      url: https://api.github.com\n      webhookSecret: mysecret\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n  github-binding:\n    type: sonarqube:GithubBinding\n    properties:\n      almSetting: ${[\"github-alm\"].key}\n      project: my_project\n      repository: myorg/myrepo\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almSetting":{"type":"string","description":"GitHub ALM setting key\n"},"githubBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"Project key\n"},"repository":{"type":"string","description":"The full name of your GitHub repository, including the organization, case-sensitive. Maximum length: 256\n"},"summaryCommentEnabled":{"type":"string","description":"Enable/disable summary in PR discussion tab. Default value: true\n"}},"type":"object","required":["almSetting","githubBindingId","project","repository"],"inputProperties":{"almSetting":{"type":"string","description":"GitHub ALM setting key\n"},"githubBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"Project key\n"},"repository":{"type":"string","description":"The full name of your GitHub repository, including the organization, case-sensitive. Maximum length: 256\n"},"summaryCommentEnabled":{"type":"string","description":"Enable/disable summary in PR discussion tab. Default value: true\n"}},"requiredInputs":["almSetting","project","repository"],"stateInputs":{"description":"Input properties used for looking up and filtering GithubBinding resources.\n","properties":{"almSetting":{"type":"string","description":"GitHub ALM setting key\n"},"githubBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"Project key\n"},"repository":{"type":"string","description":"The full name of your GitHub repository, including the organization, case-sensitive. Maximum length: 256\n"},"summaryCommentEnabled":{"type":"string","description":"Enable/disable summary in PR discussion tab. Default value: true\n"}},"type":"object"}},"sonarqube:index/gitlabBinding:GitlabBinding":{"description":"Provides a Sonarqube GitLab binding resource. This can be used to create and manage the binding between a\nGitLab repository and a SonarQube project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst gitlab_alm = new sonarqube.AlmGitlab(\"gitlab-alm\", {\n    key: \"myalm\",\n    personalAccessToken: \"my_personal_access_token\",\n    url: \"https://gitlab.com/api/v4\",\n});\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst gitlab_binding = new sonarqube.GitlabBinding(\"gitlab-binding\", {\n    almSetting: gitlab_alm.key,\n    project: \"my_project\",\n    repository: \"123\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngitlab_alm = sonarqube.AlmGitlab(\"gitlab-alm\",\n    key=\"myalm\",\n    personal_access_token=\"my_personal_access_token\",\n    url=\"https://gitlab.com/api/v4\")\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\ngitlab_binding = sonarqube.GitlabBinding(\"gitlab-binding\",\n    alm_setting=gitlab_alm.key,\n    project=\"my_project\",\n    repository=\"123\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var gitlab_alm = new Sonarqube.AlmGitlab(\"gitlab-alm\", new()\n    {\n        Key = \"myalm\",\n        PersonalAccessToken = \"my_personal_access_token\",\n        Url = \"https://gitlab.com/api/v4\",\n    });\n\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var gitlab_binding = new Sonarqube.GitlabBinding(\"gitlab-binding\", new()\n    {\n        AlmSetting = gitlab_alm.Key,\n        Project = \"my_project\",\n        Repository = \"123\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tgitlab_alm, err := sonarqube.NewAlmGitlab(ctx, \"gitlab-alm\", \u0026sonarqube.AlmGitlabArgs{\n\t\t\tKey:                 pulumi.String(\"myalm\"),\n\t\t\tPersonalAccessToken: pulumi.String(\"my_personal_access_token\"),\n\t\t\tUrl:                 pulumi.String(\"https://gitlab.com/api/v4\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewGitlabBinding(ctx, \"gitlab-binding\", \u0026sonarqube.GitlabBindingArgs{\n\t\t\tAlmSetting: gitlab_alm.Key,\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tRepository: pulumi.String(\"123\"),\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.sonarqube.AlmGitlab;\nimport com.pulumi.sonarqube.AlmGitlabArgs;\nimport com.pulumi.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.GitlabBinding;\nimport com.pulumi.sonarqube.GitlabBindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 gitlab_alm = new AlmGitlab(\"gitlab-alm\", AlmGitlabArgs.builder()\n            .key(\"myalm\")\n            .personalAccessToken(\"my_personal_access_token\")\n            .url(\"https://gitlab.com/api/v4\")\n            .build());\n\n        var main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var gitlab_binding = new GitlabBinding(\"gitlab-binding\", GitlabBindingArgs.builder()\n            .almSetting(gitlab_alm.key())\n            .project(\"my_project\")\n            .repository(\"123\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  gitlab-alm:\n    type: sonarqube:AlmGitlab\n    properties:\n      key: myalm\n      personalAccessToken: my_personal_access_token\n      url: https://gitlab.com/api/v4\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n  gitlab-binding:\n    type: sonarqube:GitlabBinding\n    properties:\n      almSetting: ${[\"gitlab-alm\"].key}\n      project: my_project\n      repository: '123'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"almSetting":{"type":"string","description":"GitLab ALM setting key\n"},"gitlabBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"SonarQube project key. Changing this will force a new resource to be created\n"},"repository":{"type":"string","description":"The GitLab project ID\n"}},"type":"object","required":["almSetting","gitlabBindingId","project","repository"],"inputProperties":{"almSetting":{"type":"string","description":"GitLab ALM setting key\n"},"gitlabBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"SonarQube project key. Changing this will force a new resource to be created\n"},"repository":{"type":"string","description":"The GitLab project ID\n"}},"requiredInputs":["almSetting","project","repository"],"stateInputs":{"description":"Input properties used for looking up and filtering GitlabBinding resources.\n","properties":{"almSetting":{"type":"string","description":"GitLab ALM setting key\n"},"gitlabBindingId":{"type":"string","description":"The ID of this resource.\n"},"monorepo":{"type":"string","description":"Is this project part of a monorepo. Default value: false\n"},"project":{"type":"string","description":"SonarQube project key. Changing this will force a new resource to be created\n"},"repository":{"type":"string","description":"The GitLab project ID\n"}},"type":"object"}},"sonarqube:index/group:Group":{"description":"Provides a Sonarqube Group resource. This can be used to create and manage Sonarqube Groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst projectUsers = new sonarqube.Group(\"project_users\", {\n    name: \"Project-Users\",\n    description: \"This is a group\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nproject_users = sonarqube.Group(\"project_users\",\n    name=\"Project-Users\",\n    description=\"This is a group\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var projectUsers = new Sonarqube.Group(\"project_users\", new()\n    {\n        Name = \"Project-Users\",\n        Description = \"This is a group\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewGroup(ctx, \"project_users\", \u0026sonarqube.GroupArgs{\n\t\t\tName:        pulumi.String(\"Project-Users\"),\n\t\t\tDescription: pulumi.String(\"This is a 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.sonarqube.Group;\nimport com.pulumi.sonarqube.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 projectUsers = new Group(\"projectUsers\", GroupArgs.builder()\n            .name(\"Project-Users\")\n            .description(\"This is a group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  projectUsers:\n    type: sonarqube:Group\n    name: project_users\n    properties:\n      name: Project-Users\n      description: This is a group\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"description":{"type":"string","description":"Description of the Group.\n"},"groupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the Group to create. Changing this forces a new resource to be created.\n"}},"type":"object","required":["groupId","name"],"inputProperties":{"description":{"type":"string","description":"Description of the Group.\n"},"groupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the Group to create. Changing this forces a new resource to be created.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Group resources.\n","properties":{"description":{"type":"string","description":"Description of the Group.\n"},"groupId":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the Group to create. Changing this forces a new resource to be created.\n"}},"type":"object"}},"sonarqube:index/groupMember:GroupMember":{"description":"Provides a Sonarqube Group Member resource. This can be used to add or remove user to or from Sonarqube Groups.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst user = new sonarqube.User(\"user\", {\n    loginName: \"terraform-test\",\n    name: \"terraform-test\",\n    password: \"secret-sauce37!\",\n});\nconst projectUsers = new sonarqube.Group(\"project_users\", {\n    name: \"Project-Users\",\n    description: \"This is a group\",\n});\nconst projectUsersMember = new sonarqube.GroupMember(\"project_users_member\", {\n    name: projectUsers.name,\n    loginName: user.loginName,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nuser = sonarqube.User(\"user\",\n    login_name=\"terraform-test\",\n    name=\"terraform-test\",\n    password=\"secret-sauce37!\")\nproject_users = sonarqube.Group(\"project_users\",\n    name=\"Project-Users\",\n    description=\"This is a group\")\nproject_users_member = sonarqube.GroupMember(\"project_users_member\",\n    name=project_users.name,\n    login_name=user.login_name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Name = \"terraform-test\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var projectUsers = new Sonarqube.Group(\"project_users\", new()\n    {\n        Name = \"Project-Users\",\n        Description = \"This is a group\",\n    });\n\n    var projectUsersMember = new Sonarqube.GroupMember(\"project_users_member\", new()\n    {\n        Name = projectUsers.Name,\n        LoginName = user.LoginName,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := sonarqube.NewUser(ctx, \"user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\n\t\t\tName:      pulumi.String(\"terraform-test\"),\n\t\t\tPassword:  pulumi.String(\"secret-sauce37!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tprojectUsers, err := sonarqube.NewGroup(ctx, \"project_users\", \u0026sonarqube.GroupArgs{\n\t\t\tName:        pulumi.String(\"Project-Users\"),\n\t\t\tDescription: pulumi.String(\"This is a group\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewGroupMember(ctx, \"project_users_member\", \u0026sonarqube.GroupMemberArgs{\n\t\t\tName:      projectUsers.Name,\n\t\t\tLoginName: user.LoginName,\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.sonarqube.User;\nimport com.pulumi.sonarqube.UserArgs;\nimport com.pulumi.sonarqube.Group;\nimport com.pulumi.sonarqube.GroupArgs;\nimport com.pulumi.sonarqube.GroupMember;\nimport com.pulumi.sonarqube.GroupMemberArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 user = new User(\"user\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .name(\"terraform-test\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n        var projectUsers = new Group(\"projectUsers\", GroupArgs.builder()\n            .name(\"Project-Users\")\n            .description(\"This is a group\")\n            .build());\n\n        var projectUsersMember = new GroupMember(\"projectUsersMember\", GroupMemberArgs.builder()\n            .name(projectUsers.name())\n            .loginName(user.loginName())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: sonarqube:User\n    properties:\n      loginName: terraform-test\n      name: terraform-test\n      password: secret-sauce37!\n  projectUsers:\n    type: sonarqube:Group\n    name: project_users\n    properties:\n      name: Project-Users\n      description: This is a group\n  projectUsersMember:\n    type: sonarqube:GroupMember\n    name: project_users_member\n    properties:\n      name: ${projectUsers.name}\n      loginName: ${user.loginName}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"groupMemberId":{"type":"string","description":"The ID of this resource.\n"},"loginName":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e of the User to add as a member. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Group to add a member to. Changing this forces a new resource to be created.\n"}},"type":"object","required":["groupMemberId","loginName","name"],"inputProperties":{"groupMemberId":{"type":"string","description":"The ID of this resource.\n"},"loginName":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e of the User to add as a member. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Group to add a member to. Changing this forces a new resource to be created.\n"}},"requiredInputs":["loginName"],"stateInputs":{"description":"Input properties used for looking up and filtering GroupMember resources.\n","properties":{"groupMemberId":{"type":"string","description":"The ID of this resource.\n"},"loginName":{"type":"string","description":"The \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e of the User to add as a member. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Group to add a member to. Changing this forces a new resource to be created.\n"}},"type":"object"}},"sonarqube:index/newCodePeriods:NewCodePeriods":{"description":"Provides a Sonarqube New Code Periods resource. This can be used to manage Sonarqube New Code Periods.\n\n## Example Usage\n\n### Example: Set the global new code period to a number of days\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst codePeriod = new sonarqube.NewCodePeriods(\"code_period\", {\n    type: \"NUMBER_OF_DAYS\",\n    value: \"7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ncode_period = sonarqube.NewCodePeriods(\"code_period\",\n    type=\"NUMBER_OF_DAYS\",\n    value=\"7\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var codePeriod = new Sonarqube.NewCodePeriods(\"code_period\", new()\n    {\n        Type = \"NUMBER_OF_DAYS\",\n        Value = \"7\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewNewCodePeriods(ctx, \"code_period\", \u0026sonarqube.NewCodePeriodsArgs{\n\t\t\tType:  pulumi.String(\"NUMBER_OF_DAYS\"),\n\t\t\tValue: pulumi.String(\"7\"),\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.sonarqube.NewCodePeriods;\nimport com.pulumi.sonarqube.NewCodePeriodsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 codePeriod = new NewCodePeriods(\"codePeriod\", NewCodePeriodsArgs.builder()\n            .type(\"NUMBER_OF_DAYS\")\n            .value(\"7\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  codePeriod:\n    type: sonarqube:NewCodePeriods\n    name: code_period\n    properties:\n      type: NUMBER_OF_DAYS\n      value: '7'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a project and set its new code period to a reference branch\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst reference = new sonarqube.Project(\"reference\", {name: \"my-project\"});\nconst referenceNewCodePeriods = new sonarqube.NewCodePeriods(\"reference\", {\n    project: reference.project,\n    type: \"REFERENCE_BRANCH\",\n    value: \"main\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nreference = sonarqube.Project(\"reference\", name=\"my-project\")\nreference_new_code_periods = sonarqube.NewCodePeriods(\"reference\",\n    project=reference.project,\n    type=\"REFERENCE_BRANCH\",\n    value=\"main\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var reference = new Sonarqube.Project(\"reference\", new()\n    {\n        Name = \"my-project\",\n    });\n\n    var referenceNewCodePeriods = new Sonarqube.NewCodePeriods(\"reference\", new()\n    {\n        Project = reference.Project,\n        Type = \"REFERENCE_BRANCH\",\n        Value = \"main\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treference, err := sonarqube.NewProject(ctx, \"reference\", \u0026sonarqube.ProjectArgs{\n\t\t\tName: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewNewCodePeriods(ctx, \"reference\", \u0026sonarqube.NewCodePeriodsArgs{\n\t\t\tProject: reference.Project,\n\t\t\tType:    pulumi.String(\"REFERENCE_BRANCH\"),\n\t\t\tValue:   pulumi.String(\"main\"),\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.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.NewCodePeriods;\nimport com.pulumi.sonarqube.NewCodePeriodsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 reference = new Project(\"reference\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .build());\n\n        var referenceNewCodePeriods = new NewCodePeriods(\"referenceNewCodePeriods\", NewCodePeriodsArgs.builder()\n            .project(reference.project())\n            .type(\"REFERENCE_BRANCH\")\n            .value(\"main\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  reference:\n    type: sonarqube:Project\n    properties:\n      name: my-project\n  referenceNewCodePeriods:\n    type: sonarqube:NewCodePeriods\n    name: reference\n    properties:\n      project: ${reference.project}\n      type: REFERENCE_BRANCH\n      value: main\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: set a branch-specific new code period\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    name: \"my-project\",\n    project: \"my-project\",\n});\nconst mainBranch = new sonarqube.NewCodePeriods(\"main_branch\", {\n    project: main.project,\n    branch: \"main\",\n    type: \"PREVIOUS_VERSION\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    name=\"my-project\",\n    project=\"my-project\")\nmain_branch = sonarqube.NewCodePeriods(\"main_branch\",\n    project=main.project,\n    branch=\"main\",\n    type=\"PREVIOUS_VERSION\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"my-project\",\n        Project = \"my-project\",\n    });\n\n    var mainBranch = new Sonarqube.NewCodePeriods(\"main_branch\", new()\n    {\n        Project = main.Project,\n        Branch = \"main\",\n        Type = \"PREVIOUS_VERSION\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:    pulumi.String(\"my-project\"),\n\t\t\tProject: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewNewCodePeriods(ctx, \"main_branch\", \u0026sonarqube.NewCodePeriodsArgs{\n\t\t\tProject: main.Project,\n\t\t\tBranch:  pulumi.String(\"main\"),\n\t\t\tType:    pulumi.String(\"PREVIOUS_VERSION\"),\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.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.NewCodePeriods;\nimport com.pulumi.sonarqube.NewCodePeriodsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"my-project\")\n            .project(\"my-project\")\n            .build());\n\n        var mainBranch = new NewCodePeriods(\"mainBranch\", NewCodePeriodsArgs.builder()\n            .project(main.project())\n            .branch(\"main\")\n            .type(\"PREVIOUS_VERSION\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      name: my-project\n      project: my-project\n  mainBranch:\n    type: sonarqube:NewCodePeriods\n    name: main_branch\n    properties:\n      project: ${main.project}\n      branch: main\n      type: PREVIOUS_VERSION\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nterraform\n\nImport global new code period\n\n```sh\n$ pulumi import sonarqube:index/newCodePeriods:NewCodePeriods example newCodePeriod\n```\n\nImport project-specific new code period\n\n```sh\n$ pulumi import sonarqube:index/newCodePeriods:NewCodePeriods example newCodePeriod/my-project-key\n```\n\nImport branch-specific new code period\n\n```sh\n$ pulumi import sonarqube:index/newCodePeriods:NewCodePeriods example newCodePeriod/my-project-key/my-branch-name\n```\n\n","properties":{"branch":{"type":"string","description":"The name of a branch of a project for which the new code period will be configured. Changing this will force a new resource to be created. Setting this also requires setting the 'project' argument.\n"},"newCodePeriodsId":{"type":"string","description":"The ID of this resource.\n"},"project":{"type":"string","description":"The key of a project for which the new code period will be configured. Changing this will force a new resource to be created.\n"},"type":{"type":"string","description":"The kind of new code period to use. Supported values are SPECIFIC*ANALYSIS, PREVIOUS*VERSION, NUMBER*OF*DAYS, or REFERENCE_BRANCH.\n"},"value":{"type":"string","description":"The desired value of the new code period. Varies based on the 'type'. For SPECIFIC*ANALYIS, the value must be the UUID of a previous analysis. For NUMBER*OF*DAYS it must be a numeric string. For REFERENCE*BRANCH it should be the name of branch on the project. For PREVIOUS_VERSION it must **not** be set.\n"}},"type":"object","required":["newCodePeriodsId","type"],"inputProperties":{"branch":{"type":"string","description":"The name of a branch of a project for which the new code period will be configured. Changing this will force a new resource to be created. Setting this also requires setting the 'project' argument.\n"},"newCodePeriodsId":{"type":"string","description":"The ID of this resource.\n"},"project":{"type":"string","description":"The key of a project for which the new code period will be configured. Changing this will force a new resource to be created.\n"},"type":{"type":"string","description":"The kind of new code period to use. Supported values are SPECIFIC*ANALYSIS, PREVIOUS*VERSION, NUMBER*OF*DAYS, or REFERENCE_BRANCH.\n"},"value":{"type":"string","description":"The desired value of the new code period. Varies based on the 'type'. For SPECIFIC*ANALYIS, the value must be the UUID of a previous analysis. For NUMBER*OF*DAYS it must be a numeric string. For REFERENCE*BRANCH it should be the name of branch on the project. For PREVIOUS_VERSION it must **not** be set.\n"}},"requiredInputs":["type"],"stateInputs":{"description":"Input properties used for looking up and filtering NewCodePeriods resources.\n","properties":{"branch":{"type":"string","description":"The name of a branch of a project for which the new code period will be configured. Changing this will force a new resource to be created. Setting this also requires setting the 'project' argument.\n"},"newCodePeriodsId":{"type":"string","description":"The ID of this resource.\n"},"project":{"type":"string","description":"The key of a project for which the new code period will be configured. Changing this will force a new resource to be created.\n"},"type":{"type":"string","description":"The kind of new code period to use. Supported values are SPECIFIC*ANALYSIS, PREVIOUS*VERSION, NUMBER*OF*DAYS, or REFERENCE_BRANCH.\n"},"value":{"type":"string","description":"The desired value of the new code period. Varies based on the 'type'. For SPECIFIC*ANALYIS, the value must be the UUID of a previous analysis. For NUMBER*OF*DAYS it must be a numeric string. For REFERENCE*BRANCH it should be the name of branch on the project. For PREVIOUS_VERSION it must **not** be set.\n"}},"type":"object"}},"sonarqube:index/permissionTemplate:PermissionTemplate":{"description":"Provides a Sonarqube Permission template resource. This can be used to create and manage Sonarqube Permission\ntemplates.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst template = new sonarqube.PermissionTemplate(\"template\", {\n    name: \"Internal-Projects\",\n    description: \"These are internal projects\",\n    projectKeyPattern: \"internal.*\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ntemplate = sonarqube.PermissionTemplate(\"template\",\n    name=\"Internal-Projects\",\n    description=\"These are internal projects\",\n    project_key_pattern=\"internal.*\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var template = new Sonarqube.PermissionTemplate(\"template\", new()\n    {\n        Name = \"Internal-Projects\",\n        Description = \"These are internal projects\",\n        ProjectKeyPattern = \"internal.*\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPermissionTemplate(ctx, \"template\", \u0026sonarqube.PermissionTemplateArgs{\n\t\t\tName:              pulumi.String(\"Internal-Projects\"),\n\t\t\tDescription:       pulumi.String(\"These are internal projects\"),\n\t\t\tProjectKeyPattern: pulumi.String(\"internal.*\"),\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.sonarqube.PermissionTemplate;\nimport com.pulumi.sonarqube.PermissionTemplateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 template = new PermissionTemplate(\"template\", PermissionTemplateArgs.builder()\n            .name(\"Internal-Projects\")\n            .description(\"These are internal projects\")\n            .projectKeyPattern(\"internal.*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  template:\n    type: sonarqube:PermissionTemplate\n    properties:\n      name: Internal-Projects\n      description: These are internal projects\n      projectKeyPattern: internal.*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"default":{"type":"boolean","description":"Set the template as the default. This can only be set for one template.\n"},"description":{"type":"string","description":"Description of the Template.\n"},"name":{"type":"string","description":"The name of the Permission template to create. Do not use names with `/`. If needed, use `replace(var.permission_template_name, \"/\", \"_\")`. Changing this forces a new resource to be created.\n"},"permissionTemplateId":{"type":"string","description":"The ID of this resource.\n"},"projectKeyPattern":{"type":"string","description":"The project key pattern. Must be a valid Java regular expression.\n"}},"type":"object","required":["name","permissionTemplateId"],"inputProperties":{"default":{"type":"boolean","description":"Set the template as the default. This can only be set for one template.\n"},"description":{"type":"string","description":"Description of the Template.\n"},"name":{"type":"string","description":"The name of the Permission template to create. Do not use names with `/`. If needed, use `replace(var.permission_template_name, \"/\", \"_\")`. Changing this forces a new resource to be created.\n"},"permissionTemplateId":{"type":"string","description":"The ID of this resource.\n"},"projectKeyPattern":{"type":"string","description":"The project key pattern. Must be a valid Java regular expression.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering PermissionTemplate resources.\n","properties":{"default":{"type":"boolean","description":"Set the template as the default. This can only be set for one template.\n"},"description":{"type":"string","description":"Description of the Template.\n"},"name":{"type":"string","description":"The name of the Permission template to create. Do not use names with `/`. If needed, use `replace(var.permission_template_name, \"/\", \"_\")`. Changing this forces a new resource to be created.\n"},"permissionTemplateId":{"type":"string","description":"The ID of this resource.\n"},"projectKeyPattern":{"type":"string","description":"The project key pattern. Must be a valid Java regular expression.\n"}},"type":"object"}},"sonarqube:index/permissions:Permissions":{"description":"Provides a Sonarqube Permissions resource. This resource can be used to manage global and project permissions. It supports importing using the format 'principal(:scope)' where principal is\u003cspan pulumi-lang-nodejs=\" loginName \" pulumi-lang-dotnet=\" LoginName \" pulumi-lang-go=\" loginName \" pulumi-lang-python=\" login_name \" pulumi-lang-yaml=\" loginName \" pulumi-lang-java=\" loginName \"\u003e login_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" groupName \" pulumi-lang-dotnet=\" GroupName \" pulumi-lang-go=\" groupName \" pulumi-lang-python=\" group_name \" pulumi-lang-yaml=\" groupName \" pulumi-lang-java=\" groupName \"\u003e group_name \u003c/span\u003eor\u003cspan pulumi-lang-nodejs=\" specialGroupName \" pulumi-lang-dotnet=\" SpecialGroupName \" pulumi-lang-go=\" specialGroupName \" pulumi-lang-python=\" special_group_name \" pulumi-lang-yaml=\" specialGroupName \" pulumi-lang-java=\" specialGroupName \"\u003e special_group_name \u003c/span\u003eand the optional scope is\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003e(p_),\u003cspan pulumi-lang-nodejs=\" templateId \" pulumi-lang-dotnet=\" TemplateId \" pulumi-lang-go=\" templateId \" pulumi-lang-python=\" template_id \" pulumi-lang-yaml=\" templateId \" pulumi-lang-java=\" templateId \"\u003e template_id \u003c/span\u003e(t_) or\u003cspan pulumi-lang-nodejs=\" templateName \" pulumi-lang-dotnet=\" TemplateName \" pulumi-lang-go=\" templateName \" pulumi-lang-python=\" template_name \" pulumi-lang-yaml=\" templateName \" pulumi-lang-java=\" templateName \"\u003e template_name \u003c/span\u003e(tn_) with prefixes. Example: group1:tn_test_template_name\n\n## Example Usage\n\n### Example: Set global admin permissions for a group called \"my-admins\"\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst myGlobalAdmins = new sonarqube.Permissions(\"my_global_admins\", {\n    groupName: \"my-admins\",\n    permissions: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmy_global_admins = sonarqube.Permissions(\"my_global_admins\",\n    group_name=\"my-admins\",\n    permissions=[\"admin\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myGlobalAdmins = new Sonarqube.Permissions(\"my_global_admins\", new()\n    {\n        GroupName = \"my-admins\",\n        Permissions = new[]\n        {\n            \"admin\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPermissions(ctx, \"my_global_admins\", \u0026sonarqube.PermissionsArgs{\n\t\t\tGroupName: pulumi.String(\"my-admins\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\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.sonarqube.Permissions;\nimport com.pulumi.sonarqube.PermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myGlobalAdmins = new Permissions(\"myGlobalAdmins\", PermissionsArgs.builder()\n            .groupName(\"my-admins\")\n            .permissions(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myGlobalAdmins:\n    type: sonarqube:Permissions\n    name: my_global_admins\n    properties:\n      groupName: my-admins\n      permissions:\n        - admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: Set project admin permissions for a group called \"my-project-admins\"\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst myProjectAdmins = new sonarqube.Permissions(\"my_project_admins\", {\n    groupName: \"my-project-admins\",\n    projectKey: \"my-project\",\n    permissions: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmy_project_admins = sonarqube.Permissions(\"my_project_admins\",\n    group_name=\"my-project-admins\",\n    project_key=\"my-project\",\n    permissions=[\"admin\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myProjectAdmins = new Sonarqube.Permissions(\"my_project_admins\", new()\n    {\n        GroupName = \"my-project-admins\",\n        ProjectKey = \"my-project\",\n        Permissions = new[]\n        {\n            \"admin\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPermissions(ctx, \"my_project_admins\", \u0026sonarqube.PermissionsArgs{\n\t\t\tGroupName:  pulumi.String(\"my-project-admins\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\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.sonarqube.Permissions;\nimport com.pulumi.sonarqube.PermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 myProjectAdmins = new Permissions(\"myProjectAdmins\", PermissionsArgs.builder()\n            .groupName(\"my-project-admins\")\n            .projectKey(\"my-project\")\n            .permissions(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myProjectAdmins:\n    type: sonarqube:Permissions\n    name: my_project_admins\n    properties:\n      groupName: my-project-admins\n      projectKey: my-project\n      permissions:\n        - admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: Set project admin permissions for a group called \"my-project-admins on a permission template\"\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst internalAdmins = new sonarqube.Permissions(\"internal_admins\", {\n    groupName: \"my-internal-admins\",\n    templateId: template.id,\n    permissions: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ninternal_admins = sonarqube.Permissions(\"internal_admins\",\n    group_name=\"my-internal-admins\",\n    template_id=template[\"id\"],\n    permissions=[\"admin\"])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var internalAdmins = new Sonarqube.Permissions(\"internal_admins\", new()\n    {\n        GroupName = \"my-internal-admins\",\n        TemplateId = template.Id,\n        Permissions = new[]\n        {\n            \"admin\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPermissions(ctx, \"internal_admins\", \u0026sonarqube.PermissionsArgs{\n\t\t\tGroupName:  pulumi.String(\"my-internal-admins\"),\n\t\t\tTemplateId: pulumi.Any(template.Id),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\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.sonarqube.Permissions;\nimport com.pulumi.sonarqube.PermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 internalAdmins = new Permissions(\"internalAdmins\", PermissionsArgs.builder()\n            .groupName(\"my-internal-admins\")\n            .templateId(template.id())\n            .permissions(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  internalAdmins:\n    type: sonarqube:Permissions\n    name: internal_admins\n    properties:\n      groupName: my-internal-admins\n      templateId: ${template.id}\n      permissions:\n        - admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: Set codeviewer \u0026 user permissions on project level for a user called \"johndoe\"\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst johnProjectRead = new sonarqube.Permissions(\"john_project_read\", {\n    loginName: \"johndoe\",\n    projectKey: \"my-project\",\n    permissions: [\n        \"codeviewer\",\n        \"user\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\njohn_project_read = sonarqube.Permissions(\"john_project_read\",\n    login_name=\"johndoe\",\n    project_key=\"my-project\",\n    permissions=[\n        \"codeviewer\",\n        \"user\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var johnProjectRead = new Sonarqube.Permissions(\"john_project_read\", new()\n    {\n        LoginName = \"johndoe\",\n        ProjectKey = \"my-project\",\n        Permissions = new[]\n        {\n            \"codeviewer\",\n            \"user\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPermissions(ctx, \"john_project_read\", \u0026sonarqube.PermissionsArgs{\n\t\t\tLoginName:  pulumi.String(\"johndoe\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"codeviewer\"),\n\t\t\t\tpulumi.String(\"user\"),\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.sonarqube.Permissions;\nimport com.pulumi.sonarqube.PermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 johnProjectRead = new Permissions(\"johnProjectRead\", PermissionsArgs.builder()\n            .loginName(\"johndoe\")\n            .projectKey(\"my-project\")\n            .permissions(            \n                \"codeviewer\",\n                \"user\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  johnProjectRead:\n    type: sonarqube:Permissions\n    name: john_project_read\n    properties:\n      loginName: johndoe\n      projectKey: my-project\n      permissions:\n        - codeviewer\n        - user\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"groupName":{"type":"string","description":"The name of the Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"loginName":{"type":"string","description":"The name of the user that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"A list of permissions that should be applied. Possible values are: \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`codeviewer`\" pulumi-lang-dotnet=\"`Codeviewer`\" pulumi-lang-go=\"`codeviewer`\" pulumi-lang-python=\"`codeviewer`\" pulumi-lang-yaml=\"`codeviewer`\" pulumi-lang-java=\"`codeviewer`\"\u003e`codeviewer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`issueadmin`\" pulumi-lang-dotnet=\"`Issueadmin`\" pulumi-lang-go=\"`issueadmin`\" pulumi-lang-python=\"`issueadmin`\" pulumi-lang-yaml=\"`issueadmin`\" pulumi-lang-java=\"`issueadmin`\"\u003e`issueadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securityhotspotadmin`\" pulumi-lang-dotnet=\"`Securityhotspotadmin`\" pulumi-lang-go=\"`securityhotspotadmin`\" pulumi-lang-python=\"`securityhotspotadmin`\" pulumi-lang-yaml=\"`securityhotspotadmin`\" pulumi-lang-java=\"`securityhotspotadmin`\"\u003e`securityhotspotadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scan`\" pulumi-lang-dotnet=\"`Scan`\" pulumi-lang-go=\"`scan`\" pulumi-lang-python=\"`scan`\" pulumi-lang-yaml=\"`scan`\" pulumi-lang-java=\"`scan`\"\u003e`scan`\u003c/span\u003e, \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.\n"},"permissionsId":{"type":"string","description":"The ID of this resource.\n"},"projectKey":{"type":"string","description":"Specify if you want to apply project level permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"specialGroupName":{"type":"string","description":"The name of the Special Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e.\n"},"templateId":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"templateName":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e.\n"}},"type":"object","required":["permissions","permissionsId"],"inputProperties":{"groupName":{"type":"string","description":"The name of the Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"loginName":{"type":"string","description":"The name of the user that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"A list of permissions that should be applied. Possible values are: \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`codeviewer`\" pulumi-lang-dotnet=\"`Codeviewer`\" pulumi-lang-go=\"`codeviewer`\" pulumi-lang-python=\"`codeviewer`\" pulumi-lang-yaml=\"`codeviewer`\" pulumi-lang-java=\"`codeviewer`\"\u003e`codeviewer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`issueadmin`\" pulumi-lang-dotnet=\"`Issueadmin`\" pulumi-lang-go=\"`issueadmin`\" pulumi-lang-python=\"`issueadmin`\" pulumi-lang-yaml=\"`issueadmin`\" pulumi-lang-java=\"`issueadmin`\"\u003e`issueadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securityhotspotadmin`\" pulumi-lang-dotnet=\"`Securityhotspotadmin`\" pulumi-lang-go=\"`securityhotspotadmin`\" pulumi-lang-python=\"`securityhotspotadmin`\" pulumi-lang-yaml=\"`securityhotspotadmin`\" pulumi-lang-java=\"`securityhotspotadmin`\"\u003e`securityhotspotadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scan`\" pulumi-lang-dotnet=\"`Scan`\" pulumi-lang-go=\"`scan`\" pulumi-lang-python=\"`scan`\" pulumi-lang-yaml=\"`scan`\" pulumi-lang-java=\"`scan`\"\u003e`scan`\u003c/span\u003e, \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.\n"},"permissionsId":{"type":"string","description":"The ID of this resource.\n"},"projectKey":{"type":"string","description":"Specify if you want to apply project level permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"specialGroupName":{"type":"string","description":"The name of the Special Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e.\n"},"templateId":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"templateName":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e.\n"}},"requiredInputs":["permissions"],"stateInputs":{"description":"Input properties used for looking up and filtering Permissions resources.\n","properties":{"groupName":{"type":"string","description":"The name of the Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"loginName":{"type":"string","description":"The name of the user that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e.\n"},"permissions":{"type":"array","items":{"type":"string"},"description":"A list of permissions that should be applied. Possible values are: \u003cspan pulumi-lang-nodejs=\"`admin`\" pulumi-lang-dotnet=\"`Admin`\" pulumi-lang-go=\"`admin`\" pulumi-lang-python=\"`admin`\" pulumi-lang-yaml=\"`admin`\" pulumi-lang-java=\"`admin`\"\u003e`admin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`codeviewer`\" pulumi-lang-dotnet=\"`Codeviewer`\" pulumi-lang-go=\"`codeviewer`\" pulumi-lang-python=\"`codeviewer`\" pulumi-lang-yaml=\"`codeviewer`\" pulumi-lang-java=\"`codeviewer`\"\u003e`codeviewer`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`issueadmin`\" pulumi-lang-dotnet=\"`Issueadmin`\" pulumi-lang-go=\"`issueadmin`\" pulumi-lang-python=\"`issueadmin`\" pulumi-lang-yaml=\"`issueadmin`\" pulumi-lang-java=\"`issueadmin`\"\u003e`issueadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`securityhotspotadmin`\" pulumi-lang-dotnet=\"`Securityhotspotadmin`\" pulumi-lang-go=\"`securityhotspotadmin`\" pulumi-lang-python=\"`securityhotspotadmin`\" pulumi-lang-yaml=\"`securityhotspotadmin`\" pulumi-lang-java=\"`securityhotspotadmin`\"\u003e`securityhotspotadmin`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`scan`\" pulumi-lang-dotnet=\"`Scan`\" pulumi-lang-go=\"`scan`\" pulumi-lang-python=\"`scan`\" pulumi-lang-yaml=\"`scan`\" pulumi-lang-java=\"`scan`\"\u003e`scan`\u003c/span\u003e, \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.\n"},"permissionsId":{"type":"string","description":"The ID of this resource.\n"},"projectKey":{"type":"string","description":"Specify if you want to apply project level permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`specialGroupName`\" pulumi-lang-dotnet=\"`SpecialGroupName`\" pulumi-lang-go=\"`specialGroupName`\" pulumi-lang-python=\"`special_group_name`\" pulumi-lang-yaml=\"`specialGroupName`\" pulumi-lang-java=\"`specialGroupName`\"\u003e`special_group_name`\u003c/span\u003e, \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"specialGroupName":{"type":"string","description":"The name of the Special Group that should get the specified permissions. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e.\n"},"templateId":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateName`\" pulumi-lang-dotnet=\"`TemplateName`\" pulumi-lang-go=\"`templateName`\" pulumi-lang-python=\"`template_name`\" pulumi-lang-yaml=\"`templateName`\" pulumi-lang-java=\"`templateName`\"\u003e`template_name`\u003c/span\u003e.\n"},"templateName":{"type":"string","description":"Specify if you want to apply the permissions to a permission template. Changing this forces a new resource to be created. Cannot be used with \u003cspan pulumi-lang-nodejs=\"`projectKey`\" pulumi-lang-dotnet=\"`ProjectKey`\" pulumi-lang-go=\"`projectKey`\" pulumi-lang-python=\"`project_key`\" pulumi-lang-yaml=\"`projectKey`\" pulumi-lang-java=\"`projectKey`\"\u003e`project_key`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`templateId`\" pulumi-lang-dotnet=\"`TemplateId`\" pulumi-lang-go=\"`templateId`\" pulumi-lang-python=\"`template_id`\" pulumi-lang-yaml=\"`templateId`\" pulumi-lang-java=\"`templateId`\"\u003e`template_id`\u003c/span\u003e.\n"}},"type":"object"}},"sonarqube:index/plugin:Plugin":{"description":"Provides a Sonarqube Plugin resource. This can be used to create and manage Sonarqube Plugins.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Plugin(\"main\", {key: \"cloudformation\"});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Plugin(\"main\", key=\"cloudformation\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Plugin(\"main\", new()\n    {\n        Key = \"cloudformation\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPlugin(ctx, \"main\", \u0026sonarqube.PluginArgs{\n\t\t\tKey: pulumi.String(\"cloudformation\"),\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.sonarqube.Plugin;\nimport com.pulumi.sonarqube.PluginArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Plugin(\"main\", PluginArgs.builder()\n            .key(\"cloudformation\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Plugin\n    properties:\n      key: cloudformation\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"key":{"type":"string","description":"The key identifying the plugin to uninstall.\n"},"pluginId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["key","pluginId"],"inputProperties":{"key":{"type":"string","description":"The key identifying the plugin to uninstall.\n"},"pluginId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering Plugin resources.\n","properties":{"key":{"type":"string","description":"The key identifying the plugin to uninstall.\n"},"pluginId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/portfolio:Portfolio":{"description":"Provides a Sonarqube Portfolio resource. This can be used to create and manage Sonarqube Portfolio. Note that the SonarQube API for Portfolios is called `\u003cspan pulumi-lang-nodejs=\"`views`\" pulumi-lang-dotnet=\"`Views`\" pulumi-lang-go=\"`views`\" pulumi-lang-python=\"`views`\" pulumi-lang-yaml=\"`views`\" pulumi-lang-java=\"`views`\"\u003e`views`\u003c/span\u003e`\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Portfolio(\"main\", {\n    key: \"portfolio-key\",\n    name: \"portfolio-name\",\n    description: \"portfolio-description\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Portfolio(\"main\",\n    key=\"portfolio-key\",\n    name=\"portfolio-name\",\n    description=\"portfolio-description\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Portfolio(\"main\", new()\n    {\n        Key = \"portfolio-key\",\n        Name = \"portfolio-name\",\n        Description = \"portfolio-description\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewPortfolio(ctx, \"main\", \u0026sonarqube.PortfolioArgs{\n\t\t\tKey:         pulumi.String(\"portfolio-key\"),\n\t\t\tName:        pulumi.String(\"portfolio-name\"),\n\t\t\tDescription: pulumi.String(\"portfolio-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.sonarqube.Portfolio;\nimport com.pulumi.sonarqube.PortfolioArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Portfolio(\"main\", PortfolioArgs.builder()\n            .key(\"portfolio-key\")\n            .name(\"portfolio-name\")\n            .description(\"portfolio-description\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Portfolio\n    properties:\n      key: portfolio-key\n      name: portfolio-name\n      description: portfolio-description\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"branch":{"type":"string","description":"Which branch to analyze. If nothing, or '' is specified, the main branch is used.\n"},"description":{"type":"string","description":"A description of the Portfolio to create\n"},"key":{"type":"string","description":"The key of the Portfolio to create\n"},"name":{"type":"string","description":"The name of the Portfolio to create\n"},"portfolioId":{"type":"string","description":"The ID of this resource.\n"},"qualifier":{"type":"string"},"regexp":{"type":"string","description":"A regular expression that is used to match Projects with a matching name OR key. If they match, they are added to the Portfolio\n"},"selectedProjects":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FPortfolioSelectedProject:PortfolioSelectedProject"},"description":"A set of projects to add to the portfolio.\n"},"selectionMode":{"type":"string","description":"How to populate the Portfolio to create. Possible values are `NONE`, `MANUAL`, `TAGS`, `REGEXP` or `REST`. [See docs](https://docs.sonarqube.org/9.8/project-administration/managing-portfolios/#populating-portfolios) for how Portfolio population works\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of Project tags to populate the Portfolio from. Only active when \u003cspan pulumi-lang-nodejs=\"`selectionMode`\" pulumi-lang-dotnet=\"`SelectionMode`\" pulumi-lang-go=\"`selectionMode`\" pulumi-lang-python=\"`selection_mode`\" pulumi-lang-yaml=\"`selectionMode`\" pulumi-lang-java=\"`selectionMode`\"\u003e`selection_mode`\u003c/span\u003e is `TAGS`\n"},"visibility":{"type":"string","description":"Whether the created portfolio should be visible to everyone, or only specific user/groups. If no visibility is specified, the default portfolio visibility will be \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.\n"}},"type":"object","required":["description","key","name","portfolioId","qualifier"],"inputProperties":{"branch":{"type":"string","description":"Which branch to analyze. If nothing, or '' is specified, the main branch is used.\n"},"description":{"type":"string","description":"A description of the Portfolio to create\n"},"key":{"type":"string","description":"The key of the Portfolio to create\n"},"name":{"type":"string","description":"The name of the Portfolio to create\n"},"portfolioId":{"type":"string","description":"The ID of this resource.\n"},"regexp":{"type":"string","description":"A regular expression that is used to match Projects with a matching name OR key. If they match, they are added to the Portfolio\n"},"selectedProjects":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FPortfolioSelectedProject:PortfolioSelectedProject"},"description":"A set of projects to add to the portfolio.\n"},"selectionMode":{"type":"string","description":"How to populate the Portfolio to create. Possible values are `NONE`, `MANUAL`, `TAGS`, `REGEXP` or `REST`. [See docs](https://docs.sonarqube.org/9.8/project-administration/managing-portfolios/#populating-portfolios) for how Portfolio population works\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of Project tags to populate the Portfolio from. Only active when \u003cspan pulumi-lang-nodejs=\"`selectionMode`\" pulumi-lang-dotnet=\"`SelectionMode`\" pulumi-lang-go=\"`selectionMode`\" pulumi-lang-python=\"`selection_mode`\" pulumi-lang-yaml=\"`selectionMode`\" pulumi-lang-java=\"`selectionMode`\"\u003e`selection_mode`\u003c/span\u003e is `TAGS`\n"},"visibility":{"type":"string","description":"Whether the created portfolio should be visible to everyone, or only specific user/groups. If no visibility is specified, the default portfolio visibility will be \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.\n"}},"requiredInputs":["description","key"],"stateInputs":{"description":"Input properties used for looking up and filtering Portfolio resources.\n","properties":{"branch":{"type":"string","description":"Which branch to analyze. If nothing, or '' is specified, the main branch is used.\n"},"description":{"type":"string","description":"A description of the Portfolio to create\n"},"key":{"type":"string","description":"The key of the Portfolio to create\n"},"name":{"type":"string","description":"The name of the Portfolio to create\n"},"portfolioId":{"type":"string","description":"The ID of this resource.\n"},"qualifier":{"type":"string"},"regexp":{"type":"string","description":"A regular expression that is used to match Projects with a matching name OR key. If they match, they are added to the Portfolio\n"},"selectedProjects":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FPortfolioSelectedProject:PortfolioSelectedProject"},"description":"A set of projects to add to the portfolio.\n"},"selectionMode":{"type":"string","description":"How to populate the Portfolio to create. Possible values are `NONE`, `MANUAL`, `TAGS`, `REGEXP` or `REST`. [See docs](https://docs.sonarqube.org/9.8/project-administration/managing-portfolios/#populating-portfolios) for how Portfolio population works\n"},"tags":{"type":"array","items":{"type":"string"},"description":"List of Project tags to populate the Portfolio from. Only active when \u003cspan pulumi-lang-nodejs=\"`selectionMode`\" pulumi-lang-dotnet=\"`SelectionMode`\" pulumi-lang-go=\"`selectionMode`\" pulumi-lang-python=\"`selection_mode`\" pulumi-lang-yaml=\"`selectionMode`\" pulumi-lang-java=\"`selectionMode`\"\u003e`selection_mode`\u003c/span\u003e is `TAGS`\n"},"visibility":{"type":"string","description":"Whether the created portfolio should be visible to everyone, or only specific user/groups. If no visibility is specified, the default portfolio visibility will be \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.\n"}},"type":"object"}},"sonarqube:index/project:Project":{"description":"Provides a Sonarqube Project resource. This can be used to create and manage Sonarqube Project.\n\n\n## Example Usage\n\n### Example: create a project\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\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.sonarqube.Project;\nimport com.pulumi.sonarqube.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 main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: a project with associated settings\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n    settings: [{\n        key: \"sonar.demo\",\n        value: \"sonarqube@example.org\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\",\n    settings=[{\n        \"key\": \"sonar.demo\",\n        \"value\": \"sonarqube@example.org\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n        Settings = new[]\n        {\n            new Sonarqube.Inputs.ProjectSettingArgs\n            {\n                Key = \"sonar.demo\",\n                Value = \"sonarqube@example.org\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t\tSettings: sonarqube.ProjectSettingArray{\n\t\t\t\t\u0026sonarqube.ProjectSettingArgs{\n\t\t\t\t\tKey:   pulumi.String(\"sonar.demo\"),\n\t\t\t\t\tValue: pulumi.String(\"sonarqube@example.org\"),\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.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.inputs.ProjectSettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .settings(ProjectSettingArgs.builder()\n                .key(\"sonar.demo\")\n                .value(\"sonarqube@example.org\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n      settings:\n        - key: sonar.demo\n          value: sonarqube@example.org\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"badgeToken":{"type":"string","description":"The badge token for the project.\n"},"name":{"type":"string","description":"The name of the Project to create\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectId":{"type":"string","description":"The ID of this resource.\n"},"settings":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FProjectSetting:ProjectSetting"},"description":"A list of settings associated to the project\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to put on the project.\n"},"visibility":{"type":"string","description":"Whether the created project should be visible to everyone, or only specific user/groups. If no visibility is specified, the default project visibility of the organization will be used. Valid values are \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 and \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"}},"type":"object","required":["badgeToken","name","project","projectId"],"inputProperties":{"name":{"type":"string","description":"The name of the Project to create\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectId":{"type":"string","description":"The ID of this resource.\n"},"settings":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FProjectSetting:ProjectSetting"},"description":"A list of settings associated to the project\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to put on the project.\n"},"visibility":{"type":"string","description":"Whether the created project should be visible to everyone, or only specific user/groups. If no visibility is specified, the default project visibility of the organization will be used. Valid values are \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 and \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"}},"requiredInputs":["project"],"stateInputs":{"description":"Input properties used for looking up and filtering Project resources.\n","properties":{"badgeToken":{"type":"string","description":"The badge token for the project.\n"},"name":{"type":"string","description":"The name of the Project to create\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectId":{"type":"string","description":"The ID of this resource.\n"},"settings":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FProjectSetting:ProjectSetting"},"description":"A list of settings associated to the project\n"},"tags":{"type":"array","items":{"type":"string"},"description":"A list of tags to put on the project.\n"},"visibility":{"type":"string","description":"Whether the created project should be visible to everyone, or only specific user/groups. If no visibility is specified, the default project visibility of the organization will be used. Valid values are \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 and \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"}},"type":"object"}},"sonarqube:index/projectMainBranch:ProjectMainBranch":{"description":"Provides a Sonarqube Project main branch resource. This can be used to create and manage a Sonarqube Projects main branch.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mybranch = new sonarqube.ProjectMainBranch(\"mybranch\", {\n    name: \"release\",\n    project: \"my_project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\nmybranch = sonarqube.ProjectMainBranch(\"mybranch\",\n    name=\"release\",\n    project=\"my_project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mybranch = new Sonarqube.ProjectMainBranch(\"mybranch\", new()\n    {\n        Name = \"release\",\n        Project = \"my_project\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewProjectMainBranch(ctx, \"mybranch\", \u0026sonarqube.ProjectMainBranchArgs{\n\t\t\tName:    pulumi.String(\"release\"),\n\t\t\tProject: pulumi.String(\"my_project\"),\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.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.ProjectMainBranch;\nimport com.pulumi.sonarqube.ProjectMainBranchArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Project(\"main\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mybranch = new ProjectMainBranch(\"mybranch\", ProjectMainBranchArgs.builder()\n            .name(\"release\")\n            .project(\"my_project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n  mybranch:\n    type: sonarqube:ProjectMainBranch\n    properties:\n      name: release\n      project: my_project\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"name":{"type":"string","description":"The name you want the main branch to have.\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectMainBranchId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","project","projectMainBranchId"],"inputProperties":{"name":{"type":"string","description":"The name you want the main branch to have.\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectMainBranchId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["project"],"stateInputs":{"description":"Input properties used for looking up and filtering ProjectMainBranch resources.\n","properties":{"name":{"type":"string","description":"The name you want the main branch to have.\n"},"project":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"projectMainBranchId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualitygate:Qualitygate":{"description":"Provides a Sonarqube Quality Gate resource. This can be used to create and manage Sonarqube Quality Gates and their Conditions.\n\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualitygate(\"main\", {\n    name: \"example\",\n    isDefault: true,\n    conditions: [\n        {\n            metric: \"new_coverage\",\n            op: \"LT\",\n            threshold: \"50\",\n        },\n        {\n            metric: \"vulnerabilities\",\n            threshold: \"10\",\n            op: \"GT\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualitygate(\"main\",\n    name=\"example\",\n    is_default=True,\n    conditions=[\n        {\n            \"metric\": \"new_coverage\",\n            \"op\": \"LT\",\n            \"threshold\": \"50\",\n        },\n        {\n            \"metric\": \"vulnerabilities\",\n            \"threshold\": \"10\",\n            \"op\": \"GT\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualitygate(\"main\", new()\n    {\n        Name = \"example\",\n        IsDefault = true,\n        Conditions = new[]\n        {\n            new Sonarqube.Inputs.QualitygateConditionArgs\n            {\n                Metric = \"new_coverage\",\n                Op = \"LT\",\n                Threshold = \"50\",\n            },\n            new Sonarqube.Inputs.QualitygateConditionArgs\n            {\n                Metric = \"vulnerabilities\",\n                Threshold = \"10\",\n                Op = \"GT\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewQualitygate(ctx, \"main\", \u0026sonarqube.QualitygateArgs{\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t\tIsDefault: pulumi.Bool(true),\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t\u0026sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"new_coverage\"),\n\t\t\t\t\tOp:        pulumi.String(\"LT\"),\n\t\t\t\t\tThreshold: pulumi.String(\"50\"),\n\t\t\t\t},\n\t\t\t\t\u0026sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"vulnerabilities\"),\n\t\t\t\t\tThreshold: pulumi.String(\"10\"),\n\t\t\t\t\tOp:        pulumi.String(\"GT\"),\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.sonarqube.Qualitygate;\nimport com.pulumi.sonarqube.QualitygateArgs;\nimport com.pulumi.sonarqube.inputs.QualitygateConditionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualitygate(\"main\", QualitygateArgs.builder()\n            .name(\"example\")\n            .isDefault(true)\n            .conditions(            \n                QualitygateConditionArgs.builder()\n                    .metric(\"new_coverage\")\n                    .op(\"LT\")\n                    .threshold(\"50\")\n                    .build(),\n                QualitygateConditionArgs.builder()\n                    .metric(\"vulnerabilities\")\n                    .threshold(\"10\")\n                    .op(\"GT\")\n                    .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualitygate\n    properties:\n      name: example\n      isDefault: true\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '50'\n        - metric: vulnerabilities\n          threshold: '10'\n          op: GT\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n**Disclaimer: Operator Requirement for Grade Rating Conditions**\n\nWhen working with grade rating conditions, (A-D), it is important to note that the \"GT\" (greater than) operator must be used for the \u003cspan pulumi-lang-nodejs=\"`op`\" pulumi-lang-dotnet=\"`Op`\" pulumi-lang-go=\"`op`\" pulumi-lang-python=\"`op`\" pulumi-lang-yaml=\"`op`\" pulumi-lang-java=\"`op`\"\u003e`op`\u003c/span\u003e field. This is due to SonarQube's API design. More information can be found in this issue.\n\nFor example, if you are using a grade rating metric such as \u003cspan pulumi-lang-nodejs=\"`newReliabilityRating`\" pulumi-lang-dotnet=\"`NewReliabilityRating`\" pulumi-lang-go=\"`newReliabilityRating`\" pulumi-lang-python=\"`new_reliability_rating`\" pulumi-lang-yaml=\"`newReliabilityRating`\" pulumi-lang-java=\"`newReliabilityRating`\"\u003e`new_reliability_rating`\u003c/span\u003e, where A represents the highest rating and subsequent letters represent lower ratings, you need to supply the \u003cspan pulumi-lang-nodejs=\"`op`\" pulumi-lang-dotnet=\"`Op`\" pulumi-lang-go=\"`op`\" pulumi-lang-python=\"`op`\" pulumi-lang-yaml=\"`op`\" pulumi-lang-java=\"`op`\"\u003e`op`\u003c/span\u003e field with \"GT\" via the provider. Using \"LT\" will return an error from SonarQube's API:\n\n","properties":{"conditions":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FQualitygateCondition:QualitygateCondition"},"description":"A list of conditions that the gate uses.\n"},"copyFrom":{"type":"string","description":"Name of an existing Quality Gate to copy from.\n"},"isDefault":{"type":"boolean","description":"When set to true this Quality Gate is set as default.\n"},"name":{"type":"string","description":"The name of the Quality Gate to create. Maximum length 100.\n"},"qualitygateId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","qualitygateId"],"inputProperties":{"conditions":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FQualitygateCondition:QualitygateCondition"},"description":"A list of conditions that the gate uses.\n"},"copyFrom":{"type":"string","description":"Name of an existing Quality Gate to copy from.\n"},"isDefault":{"type":"boolean","description":"When set to true this Quality Gate is set as default.\n"},"name":{"type":"string","description":"The name of the Quality Gate to create. Maximum length 100.\n"},"qualitygateId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering Qualitygate resources.\n","properties":{"conditions":{"type":"array","items":{"$ref":"#/types/sonarqube:index%2FQualitygateCondition:QualitygateCondition"},"description":"A list of conditions that the gate uses.\n"},"copyFrom":{"type":"string","description":"Name of an existing Quality Gate to copy from.\n"},"isDefault":{"type":"boolean","description":"When set to true this Quality Gate is set as default.\n"},"name":{"type":"string","description":"The name of the Quality Gate to create. Maximum length 100.\n"},"qualitygateId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualitygateProjectAssociation:QualitygateProjectAssociation":{"description":"Provides a Sonarqube Quality Gate Project association resource. This can be used to associate a Quality Gate to a Project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\n//# Example: create a quality gate project association\nconst main = new sonarqube.Qualitygate(\"main\", {\n    name: \"my_qualitygate\",\n    conditions: [{\n        metric: \"new_coverage\",\n        op: \"LT\",\n        threshold: \"30\",\n    }],\n});\nconst mainProject = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mainQualitygateProjectAssociation = new sonarqube.QualitygateProjectAssociation(\"main\", {\n    gatename: main.qualitygateId,\n    projectkey: mainProject.project,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\n## Example: create a quality gate project association\nmain = sonarqube.Qualitygate(\"main\",\n    name=\"my_qualitygate\",\n    conditions=[{\n        \"metric\": \"new_coverage\",\n        \"op\": \"LT\",\n        \"threshold\": \"30\",\n    }])\nmain_project = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\nmain_qualitygate_project_association = sonarqube.QualitygateProjectAssociation(\"main\",\n    gatename=main.qualitygate_id,\n    projectkey=main_project.project)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //# Example: create a quality gate project association\n    var main = new Sonarqube.Qualitygate(\"main\", new()\n    {\n        Name = \"my_qualitygate\",\n        Conditions = new[]\n        {\n            new Sonarqube.Inputs.QualitygateConditionArgs\n            {\n                Metric = \"new_coverage\",\n                Op = \"LT\",\n                Threshold = \"30\",\n            },\n        },\n    });\n\n    var mainProject = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mainQualitygateProjectAssociation = new Sonarqube.QualitygateProjectAssociation(\"main\", new()\n    {\n        Gatename = main.QualitygateId,\n        Projectkey = mainProject.Project,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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// # Example: create a quality gate project association\n\t\tmain, err := sonarqube.NewQualitygate(ctx, \"main\", \u0026sonarqube.QualitygateArgs{\n\t\t\tName: pulumi.String(\"my_qualitygate\"),\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t\u0026sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"new_coverage\"),\n\t\t\t\t\tOp:        pulumi.String(\"LT\"),\n\t\t\t\t\tThreshold: pulumi.String(\"30\"),\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\tmainProject, err := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualitygateProjectAssociation(ctx, \"main\", \u0026sonarqube.QualitygateProjectAssociationArgs{\n\t\t\tGatename:   main.QualitygateId,\n\t\t\tProjectkey: mainProject.Project,\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.sonarqube.Qualitygate;\nimport com.pulumi.sonarqube.QualitygateArgs;\nimport com.pulumi.sonarqube.inputs.QualitygateConditionArgs;\nimport com.pulumi.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.QualitygateProjectAssociation;\nimport com.pulumi.sonarqube.QualitygateProjectAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        //# Example: create a quality gate project association\n        var main = new Qualitygate(\"main\", QualitygateArgs.builder()\n            .name(\"my_qualitygate\")\n            .conditions(QualitygateConditionArgs.builder()\n                .metric(\"new_coverage\")\n                .op(\"LT\")\n                .threshold(\"30\")\n                .build())\n            .build());\n\n        var mainProject = new Project(\"mainProject\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mainQualitygateProjectAssociation = new QualitygateProjectAssociation(\"mainQualitygateProjectAssociation\", QualitygateProjectAssociationArgs.builder()\n            .gatename(main.qualitygateId())\n            .projectkey(mainProject.project())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ## Example: create a quality gate project association\n  main:\n    type: sonarqube:Qualitygate\n    properties:\n      name: my_qualitygate\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  mainProject:\n    type: sonarqube:Project\n    name: main\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n  mainQualitygateProjectAssociation:\n    type: sonarqube:QualitygateProjectAssociation\n    name: main\n    properties:\n      gatename: ${main.qualitygateId}\n      projectkey: ${mainProject.project}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"gateid":{"type":"string"},"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"projectkey":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"qualitygateProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["projectkey","qualitygateProjectAssociationId"],"inputProperties":{"gateid":{"type":"string"},"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"projectkey":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"qualitygateProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["projectkey"],"stateInputs":{"description":"Input properties used for looking up and filtering QualitygateProjectAssociation resources.\n","properties":{"gateid":{"type":"string"},"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"projectkey":{"type":"string","description":"Key of the project. Maximum length 400. All letters, digits, dash, underscore, period or colon.\n"},"qualitygateProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualitygateUsergroupAssociation:QualitygateUsergroupAssociation":{"description":"Provides a Sonarqube Quality Gate Usergroup association resource. This can be used to associate a Quality Gate to an User or to a Group.\nThe feature is available on SonarQube 9.2 or newer.\n\n## Example Usage\n\n### Example: create a quality gate user association\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualitygate(\"main\", {\n    name: \"my_qualitygate\",\n    conditions: [{\n        metric: \"new_coverage\",\n        op: \"LT\",\n        threshold: \"30\",\n    }],\n});\nconst qaUser = new sonarqube.User(\"qa_user\", {\n    loginName: \"qa-user\",\n    name: \"qa-user\",\n    password: \"secret-sauce37!\",\n});\nconst mainQualitygateUsergroupAssociation = new sonarqube.QualitygateUsergroupAssociation(\"main\", {\n    gatename: main.qualitygateId,\n    loginName: qaUser.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualitygate(\"main\",\n    name=\"my_qualitygate\",\n    conditions=[{\n        \"metric\": \"new_coverage\",\n        \"op\": \"LT\",\n        \"threshold\": \"30\",\n    }])\nqa_user = sonarqube.User(\"qa_user\",\n    login_name=\"qa-user\",\n    name=\"qa-user\",\n    password=\"secret-sauce37!\")\nmain_qualitygate_usergroup_association = sonarqube.QualitygateUsergroupAssociation(\"main\",\n    gatename=main.qualitygate_id,\n    login_name=qa_user.user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualitygate(\"main\", new()\n    {\n        Name = \"my_qualitygate\",\n        Conditions = new[]\n        {\n            new Sonarqube.Inputs.QualitygateConditionArgs\n            {\n                Metric = \"new_coverage\",\n                Op = \"LT\",\n                Threshold = \"30\",\n            },\n        },\n    });\n\n    var qaUser = new Sonarqube.User(\"qa_user\", new()\n    {\n        LoginName = \"qa-user\",\n        Name = \"qa-user\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var mainQualitygateUsergroupAssociation = new Sonarqube.QualitygateUsergroupAssociation(\"main\", new()\n    {\n        Gatename = main.QualitygateId,\n        LoginName = qaUser.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewQualitygate(ctx, \"main\", \u0026sonarqube.QualitygateArgs{\n\t\t\tName: pulumi.String(\"my_qualitygate\"),\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t\u0026sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"new_coverage\"),\n\t\t\t\t\tOp:        pulumi.String(\"LT\"),\n\t\t\t\t\tThreshold: pulumi.String(\"30\"),\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\tqaUser, err := sonarqube.NewUser(ctx, \"qa_user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"qa-user\"),\n\t\t\tName:      pulumi.String(\"qa-user\"),\n\t\t\tPassword:  pulumi.String(\"secret-sauce37!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualitygateUsergroupAssociation(ctx, \"main\", \u0026sonarqube.QualitygateUsergroupAssociationArgs{\n\t\t\tGatename:  main.QualitygateId,\n\t\t\tLoginName: qaUser.UserId,\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.sonarqube.Qualitygate;\nimport com.pulumi.sonarqube.QualitygateArgs;\nimport com.pulumi.sonarqube.inputs.QualitygateConditionArgs;\nimport com.pulumi.sonarqube.User;\nimport com.pulumi.sonarqube.UserArgs;\nimport com.pulumi.sonarqube.QualitygateUsergroupAssociation;\nimport com.pulumi.sonarqube.QualitygateUsergroupAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualitygate(\"main\", QualitygateArgs.builder()\n            .name(\"my_qualitygate\")\n            .conditions(QualitygateConditionArgs.builder()\n                .metric(\"new_coverage\")\n                .op(\"LT\")\n                .threshold(\"30\")\n                .build())\n            .build());\n\n        var qaUser = new User(\"qaUser\", UserArgs.builder()\n            .loginName(\"qa-user\")\n            .name(\"qa-user\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n        var mainQualitygateUsergroupAssociation = new QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", QualitygateUsergroupAssociationArgs.builder()\n            .gatename(main.qualitygateId())\n            .loginName(qaUser.userId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualitygate\n    properties:\n      name: my_qualitygate\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  qaUser:\n    type: sonarqube:User\n    name: qa_user\n    properties:\n      loginName: qa-user\n      name: qa-user\n      password: secret-sauce37!\n  mainQualitygateUsergroupAssociation:\n    type: sonarqube:QualitygateUsergroupAssociation\n    name: main\n    properties:\n      gatename: ${main.qualitygateId}\n      loginName: ${qaUser.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a quality gate group association\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualitygate(\"main\", {\n    name: \"my_qualitygate\",\n    conditions: [{\n        metric: \"new_coverage\",\n        op: \"LT\",\n        threshold: \"30\",\n    }],\n});\nconst qaTeam = new sonarqube.Group(\"qa_team\", {\n    name: \"QA-Team\",\n    description: \"Quality Assurence Team\",\n});\nconst mainQualitygateUsergroupAssociation = new sonarqube.QualitygateUsergroupAssociation(\"main\", {\n    gatename: main.qualitygateId,\n    groupName: qaTeam.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualitygate(\"main\",\n    name=\"my_qualitygate\",\n    conditions=[{\n        \"metric\": \"new_coverage\",\n        \"op\": \"LT\",\n        \"threshold\": \"30\",\n    }])\nqa_team = sonarqube.Group(\"qa_team\",\n    name=\"QA-Team\",\n    description=\"Quality Assurence Team\")\nmain_qualitygate_usergroup_association = sonarqube.QualitygateUsergroupAssociation(\"main\",\n    gatename=main.qualitygate_id,\n    group_name=qa_team.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualitygate(\"main\", new()\n    {\n        Name = \"my_qualitygate\",\n        Conditions = new[]\n        {\n            new Sonarqube.Inputs.QualitygateConditionArgs\n            {\n                Metric = \"new_coverage\",\n                Op = \"LT\",\n                Threshold = \"30\",\n            },\n        },\n    });\n\n    var qaTeam = new Sonarqube.Group(\"qa_team\", new()\n    {\n        Name = \"QA-Team\",\n        Description = \"Quality Assurence Team\",\n    });\n\n    var mainQualitygateUsergroupAssociation = new Sonarqube.QualitygateUsergroupAssociation(\"main\", new()\n    {\n        Gatename = main.QualitygateId,\n        GroupName = qaTeam.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewQualitygate(ctx, \"main\", \u0026sonarqube.QualitygateArgs{\n\t\t\tName: pulumi.String(\"my_qualitygate\"),\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t\u0026sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"new_coverage\"),\n\t\t\t\t\tOp:        pulumi.String(\"LT\"),\n\t\t\t\t\tThreshold: pulumi.String(\"30\"),\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\tqaTeam, err := sonarqube.NewGroup(ctx, \"qa_team\", \u0026sonarqube.GroupArgs{\n\t\t\tName:        pulumi.String(\"QA-Team\"),\n\t\t\tDescription: pulumi.String(\"Quality Assurence Team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualitygateUsergroupAssociation(ctx, \"main\", \u0026sonarqube.QualitygateUsergroupAssociationArgs{\n\t\t\tGatename:  main.QualitygateId,\n\t\t\tGroupName: qaTeam.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.sonarqube.Qualitygate;\nimport com.pulumi.sonarqube.QualitygateArgs;\nimport com.pulumi.sonarqube.inputs.QualitygateConditionArgs;\nimport com.pulumi.sonarqube.Group;\nimport com.pulumi.sonarqube.GroupArgs;\nimport com.pulumi.sonarqube.QualitygateUsergroupAssociation;\nimport com.pulumi.sonarqube.QualitygateUsergroupAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualitygate(\"main\", QualitygateArgs.builder()\n            .name(\"my_qualitygate\")\n            .conditions(QualitygateConditionArgs.builder()\n                .metric(\"new_coverage\")\n                .op(\"LT\")\n                .threshold(\"30\")\n                .build())\n            .build());\n\n        var qaTeam = new Group(\"qaTeam\", GroupArgs.builder()\n            .name(\"QA-Team\")\n            .description(\"Quality Assurence Team\")\n            .build());\n\n        var mainQualitygateUsergroupAssociation = new QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", QualitygateUsergroupAssociationArgs.builder()\n            .gatename(main.qualitygateId())\n            .groupName(qaTeam.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualitygate\n    properties:\n      name: my_qualitygate\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  qaTeam:\n    type: sonarqube:Group\n    name: qa_team\n    properties:\n      name: QA-Team\n      description: Quality Assurence Team\n  mainQualitygateUsergroupAssociation:\n    type: sonarqube:QualitygateUsergroupAssociation\n    name: main\n    properties:\n      gatename: ${main.qualitygateId}\n      groupName: ${qaTeam.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"qualitygateUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["gatename","qualitygateUsergroupAssociationId"],"inputProperties":{"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"qualitygateUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["gatename"],"stateInputs":{"description":"Input properties used for looking up and filtering QualitygateUsergroupAssociation resources.\n","properties":{"gatename":{"type":"string","description":"The name of the Quality Gate\n"},"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"qualitygateUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualityprofile:Qualityprofile":{"description":"Provides a Sonarqube Quality Profile resource. This can be used to create and manage Sonarqube Quality Profiles.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualityprofile(\"main\", {\n    name: \"example\",\n    language: \"js\",\n    isDefault: false,\n    parent: \"sonar way\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualityprofile(\"main\",\n    name=\"example\",\n    language=\"js\",\n    is_default=False,\n    parent=\"sonar way\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualityprofile(\"main\", new()\n    {\n        Name = \"example\",\n        Language = \"js\",\n        IsDefault = false,\n        Parent = \"sonar way\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewQualityprofile(ctx, \"main\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:      pulumi.String(\"example\"),\n\t\t\tLanguage:  pulumi.String(\"js\"),\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tParent:    pulumi.String(\"sonar way\"),\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.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualityprofile(\"main\", QualityprofileArgs.builder()\n            .name(\"example\")\n            .language(\"js\")\n            .isDefault(false)\n            .parent(\"sonar way\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: example\n      language: js\n      isDefault: false\n      parent: sonar way\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"isDefault":{"type":"boolean","description":"When set to true this will make the added Quality Profile default\n"},"key":{"type":"string","description":"ID of the Sonarqube Quality Profile\n"},"language":{"type":"string","description":"Quality profile language. Must be one of \"cs\", \"css\", \"flex\", \"go\", \"java\", \"js\", \"jsp\", \"kotlin\", \"php\", \"py\", \"ruby\", \"scala\", \"ts\", \"vbnet\", \"web\", \"xml\"\n"},"name":{"type":"string","description":"The name of the Quality Profile to create. Maximum length 100\n"},"parent":{"type":"string","description":"When a parent is provided the quality profile will inherit it's rules\n"},"qualityprofileId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["key","language","name","qualityprofileId"],"inputProperties":{"isDefault":{"type":"boolean","description":"When set to true this will make the added Quality Profile default\n"},"language":{"type":"string","description":"Quality profile language. Must be one of \"cs\", \"css\", \"flex\", \"go\", \"java\", \"js\", \"jsp\", \"kotlin\", \"php\", \"py\", \"ruby\", \"scala\", \"ts\", \"vbnet\", \"web\", \"xml\"\n"},"name":{"type":"string","description":"The name of the Quality Profile to create. Maximum length 100\n"},"parent":{"type":"string","description":"When a parent is provided the quality profile will inherit it's rules\n"},"qualityprofileId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["language"],"stateInputs":{"description":"Input properties used for looking up and filtering Qualityprofile resources.\n","properties":{"isDefault":{"type":"boolean","description":"When set to true this will make the added Quality Profile default\n"},"key":{"type":"string","description":"ID of the Sonarqube Quality Profile\n"},"language":{"type":"string","description":"Quality profile language. Must be one of \"cs\", \"css\", \"flex\", \"go\", \"java\", \"js\", \"jsp\", \"kotlin\", \"php\", \"py\", \"ruby\", \"scala\", \"ts\", \"vbnet\", \"web\", \"xml\"\n"},"name":{"type":"string","description":"The name of the Quality Profile to create. Maximum length 100\n"},"parent":{"type":"string","description":"When a parent is provided the quality profile will inherit it's rules\n"},"qualityprofileId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualityprofileActivateRule:QualityprofileActivateRule":{"description":"Provides a Sonarqube Rules resource. This can be used to manage Sonarqube rules.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst allowedMavenDependencies = new sonarqube.Rule(\"allowed_maven_dependencies\", {\n    customKey: \"Only_use_allowed_Maven_dependencies\",\n    markdownDescription: \"Description\",\n    name: \"Only use allowed Maven dependencies\",\n    params: \"FilePattern=**/pom.xml\",\n    severity: \"BLOCKER\",\n    status: \"READY\",\n    templateKey: \"xml:XPathCheck\",\n    type: \"VULNERABILITY\",\n});\nconst xml = new sonarqube.Qualityprofile(\"xml\", {\n    name: \"test way - xml\",\n    language: \"xml\",\n    isDefault: false,\n    parent: \"Sonar way\",\n});\nconst xmlRule = new sonarqube.QualityprofileActivateRule(\"xml_rule\", {\n    key: xml.key,\n    rule: allowedMavenDependencies.ruleId,\n    severity: \"BLOCKER\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nallowed_maven_dependencies = sonarqube.Rule(\"allowed_maven_dependencies\",\n    custom_key=\"Only_use_allowed_Maven_dependencies\",\n    markdown_description=\"Description\",\n    name=\"Only use allowed Maven dependencies\",\n    params=\"FilePattern=**/pom.xml\",\n    severity=\"BLOCKER\",\n    status=\"READY\",\n    template_key=\"xml:XPathCheck\",\n    type=\"VULNERABILITY\")\nxml = sonarqube.Qualityprofile(\"xml\",\n    name=\"test way - xml\",\n    language=\"xml\",\n    is_default=False,\n    parent=\"Sonar way\")\nxml_rule = sonarqube.QualityprofileActivateRule(\"xml_rule\",\n    key=xml.key,\n    rule=allowed_maven_dependencies.rule_id,\n    severity=\"BLOCKER\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var allowedMavenDependencies = new Sonarqube.Rule(\"allowed_maven_dependencies\", new()\n    {\n        CustomKey = \"Only_use_allowed_Maven_dependencies\",\n        MarkdownDescription = \"Description\",\n        Name = \"Only use allowed Maven dependencies\",\n        Params = \"FilePattern=**/pom.xml\",\n        Severity = \"BLOCKER\",\n        Status = \"READY\",\n        TemplateKey = \"xml:XPathCheck\",\n        Type = \"VULNERABILITY\",\n    });\n\n    var xml = new Sonarqube.Qualityprofile(\"xml\", new()\n    {\n        Name = \"test way - xml\",\n        Language = \"xml\",\n        IsDefault = false,\n        Parent = \"Sonar way\",\n    });\n\n    var xmlRule = new Sonarqube.QualityprofileActivateRule(\"xml_rule\", new()\n    {\n        Key = xml.Key,\n        Rule = allowedMavenDependencies.RuleId,\n        Severity = \"BLOCKER\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tallowedMavenDependencies, err := sonarqube.NewRule(ctx, \"allowed_maven_dependencies\", \u0026sonarqube.RuleArgs{\n\t\t\tCustomKey:           pulumi.String(\"Only_use_allowed_Maven_dependencies\"),\n\t\t\tMarkdownDescription: pulumi.String(\"Description\"),\n\t\t\tName:                pulumi.String(\"Only use allowed Maven dependencies\"),\n\t\t\tParams:              pulumi.String(\"FilePattern=**/pom.xml\"),\n\t\t\tSeverity:            pulumi.String(\"BLOCKER\"),\n\t\t\tStatus:              pulumi.String(\"READY\"),\n\t\t\tTemplateKey:         pulumi.String(\"xml:XPathCheck\"),\n\t\t\tType:                pulumi.String(\"VULNERABILITY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\txml, err := sonarqube.NewQualityprofile(ctx, \"xml\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:      pulumi.String(\"test way - xml\"),\n\t\t\tLanguage:  pulumi.String(\"xml\"),\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tParent:    pulumi.String(\"Sonar way\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualityprofileActivateRule(ctx, \"xml_rule\", \u0026sonarqube.QualityprofileActivateRuleArgs{\n\t\t\tKey:      xml.Key,\n\t\t\tRule:     allowedMavenDependencies.RuleId,\n\t\t\tSeverity: pulumi.String(\"BLOCKER\"),\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.sonarqube.Rule;\nimport com.pulumi.sonarqube.RuleArgs;\nimport com.pulumi.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport com.pulumi.sonarqube.QualityprofileActivateRule;\nimport com.pulumi.sonarqube.QualityprofileActivateRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 allowedMavenDependencies = new Rule(\"allowedMavenDependencies\", RuleArgs.builder()\n            .customKey(\"Only_use_allowed_Maven_dependencies\")\n            .markdownDescription(\"Description\")\n            .name(\"Only use allowed Maven dependencies\")\n            .params(\"FilePattern=**/pom.xml\")\n            .severity(\"BLOCKER\")\n            .status(\"READY\")\n            .templateKey(\"xml:XPathCheck\")\n            .type(\"VULNERABILITY\")\n            .build());\n\n        var xml = new Qualityprofile(\"xml\", QualityprofileArgs.builder()\n            .name(\"test way - xml\")\n            .language(\"xml\")\n            .isDefault(false)\n            .parent(\"Sonar way\")\n            .build());\n\n        var xmlRule = new QualityprofileActivateRule(\"xmlRule\", QualityprofileActivateRuleArgs.builder()\n            .key(xml.key())\n            .rule(allowedMavenDependencies.ruleId())\n            .severity(\"BLOCKER\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  allowedMavenDependencies:\n    type: sonarqube:Rule\n    name: allowed_maven_dependencies\n    properties:\n      customKey: Only_use_allowed_Maven_dependencies\n      markdownDescription: Description\n      name: Only use allowed Maven dependencies\n      params: FilePattern=**/pom.xml\n      severity: BLOCKER\n      status: READY\n      templateKey: xml:XPathCheck\n      type: VULNERABILITY\n  xml:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: test way - xml\n      language: xml\n      isDefault: 'false'\n      parent: Sonar way\n  xmlRule:\n    type: sonarqube:QualityprofileActivateRule\n    name: xml_rule\n    properties:\n      key: ${xml.key}\n      rule: ${allowedMavenDependencies.ruleId}\n      severity: BLOCKER\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)"},"qualityprofileActivateRuleId":{"type":"string"},"reset":{"type":"string","description":"Reset severity and parameters of activated rule. Set the values defined on parent profile or from rule default values.\n  - Possible values true false yes no (Default false)"},"rule":{"type":"string","description":"Rule key"},"severity":{"type":"string","description":"Severity. Ignored if parameter reset is true.\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"}},"type":"object","required":["key","qualityprofileActivateRuleId","rule"],"inputProperties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)"},"qualityprofileActivateRuleId":{"type":"string"},"reset":{"type":"string","description":"Reset severity and parameters of activated rule. Set the values defined on parent profile or from rule default values.\n  - Possible values true false yes no (Default false)"},"rule":{"type":"string","description":"Rule key"},"severity":{"type":"string","description":"Severity. Ignored if parameter reset is true.\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"}},"requiredInputs":["key","rule"],"stateInputs":{"description":"Input properties used for looking up and filtering QualityprofileActivateRule resources.\n","properties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)"},"qualityprofileActivateRuleId":{"type":"string"},"reset":{"type":"string","description":"Reset severity and parameters of activated rule. Set the values defined on parent profile or from rule default values.\n  - Possible values true false yes no (Default false)"},"rule":{"type":"string","description":"Rule key"},"severity":{"type":"string","description":"Severity. Ignored if parameter reset is true.\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"}},"type":"object"}},"sonarqube:index/qualityprofileDeactivateRule:QualityprofileDeactivateRule":{"description":"Provides a Sonarqube Rules resource. This can be used to deactivate Sonarqube rules on a quality profile.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst allowedMavenDependencies = new sonarqube.Rule(\"allowed_maven_dependencies\", {\n    customKey: \"Only_use_allowed_Maven_dependencies\",\n    markdownDescription: \"Description\",\n    name: \"Only use allowed Maven dependencies\",\n    params: \"FilePattern=**/pom.xml\",\n    severity: \"BLOCKER\",\n    status: \"READY\",\n    templateKey: \"xml:XPathCheck\",\n    type: \"VULNERABILITY\",\n});\nconst xml = new sonarqube.Qualityprofile(\"xml\", {\n    name: \"test way - xml\",\n    language: \"xml\",\n    isDefault: false,\n    parent: \"Sonar way\",\n});\nconst xmlRule = new sonarqube.QualityprofileDeactivateRule(\"xml_rule\", {\n    key: xml.key,\n    rule: allowedMavenDependencies.ruleId,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nallowed_maven_dependencies = sonarqube.Rule(\"allowed_maven_dependencies\",\n    custom_key=\"Only_use_allowed_Maven_dependencies\",\n    markdown_description=\"Description\",\n    name=\"Only use allowed Maven dependencies\",\n    params=\"FilePattern=**/pom.xml\",\n    severity=\"BLOCKER\",\n    status=\"READY\",\n    template_key=\"xml:XPathCheck\",\n    type=\"VULNERABILITY\")\nxml = sonarqube.Qualityprofile(\"xml\",\n    name=\"test way - xml\",\n    language=\"xml\",\n    is_default=False,\n    parent=\"Sonar way\")\nxml_rule = sonarqube.QualityprofileDeactivateRule(\"xml_rule\",\n    key=xml.key,\n    rule=allowed_maven_dependencies.rule_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var allowedMavenDependencies = new Sonarqube.Rule(\"allowed_maven_dependencies\", new()\n    {\n        CustomKey = \"Only_use_allowed_Maven_dependencies\",\n        MarkdownDescription = \"Description\",\n        Name = \"Only use allowed Maven dependencies\",\n        Params = \"FilePattern=**/pom.xml\",\n        Severity = \"BLOCKER\",\n        Status = \"READY\",\n        TemplateKey = \"xml:XPathCheck\",\n        Type = \"VULNERABILITY\",\n    });\n\n    var xml = new Sonarqube.Qualityprofile(\"xml\", new()\n    {\n        Name = \"test way - xml\",\n        Language = \"xml\",\n        IsDefault = false,\n        Parent = \"Sonar way\",\n    });\n\n    var xmlRule = new Sonarqube.QualityprofileDeactivateRule(\"xml_rule\", new()\n    {\n        Key = xml.Key,\n        Rule = allowedMavenDependencies.RuleId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tallowedMavenDependencies, err := sonarqube.NewRule(ctx, \"allowed_maven_dependencies\", \u0026sonarqube.RuleArgs{\n\t\t\tCustomKey:           pulumi.String(\"Only_use_allowed_Maven_dependencies\"),\n\t\t\tMarkdownDescription: pulumi.String(\"Description\"),\n\t\t\tName:                pulumi.String(\"Only use allowed Maven dependencies\"),\n\t\t\tParams:              pulumi.String(\"FilePattern=**/pom.xml\"),\n\t\t\tSeverity:            pulumi.String(\"BLOCKER\"),\n\t\t\tStatus:              pulumi.String(\"READY\"),\n\t\t\tTemplateKey:         pulumi.String(\"xml:XPathCheck\"),\n\t\t\tType:                pulumi.String(\"VULNERABILITY\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\txml, err := sonarqube.NewQualityprofile(ctx, \"xml\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:      pulumi.String(\"test way - xml\"),\n\t\t\tLanguage:  pulumi.String(\"xml\"),\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tParent:    pulumi.String(\"Sonar way\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualityprofileDeactivateRule(ctx, \"xml_rule\", \u0026sonarqube.QualityprofileDeactivateRuleArgs{\n\t\t\tKey:  xml.Key,\n\t\t\tRule: allowedMavenDependencies.RuleId,\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.sonarqube.Rule;\nimport com.pulumi.sonarqube.RuleArgs;\nimport com.pulumi.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport com.pulumi.sonarqube.QualityprofileDeactivateRule;\nimport com.pulumi.sonarqube.QualityprofileDeactivateRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 allowedMavenDependencies = new Rule(\"allowedMavenDependencies\", RuleArgs.builder()\n            .customKey(\"Only_use_allowed_Maven_dependencies\")\n            .markdownDescription(\"Description\")\n            .name(\"Only use allowed Maven dependencies\")\n            .params(\"FilePattern=**/pom.xml\")\n            .severity(\"BLOCKER\")\n            .status(\"READY\")\n            .templateKey(\"xml:XPathCheck\")\n            .type(\"VULNERABILITY\")\n            .build());\n\n        var xml = new Qualityprofile(\"xml\", QualityprofileArgs.builder()\n            .name(\"test way - xml\")\n            .language(\"xml\")\n            .isDefault(false)\n            .parent(\"Sonar way\")\n            .build());\n\n        var xmlRule = new QualityprofileDeactivateRule(\"xmlRule\", QualityprofileDeactivateRuleArgs.builder()\n            .key(xml.key())\n            .rule(allowedMavenDependencies.ruleId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  allowedMavenDependencies:\n    type: sonarqube:Rule\n    name: allowed_maven_dependencies\n    properties:\n      customKey: Only_use_allowed_Maven_dependencies\n      markdownDescription: Description\n      name: Only use allowed Maven dependencies\n      params: FilePattern=**/pom.xml\n      severity: BLOCKER\n      status: READY\n      templateKey: xml:XPathCheck\n      type: VULNERABILITY\n  xml:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: test way - xml\n      language: xml\n      isDefault: 'false'\n      parent: Sonar way\n  xmlRule:\n    type: sonarqube:QualityprofileDeactivateRule\n    name: xml_rule\n    properties:\n      key: ${xml.key}\n      rule: ${allowedMavenDependencies.ruleId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search\n"},"qualityprofileDeactivateRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Rule key\n"}},"type":"object","required":["key","qualityprofileDeactivateRuleId","rule"],"inputProperties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search\n"},"qualityprofileDeactivateRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Rule key\n"}},"requiredInputs":["key","rule"],"stateInputs":{"description":"Input properties used for looking up and filtering QualityprofileDeactivateRule resources.\n","properties":{"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search\n"},"qualityprofileDeactivateRuleId":{"type":"string","description":"The ID of this resource.\n"},"rule":{"type":"string","description":"Rule key\n"}},"type":"object"}},"sonarqube:index/qualityprofileProjectAssociation:QualityprofileProjectAssociation":{"description":"Provides a Sonarqube Quality Profile Project association resource. This can be used to associate a Quality Profile to a Project\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualityprofile(\"main\", {\n    name: \"my_quality_profile\",\n    language: \"js\",\n});\nconst mainProject = new sonarqube.Project(\"main\", {\n    name: \"SonarQube\",\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mainQualityprofileProjectAssociation = new sonarqube.QualityprofileProjectAssociation(\"main\", {\n    qualityProfile: main.name,\n    project: mainProject.project,\n    language: \"js\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualityprofile(\"main\",\n    name=\"my_quality_profile\",\n    language=\"js\")\nmain_project = sonarqube.Project(\"main\",\n    name=\"SonarQube\",\n    project=\"my_project\",\n    visibility=\"public\")\nmain_qualityprofile_project_association = sonarqube.QualityprofileProjectAssociation(\"main\",\n    quality_profile=main.name,\n    project=main_project.project,\n    language=\"js\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualityprofile(\"main\", new()\n    {\n        Name = \"my_quality_profile\",\n        Language = \"js\",\n    });\n\n    var mainProject = new Sonarqube.Project(\"main\", new()\n    {\n        Name = \"SonarQube\",\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mainQualityprofileProjectAssociation = new Sonarqube.QualityprofileProjectAssociation(\"main\", new()\n    {\n        QualityProfile = main.Name,\n        Project = mainProject.Project,\n        Language = \"js\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewQualityprofile(ctx, \"main\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:     pulumi.String(\"my_quality_profile\"),\n\t\t\tLanguage: pulumi.String(\"js\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainProject, err := sonarqube.NewProject(ctx, \"main\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"SonarQube\"),\n\t\t\tProject:    pulumi.String(\"my_project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualityprofileProjectAssociation(ctx, \"main\", \u0026sonarqube.QualityprofileProjectAssociationArgs{\n\t\t\tQualityProfile: main.Name,\n\t\t\tProject:        mainProject.Project,\n\t\t\tLanguage:       pulumi.String(\"js\"),\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.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport com.pulumi.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.QualityprofileProjectAssociation;\nimport com.pulumi.sonarqube.QualityprofileProjectAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualityprofile(\"main\", QualityprofileArgs.builder()\n            .name(\"my_quality_profile\")\n            .language(\"js\")\n            .build());\n\n        var mainProject = new Project(\"mainProject\", ProjectArgs.builder()\n            .name(\"SonarQube\")\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mainQualityprofileProjectAssociation = new QualityprofileProjectAssociation(\"mainQualityprofileProjectAssociation\", QualityprofileProjectAssociationArgs.builder()\n            .qualityProfile(main.name())\n            .project(mainProject.project())\n            .language(\"js\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: my_quality_profile\n      language: js\n  mainProject:\n    type: sonarqube:Project\n    name: main\n    properties:\n      name: SonarQube\n      project: my_project\n      visibility: public\n  mainQualityprofileProjectAssociation:\n    type: sonarqube:QualityprofileProjectAssociation\n    name: main\n    properties:\n      qualityProfile: ${main.name}\n      project: ${mainProject.project}\n      language: js\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"language":{"type":"string","description":"Quality profile language. Must be a langauge in this list https://next.sonarqube.com/sonarqube/web_api/api/languages/list\n"},"project":{"type":"string","description":"Name of the project\n"},"qualityProfile":{"type":"string","description":"Name of the Quality Profile\n"},"qualityprofileProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["language","project","qualityProfile","qualityprofileProjectAssociationId"],"inputProperties":{"language":{"type":"string","description":"Quality profile language. Must be a langauge in this list https://next.sonarqube.com/sonarqube/web_api/api/languages/list\n"},"project":{"type":"string","description":"Name of the project\n"},"qualityProfile":{"type":"string","description":"Name of the Quality Profile\n"},"qualityprofileProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["language","project","qualityProfile"],"stateInputs":{"description":"Input properties used for looking up and filtering QualityprofileProjectAssociation resources.\n","properties":{"language":{"type":"string","description":"Quality profile language. Must be a langauge in this list https://next.sonarqube.com/sonarqube/web_api/api/languages/list\n"},"project":{"type":"string","description":"Name of the project\n"},"qualityProfile":{"type":"string","description":"Name of the Quality Profile\n"},"qualityprofileProjectAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/qualityprofileUsergroupAssociation:QualityprofileUsergroupAssociation":{"description":"Provides a Sonarqube Quality Profile Usergroup association resource. This can be used to associate a Quality Profile to an User or to a Group.\nThe feature is available on SonarQube 6.6 or newer.\n\n## Example Usage\n\n### Example: create a quality profile user association\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualityprofile(\"main\", {\n    name: \"my_qualityprofile\",\n    language: \"java\",\n    parent: \"Sonar way\",\n});\nconst qaUser = new sonarqube.User(\"qa_user\", {\n    loginName: \"qa-user\",\n    name: \"qa-user\",\n    password: \"secret-sauce37!\",\n});\nconst mainQualityprofileUsergroupAssociation = new sonarqube.QualityprofileUsergroupAssociation(\"main\", {\n    profileName: main.qualityprofileId,\n    language: language.id,\n    loginName: qaUser.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualityprofile(\"main\",\n    name=\"my_qualityprofile\",\n    language=\"java\",\n    parent=\"Sonar way\")\nqa_user = sonarqube.User(\"qa_user\",\n    login_name=\"qa-user\",\n    name=\"qa-user\",\n    password=\"secret-sauce37!\")\nmain_qualityprofile_usergroup_association = sonarqube.QualityprofileUsergroupAssociation(\"main\",\n    profile_name=main.qualityprofile_id,\n    language=language[\"id\"],\n    login_name=qa_user.user_id)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualityprofile(\"main\", new()\n    {\n        Name = \"my_qualityprofile\",\n        Language = \"java\",\n        Parent = \"Sonar way\",\n    });\n\n    var qaUser = new Sonarqube.User(\"qa_user\", new()\n    {\n        LoginName = \"qa-user\",\n        Name = \"qa-user\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var mainQualityprofileUsergroupAssociation = new Sonarqube.QualityprofileUsergroupAssociation(\"main\", new()\n    {\n        ProfileName = main.QualityprofileId,\n        Language = language.Id,\n        LoginName = qaUser.UserId,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewQualityprofile(ctx, \"main\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:     pulumi.String(\"my_qualityprofile\"),\n\t\t\tLanguage: pulumi.String(\"java\"),\n\t\t\tParent:   pulumi.String(\"Sonar way\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqaUser, err := sonarqube.NewUser(ctx, \"qa_user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"qa-user\"),\n\t\t\tName:      pulumi.String(\"qa-user\"),\n\t\t\tPassword:  pulumi.String(\"secret-sauce37!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualityprofileUsergroupAssociation(ctx, \"main\", \u0026sonarqube.QualityprofileUsergroupAssociationArgs{\n\t\t\tProfileName: main.QualityprofileId,\n\t\t\tLanguage:    pulumi.Any(language.Id),\n\t\t\tLoginName:   qaUser.UserId,\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.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport com.pulumi.sonarqube.User;\nimport com.pulumi.sonarqube.UserArgs;\nimport com.pulumi.sonarqube.QualityprofileUsergroupAssociation;\nimport com.pulumi.sonarqube.QualityprofileUsergroupAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualityprofile(\"main\", QualityprofileArgs.builder()\n            .name(\"my_qualityprofile\")\n            .language(\"java\")\n            .parent(\"Sonar way\")\n            .build());\n\n        var qaUser = new User(\"qaUser\", UserArgs.builder()\n            .loginName(\"qa-user\")\n            .name(\"qa-user\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n        var mainQualityprofileUsergroupAssociation = new QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", QualityprofileUsergroupAssociationArgs.builder()\n            .profileName(main.qualityprofileId())\n            .language(language.id())\n            .loginName(qaUser.userId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: my_qualityprofile\n      language: java\n      parent: Sonar way\n  qaUser:\n    type: sonarqube:User\n    name: qa_user\n    properties:\n      loginName: qa-user\n      name: qa-user\n      password: secret-sauce37!\n  mainQualityprofileUsergroupAssociation:\n    type: sonarqube:QualityprofileUsergroupAssociation\n    name: main\n    properties:\n      profileName: ${main.qualityprofileId}\n      language: ${language.id}\n      loginName: ${qaUser.userId}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a quality profile group association\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualityprofile(\"main\", {\n    name: \"my_qualityprofile\",\n    language: \"java\",\n    parent: \"Sonar way\",\n});\nconst qaTeam = new sonarqube.Group(\"qa_team\", {\n    name: \"QA-Team\",\n    description: \"Quality Assurence Team\",\n});\nconst mainQualityprofileUsergroupAssociation = new sonarqube.QualityprofileUsergroupAssociation(\"main\", {\n    profileName: main.qualityprofileId,\n    language: language.id,\n    groupName: qaTeam.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualityprofile(\"main\",\n    name=\"my_qualityprofile\",\n    language=\"java\",\n    parent=\"Sonar way\")\nqa_team = sonarqube.Group(\"qa_team\",\n    name=\"QA-Team\",\n    description=\"Quality Assurence Team\")\nmain_qualityprofile_usergroup_association = sonarqube.QualityprofileUsergroupAssociation(\"main\",\n    profile_name=main.qualityprofile_id,\n    language=language[\"id\"],\n    group_name=qa_team.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = new Sonarqube.Qualityprofile(\"main\", new()\n    {\n        Name = \"my_qualityprofile\",\n        Language = \"java\",\n        Parent = \"Sonar way\",\n    });\n\n    var qaTeam = new Sonarqube.Group(\"qa_team\", new()\n    {\n        Name = \"QA-Team\",\n        Description = \"Quality Assurence Team\",\n    });\n\n    var mainQualityprofileUsergroupAssociation = new Sonarqube.QualityprofileUsergroupAssociation(\"main\", new()\n    {\n        ProfileName = main.QualityprofileId,\n        Language = language.Id,\n        GroupName = qaTeam.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmain, err := sonarqube.NewQualityprofile(ctx, \"main\", \u0026sonarqube.QualityprofileArgs{\n\t\t\tName:     pulumi.String(\"my_qualityprofile\"),\n\t\t\tLanguage: pulumi.String(\"java\"),\n\t\t\tParent:   pulumi.String(\"Sonar way\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tqaTeam, err := sonarqube.NewGroup(ctx, \"qa_team\", \u0026sonarqube.GroupArgs{\n\t\t\tName:        pulumi.String(\"QA-Team\"),\n\t\t\tDescription: pulumi.String(\"Quality Assurence Team\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewQualityprofileUsergroupAssociation(ctx, \"main\", \u0026sonarqube.QualityprofileUsergroupAssociationArgs{\n\t\t\tProfileName: main.QualityprofileId,\n\t\t\tLanguage:    pulumi.Any(language.Id),\n\t\t\tGroupName:   qaTeam.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.sonarqube.Qualityprofile;\nimport com.pulumi.sonarqube.QualityprofileArgs;\nimport com.pulumi.sonarqube.Group;\nimport com.pulumi.sonarqube.GroupArgs;\nimport com.pulumi.sonarqube.QualityprofileUsergroupAssociation;\nimport com.pulumi.sonarqube.QualityprofileUsergroupAssociationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = new Qualityprofile(\"main\", QualityprofileArgs.builder()\n            .name(\"my_qualityprofile\")\n            .language(\"java\")\n            .parent(\"Sonar way\")\n            .build());\n\n        var qaTeam = new Group(\"qaTeam\", GroupArgs.builder()\n            .name(\"QA-Team\")\n            .description(\"Quality Assurence Team\")\n            .build());\n\n        var mainQualityprofileUsergroupAssociation = new QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", QualityprofileUsergroupAssociationArgs.builder()\n            .profileName(main.qualityprofileId())\n            .language(language.id())\n            .groupName(qaTeam.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualityprofile\n    properties:\n      name: my_qualityprofile\n      language: java\n      parent: Sonar way\n  qaTeam:\n    type: sonarqube:Group\n    name: qa_team\n    properties:\n      name: QA-Team\n      description: Quality Assurence Team\n  mainQualityprofileUsergroupAssociation:\n    type: sonarqube:QualityprofileUsergroupAssociation\n    name: main\n    properties:\n      profileName: ${main.qualityprofileId}\n      language: ${language.id}\n      groupName: ${qaTeam.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"language":{"type":"string","description":"The language of the Quality Profile.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"profileName":{"type":"string","description":"The name of the Quality Profile.\n"},"qualityprofileUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["language","profileName","qualityprofileUsergroupAssociationId"],"inputProperties":{"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"language":{"type":"string","description":"The language of the Quality Profile.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"profileName":{"type":"string","description":"The name of the Quality Profile.\n"},"qualityprofileUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["language","profileName"],"stateInputs":{"description":"Input properties used for looking up and filtering QualityprofileUsergroupAssociation resources.\n","properties":{"groupName":{"type":"string","description":"The name of the Group to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"language":{"type":"string","description":"The language of the Quality Profile.\n"},"loginName":{"type":"string","description":"The name of the User to associate. Either \u003cspan pulumi-lang-nodejs=\"`groupName`\" pulumi-lang-dotnet=\"`GroupName`\" pulumi-lang-go=\"`groupName`\" pulumi-lang-python=\"`group_name`\" pulumi-lang-yaml=\"`groupName`\" pulumi-lang-java=\"`groupName`\"\u003e`group_name`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`loginName`\" pulumi-lang-dotnet=\"`LoginName`\" pulumi-lang-go=\"`loginName`\" pulumi-lang-python=\"`login_name`\" pulumi-lang-yaml=\"`loginName`\" pulumi-lang-java=\"`loginName`\"\u003e`login_name`\u003c/span\u003e should be provided.\n"},"profileName":{"type":"string","description":"The name of the Quality Profile.\n"},"qualityprofileUsergroupAssociationId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/rule:Rule":{"description":"Provides a Sonarqube Rules resource. This can be used to manage Sonarqube rules.\n","properties":{"customKey":{"type":"string","description":"key of the custom rule should only contain : a-z, 0-9, \\_"},"markdownDescription":{"type":"string","description":"Rule description"},"name":{"type":"string","description":"Rule name"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n  - parameter order: expression=value;filePattern=value;message=value"},"preventReactivation":{"type":"string","description":"If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned\n  - Possible values - true, false, yes, no"},"ruleId":{"type":"string"},"severity":{"type":"string","description":"Rule severity\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"},"status":{"type":"string","description":"Rule status\n  - Possible values - BETA, DEPRECATED, READY, REMOVED\n  - Default value - READY"},"templateKey":{"type":"string","description":"Key of the template rule in order to create a custom rule (mandatory for custom rule)\n  - [Example values](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)"},"type":{"type":"string","description":"Rule type\n  - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT"}},"type":"object","required":["customKey","markdownDescription","name","ruleId","templateKey"],"inputProperties":{"customKey":{"type":"string","description":"key of the custom rule should only contain : a-z, 0-9, \\_"},"markdownDescription":{"type":"string","description":"Rule description"},"name":{"type":"string","description":"Rule name"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n  - parameter order: expression=value;filePattern=value;message=value"},"preventReactivation":{"type":"string","description":"If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned\n  - Possible values - true, false, yes, no"},"ruleId":{"type":"string"},"severity":{"type":"string","description":"Rule severity\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"},"status":{"type":"string","description":"Rule status\n  - Possible values - BETA, DEPRECATED, READY, REMOVED\n  - Default value - READY"},"templateKey":{"type":"string","description":"Key of the template rule in order to create a custom rule (mandatory for custom rule)\n  - [Example values](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)"},"type":{"type":"string","description":"Rule type\n  - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT"}},"requiredInputs":["customKey","markdownDescription","templateKey"],"stateInputs":{"description":"Input properties used for looking up and filtering Rule resources.\n","properties":{"customKey":{"type":"string","description":"key of the custom rule should only contain : a-z, 0-9, \\_"},"markdownDescription":{"type":"string","description":"Rule description"},"name":{"type":"string","description":"Rule name"},"params":{"type":"string","description":"Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n  - parameter order: expression=value;filePattern=value;message=value"},"preventReactivation":{"type":"string","description":"If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned\n  - Possible values - true, false, yes, no"},"ruleId":{"type":"string"},"severity":{"type":"string","description":"Rule severity\n  - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER"},"status":{"type":"string","description":"Rule status\n  - Possible values - BETA, DEPRECATED, READY, REMOVED\n  - Default value - READY"},"templateKey":{"type":"string","description":"Key of the template rule in order to create a custom rule (mandatory for custom rule)\n  - [Example values](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)"},"type":{"type":"string","description":"Rule type\n  - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT"}},"type":"object"}},"sonarqube:index/setting:Setting":{"description":"Provides a Sonarqube Settings resource. This can be used to manage Sonarqube settings.\n\n## Example Usage\n\n### Example: create a setting with multiple values\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst multiValueSetting = new sonarqube.Setting(\"multi_value_setting\", {\n    key: \"sonar.global.exclusions\",\n    values: [\n        \"foo\",\n        \"bar/**/*.*\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmulti_value_setting = sonarqube.Setting(\"multi_value_setting\",\n    key=\"sonar.global.exclusions\",\n    values=[\n        \"foo\",\n        \"bar/**/*.*\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var multiValueSetting = new Sonarqube.Setting(\"multi_value_setting\", new()\n    {\n        Key = \"sonar.global.exclusions\",\n        Values = new[]\n        {\n            \"foo\",\n            \"bar/**/*.*\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewSetting(ctx, \"multi_value_setting\", \u0026sonarqube.SettingArgs{\n\t\t\tKey: pulumi.String(\"sonar.global.exclusions\"),\n\t\t\tValues: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"foo\"),\n\t\t\t\tpulumi.String(\"bar/**/*.*\"),\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.sonarqube.Setting;\nimport com.pulumi.sonarqube.SettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 multiValueSetting = new Setting(\"multiValueSetting\", SettingArgs.builder()\n            .key(\"sonar.global.exclusions\")\n            .values(            \n                \"foo\",\n                \"bar/**/*.*\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  multiValueSetting:\n    type: sonarqube:Setting\n    name: multi_value_setting\n    properties:\n      key: sonar.global.exclusions\n      values:\n        - foo\n        - bar/**/*.*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a setting with multiple field values\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst multiFieldSetting = new sonarqube.Setting(\"multi_field_setting\", {\n    key: \"sonar.issue.ignore.multicriteria\",\n    fieldValues: [\n        {\n            ruleKey: \"foo\",\n            resourceKey: \"bar\",\n        },\n        {\n            ruleKey: \"foo2\",\n            resourceKey: \"bar2\",\n        },\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmulti_field_setting = sonarqube.Setting(\"multi_field_setting\",\n    key=\"sonar.issue.ignore.multicriteria\",\n    field_values=[\n        {\n            \"ruleKey\": \"foo\",\n            \"resourceKey\": \"bar\",\n        },\n        {\n            \"ruleKey\": \"foo2\",\n            \"resourceKey\": \"bar2\",\n        },\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var multiFieldSetting = new Sonarqube.Setting(\"multi_field_setting\", new()\n    {\n        Key = \"sonar.issue.ignore.multicriteria\",\n        FieldValues = new[]\n        {\n            \n            {\n                { \"ruleKey\", \"foo\" },\n                { \"resourceKey\", \"bar\" },\n            },\n            \n            {\n                { \"ruleKey\", \"foo2\" },\n                { \"resourceKey\", \"bar2\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewSetting(ctx, \"multi_field_setting\", \u0026sonarqube.SettingArgs{\n\t\t\tKey: pulumi.String(\"sonar.issue.ignore.multicriteria\"),\n\t\t\tFieldValues: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ruleKey\":     pulumi.String(\"foo\"),\n\t\t\t\t\t\"resourceKey\": pulumi.String(\"bar\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"ruleKey\":     pulumi.String(\"foo2\"),\n\t\t\t\t\t\"resourceKey\": pulumi.String(\"bar2\"),\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.sonarqube.Setting;\nimport com.pulumi.sonarqube.SettingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 multiFieldSetting = new Setting(\"multiFieldSetting\", SettingArgs.builder()\n            .key(\"sonar.issue.ignore.multicriteria\")\n            .fieldValues(            \n                Map.ofEntries(\n                    Map.entry(\"ruleKey\", \"foo\"),\n                    Map.entry(\"resourceKey\", \"bar\")\n                ),\n                Map.ofEntries(\n                    Map.entry(\"ruleKey\", \"foo2\"),\n                    Map.entry(\"resourceKey\", \"bar2\")\n                ))\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  multiFieldSetting:\n    type: sonarqube:Setting\n    name: multi_field_setting\n    properties:\n      key: sonar.issue.ignore.multicriteria\n      fieldValues:\n        - ruleKey: foo\n          resourceKey: bar\n        - ruleKey: foo2\n          resourceKey: bar2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"fieldValues":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"Setting field values for the supplied key\n"},"key":{"type":"string","description":"Setting key\n"},"settingId":{"type":"string","description":"The ID of this resource.\n"},"value":{"type":"string","description":"Setting value. To reset a value, please use the reset web service.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Setting multi values for the supplied key\n"}},"type":"object","required":["key","settingId"],"inputProperties":{"fieldValues":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"Setting field values for the supplied key\n"},"key":{"type":"string","description":"Setting key\n"},"settingId":{"type":"string","description":"The ID of this resource.\n"},"value":{"type":"string","description":"Setting value. To reset a value, please use the reset web service.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Setting multi values for the supplied key\n"}},"requiredInputs":["key"],"stateInputs":{"description":"Input properties used for looking up and filtering Setting resources.\n","properties":{"fieldValues":{"type":"array","items":{"type":"object","additionalProperties":{"type":"string"}},"description":"Setting field values for the supplied key\n"},"key":{"type":"string","description":"Setting key\n"},"settingId":{"type":"string","description":"The ID of this resource.\n"},"value":{"type":"string","description":"Setting value. To reset a value, please use the reset web service.\n"},"values":{"type":"array","items":{"type":"string"},"description":"Setting multi values for the supplied key\n"}},"type":"object"}},"sonarqube:index/user:User":{"description":"Provides a Sonarqube User resource. This can be used to manage Sonarqube Users.\n\n## Example Usage\n\n### Example: create a local user\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst user = new sonarqube.User(\"user\", {\n    loginName: \"terraform-test\",\n    name: \"terraform-test\",\n    password: \"secret-sauce37!\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nuser = sonarqube.User(\"user\",\n    login_name=\"terraform-test\",\n    name=\"terraform-test\",\n    password=\"secret-sauce37!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Name = \"terraform-test\",\n        Password = \"secret-sauce37!\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewUser(ctx, \"user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\n\t\t\tName:      pulumi.String(\"terraform-test\"),\n\t\t\tPassword:  pulumi.String(\"secret-sauce37!\"),\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.sonarqube.User;\nimport com.pulumi.sonarqube.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 user = new User(\"user\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .name(\"terraform-test\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: sonarqube:User\n    properties:\n      loginName: terraform-test\n      name: terraform-test\n      password: secret-sauce37!\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a remote user\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst remoteUser = new sonarqube.User(\"remote_user\", {\n    loginName: \"terraform-test\",\n    name: \"terraform-test\",\n    email: \"terraform-test@sonarqube.com\",\n    isLocal: false,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nremote_user = sonarqube.User(\"remote_user\",\n    login_name=\"terraform-test\",\n    name=\"terraform-test\",\n    email=\"terraform-test@sonarqube.com\",\n    is_local=False)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var remoteUser = new Sonarqube.User(\"remote_user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Name = \"terraform-test\",\n        Email = \"terraform-test@sonarqube.com\",\n        IsLocal = false,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewUser(ctx, \"remote_user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\n\t\t\tName:      pulumi.String(\"terraform-test\"),\n\t\t\tEmail:     pulumi.String(\"terraform-test@sonarqube.com\"),\n\t\t\tIsLocal:   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.sonarqube.User;\nimport com.pulumi.sonarqube.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 remoteUser = new User(\"remoteUser\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .name(\"terraform-test\")\n            .email(\"terraform-test@sonarqube.com\")\n            .isLocal(false)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  remoteUser:\n    type: sonarqube:User\n    name: remote_user\n    properties:\n      loginName: terraform-test\n      name: terraform-test\n      email: terraform-test@sonarqube.com\n      isLocal: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"email":{"type":"string","description":"The email of the User to create.\n"},"isLocal":{"type":"boolean","description":"`True` if the User should be of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. 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"},"loginName":{"type":"string","description":"The login name of the User to create. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the User to create. Changing this forces a new resource to be created.\n"},"password":{"type":"string","description":"The password of User to create. This is only used if the user is of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e.\n","secret":true},"userId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["loginName","name","userId"],"inputProperties":{"email":{"type":"string","description":"The email of the User to create.\n"},"isLocal":{"type":"boolean","description":"`True` if the User should be of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. 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"},"loginName":{"type":"string","description":"The login name of the User to create. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the User to create. Changing this forces a new resource to be created.\n"},"password":{"type":"string","description":"The password of User to create. This is only used if the user is of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e.\n","secret":true},"userId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["loginName"],"stateInputs":{"description":"Input properties used for looking up and filtering User resources.\n","properties":{"email":{"type":"string","description":"The email of the User to create.\n"},"isLocal":{"type":"boolean","description":"`True` if the User should be of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e. 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"},"loginName":{"type":"string","description":"The login name of the User to create. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the User to create. Changing this forces a new resource to be created.\n"},"password":{"type":"string","description":"The password of User to create. This is only used if the user is of type \u003cspan pulumi-lang-nodejs=\"`local`\" pulumi-lang-dotnet=\"`Local`\" pulumi-lang-go=\"`local`\" pulumi-lang-python=\"`local`\" pulumi-lang-yaml=\"`local`\" pulumi-lang-java=\"`local`\"\u003e`local`\u003c/span\u003e.\n","secret":true},"userId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/userExternalIdentity:UserExternalIdentity":{"description":"Updates the _external identity_ of a _non local_ Sonarqube User. This can be used to set the _Identity Provider_ which should be used to\nauthenticate a specific user.\n\nThe Sonarqube API currently does not provide an endpoint to read the _external identity_ setting of an user.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\n//# Example: change the external identity to SAML\nconst remoteUser = new sonarqube.User(\"remote_user\", {\n    loginName: \"terraform-test\",\n    name: \"terraform-test\",\n    email: \"terraform-test@sonarqube.com\",\n    isLocal: false,\n});\nconst remoteUserUserExternalIdentity = new sonarqube.UserExternalIdentity(\"remote_user\", {\n    loginName: remoteUser.loginName,\n    externalIdentity: \"terraform-test@sonarqube.com\",\n    externalProvider: \"saml\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\n## Example: change the external identity to SAML\nremote_user = sonarqube.User(\"remote_user\",\n    login_name=\"terraform-test\",\n    name=\"terraform-test\",\n    email=\"terraform-test@sonarqube.com\",\n    is_local=False)\nremote_user_user_external_identity = sonarqube.UserExternalIdentity(\"remote_user\",\n    login_name=remote_user.login_name,\n    external_identity=\"terraform-test@sonarqube.com\",\n    external_provider=\"saml\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    //# Example: change the external identity to SAML\n    var remoteUser = new Sonarqube.User(\"remote_user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Name = \"terraform-test\",\n        Email = \"terraform-test@sonarqube.com\",\n        IsLocal = false,\n    });\n\n    var remoteUserUserExternalIdentity = new Sonarqube.UserExternalIdentity(\"remote_user\", new()\n    {\n        LoginName = remoteUser.LoginName,\n        ExternalIdentity = \"terraform-test@sonarqube.com\",\n        ExternalProvider = \"saml\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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// # Example: change the external identity to SAML\n\t\tremoteUser, err := sonarqube.NewUser(ctx, \"remote_user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\n\t\t\tName:      pulumi.String(\"terraform-test\"),\n\t\t\tEmail:     pulumi.String(\"terraform-test@sonarqube.com\"),\n\t\t\tIsLocal:   pulumi.Bool(false),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewUserExternalIdentity(ctx, \"remote_user\", \u0026sonarqube.UserExternalIdentityArgs{\n\t\t\tLoginName:        remoteUser.LoginName,\n\t\t\tExternalIdentity: pulumi.String(\"terraform-test@sonarqube.com\"),\n\t\t\tExternalProvider: pulumi.String(\"saml\"),\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.sonarqube.User;\nimport com.pulumi.sonarqube.UserArgs;\nimport com.pulumi.sonarqube.UserExternalIdentity;\nimport com.pulumi.sonarqube.UserExternalIdentityArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        //# Example: change the external identity to SAML\n        var remoteUser = new User(\"remoteUser\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .name(\"terraform-test\")\n            .email(\"terraform-test@sonarqube.com\")\n            .isLocal(false)\n            .build());\n\n        var remoteUserUserExternalIdentity = new UserExternalIdentity(\"remoteUserUserExternalIdentity\", UserExternalIdentityArgs.builder()\n            .loginName(remoteUser.loginName())\n            .externalIdentity(\"terraform-test@sonarqube.com\")\n            .externalProvider(\"saml\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ## Example: change the external identity to SAML\n  remoteUser:\n    type: sonarqube:User\n    name: remote_user\n    properties:\n      loginName: terraform-test\n      name: terraform-test\n      email: terraform-test@sonarqube.com\n      isLocal: false\n  remoteUserUserExternalIdentity:\n    type: sonarqube:UserExternalIdentity\n    name: remote_user\n    properties:\n      loginName: ${remoteUser.loginName}\n      externalIdentity: terraform-test@sonarqube.com\n      externalProvider: saml\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"externalIdentity":{"type":"string","description":"The identifier of the User used by the Authentication Provider. Changing this forces a new resource to be created.\n"},"externalProvider":{"type":"string","description":"The key of the Authentication Provider. The Authentication Provider must be activated on Sonarqube. Changing this forces a new resource to be created.\n"},"loginName":{"type":"string","description":"The login name of the User to update. Changing this forces a new resource to be created.\n"},"userExternalIdentityId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["externalIdentity","externalProvider","loginName","userExternalIdentityId"],"inputProperties":{"externalIdentity":{"type":"string","description":"The identifier of the User used by the Authentication Provider. Changing this forces a new resource to be created.\n"},"externalProvider":{"type":"string","description":"The key of the Authentication Provider. The Authentication Provider must be activated on Sonarqube. Changing this forces a new resource to be created.\n"},"loginName":{"type":"string","description":"The login name of the User to update. Changing this forces a new resource to be created.\n"},"userExternalIdentityId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["externalIdentity","externalProvider","loginName"],"stateInputs":{"description":"Input properties used for looking up and filtering UserExternalIdentity resources.\n","properties":{"externalIdentity":{"type":"string","description":"The identifier of the User used by the Authentication Provider. Changing this forces a new resource to be created.\n"},"externalProvider":{"type":"string","description":"The key of the Authentication Provider. The Authentication Provider must be activated on Sonarqube. Changing this forces a new resource to be created.\n"},"loginName":{"type":"string","description":"The login name of the User to update. Changing this forces a new resource to be created.\n"},"userExternalIdentityId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/userToken:UserToken":{"description":"Provides a Sonarqube User token resource. This can be used to manage Sonarqube User tokens.\n\n## Example Usage\n\n### Example: create a user, user token and output the token value\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst user = new sonarqube.User(\"user\", {\n    loginName: \"terraform-test\",\n    name: \"terraform-test\",\n    password: \"secret-sauce37!\",\n});\nconst token = new sonarqube.UserToken(\"token\", {\n    loginName: user.loginName,\n    name: \"my-token\",\n});\nexport const userToken = token.token;\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nuser = sonarqube.User(\"user\",\n    login_name=\"terraform-test\",\n    name=\"terraform-test\",\n    password=\"secret-sauce37!\")\ntoken = sonarqube.UserToken(\"token\",\n    login_name=user.login_name,\n    name=\"my-token\")\npulumi.export(\"userToken\", token.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Name = \"terraform-test\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        LoginName = user.LoginName,\n        Name = \"my-token\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"userToken\"] = token.Token,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tuser, err := sonarqube.NewUser(ctx, \"user\", \u0026sonarqube.UserArgs{\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\n\t\t\tName:      pulumi.String(\"terraform-test\"),\n\t\t\tPassword:  pulumi.String(\"secret-sauce37!\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttoken, err := sonarqube.NewUserToken(ctx, \"token\", \u0026sonarqube.UserTokenArgs{\n\t\t\tLoginName: user.LoginName,\n\t\t\tName:      pulumi.String(\"my-token\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"userToken\", token.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.sonarqube.User;\nimport com.pulumi.sonarqube.UserArgs;\nimport com.pulumi.sonarqube.UserToken;\nimport com.pulumi.sonarqube.UserTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 user = new User(\"user\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .name(\"terraform-test\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n        var token = new UserToken(\"token\", UserTokenArgs.builder()\n            .loginName(user.loginName())\n            .name(\"my-token\")\n            .build());\n\n        ctx.export(\"userToken\", token.token());\n    }\n}\n```\n```yaml\nresources:\n  user:\n    type: sonarqube:User\n    properties:\n      loginName: terraform-test\n      name: terraform-test\n      password: secret-sauce37!\n  token:\n    type: sonarqube:UserToken\n    properties:\n      loginName: ${user.loginName}\n      name: my-token\noutputs:\n  userToken: ${token.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create an expiring global analysis token and output the token value\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst token = new sonarqube.UserToken(\"token\", {\n    name: \"my-token\",\n    type: \"GLOBAL_ANALYSIS_TOKEN\",\n    expirationDate: \"2099-01-01\",\n});\nexport const globalAnalysisToken = token.token;\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ntoken = sonarqube.UserToken(\"token\",\n    name=\"my-token\",\n    type=\"GLOBAL_ANALYSIS_TOKEN\",\n    expiration_date=\"2099-01-01\")\npulumi.export(\"globalAnalysisToken\", token.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        Name = \"my-token\",\n        Type = \"GLOBAL_ANALYSIS_TOKEN\",\n        ExpirationDate = \"2099-01-01\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"globalAnalysisToken\"] = token.Token,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttoken, err := sonarqube.NewUserToken(ctx, \"token\", \u0026sonarqube.UserTokenArgs{\n\t\t\tName:           pulumi.String(\"my-token\"),\n\t\t\tType:           pulumi.String(\"GLOBAL_ANALYSIS_TOKEN\"),\n\t\t\tExpirationDate: pulumi.String(\"2099-01-01\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"globalAnalysisToken\", token.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.sonarqube.UserToken;\nimport com.pulumi.sonarqube.UserTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 token = new UserToken(\"token\", UserTokenArgs.builder()\n            .name(\"my-token\")\n            .type(\"GLOBAL_ANALYSIS_TOKEN\")\n            .expirationDate(\"2099-01-01\")\n            .build());\n\n        ctx.export(\"globalAnalysisToken\", token.token());\n    }\n}\n```\n```yaml\nresources:\n  token:\n    type: sonarqube:UserToken\n    properties:\n      name: my-token\n      type: GLOBAL_ANALYSIS_TOKEN\n      expirationDate: 2099-01-01\noutputs:\n  globalAnalysisToken: ${token.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a project, project analysis token, and output the token value\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst token = new sonarqube.UserToken(\"token\", {\n    name: \"my-token\",\n    type: \"PROJECT_ANALYSIS_TOKEN\",\n    projectKey: \"my-project\",\n});\nexport const projectAnalysisToken = token.token;\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ntoken = sonarqube.UserToken(\"token\",\n    name=\"my-token\",\n    type=\"PROJECT_ANALYSIS_TOKEN\",\n    project_key=\"my-project\")\npulumi.export(\"projectAnalysisToken\", token.token)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        Name = \"my-token\",\n        Type = \"PROJECT_ANALYSIS_TOKEN\",\n        ProjectKey = \"my-project\",\n    });\n\n    return new Dictionary\u003cstring, object?\u003e\n    {\n        [\"projectAnalysisToken\"] = token.Token,\n    };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttoken, err := sonarqube.NewUserToken(ctx, \"token\", \u0026sonarqube.UserTokenArgs{\n\t\t\tName:       pulumi.String(\"my-token\"),\n\t\t\tType:       pulumi.String(\"PROJECT_ANALYSIS_TOKEN\"),\n\t\t\tProjectKey: pulumi.String(\"my-project\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"projectAnalysisToken\", token.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.sonarqube.UserToken;\nimport com.pulumi.sonarqube.UserTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 token = new UserToken(\"token\", UserTokenArgs.builder()\n            .name(\"my-token\")\n            .type(\"PROJECT_ANALYSIS_TOKEN\")\n            .projectKey(\"my-project\")\n            .build());\n\n        ctx.export(\"projectAnalysisToken\", token.token());\n    }\n}\n```\n```yaml\nresources:\n  token:\n    type: sonarqube:UserToken\n    properties:\n      name: my-token\n      type: PROJECT_ANALYSIS_TOKEN\n      projectKey: my-project\noutputs:\n  projectAnalysisToken: ${token.token}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"expirationDate":{"type":"string","description":"The expiration date of the token being generated, in ISO 8601 format (YYYY-MM-DD). If not set, default to no expiration.\n"},"loginName":{"type":"string","description":"The login name of the User for which the token should be created. If not set, the token is created for the authenticated user. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Token to create. Changing this forces a new resource to be created.\n"},"projectKey":{"type":"string","description":"The key of the only project that can be analyzed by the PROJECT_ANALYSIS TOKEN being created. Changing this forces a new resource to be created.\n"},"token":{"type":"string","description":"The token value.\n","secret":true},"type":{"type":"string","description":"The kind of Token to create. Changing this forces a new resource to be created. Possible values are USER*TOKEN, GLOBAL*ANALYSIS*TOKEN, or PROJECT*ANALYSIS*TOKEN. Defaults to USER*TOKEN. If set to PROJECT*ANALYSIS*TOKEN, then the\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003emust also be specified.\n"},"userTokenId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["expirationDate","name","token","userTokenId"],"inputProperties":{"expirationDate":{"type":"string","description":"The expiration date of the token being generated, in ISO 8601 format (YYYY-MM-DD). If not set, default to no expiration.\n"},"loginName":{"type":"string","description":"The login name of the User for which the token should be created. If not set, the token is created for the authenticated user. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Token to create. Changing this forces a new resource to be created.\n"},"projectKey":{"type":"string","description":"The key of the only project that can be analyzed by the PROJECT_ANALYSIS TOKEN being created. Changing this forces a new resource to be created.\n"},"type":{"type":"string","description":"The kind of Token to create. Changing this forces a new resource to be created. Possible values are USER*TOKEN, GLOBAL*ANALYSIS*TOKEN, or PROJECT*ANALYSIS*TOKEN. Defaults to USER*TOKEN. If set to PROJECT*ANALYSIS*TOKEN, then the\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003emust also be specified.\n"},"userTokenId":{"type":"string","description":"The ID of this resource.\n"}},"stateInputs":{"description":"Input properties used for looking up and filtering UserToken resources.\n","properties":{"expirationDate":{"type":"string","description":"The expiration date of the token being generated, in ISO 8601 format (YYYY-MM-DD). If not set, default to no expiration.\n"},"loginName":{"type":"string","description":"The login name of the User for which the token should be created. If not set, the token is created for the authenticated user. Changing this forces a new resource to be created.\n"},"name":{"type":"string","description":"The name of the Token to create. Changing this forces a new resource to be created.\n"},"projectKey":{"type":"string","description":"The key of the only project that can be analyzed by the PROJECT_ANALYSIS TOKEN being created. Changing this forces a new resource to be created.\n"},"token":{"type":"string","description":"The token value.\n","secret":true},"type":{"type":"string","description":"The kind of Token to create. Changing this forces a new resource to be created. Possible values are USER*TOKEN, GLOBAL*ANALYSIS*TOKEN, or PROJECT*ANALYSIS*TOKEN. Defaults to USER*TOKEN. If set to PROJECT*ANALYSIS*TOKEN, then the\u003cspan pulumi-lang-nodejs=\" projectKey \" pulumi-lang-dotnet=\" ProjectKey \" pulumi-lang-go=\" projectKey \" pulumi-lang-python=\" project_key \" pulumi-lang-yaml=\" projectKey \" pulumi-lang-java=\" projectKey \"\u003e project_key \u003c/span\u003emust also be specified.\n"},"userTokenId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}},"sonarqube:index/webhook:Webhook":{"description":"Provides a Sonarqube Webhook resource. This can be used to manage Sonarqube webhooks.\n\n## Example Usage\n\n### Example: create a webhook\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst webhook = new sonarqube.Webhook(\"webhook\", {\n    name: \"terraform-webhook\",\n    url: \"https://my-webhook-destination.example.com\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nwebhook = sonarqube.Webhook(\"webhook\",\n    name=\"terraform-webhook\",\n    url=\"https://my-webhook-destination.example.com\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var webhook = new Sonarqube.Webhook(\"webhook\", new()\n    {\n        Name = \"terraform-webhook\",\n        Url = \"https://my-webhook-destination.example.com\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewWebhook(ctx, \"webhook\", \u0026sonarqube.WebhookArgs{\n\t\t\tName: pulumi.String(\"terraform-webhook\"),\n\t\t\tUrl:  pulumi.String(\"https://my-webhook-destination.example.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.sonarqube.Webhook;\nimport com.pulumi.sonarqube.WebhookArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 webhook = new Webhook(\"webhook\", WebhookArgs.builder()\n            .name(\"terraform-webhook\")\n            .url(\"https://my-webhook-destination.example.com\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  webhook:\n    type: sonarqube:Webhook\n    properties:\n      name: terraform-webhook\n      url: https://my-webhook-destination.example.com\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example: create a webhook owned by a project\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst project = new sonarqube.Project(\"project\", {\n    name: \"project\",\n    project: \"project\",\n    visibility: \"public\",\n});\nconst webhook = new sonarqube.Webhook(\"webhook\", {\n    name: \"terraform-webhook\",\n    url: \"https://my-webhook-destination.example.com\",\n    project: project.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nproject = sonarqube.Project(\"project\",\n    name=\"project\",\n    project=\"project\",\n    visibility=\"public\")\nwebhook = sonarqube.Webhook(\"webhook\",\n    name=\"terraform-webhook\",\n    url=\"https://my-webhook-destination.example.com\",\n    project=project.name)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = new Sonarqube.Project(\"project\", new()\n    {\n        Name = \"project\",\n        Project = \"project\",\n        Visibility = \"public\",\n    });\n\n    var webhook = new Sonarqube.Webhook(\"webhook\", new()\n    {\n        Name = \"terraform-webhook\",\n        Url = \"https://my-webhook-destination.example.com\",\n        Project = project.Name,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.NewProject(ctx, \"project\", \u0026sonarqube.ProjectArgs{\n\t\t\tName:       pulumi.String(\"project\"),\n\t\t\tProject:    pulumi.String(\"project\"),\n\t\t\tVisibility: pulumi.String(\"public\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.NewWebhook(ctx, \"webhook\", \u0026sonarqube.WebhookArgs{\n\t\t\tName:    pulumi.String(\"terraform-webhook\"),\n\t\t\tUrl:     pulumi.String(\"https://my-webhook-destination.example.com\"),\n\t\t\tProject: project.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.sonarqube.Project;\nimport com.pulumi.sonarqube.ProjectArgs;\nimport com.pulumi.sonarqube.Webhook;\nimport com.pulumi.sonarqube.WebhookArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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(\"project\")\n            .project(\"project\")\n            .visibility(\"public\")\n            .build());\n\n        var webhook = new Webhook(\"webhook\", WebhookArgs.builder()\n            .name(\"terraform-webhook\")\n            .url(\"https://my-webhook-destination.example.com\")\n            .project(project.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  project:\n    type: sonarqube:Project\n    properties:\n      name: project\n      project: project\n      visibility: public\n  webhook:\n    type: sonarqube:Webhook\n    properties:\n      name: terraform-webhook\n      url: https://my-webhook-destination.example.com\n      project: ${project.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","properties":{"name":{"type":"string","description":"The name of the webhook to create. This will be displayed in the Sonarqube administration console.\n"},"project":{"type":"string","description":"The key of the project that will own the webhook.\n"},"secret":{"type":"string","description":"The secret to send with the event payload.\n","secret":true},"url":{"type":"string","description":"The URL to send event payloads to. This must begin with either `https://` or `http://`.\n"},"webhookId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object","required":["name","secret","url","webhookId"],"inputProperties":{"name":{"type":"string","description":"The name of the webhook to create. This will be displayed in the Sonarqube administration console.\n"},"project":{"type":"string","description":"The key of the project that will own the webhook.\n"},"secret":{"type":"string","description":"The secret to send with the event payload.\n","secret":true},"url":{"type":"string","description":"The URL to send event payloads to. This must begin with either `https://` or `http://`.\n"},"webhookId":{"type":"string","description":"The ID of this resource.\n"}},"requiredInputs":["url"],"stateInputs":{"description":"Input properties used for looking up and filtering Webhook resources.\n","properties":{"name":{"type":"string","description":"The name of the webhook to create. This will be displayed in the Sonarqube administration console.\n"},"project":{"type":"string","description":"The key of the project that will own the webhook.\n"},"secret":{"type":"string","description":"The secret to send with the event payload.\n","secret":true},"url":{"type":"string","description":"The URL to send event payloads to. This must begin with either `https://` or `http://`.\n"},"webhookId":{"type":"string","description":"The ID of this resource.\n"}},"type":"object"}}},"functions":{"pulumi:providers:sonarqube/terraformConfig":{"description":"This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.","inputs":{"properties":{"__self__":{"$ref":"#/resources/pulumi:providers:sonarqube"}},"type":"object","required":["__self__"]},"outputs":{"properties":{"result":{"additionalProperties":{"$ref":"pulumi.json#/Any"},"type":"object"}},"required":["result"],"type":"object"}},"sonarqube:index/getAlmAzure:getAlmAzure":{"description":"Use this data source to get an Azure DevOps ALM definition.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst example = sonarqube.getAlmAzure({\n    key: \"my-azure-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nexample = sonarqube.get_alm_azure(key=\"my-azure-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Sonarqube.GetAlmAzure.Invoke(new()\n    {\n        Key = \"my-azure-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupAlmAzure(ctx, \u0026sonarqube.LookupAlmAzureArgs{\n\t\t\tKey: \"my-azure-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetAlmAzureArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = SonarqubeFunctions.getAlmAzure(GetAlmAzureArgs.builder()\n            .key(\"my-azure-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: sonarqube:getAlmAzure\n      arguments:\n        key: my-azure-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlmAzure.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the Azure DevOps instance setting.\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getAlmAzure.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"Unique key of the Azure DevOps instance setting.\n","type":"string"},"url":{"description":"Azure API URL.\n","type":"string"}},"required":["id","key","url"],"type":"object"}},"sonarqube:index/getAlmGithub:getAlmGithub":{"description":"Use this data source to get a GitHub ALM definition.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst example = sonarqube.getAlmGithub({\n    key: \"my-github-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nexample = sonarqube.get_alm_github(key=\"my-github-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Sonarqube.GetAlmGithub.Invoke(new()\n    {\n        Key = \"my-github-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupAlmGithub(ctx, \u0026sonarqube.LookupAlmGithubArgs{\n\t\t\tKey: \"my-github-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetAlmGithubArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = SonarqubeFunctions.getAlmGithub(GetAlmGithubArgs.builder()\n            .key(\"my-github-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: sonarqube:getAlmGithub\n      arguments:\n        key: my-github-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlmGithub.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the GitHub instance setting.\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getAlmGithub.\n","properties":{"appId":{"description":"GitHub App ID.\n","type":"string"},"clientId":{"description":"GitHub App Client ID.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"Unique key of the GitHub instance setting.\n","type":"string"},"url":{"description":"GitHub API URL.\n","type":"string"}},"required":["appId","clientId","id","key","url"],"type":"object"}},"sonarqube:index/getAlmGitlab:getAlmGitlab":{"description":"Use this data source to get a GitLab ALM definition.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst example = sonarqube.getAlmGitlab({\n    key: \"my-gitlab-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nexample = sonarqube.get_alm_gitlab(key=\"my-gitlab-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Sonarqube.GetAlmGitlab.Invoke(new()\n    {\n        Key = \"my-gitlab-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupAlmGitlab(ctx, \u0026sonarqube.LookupAlmGitlabArgs{\n\t\t\tKey: \"my-gitlab-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetAlmGitlabArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = SonarqubeFunctions.getAlmGitlab(GetAlmGitlabArgs.builder()\n            .key(\"my-gitlab-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: sonarqube:getAlmGitlab\n      arguments:\n        key: my-gitlab-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getAlmGitlab.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Unique key of the GitLab instance setting.\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getAlmGitlab.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"Unique key of the GitLab instance setting.\n","type":"string"},"url":{"description":"GitLab API URL.\n","type":"string"}},"required":["id","key","url"],"type":"object"}},"sonarqube:index/getGroup:getGroup":{"description":"Use this data source to get a Sonarqube Group resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst group = sonarqube.getGroup({\n    name: \"terraform-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngroup = sonarqube.get_group(name=\"terraform-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var @group = Sonarqube.GetGroup.Invoke(new()\n    {\n        Name = \"terraform-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupGroup(ctx, \u0026sonarqube.LookupGroupArgs{\n\t\t\tName: \"terraform-test\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.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 group = SonarqubeFunctions.getGroup(GetGroupArgs.builder()\n            .name(\"terraform-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  group:\n    fn::invoke:\n      function: sonarqube:getGroup\n      arguments:\n        name: terraform-test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroup.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the group.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getGroup.\n","properties":{"description":{"description":"The group description.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"The name of the group.\n","type":"string"}},"required":["description","id","name"],"type":"object"}},"sonarqube:index/getGroupMembers:getGroupMembers":{"description":"Use this data source to get Sonarqube group member resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst groupMembers = sonarqube.getGroupMembers({\n    group: \"sonar-users\",\n    ignoreMissing: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngroup_members = sonarqube.get_group_members(group=\"sonar-users\",\n    ignore_missing=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var groupMembers = Sonarqube.GetGroupMembers.Invoke(new()\n    {\n        Group = \"sonar-users\",\n        IgnoreMissing = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetGroupMembers(ctx, \u0026sonarqube.GetGroupMembersArgs{\n\t\t\tGroup:         \"sonar-users\",\n\t\t\tIgnoreMissing: pulumi.BoolRef(true),\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetGroupMembersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 groupMembers = SonarqubeFunctions.getGroupMembers(GetGroupMembersArgs.builder()\n            .group(\"sonar-users\")\n            .ignoreMissing(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  groupMembers:\n    fn::invoke:\n      function: sonarqube:getGroupMembers\n      arguments:\n        group: sonar-users\n        ignoreMissing: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroupMembers.\n","properties":{"group":{"type":"string","description":"The name of the group.\n"},"id":{"type":"string","description":"The ID of this resource.\n"},"ignoreMissing":{"type":"boolean","description":"If set to true, the data source will not fail if the group does not exist.\n"},"loginName":{"type":"string","description":"To limit the search to a specific user.\n"}},"type":"object","required":["group"]},"outputs":{"description":"A collection of values returned by getGroupMembers.\n","properties":{"group":{"description":"The name of the group.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"ignoreMissing":{"description":"If set to true, the data source will not fail if the group does not exist.\n","type":"boolean"},"loginName":{"description":"To limit the search to a specific user.\n","type":"string"},"members":{"description":"The list of members in the group.\n","items":{"$ref":"#/types/sonarqube:index%2FgetGroupMembersMember:getGroupMembersMember"},"type":"array"}},"required":["group","id","members"],"type":"object"}},"sonarqube:index/getGroups:getGroups":{"description":"Use this data source to get Sonarqube group resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst groups = sonarqube.getGroups({});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ngroups = sonarqube.get_groups()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var groups = Sonarqube.GetGroups.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetGroups(ctx, \u0026sonarqube.GetGroupsArgs{}, 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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.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 groups = SonarqubeFunctions.getGroups(GetGroupsArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  groups:\n    fn::invoke:\n      function: sonarqube:getGroups\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getGroups.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"search":{"type":"string","description":"Search groups by name.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getGroups.\n","properties":{"groups":{"description":"The list of groups.\n","items":{"$ref":"#/types/sonarqube:index%2FgetGroupsGroup:getGroupsGroup"},"type":"array"},"id":{"description":"The ID of this resource.\n","type":"string"},"search":{"description":"Search groups by name.\n","type":"string"}},"required":["groups","id"],"type":"object"}},"sonarqube:index/getLanguages:getLanguages":{"description":"Use this data source to get Sonarqube language resources.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst languages = sonarqube.getLanguages({});\nconst languagesJava = sonarqube.getLanguages({\n    search: \"java\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nlanguages = sonarqube.get_languages()\nlanguages_java = sonarqube.get_languages(search=\"java\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var languages = Sonarqube.GetLanguages.Invoke();\n\n    var languagesJava = Sonarqube.GetLanguages.Invoke(new()\n    {\n        Search = \"java\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetLanguages(ctx, \u0026sonarqube.GetLanguagesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.GetLanguages(ctx, \u0026sonarqube.GetLanguagesArgs{\n\t\t\tSearch: pulumi.StringRef(\"java\"),\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetLanguagesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 languages = SonarqubeFunctions.getLanguages(GetLanguagesArgs.builder()\n            .build());\n\n        final var languagesJava = SonarqubeFunctions.getLanguages(GetLanguagesArgs.builder()\n            .search(\"java\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  languages:\n    fn::invoke:\n      function: sonarqube:getLanguages\n      arguments: {}\n  languagesJava:\n    fn::invoke:\n      function: sonarqube:getLanguages\n      arguments:\n        search: java\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getLanguages.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"search":{"type":"string","description":"Search languages by key or name.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getLanguages.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"languages":{"description":"The list of languages.\n","items":{"$ref":"#/types/sonarqube:index%2FgetLanguagesLanguage:getLanguagesLanguage"},"type":"array"},"search":{"description":"Search languages by key or name.\n","type":"string"}},"required":["id","languages"],"type":"object"}},"sonarqube:index/getPermissionTemplates:getPermissionTemplates":{"description":"Use this data source to get Sonarqube permission templates resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst permissionTemplates = sonarqube.getPermissionTemplates({});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\npermission_templates = sonarqube.get_permission_templates()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var permissionTemplates = Sonarqube.GetPermissionTemplates.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetPermissionTemplates(ctx, \u0026sonarqube.GetPermissionTemplatesArgs{}, 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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetPermissionTemplatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 permissionTemplates = SonarqubeFunctions.getPermissionTemplates(GetPermissionTemplatesArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  permissionTemplates:\n    fn::invoke:\n      function: sonarqube:getPermissionTemplates\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPermissionTemplates.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"search":{"type":"string","description":"Search permission templates by name.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getPermissionTemplates.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"permissionTemplates":{"description":"The list of permission templates.\n","items":{"$ref":"#/types/sonarqube:index%2FgetPermissionTemplatesPermissionTemplate:getPermissionTemplatesPermissionTemplate"},"type":"array"},"search":{"description":"Search permission templates by name.\n","type":"string"}},"required":["id","permissionTemplates"],"type":"object"}},"sonarqube:index/getPortfolio:getPortfolio":{"description":"Use this data source to get a Sonarqube portfolio resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst portfolio = sonarqube.getPortfolio({\n    key: \"portfolio-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nportfolio = sonarqube.get_portfolio(key=\"portfolio-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var portfolio = Sonarqube.GetPortfolio.Invoke(new()\n    {\n        Key = \"portfolio-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupPortfolio(ctx, \u0026sonarqube.LookupPortfolioArgs{\n\t\t\tKey: \"portfolio-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetPortfolioArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 portfolio = SonarqubeFunctions.getPortfolio(GetPortfolioArgs.builder()\n            .key(\"portfolio-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  portfolio:\n    fn::invoke:\n      function: sonarqube:getPortfolio\n      arguments:\n        key: portfolio-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getPortfolio.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"The key of the portfolio\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getPortfolio.\n","properties":{"branch":{"description":"Which branch is analyzed\n","type":"string"},"description":{"description":"Description of the portfolio\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"The key of the portfolio\n","type":"string"},"name":{"description":"Name of the portfolio\n","type":"string"},"qualifier":{"description":"`VW` (portfolios always have this qualifier)\n","type":"string"},"regexp":{"description":"The regular expression used to populate the portfolio. Only active when \u003cspan pulumi-lang-nodejs=\"`selectionMode`\" pulumi-lang-dotnet=\"`SelectionMode`\" pulumi-lang-go=\"`selectionMode`\" pulumi-lang-python=\"`selection_mode`\" pulumi-lang-yaml=\"`selectionMode`\" pulumi-lang-java=\"`selectionMode`\"\u003e`selection_mode`\u003c/span\u003e is `REGEXP`\n","type":"string"},"selectionMode":{"description":"How the Portfolio is populated. Possible values are `NONE`, `MANUAL`, `TAGS`, `REGEXP` or `REST`. [See docs](https://docs.sonarqube.org/9.8/project-administration/managing-portfolios/#populating-portfolios) for how Portfolio population works\n","type":"string"},"tags":{"description":"The list of tags used to populate the Portfolio. Only active when \u003cspan pulumi-lang-nodejs=\"`selectionMode`\" pulumi-lang-dotnet=\"`SelectionMode`\" pulumi-lang-go=\"`selectionMode`\" pulumi-lang-python=\"`selection_mode`\" pulumi-lang-yaml=\"`selectionMode`\" pulumi-lang-java=\"`selectionMode`\"\u003e`selection_mode`\u003c/span\u003e is `TAGS`\n","items":{"type":"string"},"type":"array"},"visibility":{"description":"Portfolio visibility\n","type":"string"}},"required":["branch","description","id","key","name","qualifier","regexp","selectionMode","tags","visibility"],"type":"object"}},"sonarqube:index/getProject:getProject":{"description":"Use this data source to get a Sonarqube project resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst project = sonarqube.getProject({\n    project: \"projet-key-id\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nproject = sonarqube.get_project(project=\"projet-key-id\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var project = Sonarqube.GetProject.Invoke(new()\n    {\n        Project = \"projet-key-id\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupProject(ctx, \u0026sonarqube.LookupProjectArgs{\n\t\t\tProject: \"projet-key-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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.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 project = SonarqubeFunctions.getProject(GetProjectArgs.builder()\n            .project(\"projet-key-id\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  project:\n    fn::invoke:\n      function: sonarqube:getProject\n      arguments:\n        project: projet-key-id\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getProject.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"project":{"type":"string","description":"The project key of the project\n"}},"type":"object","required":["project"]},"outputs":{"description":"A collection of values returned by getProject.\n","properties":{"badgeToken":{"description":"The badge token for the project.\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"name":{"description":"Name of the project\n","type":"string"},"project":{"description":"The project key of the project\n","type":"string"},"visibility":{"description":"Project visibility\n","type":"string"}},"required":["badgeToken","id","name","project","visibility"],"type":"object"}},"sonarqube:index/getQualitygate:getQualitygate":{"description":"Use this data source to get a Sonarqube qualitygate resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = sonarqube.getQualitygate({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.get_qualitygate(name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = Sonarqube.GetQualitygate.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupQualitygate(ctx, \u0026sonarqube.LookupQualitygateArgs{\n\t\t\tName: \"example\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualitygateArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = SonarqubeFunctions.getQualitygate(GetQualitygateArgs.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  main:\n    fn::invoke:\n      function: sonarqube:getQualitygate\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualitygate.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"name":{"type":"string","description":"The name of the Quality Gate.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getQualitygate.\n","properties":{"conditions":{"description":"List of Quality Gate conditions.\n","items":{"$ref":"#/types/sonarqube:index%2FgetQualitygateCondition:getQualitygateCondition"},"type":"array"},"copyFrom":{"description":"Origin of the Quality Gate\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"isDefault":{"description":"Quality Gate default.\n","type":"boolean"},"name":{"description":"The name of the Quality Gate.\n","type":"string"}},"required":["conditions","copyFrom","id","isDefault","name"],"type":"object"}},"sonarqube:index/getQualitygates:getQualitygates":{"description":"Use this data source to get Sonarqube quality gates resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst qualitygates = sonarqube.getQualitygates({});\nconst qualitygatesSonarway = sonarqube.getQualitygates({\n    name: \"Sonar way\",\n    ignoreMissing: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nqualitygates = sonarqube.get_qualitygates()\nqualitygates_sonarway = sonarqube.get_qualitygates(name=\"Sonar way\",\n    ignore_missing=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var qualitygates = Sonarqube.GetQualitygates.Invoke();\n\n    var qualitygatesSonarway = Sonarqube.GetQualitygates.Invoke(new()\n    {\n        Name = \"Sonar way\",\n        IgnoreMissing = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetQualitygates(ctx, \u0026sonarqube.GetQualitygatesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.GetQualitygates(ctx, \u0026sonarqube.GetQualitygatesArgs{\n\t\t\tName:          \"Sonar way\",\n\t\t\tIgnoreMissing: pulumi.BoolRef(true),\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualitygatesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 qualitygates = SonarqubeFunctions.getQualitygates(GetQualitygatesArgs.builder()\n            .build());\n\n        final var qualitygatesSonarway = SonarqubeFunctions.getQualitygates(GetQualitygatesArgs.builder()\n            .name(\"Sonar way\")\n            .ignoreMissing(true)\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  qualitygates:\n    fn::invoke:\n      function: sonarqube:getQualitygates\n      arguments: {}\n  qualitygatesSonarway:\n    fn::invoke:\n      function: sonarqube:getQualitygates\n      arguments:\n        name: Sonar way\n        ignoreMissing: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualitygates.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"ignoreMissing":{"type":"boolean","description":"If set to true, the data source will not fail if the quality gate does not exist.\n"},"name":{"type":"string","description":"Search quality gates by name.\n"}},"type":"object","required":["name"]},"outputs":{"description":"A collection of values returned by getQualitygates.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"ignoreMissing":{"description":"If set to true, the data source will not fail if the quality gate does not exist.\n","type":"boolean"},"name":{"description":"Search quality gates by name.\n","type":"string"},"qualityGates":{"description":"The list of quality gates.\n","items":{"$ref":"#/types/sonarqube:index%2FgetQualitygatesQualityGate:getQualitygatesQualityGate"},"type":"array"}},"required":["id","name","qualityGates"],"type":"object"}},"sonarqube:index/getQualityprofile:getQualityprofile":{"description":"Use this data source to get a Sonarqube qualityprofile resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = sonarqube.getQualityprofile({\n    name: \"example\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.get_qualityprofile(name=\"example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var main = Sonarqube.GetQualityprofile.Invoke(new()\n    {\n        Name = \"example\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupQualityprofile(ctx, \u0026sonarqube.LookupQualityprofileArgs{\n\t\t\tName: pulumi.StringRef(\"example\"),\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualityprofileArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 main = SonarqubeFunctions.getQualityprofile(GetQualityprofileArgs.builder()\n            .name(\"example\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  main:\n    fn::invoke:\n      function: sonarqube:getQualityprofile\n      arguments:\n        name: example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualityprofile.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"The key of the Quality Profile\n"},"language":{"type":"string","description":"Quality Profile language\n"},"name":{"type":"string","description":"The name of the Quality Profile\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getQualityprofile.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"isDefault":{"description":"Quality Profile default\n","type":"boolean"},"key":{"description":"The key of the Quality Profile\n","type":"string"},"language":{"description":"Quality Profile language\n","type":"string"},"name":{"description":"The name of the Quality Profile\n","type":"string"}},"required":["id","isDefault","key","language","name"],"type":"object"}},"sonarqube:index/getQualityprofileActiveRules:getQualityprofileActiveRules":{"description":"Use this data source to list active rules on a Sonarqube quality profile.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst example = sonarqube.getQualityprofileActiveRules({\n    key: \"my-quality-profile-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nexample = sonarqube.get_qualityprofile_active_rules(key=\"my-quality-profile-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Sonarqube.GetQualityprofileActiveRules.Invoke(new()\n    {\n        Key = \"my-quality-profile-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetQualityprofileActiveRules(ctx, \u0026sonarqube.GetQualityprofileActiveRulesArgs{\n\t\t\tKey: \"my-quality-profile-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualityprofileActiveRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = SonarqubeFunctions.getQualityprofileActiveRules(GetQualityprofileActiveRulesArgs.builder()\n            .key(\"my-quality-profile-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: sonarqube:getQualityprofileActiveRules\n      arguments:\n        key: my-quality-profile-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualityprofileActiveRules.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search.\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getQualityprofileActiveRules.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"Quality Profile key. Can be obtained through api/qualityprofiles/search.\n","type":"string"},"rules":{"description":"List of active rules for the quality profile.\n","items":{"$ref":"#/types/sonarqube:index%2FgetQualityprofileActiveRulesRule:getQualityprofileActiveRulesRule"},"type":"array"}},"required":["id","key","rules"],"type":"object"}},"sonarqube:index/getQualityprofileDeactivatedRules:getQualityprofileDeactivatedRules":{"description":"Use this data source to list deactivated rules on a Sonarqube quality profile.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst example = sonarqube.getQualityprofileDeactivatedRules({\n    key: \"my-quality-profile-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nexample = sonarqube.get_qualityprofile_deactivated_rules(key=\"my-quality-profile-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var example = Sonarqube.GetQualityprofileDeactivatedRules.Invoke(new()\n    {\n        Key = \"my-quality-profile-key\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetQualityprofileDeactivatedRules(ctx, \u0026sonarqube.GetQualityprofileDeactivatedRulesArgs{\n\t\t\tKey: \"my-quality-profile-key\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualityprofileDeactivatedRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 = SonarqubeFunctions.getQualityprofileDeactivatedRules(GetQualityprofileDeactivatedRulesArgs.builder()\n            .key(\"my-quality-profile-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  example:\n    fn::invoke:\n      function: sonarqube:getQualityprofileDeactivatedRules\n      arguments:\n        key: my-quality-profile-key\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualityprofileDeactivatedRules.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"Quality Profile key. Can be obtained through api/qualityprofiles/search.\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getQualityprofileDeactivatedRules.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"Quality Profile key. Can be obtained through api/qualityprofiles/search.\n","type":"string"},"rules":{"description":"List of deactivated rules for the quality profile.\n","items":{"$ref":"#/types/sonarqube:index%2FgetQualityprofileDeactivatedRulesRule:getQualityprofileDeactivatedRulesRule"},"type":"array"}},"required":["id","key","rules"],"type":"object"}},"sonarqube:index/getQualityprofiles:getQualityprofiles":{"description":"Use this data source to get Sonarqube quality profiles resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst qualityprofiles = sonarqube.getQualityprofiles({});\nconst qualityprofilesSonarwayJava = sonarqube.getQualityprofiles({\n    name: \"Sonar way\",\n    language: \"java\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nqualityprofiles = sonarqube.get_qualityprofiles()\nqualityprofiles_sonarway_java = sonarqube.get_qualityprofiles(name=\"Sonar way\",\n    language=\"java\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var qualityprofiles = Sonarqube.GetQualityprofiles.Invoke();\n\n    var qualityprofilesSonarwayJava = Sonarqube.GetQualityprofiles.Invoke(new()\n    {\n        Name = \"Sonar way\",\n        Language = \"java\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetQualityprofiles(ctx, \u0026sonarqube.GetQualityprofilesArgs{}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sonarqube.GetQualityprofiles(ctx, \u0026sonarqube.GetQualityprofilesArgs{\n\t\t\tName:     pulumi.StringRef(\"Sonar way\"),\n\t\t\tLanguage: pulumi.StringRef(\"java\"),\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetQualityprofilesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 qualityprofiles = SonarqubeFunctions.getQualityprofiles(GetQualityprofilesArgs.builder()\n            .build());\n\n        final var qualityprofilesSonarwayJava = SonarqubeFunctions.getQualityprofiles(GetQualityprofilesArgs.builder()\n            .name(\"Sonar way\")\n            .language(\"java\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  qualityprofiles:\n    fn::invoke:\n      function: sonarqube:getQualityprofiles\n      arguments: {}\n  qualityprofilesSonarwayJava:\n    fn::invoke:\n      function: sonarqube:getQualityprofiles\n      arguments:\n        name: Sonar way\n        language: java\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getQualityprofiles.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"language":{"type":"string","description":"Search quality profiles by language.\n"},"name":{"type":"string","description":"Search quality profiles by name.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getQualityprofiles.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"language":{"description":"Search quality profiles by language.\n","type":"string"},"name":{"description":"Search quality profiles by name.\n","type":"string"},"qualityProfiles":{"description":"The list of quality profiles.\n","items":{"$ref":"#/types/sonarqube:index%2FgetQualityprofilesQualityProfile:getQualityprofilesQualityProfile"},"type":"array"}},"required":["id","qualityProfiles"],"type":"object"}},"sonarqube:index/getRule:getRule":{"description":"Use this data source to get a Sonarqube rule resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst rule = sonarqube.getRule({\n    key: \"squid:forbidSonar\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nrule = sonarqube.get_rule(key=\"squid:forbidSonar\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var rule = Sonarqube.GetRule.Invoke(new()\n    {\n        Key = \"squid:forbidSonar\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupRule(ctx, \u0026sonarqube.LookupRuleArgs{\n\t\t\tKey: \"squid:forbidSonar\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 rule = SonarqubeFunctions.getRule(GetRuleArgs.builder()\n            .key(\"squid:forbidSonar\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  rule:\n    fn::invoke:\n      function: sonarqube:getRule\n      arguments:\n        key: squid:forbidSonar\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getRule.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"key":{"type":"string","description":"The key of the sonarqube rule. Should be \\n\\n:\\n\\n. https://next.sonarqube.com/sonarqube/web_api/api/rules?query=api%2Frules%2Fcreate\n"}},"type":"object","required":["key"]},"outputs":{"description":"A collection of values returned by getRule.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"key":{"description":"The key of the sonarqube rule. Should be \\n\\n:\\n\\n. https://next.sonarqube.com/sonarqube/web_api/api/rules?query=api%2Frules%2Fcreate\n","type":"string"},"markdownDescription":{"description":"Rule description\n","type":"string"},"name":{"description":"Rule name\n","type":"string"},"severity":{"description":"Rule severity\n","type":"string"},"status":{"description":"Rule status\n","type":"string"},"templateKey":{"description":"Key of the template rule\n","type":"string"},"type":{"description":"Rule type\n","type":"string"}},"required":["id","key","markdownDescription","name","severity","status","templateKey","type"],"type":"object"}},"sonarqube:index/getUser:getUser":{"description":"Use this data source to get a Sonarqube User resource\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst user = sonarqube.getUser({\n    loginName: \"terraform-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nuser = sonarqube.get_user(login_name=\"terraform-test\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var user = Sonarqube.GetUser.Invoke(new()\n    {\n        LoginName = \"terraform-test\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.LookupUser(ctx, \u0026sonarqube.LookupUserArgs{\n\t\t\tLoginName: \"terraform-test\",\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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.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 user = SonarqubeFunctions.getUser(GetUserArgs.builder()\n            .loginName(\"terraform-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  user:\n    fn::invoke:\n      function: sonarqube:getUser\n      arguments:\n        loginName: terraform-test\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUser.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"loginName":{"type":"string","description":"The login name of the user\n"}},"type":"object","required":["loginName"]},"outputs":{"description":"A collection of values returned by getUser.\n","properties":{"email":{"description":"The email of the user\n","type":"string"},"id":{"description":"The ID of this resource.\n","type":"string"},"isLocal":{"description":"Whether the user is local\n","type":"boolean"},"loginName":{"description":"The login name of the user\n","type":"string"},"name":{"description":"The name of the user\n","type":"string"}},"required":["email","id","isLocal","loginName","name"],"type":"object"}},"sonarqube:index/getUserTokens:getUserTokens":{"description":"Use this data source to get Sonarqube user token resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```yaml\nvariables:\n  userTokensAdmin:\n    fn::invoke:\n      function: sonarqube:getUserTokens\n      arguments:\n        login: admin\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUserTokens.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"ignoreMissing":{"type":"boolean","description":"If set to true, the data source will not fail if the user does not exist.\n"},"loginName":{"type":"string","description":"Search user tokens for the specified login name. Otherwise, tokens for the current user are listed. This login must exist and be active.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUserTokens.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"ignoreMissing":{"description":"If set to true, the data source will not fail if the user does not exist.\n","type":"boolean"},"loginName":{"description":"Search user tokens for the specified login name. Otherwise, tokens for the current user are listed. This login must exist and be active.\n","type":"string"},"userTokens":{"description":"The list of user tokens.\n","items":{"$ref":"#/types/sonarqube:index%2FgetUserTokensUserToken:getUserTokensUserToken"},"type":"array"}},"required":["id","userTokens"],"type":"object"}},"sonarqube:index/getUsers:getUsers":{"description":"Use this data source to get Sonarqube user resources\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst users = sonarqube.getUsers({});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nusers = sonarqube.get_users()\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var users = Sonarqube.GetUsers.Invoke();\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-terraform-provider/sdks/go/sonarqube/sonarqube\"\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 := sonarqube.GetUsers(ctx, \u0026sonarqube.GetUsersArgs{}, 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.sonarqube.SonarqubeFunctions;\nimport com.pulumi.sonarqube.inputs.GetUsersArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 users = SonarqubeFunctions.getUsers(GetUsersArgs.builder()\n            .build());\n\n    }\n}\n```\n```yaml\nvariables:\n  users:\n    fn::invoke:\n      function: sonarqube:getUsers\n      arguments: {}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n","inputs":{"description":"A collection of arguments for invoking getUsers.\n","properties":{"id":{"type":"string","description":"The ID of this resource.\n"},"search":{"type":"string","description":"Search users by login, name and email.\n"}},"type":"object"},"outputs":{"description":"A collection of values returned by getUsers.\n","properties":{"id":{"description":"The ID of this resource.\n","type":"string"},"search":{"description":"Search users by login, name and email.\n","type":"string"},"users":{"description":"The list of users.\n","items":{"$ref":"#/types/sonarqube:index%2FgetUsersUser:getUsersUser"},"type":"array"}},"required":["id","users"],"type":"object"}}},"parameterization":{"baseProvider":{"name":"terraform-provider","version":"1.0.1"},"parameter":"eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2pkYW1hdGEvc29uYXJxdWJlIiwidmVyc2lvbiI6IjAuMTYuMTkifX0="}}