{
  "name": "sonarqube",
  "version": "0.16.17",
  "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": "> This provider is a derived work of the [Terraform Provider](https://github.com/jdamata/terraform-provider-sonarqube)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> 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": "> This provider is a derived work of the [Terraform Provider](https://github.com/jdamata/terraform-provider-sonarqube)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> 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 >= 9.7.\n"
      },
      "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\nshould only be done for local testing.\n"
      },
      "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/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 >= 9.7.\n"
      },
      "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\nshould only be done for local testing.\n"
      },
      "token": {
        "type": "string",
        "secret": true
      },
      "user": {
        "type": "string"
      }
    },
    "requiredInputs": [
      "host"
    ]
  },
  "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<!--Start PulumiCodeChooser -->\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(() => \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\", &sonarqube.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<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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(() => \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\", &sonarqube.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<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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(() => \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\", &sonarqube.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<!--End PulumiCodeChooser -->\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 `read_api` 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 `read_api` 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 `read_api` 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<!--Start PulumiCodeChooser -->\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 mainProject = new sonarqube.Project(\"mainProject\", {\n    project: \"main\",\n    visibility: \"public\",\n});\nconst mainAzureBinding = new sonarqube.AzureBinding(\"mainAzureBinding\", {\n    almSetting: az1.key,\n    project: mainProject.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_project = sonarqube.Project(\"mainProject\",\n    project=\"main\",\n    visibility=\"public\")\nmain_azure_binding = sonarqube.AzureBinding(\"mainAzureBinding\",\n    alm_setting=az1.key,\n    project=main_project.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(() => \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 mainProject = new Sonarqube.Project(\"mainProject\", new()\n    {\n        Project = \"main\",\n        Visibility = \"public\",\n    });\n\n    var mainAzureBinding = new Sonarqube.AzureBinding(\"mainAzureBinding\", new()\n    {\n        AlmSetting = az1.Key,\n        Project = mainProject.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\", &sonarqube.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\tmainProject, err := sonarqube.NewProject(ctx, \"mainProject\", &sonarqube.ProjectArgs{\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, \"mainAzureBinding\", &sonarqube.AzureBindingArgs{\n\t\t\tAlmSetting:     az1.Key,\n\t\t\tProject:        mainProject.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 mainProject = new Project(\"mainProject\", ProjectArgs.builder()\n            .project(\"main\")\n            .visibility(\"public\")\n            .build());\n\n        var mainAzureBinding = new AzureBinding(\"mainAzureBinding\", AzureBindingArgs.builder()\n            .almSetting(az1.key())\n            .project(mainProject.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  mainProject:\n    type: sonarqube:Project\n    properties:\n      project: main\n      visibility: public\n  mainAzureBinding:\n    type: sonarqube:AzureBinding\n    properties:\n      almSetting: ${az1.key}\n      project: ${mainProject.project}\n      projectName: my_azure_project\n      repositoryName: my_repo\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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    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    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(() => \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        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\", &sonarqube.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\", &sonarqube.ProjectArgs{\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\", &sonarqube.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            .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      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<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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    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    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(() => \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        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\", &sonarqube.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\", &sonarqube.ProjectArgs{\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\", &sonarqube.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            .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      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<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst projectUsers = new sonarqube.Group(\"projectUsers\", {description: \"This is a group\"});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nproject_users = sonarqube.Group(\"projectUsers\", 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(() => \n{\n    var projectUsers = new Sonarqube.Group(\"projectUsers\", new()\n    {\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, \"projectUsers\", &sonarqube.GroupArgs{\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            .description(\"This is a group\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  projectUsers:\n    type: sonarqube:Group\n    properties:\n      description: This is a group\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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    password: \"secret-sauce37!\",\n});\nconst projectUsers = new sonarqube.Group(\"projectUsers\", {description: \"This is a group\"});\nconst projectUsersMember = new sonarqube.GroupMember(\"projectUsersMember\", {loginName: user.loginName});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nuser = sonarqube.User(\"user\",\n    login_name=\"terraform-test\",\n    password=\"secret-sauce37!\")\nproject_users = sonarqube.Group(\"projectUsers\", description=\"This is a group\")\nproject_users_member = sonarqube.GroupMember(\"projectUsersMember\", 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(() => \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var projectUsers = new Sonarqube.Group(\"projectUsers\", new()\n    {\n        Description = \"This is a group\",\n    });\n\n    var projectUsersMember = new Sonarqube.GroupMember(\"projectUsersMember\", new()\n    {\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\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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\t_, err = sonarqube.NewGroup(ctx, \"projectUsers\", &sonarqube.GroupArgs{\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, \"projectUsersMember\", &sonarqube.GroupMemberArgs{\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            .password(\"secret-sauce37!\")\n            .build());\n\n        var projectUsers = new Group(\"projectUsers\", GroupArgs.builder()\n            .description(\"This is a group\")\n            .build());\n\n        var projectUsersMember = new GroupMember(\"projectUsersMember\", GroupMemberArgs.builder()\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      password: secret-sauce37!\n  projectUsers:\n    type: sonarqube:Group\n    properties:\n      description: This is a group\n  projectUsersMember:\n    type: sonarqube:GroupMember\n    properties:\n      loginName: ${user.loginName}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "groupMemberId": {
          "type": "string",
          "description": "The ID of this resource.\n"
        },
        "loginName": {
          "type": "string",
          "description": "The `login_name` 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 `login_name` 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 `login_name` 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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst codePeriod = new sonarqube.NewCodePeriods(\"codePeriod\", {\n    type: \"NUMBER_OF_DAYS\",\n    value: \"7\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ncode_period = sonarqube.NewCodePeriods(\"codePeriod\",\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(() => \n{\n    var codePeriod = new Sonarqube.NewCodePeriods(\"codePeriod\", 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, \"codePeriod\", &sonarqube.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    properties:\n      type: NUMBER_OF_DAYS\n      value: '7'\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst template = new sonarqube.PermissionTemplate(\"template\", {\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    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(() => \n{\n    var template = new Sonarqube.PermissionTemplate(\"template\", new()\n    {\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\", &sonarqube.PermissionTemplateArgs{\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            .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      description: These are internal projects\n      projectKeyPattern: internal.*\n```\n<!--End PulumiCodeChooser -->\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 login_name or group_name or special_group_name and the optional scope is project_key (p_), template_id (t_) or template_name (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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst myGlobalAdmins = new sonarqube.Permissions(\"myGlobalAdmins\", {\n    groupName: \"my-admins\",\n    permissions: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmy_global_admins = sonarqube.Permissions(\"myGlobalAdmins\",\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(() => \n{\n    var myGlobalAdmins = new Sonarqube.Permissions(\"myGlobalAdmins\", 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, \"myGlobalAdmins\", &sonarqube.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    properties:\n      groupName: my-admins\n      permissions:\n        - admin\n```\n<!--End PulumiCodeChooser -->\n\n### Example: Set project admin permissions for a group called \"my-project-admins\"\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst myProjectAdmins = new sonarqube.Permissions(\"myProjectAdmins\", {\n    groupName: \"my-project-admins\",\n    permissions: [\"admin\"],\n    projectKey: \"my-project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmy_project_admins = sonarqube.Permissions(\"myProjectAdmins\",\n    group_name=\"my-project-admins\",\n    permissions=[\"admin\"],\n    project_key=\"my-project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var myProjectAdmins = new Sonarqube.Permissions(\"myProjectAdmins\", new()\n    {\n        GroupName = \"my-project-admins\",\n        Permissions = new[]\n        {\n            \"admin\",\n        },\n        ProjectKey = \"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.NewPermissions(ctx, \"myProjectAdmins\", &sonarqube.PermissionsArgs{\n\t\t\tGroupName: pulumi.String(\"my-project-admins\"),\n\t\t\tPermissions: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"admin\"),\n\t\t\t},\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\treturn nil\n\t})\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            .permissions(\"admin\")\n            .projectKey(\"my-project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myProjectAdmins:\n    type: sonarqube:Permissions\n    properties:\n      groupName: my-project-admins\n      permissions:\n        - admin\n      projectKey: my-project\n```\n<!--End PulumiCodeChooser -->\n\n### Example: Set project admin permissions for a group called \"my-project-admins on a permission template\"\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst internalAdmins = new sonarqube.Permissions(\"internalAdmins\", {\n    groupName: \"my-internal-admins\",\n    templateId: sonarqube_permission_template.template.id,\n    permissions: [\"admin\"],\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\ninternal_admins = sonarqube.Permissions(\"internalAdmins\",\n    group_name=\"my-internal-admins\",\n    template_id=sonarqube_permission_template[\"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(() => \n{\n    var internalAdmins = new Sonarqube.Permissions(\"internalAdmins\", new()\n    {\n        GroupName = \"my-internal-admins\",\n        TemplateId = sonarqube_permission_template.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, \"internalAdmins\", &sonarqube.PermissionsArgs{\n\t\t\tGroupName:  pulumi.String(\"my-internal-admins\"),\n\t\t\tTemplateId: pulumi.Any(sonarqube_permission_template.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(sonarqube_permission_template.template().id())\n            .permissions(\"admin\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  internalAdmins:\n    type: sonarqube:Permissions\n    properties:\n      groupName: my-internal-admins\n      templateId: ${sonarqube_permission_template.template.id}\n      permissions:\n        - admin\n```\n<!--End PulumiCodeChooser -->\n\n### Example: Set codeviewer & user permissions on project level for a user called \"johndoe\"\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst johnProjectRead = new sonarqube.Permissions(\"johnProjectRead\", {\n    loginName: \"johndoe\",\n    permissions: [\n        \"codeviewer\",\n        \"user\",\n    ],\n    projectKey: \"my-project\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\njohn_project_read = sonarqube.Permissions(\"johnProjectRead\",\n    login_name=\"johndoe\",\n    permissions=[\n        \"codeviewer\",\n        \"user\",\n    ],\n    project_key=\"my-project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var johnProjectRead = new Sonarqube.Permissions(\"johnProjectRead\", new()\n    {\n        LoginName = \"johndoe\",\n        Permissions = new[]\n        {\n            \"codeviewer\",\n            \"user\",\n        },\n        ProjectKey = \"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.NewPermissions(ctx, \"johnProjectRead\", &sonarqube.PermissionsArgs{\n\t\t\tLoginName: pulumi.String(\"johndoe\"),\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\tProjectKey: 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.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            .permissions(            \n                \"codeviewer\",\n                \"user\")\n            .projectKey(\"my-project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  johnProjectRead:\n    type: sonarqube:Permissions\n    properties:\n      loginName: johndoe\n      permissions:\n        - codeviewer\n        - user\n      projectKey: my-project\n```\n<!--End PulumiCodeChooser -->\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 `login_name` and `special_group_name`.\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 `group_name` and `special_group_name`.\n"
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of permissions that should be applied. Possible values are: `admin`, `codeviewer`, `issueadmin`, `securityhotspotadmin`, `scan`, `user`.\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 `special_group_name`, `template_id` and `template_name`.\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 `login_name` and `group_name`.\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 `project_key` and `template_name`.\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 `project_key` and `template_id`.\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 `login_name` and `special_group_name`.\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 `group_name` and `special_group_name`.\n"
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "A list of permissions that should be applied. Possible values are: `admin`, `codeviewer`, `issueadmin`, `securityhotspotadmin`, `scan`, `user`.\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 `special_group_name`, `template_id` and `template_name`.\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 `login_name` and `group_name`.\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 `project_key` and `template_name`.\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 `project_key` and `template_id`.\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 `login_name` and `special_group_name`.\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 `group_name` and `special_group_name`.\n"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A list of permissions that should be applied. Possible values are: `admin`, `codeviewer`, `issueadmin`, `securityhotspotadmin`, `scan`, `user`.\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 `special_group_name`, `template_id` and `template_name`.\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 `login_name` and `group_name`.\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 `project_key` and `template_name`.\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 `project_key` and `template_id`.\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<!--Start PulumiCodeChooser -->\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(() => \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\", &sonarqube.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<!--End PulumiCodeChooser -->\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 ``views``\n\n## Example Usage\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Portfolio(\"main\", {\n    description: \"portfolio-description\",\n    key: \"portfolio-key\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Portfolio(\"main\",\n    description=\"portfolio-description\",\n    key=\"portfolio-key\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var main = new Sonarqube.Portfolio(\"main\", new()\n    {\n        Description = \"portfolio-description\",\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.NewPortfolio(ctx, \"main\", &sonarqube.PortfolioArgs{\n\t\t\tDescription: pulumi.String(\"portfolio-description\"),\n\t\t\tKey:         pulumi.String(\"portfolio-key\"),\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            .description(\"portfolio-description\")\n            .key(\"portfolio-key\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Portfolio\n    properties:\n      description: portfolio-description\n      key: portfolio-key\n```\n<!--End PulumiCodeChooser -->\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 `selection_mode` 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 `public`.\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 `selection_mode` 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 `public`.\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 `selection_mode` 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 `public`.\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    project: \"my_project\",\n    visibility: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\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(() => \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\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\", &sonarqube.ProjectArgs{\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            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      project: my_project\n      visibility: public\n```\n<!--End PulumiCodeChooser -->\n\n### Example: a project with associated settings\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    project: \"my_project\",\n    settings: [{\n        key: \"sonar.demo\",\n        value: \"sonarqube@example.org\",\n    }],\n    visibility: \"public\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    project=\"my_project\",\n    settings=[{\n        \"key\": \"sonar.demo\",\n        \"value\": \"sonarqube@example.org\",\n    }],\n    visibility=\"public\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Project = \"my_project\",\n        Settings = new[]\n        {\n            new Sonarqube.Inputs.ProjectSettingArgs\n            {\n                Key = \"sonar.demo\",\n                Value = \"sonarqube@example.org\",\n            },\n        },\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\", &sonarqube.ProjectArgs{\n\t\t\tProject: pulumi.String(\"my_project\"),\n\t\t\tSettings: sonarqube.ProjectSettingArray{\n\t\t\t\t&sonarqube.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\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 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            .project(\"my_project\")\n            .settings(ProjectSettingArgs.builder()\n                .key(\"sonar.demo\")\n                .value(\"sonarqube@example.org\")\n                .build())\n            .visibility(\"public\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      project: my_project\n      settings:\n        - key: sonar.demo\n          value: sonarqube@example.org\n      visibility: public\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "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 `public` and `private`.\n"
        }
      },
      "type": "object",
      "required": [
        "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 `public` and `private`.\n"
        }
      },
      "requiredInputs": [
        "project"
      ],
      "stateInputs": {
        "description": "Input properties used for looking up and filtering Project resources.\n",
        "properties": {
          "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 `public` and `private`.\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Project(\"main\", {\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mybranch = new sonarqube.ProjectMainBranch(\"mybranch\", {project: \"my_project\"});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Project(\"main\",\n    project=\"my_project\",\n    visibility=\"public\")\nmybranch = sonarqube.ProjectMainBranch(\"mybranch\", project=\"my_project\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var main = new Sonarqube.Project(\"main\", new()\n    {\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mybranch = new Sonarqube.ProjectMainBranch(\"mybranch\", new()\n    {\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\", &sonarqube.ProjectArgs{\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\", &sonarqube.ProjectMainBranchArgs{\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            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mybranch = new ProjectMainBranch(\"mybranch\", ProjectMainBranchArgs.builder()\n            .project(\"my_project\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Project\n    properties:\n      project: my_project\n      visibility: public\n  mybranch:\n    type: sonarqube:ProjectMainBranch\n    properties:\n      project: my_project\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualitygate(\"main\", {\n    conditions: [\n        {\n            metric: \"new_coverage\",\n            op: \"LT\",\n            threshold: \"50\",\n        },\n        {\n            metric: \"vulnerabilities\",\n            op: \"GT\",\n            threshold: \"10\",\n        },\n    ],\n    isDefault: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualitygate(\"main\",\n    conditions=[\n        {\n            \"metric\": \"new_coverage\",\n            \"op\": \"LT\",\n            \"threshold\": \"50\",\n        },\n        {\n            \"metric\": \"vulnerabilities\",\n            \"op\": \"GT\",\n            \"threshold\": \"10\",\n        },\n    ],\n    is_default=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var main = new Sonarqube.Qualitygate(\"main\", new()\n    {\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                Op = \"GT\",\n                Threshold = \"10\",\n            },\n        },\n        IsDefault = 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.NewQualitygate(ctx, \"main\", &sonarqube.QualitygateArgs{\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t&sonarqube.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&sonarqube.QualitygateConditionArgs{\n\t\t\t\t\tMetric:    pulumi.String(\"vulnerabilities\"),\n\t\t\t\t\tOp:        pulumi.String(\"GT\"),\n\t\t\t\t\tThreshold: pulumi.String(\"10\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tIsDefault: pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.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            .conditions(            \n                QualitygateConditionArgs.builder()\n                    .metric(\"new_coverage\")\n                    .op(\"LT\")\n                    .threshold(\"50\")\n                    .build(),\n                QualitygateConditionArgs.builder()\n                    .metric(\"vulnerabilities\")\n                    .op(\"GT\")\n                    .threshold(\"10\")\n                    .build())\n            .isDefault(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualitygate\n    properties:\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '50'\n        - metric: vulnerabilities\n          op: GT\n          threshold: '10'\n      isDefault: true\n```\n<!--End PulumiCodeChooser -->\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 `op` 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 `new_reliability_rating`, where A represents the highest rating and subsequent letters represent lower ratings, you need to supply the `op` field with \"GT\" via the provider. Using \"LT\" will return an error from SonarQube's API:\n\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\n```\n```python\nimport pulumi\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\n\nreturn await Deployment.RunAsync(() => \n{\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n    }\n}\n```\n```yaml\n{}\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\n//# Example: create a quality gate project association\nconst mainQualitygate = new sonarqube.Qualitygate(\"mainQualitygate\", {conditions: [{\n    metric: \"new_coverage\",\n    op: \"LT\",\n    threshold: \"30\",\n}]});\nconst mainProject = new sonarqube.Project(\"mainProject\", {\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mainQualitygateProjectAssociation = new sonarqube.QualitygateProjectAssociation(\"mainQualitygateProjectAssociation\", {\n    gatename: mainQualitygate.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_qualitygate = sonarqube.Qualitygate(\"mainQualitygate\", conditions=[{\n    \"metric\": \"new_coverage\",\n    \"op\": \"LT\",\n    \"threshold\": \"30\",\n}])\nmain_project = sonarqube.Project(\"mainProject\",\n    project=\"my_project\",\n    visibility=\"public\")\nmain_qualitygate_project_association = sonarqube.QualitygateProjectAssociation(\"mainQualitygateProjectAssociation\",\n    gatename=main_qualitygate.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(() => \n{\n    //# Example: create a quality gate project association\n    var mainQualitygate = new Sonarqube.Qualitygate(\"mainQualitygate\", new()\n    {\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(\"mainProject\", new()\n    {\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mainQualitygateProjectAssociation = new Sonarqube.QualitygateProjectAssociation(\"mainQualitygateProjectAssociation\", new()\n    {\n        Gatename = mainQualitygate.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\tmainQualitygate, err := sonarqube.NewQualitygate(ctx, \"mainQualitygate\", &sonarqube.QualitygateArgs{\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t&sonarqube.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, \"mainProject\", &sonarqube.ProjectArgs{\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, \"mainQualitygateProjectAssociation\", &sonarqube.QualitygateProjectAssociationArgs{\n\t\t\tGatename:   mainQualitygate.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 mainQualitygate = new Qualitygate(\"mainQualitygate\", QualitygateArgs.builder()\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            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mainQualitygateProjectAssociation = new QualitygateProjectAssociation(\"mainQualitygateProjectAssociation\", QualitygateProjectAssociationArgs.builder()\n            .gatename(mainQualitygate.qualitygateId())\n            .projectkey(mainProject.project())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  ## Example: create a quality gate project association\n  mainQualitygate:\n    type: sonarqube:Qualitygate\n    properties:\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  mainProject:\n    type: sonarqube:Project\n    properties:\n      project: my_project\n      visibility: public\n  mainQualitygateProjectAssociation:\n    type: sonarqube:QualitygateProjectAssociation\n    properties:\n      gatename: ${mainQualitygate.qualitygateId}\n      projectkey: ${mainProject.project}\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst mainQualitygate = new sonarqube.Qualitygate(\"mainQualitygate\", {conditions: [{\n    metric: \"new_coverage\",\n    op: \"LT\",\n    threshold: \"30\",\n}]});\nconst qaUser = new sonarqube.User(\"qaUser\", {\n    loginName: \"qa-user\",\n    password: \"secret-sauce37!\",\n});\nconst mainQualitygateUsergroupAssociation = new sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", {\n    gatename: mainQualitygate.qualitygateId,\n    loginName: qaUser.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain_qualitygate = sonarqube.Qualitygate(\"mainQualitygate\", conditions=[{\n    \"metric\": \"new_coverage\",\n    \"op\": \"LT\",\n    \"threshold\": \"30\",\n}])\nqa_user = sonarqube.User(\"qaUser\",\n    login_name=\"qa-user\",\n    password=\"secret-sauce37!\")\nmain_qualitygate_usergroup_association = sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\",\n    gatename=main_qualitygate.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(() => \n{\n    var mainQualitygate = new Sonarqube.Qualitygate(\"mainQualitygate\", new()\n    {\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(\"qaUser\", new()\n    {\n        LoginName = \"qa-user\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var mainQualitygateUsergroupAssociation = new Sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", new()\n    {\n        Gatename = mainQualitygate.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\tmainQualitygate, err := sonarqube.NewQualitygate(ctx, \"mainQualitygate\", &sonarqube.QualitygateArgs{\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t&sonarqube.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, \"qaUser\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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, \"mainQualitygateUsergroupAssociation\", &sonarqube.QualitygateUsergroupAssociationArgs{\n\t\t\tGatename:  mainQualitygate.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 mainQualitygate = new Qualitygate(\"mainQualitygate\", QualitygateArgs.builder()\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            .password(\"secret-sauce37!\")\n            .build());\n\n        var mainQualitygateUsergroupAssociation = new QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", QualitygateUsergroupAssociationArgs.builder()\n            .gatename(mainQualitygate.qualitygateId())\n            .loginName(qaUser.userId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainQualitygate:\n    type: sonarqube:Qualitygate\n    properties:\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  qaUser:\n    type: sonarqube:User\n    properties:\n      loginName: qa-user\n      password: secret-sauce37!\n  mainQualitygateUsergroupAssociation:\n    type: sonarqube:QualitygateUsergroupAssociation\n    properties:\n      gatename: ${mainQualitygate.qualitygateId}\n      loginName: ${qaUser.userId}\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a quality gate group association\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst mainQualitygate = new sonarqube.Qualitygate(\"mainQualitygate\", {conditions: [{\n    metric: \"new_coverage\",\n    op: \"LT\",\n    threshold: \"30\",\n}]});\nconst qaTeam = new sonarqube.Group(\"qaTeam\", {description: \"Quality Assurence Team\"});\nconst mainQualitygateUsergroupAssociation = new sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", {\n    gatename: mainQualitygate.qualitygateId,\n    groupName: qaTeam.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain_qualitygate = sonarqube.Qualitygate(\"mainQualitygate\", conditions=[{\n    \"metric\": \"new_coverage\",\n    \"op\": \"LT\",\n    \"threshold\": \"30\",\n}])\nqa_team = sonarqube.Group(\"qaTeam\", description=\"Quality Assurence Team\")\nmain_qualitygate_usergroup_association = sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\",\n    gatename=main_qualitygate.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(() => \n{\n    var mainQualitygate = new Sonarqube.Qualitygate(\"mainQualitygate\", new()\n    {\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(\"qaTeam\", new()\n    {\n        Description = \"Quality Assurence Team\",\n    });\n\n    var mainQualitygateUsergroupAssociation = new Sonarqube.QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", new()\n    {\n        Gatename = mainQualitygate.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\tmainQualitygate, err := sonarqube.NewQualitygate(ctx, \"mainQualitygate\", &sonarqube.QualitygateArgs{\n\t\t\tConditions: sonarqube.QualitygateConditionArray{\n\t\t\t\t&sonarqube.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, \"qaTeam\", &sonarqube.GroupArgs{\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, \"mainQualitygateUsergroupAssociation\", &sonarqube.QualitygateUsergroupAssociationArgs{\n\t\t\tGatename:  mainQualitygate.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 mainQualitygate = new Qualitygate(\"mainQualitygate\", QualitygateArgs.builder()\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            .description(\"Quality Assurence Team\")\n            .build());\n\n        var mainQualitygateUsergroupAssociation = new QualitygateUsergroupAssociation(\"mainQualitygateUsergroupAssociation\", QualitygateUsergroupAssociationArgs.builder()\n            .gatename(mainQualitygate.qualitygateId())\n            .groupName(qaTeam.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainQualitygate:\n    type: sonarqube:Qualitygate\n    properties:\n      conditions:\n        - metric: new_coverage\n          op: LT\n          threshold: '30'\n  qaTeam:\n    type: sonarqube:Group\n    properties:\n      description: Quality Assurence Team\n  mainQualitygateUsergroupAssociation:\n    type: sonarqube:QualitygateUsergroupAssociation\n    properties:\n      gatename: ${mainQualitygate.qualitygateId}\n      groupName: ${qaTeam.name}\n```\n<!--End PulumiCodeChooser -->\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 `group_name` or `login_name` should be provided.\n"
        },
        "loginName": {
          "type": "string",
          "description": "The name of the User to associate. Either `group_name` or `login_name` 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 `group_name` or `login_name` should be provided.\n"
        },
        "loginName": {
          "type": "string",
          "description": "The name of the User to associate. Either `group_name` or `login_name` 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 `group_name` or `login_name` should be provided.\n"
          },
          "loginName": {
            "type": "string",
            "description": "The name of the User to associate. Either `group_name` or `login_name` 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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst main = new sonarqube.Qualityprofile(\"main\", {\n    isDefault: false,\n    language: \"js\",\n    parent: \"sonar way\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain = sonarqube.Qualityprofile(\"main\",\n    is_default=False,\n    language=\"js\",\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(() => \n{\n    var main = new Sonarqube.Qualityprofile(\"main\", new()\n    {\n        IsDefault = false,\n        Language = \"js\",\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\", &sonarqube.QualityprofileArgs{\n\t\t\tIsDefault: pulumi.Bool(false),\n\t\t\tLanguage:  pulumi.String(\"js\"),\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            .isDefault(false)\n            .language(\"js\")\n            .parent(\"sonar way\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  main:\n    type: sonarqube:Qualityprofile\n    properties:\n      isDefault: false\n      language: js\n      parent: sonar way\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst allowedMavenDependencies = new sonarqube.Rule(\"allowedMavenDependencies\", {\n    customKey: \"Only_use_allowed_Maven_dependencies\",\n    markdownDescription: \"Description\",\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    language: \"xml\",\n    isDefault: false,\n    parent: \"Sonar way\",\n});\nconst xmlRule = new sonarqube.QualityprofileActivateRule(\"xmlRule\", {\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(\"allowedMavenDependencies\",\n    custom_key=\"Only_use_allowed_Maven_dependencies\",\n    markdown_description=\"Description\",\n    params=\"FilePattern=**/pom.xml\",\n    severity=\"BLOCKER\",\n    status=\"READY\",\n    template_key=\"xml:XPathCheck\",\n    type=\"VULNERABILITY\")\nxml = sonarqube.Qualityprofile(\"xml\",\n    language=\"xml\",\n    is_default=False,\n    parent=\"Sonar way\")\nxml_rule = sonarqube.QualityprofileActivateRule(\"xmlRule\",\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(() => \n{\n    var allowedMavenDependencies = new Sonarqube.Rule(\"allowedMavenDependencies\", new()\n    {\n        CustomKey = \"Only_use_allowed_Maven_dependencies\",\n        MarkdownDescription = \"Description\",\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        Language = \"xml\",\n        IsDefault = false,\n        Parent = \"Sonar way\",\n    });\n\n    var xmlRule = new Sonarqube.QualityprofileActivateRule(\"xmlRule\", 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, \"allowedMavenDependencies\", &sonarqube.RuleArgs{\n\t\t\tCustomKey:           pulumi.String(\"Only_use_allowed_Maven_dependencies\"),\n\t\t\tMarkdownDescription: pulumi.String(\"Description\"),\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\", &sonarqube.QualityprofileArgs{\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, \"xmlRule\", &sonarqube.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            .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            .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    properties:\n      customKey: Only_use_allowed_Maven_dependencies\n      markdownDescription: Description\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      language: xml\n      isDefault: 'false'\n      parent: Sonar way\n  xmlRule:\n    type: sonarqube:QualityprofileActivateRule\n    properties:\n      key: ${xml.key}\n      # .id also works\n      rule: ${allowedMavenDependencies.ruleId}\n      severity: BLOCKER\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "key": {
          "type": "string",
          "description": "Quality Profile key. Can be obtained through api/qualityprofiles/search\n"
        },
        "params": {
          "type": "string",
          "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n"
        },
        "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. -\nPossible values true false yes no (Default false)\n"
        },
        "rule": {
          "type": "string",
          "description": "Rule key\n"
        },
        "severity": {
          "type": "string",
          "description": "Severity. Ignored if parameter reset is true. - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\n"
        }
      },
      "type": "object",
      "required": [
        "key",
        "qualityprofileActivateRuleId",
        "rule"
      ],
      "inputProperties": {
        "key": {
          "type": "string",
          "description": "Quality Profile key. Can be obtained through api/qualityprofiles/search\n"
        },
        "params": {
          "type": "string",
          "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n"
        },
        "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. -\nPossible values true false yes no (Default false)\n"
        },
        "rule": {
          "type": "string",
          "description": "Rule key\n"
        },
        "severity": {
          "type": "string",
          "description": "Severity. Ignored if parameter reset is true. - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\n"
        }
      },
      "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\n"
          },
          "params": {
            "type": "string",
            "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule)\n"
          },
          "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. -\nPossible values true false yes no (Default false)\n"
          },
          "rule": {
            "type": "string",
            "description": "Rule key\n"
          },
          "severity": {
            "type": "string",
            "description": "Severity. Ignored if parameter reset is true. - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst mainQualityprofile = new sonarqube.Qualityprofile(\"mainQualityprofile\", {language: \"js\"});\nconst mainProject = new sonarqube.Project(\"mainProject\", {\n    project: \"my_project\",\n    visibility: \"public\",\n});\nconst mainQualityprofileProjectAssociation = new sonarqube.QualityprofileProjectAssociation(\"mainQualityprofileProjectAssociation\", {\n    qualityProfile: mainQualityprofile.name,\n    project: mainProject.project,\n    language: \"js\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain_qualityprofile = sonarqube.Qualityprofile(\"mainQualityprofile\", language=\"js\")\nmain_project = sonarqube.Project(\"mainProject\",\n    project=\"my_project\",\n    visibility=\"public\")\nmain_qualityprofile_project_association = sonarqube.QualityprofileProjectAssociation(\"mainQualityprofileProjectAssociation\",\n    quality_profile=main_qualityprofile.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(() => \n{\n    var mainQualityprofile = new Sonarqube.Qualityprofile(\"mainQualityprofile\", new()\n    {\n        Language = \"js\",\n    });\n\n    var mainProject = new Sonarqube.Project(\"mainProject\", new()\n    {\n        Project = \"my_project\",\n        Visibility = \"public\",\n    });\n\n    var mainQualityprofileProjectAssociation = new Sonarqube.QualityprofileProjectAssociation(\"mainQualityprofileProjectAssociation\", new()\n    {\n        QualityProfile = mainQualityprofile.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\tmainQualityprofile, err := sonarqube.NewQualityprofile(ctx, \"mainQualityprofile\", &sonarqube.QualityprofileArgs{\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, \"mainProject\", &sonarqube.ProjectArgs{\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, \"mainQualityprofileProjectAssociation\", &sonarqube.QualityprofileProjectAssociationArgs{\n\t\t\tQualityProfile: mainQualityprofile.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 mainQualityprofile = new Qualityprofile(\"mainQualityprofile\", QualityprofileArgs.builder()\n            .language(\"js\")\n            .build());\n\n        var mainProject = new Project(\"mainProject\", ProjectArgs.builder()\n            .project(\"my_project\")\n            .visibility(\"public\")\n            .build());\n\n        var mainQualityprofileProjectAssociation = new QualityprofileProjectAssociation(\"mainQualityprofileProjectAssociation\", QualityprofileProjectAssociationArgs.builder()\n            .qualityProfile(mainQualityprofile.name())\n            .project(mainProject.project())\n            .language(\"js\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainQualityprofile:\n    type: sonarqube:Qualityprofile\n    properties:\n      language: js\n  mainProject:\n    type: sonarqube:Project\n    properties:\n      project: my_project\n      visibility: public\n  mainQualityprofileProjectAssociation:\n    type: sonarqube:QualityprofileProjectAssociation\n    properties:\n      qualityProfile: ${mainQualityprofile.name}\n      project: ${mainProject.project}\n      language: js\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst mainQualityprofile = new sonarqube.Qualityprofile(\"mainQualityprofile\", {\n    language: \"java\",\n    parent: \"Sonar way\",\n});\nconst qaUser = new sonarqube.User(\"qaUser\", {\n    loginName: \"qa-user\",\n    password: \"secret-sauce37!\",\n});\nconst mainQualityprofileUsergroupAssociation = new sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", {\n    profileName: mainQualityprofile.qualityprofileId,\n    language: sonarqube_qualityprofile.language.id,\n    loginName: qaUser.userId,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain_qualityprofile = sonarqube.Qualityprofile(\"mainQualityprofile\",\n    language=\"java\",\n    parent=\"Sonar way\")\nqa_user = sonarqube.User(\"qaUser\",\n    login_name=\"qa-user\",\n    password=\"secret-sauce37!\")\nmain_qualityprofile_usergroup_association = sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\",\n    profile_name=main_qualityprofile.qualityprofile_id,\n    language=sonarqube_qualityprofile[\"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(() => \n{\n    var mainQualityprofile = new Sonarqube.Qualityprofile(\"mainQualityprofile\", new()\n    {\n        Language = \"java\",\n        Parent = \"Sonar way\",\n    });\n\n    var qaUser = new Sonarqube.User(\"qaUser\", new()\n    {\n        LoginName = \"qa-user\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var mainQualityprofileUsergroupAssociation = new Sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", new()\n    {\n        ProfileName = mainQualityprofile.QualityprofileId,\n        Language = sonarqube_qualityprofile.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\tmainQualityprofile, err := sonarqube.NewQualityprofile(ctx, \"mainQualityprofile\", &sonarqube.QualityprofileArgs{\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, \"qaUser\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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, \"mainQualityprofileUsergroupAssociation\", &sonarqube.QualityprofileUsergroupAssociationArgs{\n\t\t\tProfileName: mainQualityprofile.QualityprofileId,\n\t\t\tLanguage:    pulumi.Any(sonarqube_qualityprofile.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 mainQualityprofile = new Qualityprofile(\"mainQualityprofile\", QualityprofileArgs.builder()\n            .language(\"java\")\n            .parent(\"Sonar way\")\n            .build());\n\n        var qaUser = new User(\"qaUser\", UserArgs.builder()\n            .loginName(\"qa-user\")\n            .password(\"secret-sauce37!\")\n            .build());\n\n        var mainQualityprofileUsergroupAssociation = new QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", QualityprofileUsergroupAssociationArgs.builder()\n            .profileName(mainQualityprofile.qualityprofileId())\n            .language(sonarqube_qualityprofile.language().id())\n            .loginName(qaUser.userId())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainQualityprofile:\n    type: sonarqube:Qualityprofile\n    properties:\n      language: java\n      parent: Sonar way\n  qaUser:\n    type: sonarqube:User\n    properties:\n      loginName: qa-user\n      password: secret-sauce37!\n  mainQualityprofileUsergroupAssociation:\n    type: sonarqube:QualityprofileUsergroupAssociation\n    properties:\n      profileName: ${mainQualityprofile.qualityprofileId}\n      language: ${sonarqube_qualityprofile.language.id}\n      loginName: ${qaUser.userId}\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a quality profile group association\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst mainQualityprofile = new sonarqube.Qualityprofile(\"mainQualityprofile\", {\n    language: \"java\",\n    parent: \"Sonar way\",\n});\nconst qaTeam = new sonarqube.Group(\"qaTeam\", {description: \"Quality Assurence Team\"});\nconst mainQualityprofileUsergroupAssociation = new sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", {\n    profileName: mainQualityprofile.qualityprofileId,\n    language: sonarqube_qualityprofile.language.id,\n    groupName: qaTeam.name,\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nmain_qualityprofile = sonarqube.Qualityprofile(\"mainQualityprofile\",\n    language=\"java\",\n    parent=\"Sonar way\")\nqa_team = sonarqube.Group(\"qaTeam\", description=\"Quality Assurence Team\")\nmain_qualityprofile_usergroup_association = sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\",\n    profile_name=main_qualityprofile.qualityprofile_id,\n    language=sonarqube_qualityprofile[\"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(() => \n{\n    var mainQualityprofile = new Sonarqube.Qualityprofile(\"mainQualityprofile\", new()\n    {\n        Language = \"java\",\n        Parent = \"Sonar way\",\n    });\n\n    var qaTeam = new Sonarqube.Group(\"qaTeam\", new()\n    {\n        Description = \"Quality Assurence Team\",\n    });\n\n    var mainQualityprofileUsergroupAssociation = new Sonarqube.QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", new()\n    {\n        ProfileName = mainQualityprofile.QualityprofileId,\n        Language = sonarqube_qualityprofile.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\tmainQualityprofile, err := sonarqube.NewQualityprofile(ctx, \"mainQualityprofile\", &sonarqube.QualityprofileArgs{\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, \"qaTeam\", &sonarqube.GroupArgs{\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, \"mainQualityprofileUsergroupAssociation\", &sonarqube.QualityprofileUsergroupAssociationArgs{\n\t\t\tProfileName: mainQualityprofile.QualityprofileId,\n\t\t\tLanguage:    pulumi.Any(sonarqube_qualityprofile.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 mainQualityprofile = new Qualityprofile(\"mainQualityprofile\", QualityprofileArgs.builder()\n            .language(\"java\")\n            .parent(\"Sonar way\")\n            .build());\n\n        var qaTeam = new Group(\"qaTeam\", GroupArgs.builder()\n            .description(\"Quality Assurence Team\")\n            .build());\n\n        var mainQualityprofileUsergroupAssociation = new QualityprofileUsergroupAssociation(\"mainQualityprofileUsergroupAssociation\", QualityprofileUsergroupAssociationArgs.builder()\n            .profileName(mainQualityprofile.qualityprofileId())\n            .language(sonarqube_qualityprofile.language().id())\n            .groupName(qaTeam.name())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  mainQualityprofile:\n    type: sonarqube:Qualityprofile\n    properties:\n      language: java\n      parent: Sonar way\n  qaTeam:\n    type: sonarqube:Group\n    properties:\n      description: Quality Assurence Team\n  mainQualityprofileUsergroupAssociation:\n    type: sonarqube:QualityprofileUsergroupAssociation\n    properties:\n      profileName: ${mainQualityprofile.qualityprofileId}\n      language: ${sonarqube_qualityprofile.language.id}\n      groupName: ${qaTeam.name}\n```\n<!--End PulumiCodeChooser -->\n",
      "properties": {
        "groupName": {
          "type": "string",
          "description": "The name of the Group to associate. Either `group_name` or `login_name` 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 `group_name` or `login_name` 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 `group_name` or `login_name` 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 `group_name` or `login_name` 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 `group_name` or `login_name` 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 `group_name` or `login_name` 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, \\_\n"
        },
        "markdownDescription": {
          "type": "string",
          "description": "Rule description\n"
        },
        "name": {
          "type": "string",
          "description": "Rule name\n"
        },
        "params": {
          "type": "string",
          "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule) - parameter order:\nexpression=value;filePattern=value;message=value\n"
        },
        "preventReactivation": {
          "type": "string",
          "description": "If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned - Possible values\n- true, false, yes, no\n"
        },
        "ruleId": {
          "type": "string"
        },
        "severity": {
          "type": "string",
          "description": "Rule severity - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\n"
        },
        "status": {
          "type": "string",
          "description": "Rule status - Possible values - BETA, DEPRECATED, READY, REMOVED - Default value - READY\n"
        },
        "templateKey": {
          "type": "string",
          "description": "Key of the template rule in order to create a custom rule (mandatory for custom rule) - [Example\nvalues](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)\n"
        },
        "type": {
          "type": "string",
          "description": "Rule type - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT\n"
        }
      },
      "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, \\_\n"
        },
        "markdownDescription": {
          "type": "string",
          "description": "Rule description\n"
        },
        "name": {
          "type": "string",
          "description": "Rule name\n"
        },
        "params": {
          "type": "string",
          "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule) - parameter order:\nexpression=value;filePattern=value;message=value\n"
        },
        "preventReactivation": {
          "type": "string",
          "description": "If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned - Possible values\n- true, false, yes, no\n"
        },
        "ruleId": {
          "type": "string"
        },
        "severity": {
          "type": "string",
          "description": "Rule severity - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\n"
        },
        "status": {
          "type": "string",
          "description": "Rule status - Possible values - BETA, DEPRECATED, READY, REMOVED - Default value - READY\n"
        },
        "templateKey": {
          "type": "string",
          "description": "Key of the template rule in order to create a custom rule (mandatory for custom rule) - [Example\nvalues](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)\n"
        },
        "type": {
          "type": "string",
          "description": "Rule type - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT\n"
        }
      },
      "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, \\_\n"
          },
          "markdownDescription": {
            "type": "string",
            "description": "Rule description\n"
          },
          "name": {
            "type": "string",
            "description": "Rule name\n"
          },
          "params": {
            "type": "string",
            "description": "Parameters as semi-colon list of =, for example 'params=key1=v1;key2=v2' (Only for custom rule) - parameter order:\nexpression=value;filePattern=value;message=value\n"
          },
          "preventReactivation": {
            "type": "string",
            "description": "If set to true and if the rule has been deactivated (status 'REMOVED'), a status 409 will be returned - Possible values\n- true, false, yes, no\n"
          },
          "ruleId": {
            "type": "string"
          },
          "severity": {
            "type": "string",
            "description": "Rule severity - Possible values - INFO, MINOR, MAJOR, CRITICAL, BLOCKER\n"
          },
          "status": {
            "type": "string",
            "description": "Rule status - Possible values - BETA, DEPRECATED, READY, REMOVED - Default value - READY\n"
          },
          "templateKey": {
            "type": "string",
            "description": "Key of the template rule in order to create a custom rule (mandatory for custom rule) - [Example\nvalues](https://docs.sonarqube.org/latest/user-guide/rules/#header-4)\n"
          },
          "type": {
            "type": "string",
            "description": "Rule type - Possible values - CODE_SMELL, BUG, VULNERABILITY, SECURITY_HOTSPOT\n"
          }
        },
        "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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst multiValueSetting = new sonarqube.Setting(\"multiValueSetting\", {\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(\"multiValueSetting\",\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(() => \n{\n    var multiValueSetting = new Sonarqube.Setting(\"multiValueSetting\", 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, \"multiValueSetting\", &sonarqube.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    properties:\n      key: sonar.global.exclusions\n      values:\n        - foo\n        - bar/**/*.*\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a setting with multiple field values\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst multiFieldSetting = new sonarqube.Setting(\"multiFieldSetting\", {\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(\"multiFieldSetting\",\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(() => \n{\n    var multiFieldSetting = new Sonarqube.Setting(\"multiFieldSetting\", 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, \"multiFieldSetting\", &sonarqube.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    properties:\n      key: sonar.issue.ignore.multicriteria\n      fieldValues:\n        - ruleKey: foo\n          resourceKey: bar\n        - ruleKey: foo2\n          resourceKey: bar2\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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    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    password=\"secret-sauce37!\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Sonarqube = Pulumi.Sonarqube;\n\nreturn await Deployment.RunAsync(() => \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"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\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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            .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      password: secret-sauce37!\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a remote user\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst remoteUser = new sonarqube.User(\"remoteUser\", {\n    email: \"terraform-test@sonarqube.com\",\n    isLocal: false,\n    loginName: \"terraform-test\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nremote_user = sonarqube.User(\"remoteUser\",\n    email=\"terraform-test@sonarqube.com\",\n    is_local=False,\n    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(() => \n{\n    var remoteUser = new Sonarqube.User(\"remoteUser\", new()\n    {\n        Email = \"terraform-test@sonarqube.com\",\n        IsLocal = false,\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.NewUser(ctx, \"remoteUser\", &sonarqube.UserArgs{\n\t\t\tEmail:     pulumi.String(\"terraform-test@sonarqube.com\"),\n\t\t\tIsLocal:   pulumi.Bool(false),\n\t\t\tLoginName: pulumi.String(\"terraform-test\"),\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            .email(\"terraform-test@sonarqube.com\")\n            .isLocal(false)\n            .loginName(\"terraform-test\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  remoteUser:\n    type: sonarqube:User\n    properties:\n      email: terraform-test@sonarqube.com\n      isLocal: false\n      loginName: terraform-test\n```\n<!--End PulumiCodeChooser -->\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 `local`. Defaults to `true`.\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 `local`.\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 `local`. Defaults to `true`.\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 `local`.\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 `local`. Defaults to `true`.\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 `local`.\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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\n//# Example: change the external identity to SAML\nconst remoteUserUser = new sonarqube.User(\"remoteUserUser\", {\n    loginName: \"terraform-test\",\n    email: \"terraform-test@sonarqube.com\",\n    isLocal: false,\n});\nconst remoteUserUserExternalIdentity = new sonarqube.UserExternalIdentity(\"remoteUserUserExternalIdentity\", {\n    loginName: remoteUserUser.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_user = sonarqube.User(\"remoteUserUser\",\n    login_name=\"terraform-test\",\n    email=\"terraform-test@sonarqube.com\",\n    is_local=False)\nremote_user_user_external_identity = sonarqube.UserExternalIdentity(\"remoteUserUserExternalIdentity\",\n    login_name=remote_user_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(() => \n{\n    //# Example: change the external identity to SAML\n    var remoteUserUser = new Sonarqube.User(\"remoteUserUser\", new()\n    {\n        LoginName = \"terraform-test\",\n        Email = \"terraform-test@sonarqube.com\",\n        IsLocal = false,\n    });\n\n    var remoteUserUserExternalIdentity = new Sonarqube.UserExternalIdentity(\"remoteUserUserExternalIdentity\", new()\n    {\n        LoginName = remoteUserUser.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\tremoteUserUser, err := sonarqube.NewUser(ctx, \"remoteUserUser\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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, \"remoteUserUserExternalIdentity\", &sonarqube.UserExternalIdentityArgs{\n\t\t\tLoginName:        remoteUserUser.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 remoteUserUser = new User(\"remoteUserUser\", UserArgs.builder()\n            .loginName(\"terraform-test\")\n            .email(\"terraform-test@sonarqube.com\")\n            .isLocal(false)\n            .build());\n\n        var remoteUserUserExternalIdentity = new UserExternalIdentity(\"remoteUserUserExternalIdentity\", UserExternalIdentityArgs.builder()\n            .loginName(remoteUserUser.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  remoteUserUser:\n    type: sonarqube:User\n    properties:\n      loginName: terraform-test\n      email: terraform-test@sonarqube.com\n      isLocal: false\n  remoteUserUserExternalIdentity:\n    type: sonarqube:UserExternalIdentity\n    properties:\n      loginName: ${remoteUserUser.loginName}\n      externalIdentity: terraform-test@sonarqube.com\n      externalProvider: saml\n```\n<!--End PulumiCodeChooser -->\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<!--Start PulumiCodeChooser -->\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    password: \"secret-sauce37!\",\n});\nconst token = new sonarqube.UserToken(\"token\", {loginName: user.loginName});\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    password=\"secret-sauce37!\")\ntoken = sonarqube.UserToken(\"token\", login_name=user.login_name)\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(() => \n{\n    var user = new Sonarqube.User(\"user\", new()\n    {\n        LoginName = \"terraform-test\",\n        Password = \"secret-sauce37!\",\n    });\n\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        LoginName = user.LoginName,\n    });\n\n    return new Dictionary<string, object?>\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\", &sonarqube.UserArgs{\n\t\t\tLoginName: 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\", &sonarqube.UserTokenArgs{\n\t\t\tLoginName: user.LoginName,\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            .password(\"secret-sauce37!\")\n            .build());\n\n        var token = new UserToken(\"token\", UserTokenArgs.builder()\n            .loginName(user.loginName())\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      password: secret-sauce37!\n  token:\n    type: sonarqube:UserToken\n    properties:\n      loginName: ${user.loginName}\noutputs:\n  userToken: ${token.token}\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create an expiring global analysis token and output the token value\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst token = new sonarqube.UserToken(\"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    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(() => \n{\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        Type = \"GLOBAL_ANALYSIS_TOKEN\",\n        ExpirationDate = \"2099-01-01\",\n    });\n\n    return new Dictionary<string, object?>\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\", &sonarqube.UserTokenArgs{\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            .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      type: GLOBAL_ANALYSIS_TOKEN\n      expirationDate: 2099-01-01\noutputs:\n  globalAnalysisToken: ${token.token}\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a project, project analysis token, and output the token value\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst token = new sonarqube.UserToken(\"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    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(() => \n{\n    var token = new Sonarqube.UserToken(\"token\", new()\n    {\n        Type = \"PROJECT_ANALYSIS_TOKEN\",\n        ProjectKey = \"my-project\",\n    });\n\n    return new Dictionary<string, object?>\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\", &sonarqube.UserTokenArgs{\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            .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      type: PROJECT_ANALYSIS_TOKEN\n      projectKey: my-project\noutputs:\n  projectAnalysisToken: ${token.token}\n```\n<!--End PulumiCodeChooser -->\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 project_key must 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 project_key must 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 project_key must 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<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst webhook = new sonarqube.Webhook(\"webhook\", {url: \"https://my-webhook-destination.example.com\"});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nwebhook = sonarqube.Webhook(\"webhook\", 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(() => \n{\n    var webhook = new Sonarqube.Webhook(\"webhook\", new()\n    {\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\", &sonarqube.WebhookArgs{\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            .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      url: https://my-webhook-destination.example.com\n```\n<!--End PulumiCodeChooser -->\n\n### Example: create a webhook owned by a project\n<!--Start PulumiCodeChooser -->\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as sonarqube from \"@pulumi/sonarqube\";\n\nconst project = new sonarqube.Project(\"project\", {\n    project: \"project\",\n    visibility: \"public\",\n});\nconst webhook = new sonarqube.Webhook(\"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    project=\"project\",\n    visibility=\"public\")\nwebhook = sonarqube.Webhook(\"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(() => \n{\n    var project = new Sonarqube.Project(\"project\", new()\n    {\n        Project = \"project\",\n        Visibility = \"public\",\n    });\n\n    var webhook = new Sonarqube.Webhook(\"webhook\", new()\n    {\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\", &sonarqube.ProjectArgs{\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\", &sonarqube.WebhookArgs{\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            .project(\"project\")\n            .visibility(\"public\")\n            .build());\n\n        var webhook = new Webhook(\"webhook\", WebhookArgs.builder()\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      project: project\n      visibility: public\n  webhook:\n    type: sonarqube:Webhook\n    properties:\n      url: https://my-webhook-destination.example.com\n      project: ${project.name}\n```\n<!--End PulumiCodeChooser -->\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": {
    "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();\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();\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();\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 `selection_mode` 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 `selection_mode` 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": {
          "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": [
          "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    ignoreMissing: true,\n    name: \"Sonar way\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nqualitygates = sonarqube.get_qualitygates()\nqualitygates_sonarway = sonarqube.get_qualitygates(ignore_missing=True,\n    name=\"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 qualitygates = Sonarqube.GetQualitygates.Invoke();\n\n    var qualitygatesSonarway = Sonarqube.GetQualitygates.Invoke(new()\n    {\n        IgnoreMissing = true,\n        Name = \"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.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\tIgnoreMissing: pulumi.BoolRef(true),\n\t\t\tName:          \"Sonar way\",\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();\n\n        final var qualitygatesSonarway = SonarqubeFunctions.getQualitygates(GetQualitygatesArgs.builder()\n            .ignoreMissing(true)\n            .name(\"Sonar way\")\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        ignoreMissing: true\n        name: Sonar way\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/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    language: \"java\",\n    name: \"Sonar way\",\n});\n```\n```python\nimport pulumi\nimport pulumi_sonarqube as sonarqube\n\nqualityprofiles = sonarqube.get_qualityprofiles()\nqualityprofiles_sonarway_java = sonarqube.get_qualityprofiles(language=\"java\",\n    name=\"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 qualityprofiles = Sonarqube.GetQualityprofiles.Invoke();\n\n    var qualityprofilesSonarwayJava = Sonarqube.GetQualityprofiles.Invoke(new()\n    {\n        Language = \"java\",\n        Name = \"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.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\tLanguage: pulumi.StringRef(\"java\"),\n\t\t\tName:     pulumi.StringRef(\"Sonar way\"),\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();\n\n        final var qualityprofilesSonarwayJava = SonarqubeFunctions.getQualityprofiles(GetQualityprofilesArgs.builder()\n            .language(\"java\")\n            .name(\"Sonar way\")\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        language: java\n        name: Sonar way\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```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.GetUserTokensArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 userTokensAdmin = SonarqubeFunctions.getUserTokens(GetUserTokensArgs.builder()\n            .login(\"admin\")\n            .build());\n\n    }\n}\n```\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();\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": "0.10.0"
    },
    "parameter": "eyJyZW1vdGUiOnsidXJsIjoicmVnaXN0cnkub3BlbnRvZnUub3JnL2pkYW1hdGEvc29uYXJxdWJlIiwidmVyc2lvbiI6IjAuMTYuMTcifX0="
  }
}
