{
  "name": "pulumiservice",
  "displayName": "Pulumi Cloud",
  "description": "A native Pulumi package for creating and managing Pulumi Cloud constructs",
  "keywords": [
    "pulumi",
    "kind/native",
    "category/infrastructure"
  ],
  "homepage": "https://pulumi.com",
  "license": "Apache-2.0",
  "repository": "https://github.com/pulumi/pulumi-pulumiservice",
  "publisher": "Pulumi",
  "namespace": "pulumi",
  "language": {
    "csharp": {
      "namespaces": {
        "pulumiservice": "PulumiService"
      },
      "packageReferences": {
        "Pulumi": "3.*"
      },
      "respectSchemaVersion": true
    },
    "go": {
      "generateResourceContainerTypes": true,
      "importBasePath": "github.com/pulumi/pulumi-pulumiservice/sdk/go/pulumiservice",
      "respectSchemaVersion": true
    },
    "java": {
      "basePackage": "",
      "buildFiles": "gradle",
      "dependencies": {
        "com.google.code.findbugs:jsr305": "3.0.2",
        "com.google.code.gson:gson": "2.8.9",
        "com.pulumi:pulumi": "1.16.2"
      },
      "gradleNexusPublishPluginVersion": "2.0.0",
      "gradleTest": "",
      "readme": "# Pulumi Service Provider\n\n[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)\n[![NPM version](https://badge.fury.io/js/%40pulumi%2Fpulumiservice.svg)](https://www.npmjs.com/package/@pulumi/pulumiservice)\n[![Python version](https://badge.fury.io/py/pulumi-pulumiservice.svg)](https://pypi.org/project/pulumi-pulumiservice)\n[![NuGet version](https://badge.fury.io/nu/pulumi.pulumiservice.svg)](https://badge.fury.io/nu/pulumi.pulumiservice)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-pulumiservice/sdk/go/pulumiservice)](https://pkg.go.dev/github.com/pulumi/pulumi-pulumiservice/sdk/go)\n[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumiservice.svg)](https://github.com/pulumi/pulumi-pulumiservice/blob/main/LICENSE)\n\nPulumi Service Provider for creating Pulumi Cloud resources.\n\nThe Pulumi Service Provider (PSP) is built on top of the [Pulumi Cloud REST API](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/), allowing Pulumi customers to create Pulumi Cloud resources using Pulumi programs. That includes Stacks, Environments, Teams, Tokens, Webhooks, Tags, Deployment Settings, Deployment Schedules and much more! Pulumi Service Provider is especially powerful when used in combination with the [Automation API](https://pulumi.com/automation).\n\nFor a full list of supported resources, visit the [Pulumi Registry](https://www.pulumi.com/registry/packages/pulumiservice/). For the REST API reference documentation, visit [Pulumi Cloud API Documentation](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/).\n\nFor now, PSP is in public preview, but we're working on releasing v1.0 in the near future.\n\n## Installing\n\nThis package is available in many languages in the standard packaging formats.\n\n### Node.js (Javascript/TypeScript)\n\nTo use from JavaScript or TypeScript in Node.js, install using either `npm`:\n\n```sh\nnpm install @pulumi/pulumiservice\n```\n\nor `yarn`:\n\n```sh\nyarn add @pulumi/pulumiservice\n```\n\n### Python\n\nTo use from Python, install using `pip`:\n\n```sh\npip install pulumi_pulumiservice\n```\n\n### Go\n\nTo use from Go, use `go get` to grab the latest version of the library\n\n```sh\ngo get github.com/pulumi/pulumi-pulumiservice/sdk/go\n```\n\n### .NET\n\nTo use from .NET, install using `dotnet add package`:\n\n```sh\ndotnet add package Pulumi.PulumiService\n```\n\n### Java\n\nTo use from Java, add an entry to your `build.gradle` file:\n\n```groovy\nimplementation 'com.pulumi:pulumiservice:%Fill in latest version from the badge up top%'\n```\n\nOr to your `pom.xml` file:\n\n```xml\n<dependency>\n    <groupId>com.pulumi</groupId>\n    <artifactId>pulumiservice</artifactId>\n    <version>%Fill in latest version from the badge up top%</version>\n</dependency>\n```\n\n## Setup\n\nEnsure that you have ran `pulumi login`. Run `pulumi whoami` to verify that you are logged in.\n\n### Configuration Options\n\nUse `pulumi config set pulumiservice:<option>` or pass options to the [constructor of `new pulumiservice.Provider`][1].\n\n| Option        | Environment Variable Name | Required/Optional | Description                                                                           |\n|---------------|---------------------------|-------------------|---------------------------------------------------------------------------------------|\n| `accessToken` | `PULUMI_ACCESS_TOKEN`     | Optional          | Overrides [Pulumi Service Access Tokens][2]                                           |\n| `apiUrl`      | `PULUMI_BACKEND_URL`      | Optional          | Allows overriding default [Pulumi Service API URL][3] for [self hosted customers][4]. |\n|               |                           |                   |                                                                                       |\n\n## Examples\n\n```typescript\nimport * as aws from \"@pulumi/awsx\"\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as service from \"@pulumi/pulumiservice\";\n\nconst team = new service.Team(\"team\", {\n    name: \"pulumi-service-team\",\n    displayName: \"Pulumi Service\",\n    description: \"The Pulumi Service Team\",\n    organizationName: \"pulumi\",\n    teamType: \"pulumi\",\n    members: [\n        \"piers\",\n        \"bryce\",\n        \"casey\"\n        \"evan\",\n        \"devon\",\n        \"meagan\",\n        \"myles\",\n        \"steve\"\n    ],\n});\n\nexport const members = team.members;\n```\n\nCheck out the [examples/](examples/) directory for more examples.\n\n[1]: https://www.pulumi.com/registry/packages/pulumiservice/api-docs/provider/\n[2]: https://www.pulumi.com/docs/pulumi-cloud/access-management/access-tokens/\n[3]: https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/\n[4]: https://www.pulumi.com/docs/pulumi-cloud/self-hosted/\n"
    },
    "nodejs": {
      "dependencies": {
        "@pulumi/pulumi": "^3.0.0"
      },
      "packageName": "@pulumi/pulumiservice",
      "readme": "# Pulumi Service Provider\n\n[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)\n[![NPM version](https://badge.fury.io/js/%40pulumi%2Fpulumiservice.svg)](https://www.npmjs.com/package/@pulumi/pulumiservice)\n[![Python version](https://badge.fury.io/py/pulumi-pulumiservice.svg)](https://pypi.org/project/pulumi-pulumiservice)\n[![NuGet version](https://badge.fury.io/nu/pulumi.pulumiservice.svg)](https://badge.fury.io/nu/pulumi.pulumiservice)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-pulumiservice/sdk/go/pulumiservice)](https://pkg.go.dev/github.com/pulumi/pulumi-pulumiservice/sdk/go)\n[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumiservice.svg)](https://github.com/pulumi/pulumi-pulumiservice/blob/main/LICENSE)\n\nPulumi Service Provider for creating Pulumi Cloud resources.\n\nThe Pulumi Service Provider (PSP) is built on top of the [Pulumi Cloud REST API](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/), allowing Pulumi customers to create Pulumi Cloud resources using Pulumi programs. That includes Stacks, Environments, Teams, Tokens, Webhooks, Tags, Deployment Settings, Deployment Schedules and much more! Pulumi Service Provider is especially powerful when used in combination with the [Automation API](https://pulumi.com/automation).\n\nFor a full list of supported resources, visit the [Pulumi Registry](https://www.pulumi.com/registry/packages/pulumiservice/). For the REST API reference documentation, visit [Pulumi Cloud API Documentation](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/).\n\nFor now, PSP is in public preview, but we're working on releasing v1.0 in the near future.\n\n## Installing\n\nThis package is available in many languages in the standard packaging formats.\n\n### Node.js (Javascript/TypeScript)\n\nTo use from JavaScript or TypeScript in Node.js, install using either `npm`:\n\n```sh\nnpm install @pulumi/pulumiservice\n```\n\nor `yarn`:\n\n```sh\nyarn add @pulumi/pulumiservice\n```\n\n### Python\n\nTo use from Python, install using `pip`:\n\n```sh\npip install pulumi_pulumiservice\n```\n\n### Go\n\nTo use from Go, use `go get` to grab the latest version of the library\n\n```sh\ngo get github.com/pulumi/pulumi-pulumiservice/sdk/go\n```\n\n### .NET\n\nTo use from .NET, install using `dotnet add package`:\n\n```sh\ndotnet add package Pulumi.PulumiService\n```\n\n### Java\n\nTo use from Java, add an entry to your `build.gradle` file:\n\n```groovy\nimplementation 'com.pulumi:pulumiservice:%Fill in latest version from the badge up top%'\n```\n\nOr to your `pom.xml` file:\n\n```xml\n<dependency>\n    <groupId>com.pulumi</groupId>\n    <artifactId>pulumiservice</artifactId>\n    <version>%Fill in latest version from the badge up top%</version>\n</dependency>\n```\n\n## Setup\n\nEnsure that you have ran `pulumi login`. Run `pulumi whoami` to verify that you are logged in.\n\n### Configuration Options\n\nUse `pulumi config set pulumiservice:<option>` or pass options to the [constructor of `new pulumiservice.Provider`][1].\n\n| Option        | Environment Variable Name | Required/Optional | Description                                                                           |\n|---------------|---------------------------|-------------------|---------------------------------------------------------------------------------------|\n| `accessToken` | `PULUMI_ACCESS_TOKEN`     | Optional          | Overrides [Pulumi Service Access Tokens][2]                                           |\n| `apiUrl`      | `PULUMI_BACKEND_URL`      | Optional          | Allows overriding default [Pulumi Service API URL][3] for [self hosted customers][4]. |\n|               |                           |                   |                                                                                       |\n\n## Examples\n\n```typescript\nimport * as aws from \"@pulumi/awsx\"\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as service from \"@pulumi/pulumiservice\";\n\nconst team = new service.Team(\"team\", {\n    name: \"pulumi-service-team\",\n    displayName: \"Pulumi Service\",\n    description: \"The Pulumi Service Team\",\n    organizationName: \"pulumi\",\n    teamType: \"pulumi\",\n    members: [\n        \"piers\",\n        \"bryce\",\n        \"casey\"\n        \"evan\",\n        \"devon\",\n        \"meagan\",\n        \"myles\",\n        \"steve\"\n    ],\n});\n\nexport const members = team.members;\n```\n\nCheck out the [examples/](examples/) directory for more examples.\n\n[1]: https://www.pulumi.com/registry/packages/pulumiservice/api-docs/provider/\n[2]: https://www.pulumi.com/docs/pulumi-cloud/access-management/access-tokens/\n[3]: https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/\n[4]: https://www.pulumi.com/docs/pulumi-cloud/self-hosted/\n",
      "respectSchemaVersion": true
    },
    "python": {
      "packageName": "pulumi_pulumiservice",
      "pyproject": {
        "enabled": true
      },
      "readme": "# Pulumi Service Provider\n\n[![Slack](http://www.pulumi.com/images/docs/badges/slack.svg)](https://slack.pulumi.com)\n[![NPM version](https://badge.fury.io/js/%40pulumi%2Fpulumiservice.svg)](https://www.npmjs.com/package/@pulumi/pulumiservice)\n[![Python version](https://badge.fury.io/py/pulumi-pulumiservice.svg)](https://pypi.org/project/pulumi-pulumiservice)\n[![NuGet version](https://badge.fury.io/nu/pulumi.pulumiservice.svg)](https://badge.fury.io/nu/pulumi.pulumiservice)\n[![PkgGoDev](https://pkg.go.dev/badge/github.com/pulumi/pulumi-pulumiservice/sdk/go/pulumiservice)](https://pkg.go.dev/github.com/pulumi/pulumi-pulumiservice/sdk/go)\n[![License](https://img.shields.io/npm/l/%40pulumi%2Fpulumiservice.svg)](https://github.com/pulumi/pulumi-pulumiservice/blob/main/LICENSE)\n\nPulumi Service Provider for creating Pulumi Cloud resources.\n\nThe Pulumi Service Provider (PSP) is built on top of the [Pulumi Cloud REST API](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/), allowing Pulumi customers to create Pulumi Cloud resources using Pulumi programs. That includes Stacks, Environments, Teams, Tokens, Webhooks, Tags, Deployment Settings, Deployment Schedules and much more! Pulumi Service Provider is especially powerful when used in combination with the [Automation API](https://pulumi.com/automation).\n\nFor a full list of supported resources, visit the [Pulumi Registry](https://www.pulumi.com/registry/packages/pulumiservice/). For the REST API reference documentation, visit [Pulumi Cloud API Documentation](https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/).\n\nFor now, PSP is in public preview, but we're working on releasing v1.0 in the near future.\n\n## Installing\n\nThis package is available in many languages in the standard packaging formats.\n\n### Node.js (Javascript/TypeScript)\n\nTo use from JavaScript or TypeScript in Node.js, install using either `npm`:\n\n```sh\nnpm install @pulumi/pulumiservice\n```\n\nor `yarn`:\n\n```sh\nyarn add @pulumi/pulumiservice\n```\n\n### Python\n\nTo use from Python, install using `pip`:\n\n```sh\npip install pulumi_pulumiservice\n```\n\n### Go\n\nTo use from Go, use `go get` to grab the latest version of the library\n\n```sh\ngo get github.com/pulumi/pulumi-pulumiservice/sdk/go\n```\n\n### .NET\n\nTo use from .NET, install using `dotnet add package`:\n\n```sh\ndotnet add package Pulumi.PulumiService\n```\n\n### Java\n\nTo use from Java, add an entry to your `build.gradle` file:\n\n```groovy\nimplementation 'com.pulumi:pulumiservice:%Fill in latest version from the badge up top%'\n```\n\nOr to your `pom.xml` file:\n\n```xml\n<dependency>\n    <groupId>com.pulumi</groupId>\n    <artifactId>pulumiservice</artifactId>\n    <version>%Fill in latest version from the badge up top%</version>\n</dependency>\n```\n\n## Setup\n\nEnsure that you have ran `pulumi login`. Run `pulumi whoami` to verify that you are logged in.\n\n### Configuration Options\n\nUse `pulumi config set pulumiservice:<option>` or pass options to the [constructor of `new pulumiservice.Provider`][1].\n\n| Option        | Environment Variable Name | Required/Optional | Description                                                                           |\n|---------------|---------------------------|-------------------|---------------------------------------------------------------------------------------|\n| `accessToken` | `PULUMI_ACCESS_TOKEN`     | Optional          | Overrides [Pulumi Service Access Tokens][2]                                           |\n| `apiUrl`      | `PULUMI_BACKEND_URL`      | Optional          | Allows overriding default [Pulumi Service API URL][3] for [self hosted customers][4]. |\n|               |                           |                   |                                                                                       |\n\n## Examples\n\n```typescript\nimport * as aws from \"@pulumi/awsx\"\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as service from \"@pulumi/pulumiservice\";\n\nconst team = new service.Team(\"team\", {\n    name: \"pulumi-service-team\",\n    displayName: \"Pulumi Service\",\n    description: \"The Pulumi Service Team\",\n    organizationName: \"pulumi\",\n    teamType: \"pulumi\",\n    members: [\n        \"piers\",\n        \"bryce\",\n        \"casey\"\n        \"evan\",\n        \"devon\",\n        \"meagan\",\n        \"myles\",\n        \"steve\"\n    ],\n});\n\nexport const members = team.members;\n```\n\nCheck out the [examples/](examples/) directory for more examples.\n\n[1]: https://www.pulumi.com/registry/packages/pulumiservice/api-docs/provider/\n[2]: https://www.pulumi.com/docs/pulumi-cloud/access-management/access-tokens/\n[3]: https://www.pulumi.com/docs/pulumi-cloud/reference/cloud-rest-api/\n[4]: https://www.pulumi.com/docs/pulumi-cloud/self-hosted/\n",
      "requires": {
        "pulumi": ">=3.0.0,<4.0.0"
      },
      "respectSchemaVersion": true
    }
  },
  "config": {
    "variables": {
      "accessToken": {
        "type": "string",
        "description": "Access Token to authenticate with Pulumi Cloud.",
        "secret": true
      },
      "apiUrl": {
        "type": "string",
        "description": "Optional override of Pulumi Cloud API endpoint.",
        "default": "https://api.pulumi.com",
        "defaultInfo": {
          "environment": [
            "PULUMI_BACKEND_URL"
          ]
        }
      }
    }
  },
  "types": {
    "pulumiservice:index:AWSOIDCConfiguration": {
      "properties": {
        "duration": {
          "type": "string",
          "description": "Duration of the assume-role session in “XhYmZs” format"
        },
        "policyARNs": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Optional set of IAM policy ARNs that further restrict the assume-role session"
        },
        "roleARN": {
          "type": "string",
          "description": "The ARN of the role to assume using the OIDC token."
        },
        "sessionName": {
          "type": "string",
          "description": "The name of the assume-role session."
        }
      },
      "type": "object",
      "required": [
        "roleARN",
        "sessionName"
      ]
    },
    "pulumiservice:index:ApprovalRuleConfig": {
      "properties": {
        "allowSelfApproval": {
          "type": "boolean",
          "description": "Whether self-approval is allowed."
        },
        "eligibleApprovers": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:EligibleApprover"
          },
          "description": "List of eligible approvers."
        },
        "numApprovalsRequired": {
          "type": "integer",
          "description": "Number of approvals required."
        },
        "requireReapprovalOnChange": {
          "type": "boolean",
          "description": "Whether reapproval is required on changes."
        }
      },
      "type": "object",
      "required": [
        "numApprovalsRequired",
        "allowSelfApproval",
        "requireReapprovalOnChange",
        "eligibleApprovers"
      ]
    },
    "pulumiservice:index:AuthPolicyDecision": {
      "type": "string",
      "enum": [
        {
          "description": "A deny rule for Oidc Issuer Policy.",
          "value": "deny"
        },
        {
          "description": "An allow rule for Oidc Issuer Policy.",
          "value": "allow"
        }
      ]
    },
    "pulumiservice:index:AuthPolicyDefinition": {
      "properties": {
        "authorizedPermissions": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:AuthPolicyPermissionLevel"
          },
          "description": "The permission level for organization tokens."
        },
        "decision": {
          "$ref": "#/types/pulumiservice:index:AuthPolicyDecision",
          "description": "The rule type of this policy definition"
        },
        "rules": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "OIDC rules to set for this policy."
        },
        "runnerID": {
          "type": "string",
          "description": "The runner ID for deployment runner tokens."
        },
        "teamName": {
          "type": "string",
          "description": "The team name for team tokens."
        },
        "tokenType": {
          "$ref": "#/types/pulumiservice:index:AuthPolicyTokenType",
          "description": "The token type for this policy definition"
        },
        "userLogin": {
          "type": "string",
          "description": "The user login for personal tokens."
        }
      },
      "type": "object",
      "required": [
        "decision",
        "tokenType",
        "rules"
      ]
    },
    "pulumiservice:index:AuthPolicyPermissionLevel": {
      "type": "string",
      "enum": [
        {
          "description": "Standard level of permissions.",
          "value": "standard"
        },
        {
          "description": "Admin level of permissions.",
          "value": "admin"
        }
      ]
    },
    "pulumiservice:index:AuthPolicyTokenType": {
      "type": "string",
      "enum": [
        {
          "description": "Personal Pulumi token. Requires userLogin field to be filled.",
          "value": "personal"
        },
        {
          "description": "Team Pulumi token. Requires teamName field to be filled.",
          "value": "team"
        },
        {
          "description": "Organization Pulumi token. Requires authorizedPermissions field to be filled.",
          "value": "organization"
        },
        {
          "description": "Deployment Runner Pulumi token. Requires runnerID field to be filled.",
          "value": "runner"
        }
      ]
    },
    "pulumiservice:index:AzureOIDCConfiguration": {
      "properties": {
        "clientId": {
          "type": "string",
          "description": "The client ID of the federated workload identity."
        },
        "subscriptionId": {
          "type": "string",
          "description": "The subscription ID of the federated workload identity."
        },
        "tenantId": {
          "type": "string",
          "description": "The tenant ID of the federated workload identity."
        }
      },
      "type": "object",
      "required": [
        "clientId",
        "tenantId",
        "subscriptionId"
      ]
    },
    "pulumiservice:index:CloudProvider": {
      "type": "string",
      "enum": [
        {
          "description": "Amazon Web Services",
          "value": "aws"
        },
        {
          "description": "Microsoft Azure",
          "value": "azure-native"
        },
        {
          "description": "Google Cloud Platform",
          "value": "gcp"
        },
        {
          "description": "Kubernetes",
          "value": "kubernetes"
        },
        {
          "description": "Oracle Cloud Infrastructure",
          "value": "oci"
        }
      ]
    },
    "pulumiservice:index:DeploymentSettingsCacheOptions": {
      "description": "Dependency cache settings for the deployment",
      "properties": {
        "enable": {
          "type": "boolean",
          "description": "Enable dependency caching",
          "default": false
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsExecutorContext": {
      "description": "The executor context defines information about the executor where the deployment is executed. If unspecified, the default 'pulumi/pulumi' image is used.",
      "properties": {
        "executorImage": {
          "type": "string",
          "description": "Allows overriding the default executor image with a custom image. E.g. 'pulumi/pulumi-nodejs:latest'"
        }
      },
      "type": "object",
      "required": [
        "executorImage"
      ]
    },
    "pulumiservice:index:DeploymentSettingsGitAuthBasicAuth": {
      "description": "Git source settings for a deployment.",
      "properties": {
        "password": {
          "type": "string",
          "description": "Password for git basic authentication.",
          "secret": true
        },
        "username": {
          "type": "string",
          "description": "User name for git basic authentication.",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "username",
        "password"
      ]
    },
    "pulumiservice:index:DeploymentSettingsGitAuthSSHAuth": {
      "description": "Git source settings for a deployment.",
      "properties": {
        "password": {
          "type": "string",
          "description": "Optional password for SSH authentication.",
          "secret": true
        },
        "sshPrivateKey": {
          "type": "string",
          "description": "SSH private key.",
          "secret": true
        }
      },
      "type": "object",
      "required": [
        "sshPrivateKey"
      ]
    },
    "pulumiservice:index:DeploymentSettingsGitSource": {
      "description": "Git source settings for a deployment.",
      "properties": {
        "branch": {
          "type": "string",
          "description": "The branch to deploy. One of either `branch` or `commit` must be specified."
        },
        "commit": {
          "type": "string",
          "description": "The commit to deploy. One of either `branch` or `commit` must be specified."
        },
        "gitAuth": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGitSourceGitAuth",
          "description": "Git authentication configuration for this deployment. Should not be specified if there are `gitHub` settings for this deployment."
        },
        "repoDir": {
          "type": "string",
          "description": "The directory within the repository where the Pulumi.yaml is located."
        },
        "repoUrl": {
          "type": "string",
          "description": "The repository URL to use for git settings. Should not be specified if there are `gitHub` settings for this deployment."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsGitSourceGitAuth": {
      "description": "Git source settings for a deployment.",
      "properties": {
        "basicAuth": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGitAuthBasicAuth",
          "description": "Basic auth for git authentication. Only one of `personalAccessToken`, `sshAuth`, or `basicAuth` must be defined."
        },
        "sshAuth": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGitAuthSSHAuth",
          "description": "SSH auth for git authentication. Only one of `personalAccessToken`, `sshAuth`, or `basicAuth` must be defined."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsGithub": {
      "description": "GitHub settings for the deployment.",
      "properties": {
        "deployCommits": {
          "type": "boolean",
          "description": "Trigger a deployment running `pulumi up` on commit.",
          "default": true
        },
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The paths within the repo that deployments should be filtered to."
        },
        "previewPullRequests": {
          "type": "boolean",
          "description": "Trigger a deployment running `pulumi preview` when a PR is opened.",
          "default": true
        },
        "pullRequestTemplate": {
          "type": "boolean",
          "description": "Use this stack as a template for pull request review stacks.",
          "default": false
        },
        "repository": {
          "type": "string",
          "description": "The GitHub repository in the format org/repo."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsOperationContext": {
      "description": "Settings related to the Pulumi operation environment during the deployment.",
      "properties": {
        "environmentVariables": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Environment variables to set for the deployment."
        },
        "oidc": {
          "$ref": "#/types/pulumiservice:index:OperationContextOIDC",
          "description": "OIDC configuration to use during the deployment."
        },
        "options": {
          "$ref": "#/types/pulumiservice:index:OperationContextOptions",
          "description": "Options to override default behavior during the deployment."
        },
        "preRunCommands": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Shell commands to run before the Pulumi operation executes."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsSourceContext": {
      "description": "Settings related to the source of the deployment.",
      "properties": {
        "git": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGitSource",
          "description": "Git source settings for a deployment."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:DeploymentSettingsVcs": {
      "description": "VCS settings for the deployment, supporting multiple VCS providers.",
      "properties": {
        "deployCommits": {
          "type": "boolean",
          "description": "Trigger a deployment running `pulumi up` on commit.",
          "default": true
        },
        "deployPullRequest": {
          "type": "integer",
          "description": "Deploy a specific pull request number."
        },
        "paths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The paths within the repo that deployments should be filtered to."
        },
        "previewPullRequests": {
          "type": "boolean",
          "description": "Trigger a deployment running `pulumi preview` when a PR is opened.",
          "default": true
        },
        "provider": {
          "type": "string",
          "description": "The VCS provider type."
        },
        "pullRequestTemplate": {
          "type": "boolean",
          "description": "Use this stack as a template for pull request review stacks.",
          "default": false
        },
        "repository": {
          "type": "string",
          "description": "The repository identifier (e.g., 'ProjectName/RepoName' for Azure DevOps, 'org/repo' for GitHub)."
        }
      },
      "type": "object",
      "required": [
        "provider"
      ]
    },
    "pulumiservice:index:EligibleApprover": {
      "properties": {
        "rbacPermission": {
          "$ref": "#/types/pulumiservice:index:RbacPermission",
          "description": "RBAC permission that gives right to approve."
        },
        "teamName": {
          "type": "string",
          "description": "Name of the team that can approve."
        },
        "user": {
          "type": "string",
          "description": "Login of the user that can approve."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:EnvironmentIdentifier": {
      "properties": {
        "name": {
          "type": "string",
          "description": "The environment name."
        },
        "organization": {
          "type": "string",
          "description": "The organization name."
        },
        "project": {
          "type": "string",
          "description": "The project name."
        }
      },
      "type": "object",
      "required": [
        "organization",
        "project",
        "name"
      ]
    },
    "pulumiservice:index:EnvironmentPermission": {
      "type": "string",
      "enum": [
        {
          "description": "No permissions.",
          "value": "none"
        },
        {
          "description": "Permission to read environment definition only.",
          "value": "read"
        },
        {
          "description": "Permission to open and read the environment.",
          "value": "open"
        },
        {
          "description": "Permission to open, read and update the environment.",
          "value": "write"
        },
        {
          "description": "Permission for all operations on the environment.",
          "value": "admin"
        }
      ]
    },
    "pulumiservice:index:GCPOIDCConfiguration": {
      "properties": {
        "projectId": {
          "type": "string",
          "description": "The numerical ID of the GCP project."
        },
        "providerId": {
          "type": "string",
          "description": "The ID of the identity provider associated with the workload pool."
        },
        "region": {
          "type": "string",
          "description": "The region of the GCP project."
        },
        "serviceAccount": {
          "type": "string",
          "description": "The email address of the service account to use."
        },
        "tokenLifetime": {
          "type": "string",
          "description": "The lifetime of the temporary credentials in “XhYmZs” format."
        },
        "workloadPoolId": {
          "type": "string",
          "description": "The ID of the workload pool to use."
        }
      },
      "type": "object",
      "required": [
        "projectId",
        "workloadPoolId",
        "providerId",
        "serviceAccount"
      ]
    },
    "pulumiservice:index:InsightsAccountState": {
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Name of the insights account.",
          "replaceOnChanges": true
        },
        "environment": {
          "type": "string",
          "description": "The ESC environment used for provider credentials. Format: 'project/environment' with optional '@version' suffix (e.g., 'my-project/prod-env' or 'my-project/prod-env@v1.0')."
        },
        "insightsAccountId": {
          "type": "string",
          "description": "The insights account identifier."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "replaceOnChanges": true
        },
        "provider": {
          "$ref": "#/types/pulumiservice:index:CloudProvider",
          "description": "The cloud provider for scanning.",
          "replaceOnChanges": true
        },
        "providerConfig": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "Provider-specific configuration as a JSON object. For AWS, specify regions to scan: {\"regions\": [\"us-west-1\", \"us-west-2\"]}."
        },
        "scanSchedule": {
          "$ref": "#/types/pulumiservice:index:ScanSchedule",
          "description": "Schedule for automated scanning. Use 'daily' for daily scans, '12h' for scans every twelve hours, or 'none' to disable scheduled scanning. Defaults to 'none'.",
          "default": "none"
        },
        "scheduledScanEnabled": {
          "type": "boolean",
          "description": "Whether scheduled scanning is enabled."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Key-value tags to associate with the insights account."
        }
      },
      "type": "object",
      "required": [
        "organizationName",
        "accountName",
        "provider",
        "environment",
        "scanSchedule",
        "insightsAccountId",
        "scheduledScanEnabled"
      ]
    },
    "pulumiservice:index:OperationContextOIDC": {
      "properties": {
        "aws": {
          "$ref": "#/types/pulumiservice:index:AWSOIDCConfiguration",
          "description": "AWS-specific OIDC configuration."
        },
        "azure": {
          "$ref": "#/types/pulumiservice:index:AzureOIDCConfiguration",
          "description": "Azure-specific OIDC configuration."
        },
        "gcp": {
          "$ref": "#/types/pulumiservice:index:GCPOIDCConfiguration",
          "description": "GCP-specific OIDC configuration."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:OperationContextOptions": {
      "properties": {
        "deleteAfterDestroy": {
          "type": "boolean",
          "description": "Whether the stack should be deleted after it is destroyed."
        },
        "shell": {
          "type": "string",
          "description": "The shell to use to run commands during the deployment. Defaults to 'bash'."
        },
        "skipInstallDependencies": {
          "type": "boolean",
          "description": "Skip the default dependency installation step - use this to customize the dependency installation (e.g. if using yarn or poetry)"
        },
        "skipIntermediateDeployments": {
          "type": "boolean",
          "description": "Skip intermediate deployments (Consolidate multiple deployments of the same type into one deployment)"
        }
      },
      "type": "object"
    },
    "pulumiservice:index:OrganizationMemberInfo": {
      "properties": {
        "role": {
          "type": "string",
          "description": "The member's built-in role (member, admin, billing-manager). Absent when a custom role is assigned — check `roleId` in that case."
        },
        "roleId": {
          "type": "string",
          "description": "The custom role ID assigned to this member, if any."
        },
        "roleName": {
          "type": "string",
          "description": "The name of the currently assigned role (custom role name, or built-in role)."
        },
        "username": {
          "type": "string",
          "description": "The member's Pulumi Cloud username."
        },
        "virtualAdmin": {
          "type": "boolean",
          "description": "Whether this member is an admin in Pulumi Cloud without admin access on the backing identity provider."
        }
      },
      "type": "object",
      "required": [
        "username",
        "virtualAdmin"
      ]
    },
    "pulumiservice:index:PolicyGroupPolicyPackReference": {
      "description": "A reference to a policy pack within a policy group.",
      "properties": {
        "config": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "Optional configuration for the policy pack. The special key `all` sets the default enforcement level for every policy in the pack; per-policy entries override it."
        },
        "displayName": {
          "type": "string",
          "description": "The display name of the policy pack."
        },
        "name": {
          "type": "string",
          "description": "The name of the policy pack."
        },
        "version": {
          "type": "number",
          "description": "The server-derived numeric version of the policy pack. This is output-only; use `versionTag` to pin a specific version."
        },
        "versionTag": {
          "type": "string",
          "description": "The version tag of the policy pack."
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "pulumiservice:index:PolicyGroupPolicyPackReferenceInput": {
      "description": "A reference to a policy pack within a policy group (input).",
      "properties": {
        "config": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "Optional configuration for the policy pack. The special key `all` sets the default enforcement level for every policy in the pack; per-policy entries override it."
        },
        "displayName": {
          "type": "string",
          "description": "The display name of the policy pack."
        },
        "name": {
          "type": "string",
          "description": "The name of the policy pack."
        },
        "versionTag": {
          "type": "string",
          "description": "The version tag of the policy pack."
        }
      },
      "type": "object",
      "required": [
        "name"
      ]
    },
    "pulumiservice:index:PolicyGroupStackReference": {
      "description": "A reference to a stack within a policy group.",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the stack."
        },
        "routingProject": {
          "type": "string",
          "description": "The routing project name (also known as project name)."
        }
      },
      "type": "object",
      "required": [
        "name",
        "routingProject"
      ]
    },
    "pulumiservice:index:PulumiOperation": {
      "type": "string",
      "enum": [
        {
          "description": "Analogous to `pulumi up` command.",
          "value": "update"
        },
        {
          "description": "Analogous to `pulumi preview` command.",
          "value": "preview"
        },
        {
          "description": "Analogous to `pulumi refresh` command.",
          "value": "refresh"
        },
        {
          "description": "Analogous to `pulumi destroy` command.",
          "value": "destroy"
        }
      ]
    },
    "pulumiservice:index:RbacPermission": {
      "type": "string",
      "enum": [
        {
          "name": "Read",
          "description": "Read permission.",
          "value": "environment:read"
        },
        {
          "name": "ReadDecrypt",
          "description": "Read and decrypt permission.",
          "value": "environment:read_decrypt"
        },
        {
          "name": "Open",
          "description": "Open permission.",
          "value": "environment:open"
        },
        {
          "name": "Write",
          "description": "Write permission.",
          "value": "environment:write"
        },
        {
          "name": "Delete",
          "description": "Delete permission.",
          "value": "environment:delete"
        },
        {
          "name": "Clone",
          "description": "Clone permission.",
          "value": "environment:clone"
        },
        {
          "name": "Rotate",
          "description": "Rotate permission.",
          "value": "environment:rotate"
        }
      ]
    },
    "pulumiservice:index:RoleScopeInfo": {
      "properties": {
        "description": {
          "type": "string",
          "description": "Human-readable description of what the scope grants."
        },
        "groupName": {
          "type": "string",
          "description": "The scope group label as shown in the Pulumi Cloud console (e.g. `Stacks`)."
        },
        "name": {
          "type": "string",
          "description": "The scope name (e.g. `stack:read`)."
        },
        "resourceType": {
          "type": "string",
          "description": "The resource-type bucket the scope belongs to (e.g. `stack`, `team`)."
        }
      },
      "type": "object",
      "required": [
        "name",
        "description",
        "groupName",
        "resourceType"
      ]
    },
    "pulumiservice:index:ScanSchedule": {
      "type": "string",
      "enum": [
        {
          "description": "Disable automated scanning.",
          "value": "none"
        },
        {
          "description": "Run automated scans every twelve hours.",
          "value": "12h"
        },
        {
          "description": "Run automated scans once per day.",
          "value": "daily"
        }
      ]
    },
    "pulumiservice:index:TargetActionType": {
      "type": "string",
      "enum": [
        {
          "name": "Update",
          "description": "Update action type for approval rules.",
          "value": "update"
        }
      ]
    },
    "pulumiservice:index:TeamStackPermissionScope": {
      "type": "number",
      "enum": [
        {
          "name": "read",
          "description": "Grants read permissions to stack.",
          "value": 101
        },
        {
          "name": "edit",
          "description": "Grants edit permissions to stack.",
          "value": 102
        },
        {
          "name": "admin",
          "description": "Grants admin permissions to stack.",
          "value": 103
        }
      ]
    },
    "pulumiservice:index:TemplateSourceDestination": {
      "properties": {
        "url": {
          "type": "string",
          "description": "Destination URL that gets filled in on new project creation."
        }
      },
      "type": "object"
    },
    "pulumiservice:index:WebhookFilters": {
      "type": "string",
      "enum": [
        {
          "name": "StackCreated",
          "description": "Trigger a webhook when a stack is created. Only valid for org webhooks.",
          "value": "stack_created"
        },
        {
          "name": "StackDeleted",
          "description": "Trigger a webhook when a stack is deleted. Only valid for org webhooks.",
          "value": "stack_deleted"
        },
        {
          "name": "UpdateSucceeded",
          "description": "Trigger a webhook when a stack update succeeds.",
          "value": "update_succeeded"
        },
        {
          "name": "UpdateFailed",
          "description": "Trigger a webhook when a stack update fails.",
          "value": "update_failed"
        },
        {
          "name": "PreviewSucceeded",
          "description": "Trigger a webhook when a stack preview succeeds.",
          "value": "preview_succeeded"
        },
        {
          "name": "PreviewFailed",
          "description": "Trigger a webhook when a stack preview fails.",
          "value": "preview_failed"
        },
        {
          "name": "DestroySucceeded",
          "description": "Trigger a webhook when a stack destroy succeeds.",
          "value": "destroy_succeeded"
        },
        {
          "name": "DestroyFailed",
          "description": "Trigger a webhook when a stack destroy fails.",
          "value": "destroy_failed"
        },
        {
          "name": "RefreshSucceeded",
          "description": "Trigger a webhook when a stack refresh succeeds.",
          "value": "refresh_succeeded"
        },
        {
          "name": "RefreshFailed",
          "description": "Trigger a webhook when a stack refresh fails.",
          "value": "refresh_failed"
        },
        {
          "name": "DeploymentQueued",
          "description": "Trigger a webhook when a deployment is queued.",
          "value": "deployment_queued"
        },
        {
          "name": "DeploymentStarted",
          "description": "Trigger a webhook when a deployment starts running.",
          "value": "deployment_started"
        },
        {
          "name": "DeploymentSucceeded",
          "description": "Trigger a webhook when a deployment succeeds.",
          "value": "deployment_succeeded"
        },
        {
          "name": "DeploymentFailed",
          "description": "Trigger a webhook when a deployment fails.",
          "value": "deployment_failed"
        },
        {
          "name": "DriftDetected",
          "description": "Trigger a webhook when drift is detected.",
          "value": "drift_detected"
        },
        {
          "name": "DriftDetectionSucceeded",
          "description": "Trigger a webhook when a drift detection run succeeds, regardless of whether drift is detected.",
          "value": "drift_detection_succeeded"
        },
        {
          "name": "DriftDetectionFailed",
          "description": "Trigger a webhook when a drift detection run fails.",
          "value": "drift_detection_failed"
        },
        {
          "name": "DriftRemediationSucceeded",
          "description": "Trigger a webhook when a drift remediation run succeeds.",
          "value": "drift_remediation_succeeded"
        },
        {
          "name": "DriftRemediationFailed",
          "description": "Trigger a webhook when a drift remediation run fails.",
          "value": "drift_remediation_failed"
        },
        {
          "name": "EnvironmentCreated",
          "description": "Trigger a webhook when a new environment is created.",
          "value": "environment_created"
        },
        {
          "name": "EnvironmentDeleted",
          "description": "Trigger a webhook when an environment is deleted.",
          "value": "environment_deleted"
        },
        {
          "name": "EnvironmentRevisionCreated",
          "description": "Trigger a webhook when a new revision is created on an environment.",
          "value": "environment_revision_created"
        },
        {
          "name": "EnvironmentRevisionRetracted",
          "description": "Trigger a webhook when a revision is retracted on an environment.",
          "value": "environment_revision_retracted"
        },
        {
          "name": "EnvironmentRevisionTagCreated",
          "description": "Trigger a webhook when a revision tag is created on an environment.",
          "value": "environment_revision_tag_created"
        },
        {
          "name": "EnvironmentRevisionTagDeleted",
          "description": "Trigger a webhook when a revision tag is deleted on an environment.",
          "value": "environment_revision_tag_deleted"
        },
        {
          "name": "EnvironmentRevisionTagUpdated",
          "description": "Trigger a webhook when a revision tag is updated on an environment.",
          "value": "environment_revision_tag_updated"
        },
        {
          "name": "EnvironmentTagCreated",
          "description": "Trigger a webhook when an environment tag is created.",
          "value": "environment_tag_created"
        },
        {
          "name": "EnvironmentTagDeleted",
          "description": "Trigger a webhook when an environment tag is deleted.",
          "value": "environment_tag_deleted"
        },
        {
          "name": "EnvironmentTagUpdated",
          "description": "Trigger a webhook when an environment tag is updated.",
          "value": "environment_tag_updated"
        },
        {
          "name": "ImportedEnvironmentChanged",
          "description": "Trigger a webhook when an imported environment has changed.",
          "value": "imported_environment_changed"
        }
      ]
    },
    "pulumiservice:index:WebhookFormat": {
      "type": "string",
      "enum": [
        {
          "description": "The default webhook format.",
          "value": "raw"
        },
        {
          "description": "Messages formatted for consumption by Slack incoming webhooks.",
          "value": "slack"
        },
        {
          "name": "PulumiDeployments",
          "description": "Initiate deployments on a stack from a Pulumi Cloud webhook.",
          "value": "pulumi_deployments"
        },
        {
          "name": "MicrosoftTeams",
          "description": "Messages formatted for consumption by Microsoft Teams incoming webhooks.",
          "value": "ms_teams"
        }
      ]
    },
    "pulumiservice:index:WebhookGroup": {
      "type": "string",
      "enum": [
        {
          "name": "Stacks",
          "description": "A group of webhooks containing all stack events.",
          "value": "stacks"
        },
        {
          "name": "Deployments",
          "description": "A group of webhooks containing all deployment events.",
          "value": "deployments"
        },
        {
          "name": "Environments",
          "description": "A group of webhooks containing all environment events.",
          "value": "environments"
        }
      ]
    }
  },
  "provider": {
    "properties": {
      "accessToken": {
        "type": "string",
        "description": "Access Token to authenticate with Pulumi Cloud.",
        "secret": true
      },
      "apiUrl": {
        "type": "string",
        "description": "Optional override of Pulumi Cloud API endpoint.",
        "default": "https://api.pulumi.com",
        "defaultInfo": {
          "environment": [
            "PULUMI_BACKEND_URL"
          ]
        }
      }
    },
    "inputProperties": {
      "accessToken": {
        "type": "string",
        "description": "Access Token to authenticate with Pulumi Cloud.",
        "secret": true
      },
      "apiUrl": {
        "type": "string",
        "description": "Optional override of Pulumi Cloud API endpoint.",
        "default": "https://api.pulumi.com",
        "defaultInfo": {
          "environment": [
            "PULUMI_BACKEND_URL"
          ]
        }
      }
    }
  },
  "resources": {
    "pulumiservice:index:AccessToken": {
      "description": "Access tokens allow a user to authenticate against the Pulumi Cloud",
      "properties": {
        "description": {
          "type": "string",
          "description": "Description of the access token."
        },
        "value": {
          "type": "string",
          "description": "The token's value.",
          "secret": true
        }
      },
      "required": [
        "description",
        "value"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the access token."
        }
      },
      "requiredInputs": [
        "description"
      ]
    },
    "pulumiservice:index:AgentPool": {
      "description": "Agent Pool for customer managed deployments",
      "properties": {
        "agentPoolId": {
          "type": "string",
          "description": "The agent pool identifier."
        },
        "description": {
          "type": "string",
          "description": "Description of the agent pool."
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "Optional. Flag indicating whether to delete the agent pool even if stacks are configured to use it."
        },
        "name": {
          "type": "string",
          "description": "The name of the agent pool."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name."
        },
        "tokenValue": {
          "type": "string",
          "description": "The agent pool's token's value.",
          "secret": true
        }
      },
      "required": [
        "agentPoolId",
        "name",
        "organizationName",
        "tokenValue"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Description of the agent pool."
        },
        "forceDestroy": {
          "type": "boolean",
          "description": "Optional. Flag indicating whether to delete the agent pool even if stacks are configured to use it."
        },
        "name": {
          "type": "string",
          "description": "Name of the agent pool.",
          "willReplaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "name",
        "organizationName"
      ]
    },
    "pulumiservice:index:ApprovalRule": {
      "description": "An approval rule for environment deployments.",
      "properties": {
        "approvalRuleConfig": {
          "$ref": "#/types/pulumiservice:index:ApprovalRuleConfig",
          "description": "The approval rule configuration."
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the approval rule is enabled."
        },
        "environmentIdentifier": {
          "$ref": "#/types/pulumiservice:index:EnvironmentIdentifier",
          "description": "The environment this rule applies to."
        },
        "name": {
          "type": "string",
          "description": "Name of the approval rule."
        },
        "targetActionTypes": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:TargetActionType"
          },
          "description": "The type of action this rule applies to."
        }
      },
      "required": [
        "name",
        "enabled",
        "targetActionTypes",
        "environmentIdentifier",
        "approvalRuleConfig"
      ],
      "inputProperties": {
        "approvalRuleConfig": {
          "$ref": "#/types/pulumiservice:index:ApprovalRuleConfig",
          "description": "The approval rule configuration."
        },
        "enabled": {
          "type": "boolean",
          "description": "Whether the approval rule is enabled."
        },
        "environmentIdentifier": {
          "$ref": "#/types/pulumiservice:index:EnvironmentIdentifier",
          "description": "The environment this rule applies to."
        },
        "name": {
          "type": "string",
          "description": "The name of the approval rule.",
          "willReplaceOnChanges": true
        },
        "targetActionTypes": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:TargetActionType"
          },
          "description": "The type of action this rule applies to."
        }
      },
      "requiredInputs": [
        "name",
        "enabled",
        "targetActionTypes",
        "environmentIdentifier",
        "approvalRuleConfig"
      ]
    },
    "pulumiservice:index:DeploymentSchedule": {
      "description": "A scheduled recurring or single time run of a pulumi command.",
      "properties": {
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "pulumiOperation": {
          "$ref": "#/types/pulumiservice:index:PulumiOperation",
          "description": "Which operation to run."
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for recurring scheduled runs. If you are supplying this, do not supply timestamp."
        },
        "scheduleId": {
          "type": "string",
          "description": "Schedule ID of the created schedule, assigned by Pulumi Cloud."
        },
        "stack": {
          "type": "string",
          "description": "Stack name."
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the schedule should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z. If you are supplying this, do not supply scheduleCron.",
          "willReplaceOnChanges": true
        }
      },
      "required": [
        "organization",
        "project",
        "stack",
        "pulumiOperation",
        "scheduleId"
      ],
      "inputProperties": {
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "pulumiOperation": {
          "$ref": "#/types/pulumiservice:index:PulumiOperation",
          "description": "Which command to run."
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for recurring scheduled runs. If you are supplying this, do not supply timestamp."
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "willReplaceOnChanges": true
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the schedule should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z. If you are supplying this, do not supply scheduleCron.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack",
        "pulumiOperation"
      ]
    },
    "pulumiservice:index:DeploymentSettings": {
      "description": "Deployment settings configure Pulumi Deployments for a stack.\n\n### Import\n\nDeployment settings can be imported using the `id`, which for deployment settings is `{org}/{project}/{stack}` e.g.,\n\n```sh\n $ pulumi import pulumiservice:index:DeploymentSettings my_settings my-org/my-project/my-stack\n```\n\n",
      "properties": {
        "agentPoolId": {
          "type": "string",
          "description": "The agent pool identifier to use for the deployment."
        },
        "cacheOptions": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsCacheOptions",
          "description": "Dependency cache settings for the deployment"
        },
        "executorContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsExecutorContext",
          "description": "Settings related to the deployment executor."
        },
        "github": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGithub",
          "description": "GitHub settings for the deployment.",
          "deprecationMessage": "Use the 'vcs' property instead, which supports both GitHub and Azure DevOps."
        },
        "operationContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsOperationContext",
          "description": "Settings related to the Pulumi operation environment during the deployment."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "sourceContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsSourceContext",
          "description": "Settings related to the source of the deployment."
        },
        "stack": {
          "type": "string",
          "description": "Stack name."
        },
        "vcs": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsVcs",
          "description": "VCS settings for the deployment. Supports Azure DevOps and GitHub via the 'provider' discriminator field."
        }
      },
      "required": [
        "organization",
        "project",
        "stack"
      ],
      "inputProperties": {
        "agentPoolId": {
          "type": "string",
          "description": "The agent pool identifier to use for the deployment."
        },
        "cacheOptions": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsCacheOptions",
          "description": "Dependency cache settings for the deployment"
        },
        "executorContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsExecutorContext",
          "description": "Settings related to the deployment executor."
        },
        "github": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsGithub",
          "description": "GitHub settings for the deployment.",
          "deprecationMessage": "Use the 'vcs' property instead, which supports both GitHub and Azure DevOps."
        },
        "operationContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsOperationContext",
          "description": "Settings related to the Pulumi operation environment during the deployment."
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "sourceContext": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsSourceContext",
          "description": "Settings related to the source of the deployment."
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "willReplaceOnChanges": true
        },
        "vcs": {
          "$ref": "#/types/pulumiservice:index:DeploymentSettingsVcs",
          "description": "VCS settings for the deployment. Supports Azure DevOps and GitHub via the 'provider' discriminator field."
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack"
      ]
    },
    "pulumiservice:index:DriftSchedule": {
      "description": "A cron schedule to run drift detection.",
      "properties": {
        "autoRemediate": {
          "type": "boolean",
          "description": "Whether any drift detected should be remediated after a drift run.",
          "default": false
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for when to run drift detection."
        },
        "scheduleId": {
          "type": "string",
          "description": "Schedule ID of the created schedule, assigned by Pulumi Cloud."
        },
        "stack": {
          "type": "string",
          "description": "Stack name."
        }
      },
      "required": [
        "organization",
        "project",
        "stack",
        "scheduleCron",
        "scheduleId"
      ],
      "inputProperties": {
        "autoRemediate": {
          "type": "boolean",
          "description": "Whether any drift detected should be remediated after a drift run.",
          "default": false
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for when to run drift detection."
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack",
        "scheduleCron"
      ]
    },
    "pulumiservice:index:Environment": {
      "description": "An ESC Environment.",
      "properties": {
        "environmentId": {
          "type": "string",
          "description": "The environment's UUID. Use this as the `identity` value when pinning a custom RBAC role to this environment via a `literalEnvironment` expression in `OrganizationRole.permissions`."
        },
        "name": {
          "type": "string",
          "description": "Environment name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "revision": {
          "type": "integer",
          "description": "Revision number of the latest version."
        },
        "yaml": {
          "$ref": "pulumi.json#/Asset",
          "description": "Environment's yaml file."
        }
      },
      "required": [
        "organization",
        "project",
        "name",
        "yaml",
        "revision"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Environment name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "default": "default"
        },
        "yaml": {
          "$ref": "pulumi.json#/Asset",
          "description": "Environment's yaml file."
        }
      },
      "requiredInputs": [
        "organization",
        "name",
        "yaml"
      ]
    },
    "pulumiservice:index:EnvironmentRotationSchedule": {
      "description": "A scheduled recurring or single time environment rotation.",
      "properties": {
        "environment": {
          "type": "string",
          "description": "Environment name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for recurring scheduled rotations. If you are supplying this, do not supply timestamp."
        },
        "scheduleId": {
          "type": "string",
          "description": "Schedule ID of the created rotation schedule, assigned by Pulumi Cloud."
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the rotation should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z. If you are supplying this, do not supply scheduleCron.",
          "willReplaceOnChanges": true
        }
      },
      "required": [
        "organization",
        "project",
        "environment",
        "scheduleId"
      ],
      "inputProperties": {
        "environment": {
          "type": "string",
          "description": "Environment name.",
          "willReplaceOnChanges": true
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "scheduleCron": {
          "type": "string",
          "description": "Cron expression for recurring scheduled rotations. If you are supplying this, do not supply timestamp."
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the rotation should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z. If you are supplying this, do not supply scheduleCron.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "environment"
      ]
    },
    "pulumiservice:index:EnvironmentVersionTag": {
      "description": "A tag on a specific revision of an environment.",
      "properties": {
        "environment": {
          "type": "string",
          "description": "Environment name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "revision": {
          "type": "integer",
          "description": "Revision number."
        },
        "tagName": {
          "type": "string",
          "description": "Tag name."
        }
      },
      "required": [
        "organization",
        "project",
        "environment",
        "tagName",
        "revision"
      ],
      "inputProperties": {
        "environment": {
          "type": "string",
          "description": "Environment name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "default": "default"
        },
        "revision": {
          "type": "integer",
          "description": "Revision number."
        },
        "tagName": {
          "type": "string",
          "description": "Tag name."
        }
      },
      "requiredInputs": [
        "organization",
        "environment",
        "tagName",
        "revision"
      ]
    },
    "pulumiservice:index:InsightsAccount": {
      "description": "Insights Account for cloud resource scanning and analysis across AWS, Azure, and GCP.",
      "properties": {
        "accountName": {
          "type": "string",
          "description": "Name of the insights account.",
          "replaceOnChanges": true
        },
        "environment": {
          "type": "string",
          "description": "The ESC environment used for provider credentials. Format: 'project/environment' with optional '@version' suffix (e.g., 'my-project/prod-env' or 'my-project/prod-env@v1.0')."
        },
        "insightsAccountId": {
          "type": "string",
          "description": "The insights account identifier."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "replaceOnChanges": true
        },
        "provider": {
          "$ref": "#/types/pulumiservice:index:CloudProvider",
          "description": "The cloud provider for scanning.",
          "replaceOnChanges": true
        },
        "providerConfig": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "Provider-specific configuration as a JSON object. For AWS, specify regions to scan: {\"regions\": [\"us-west-1\", \"us-west-2\"]}."
        },
        "scanSchedule": {
          "$ref": "#/types/pulumiservice:index:ScanSchedule",
          "description": "Schedule for automated scanning. Use 'daily' for daily scans, '12h' for scans every twelve hours, or 'none' to disable scheduled scanning. Defaults to 'none'.",
          "default": "none"
        },
        "scheduledScanEnabled": {
          "type": "boolean",
          "description": "Whether scheduled scanning is enabled."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Key-value tags to associate with the insights account."
        }
      },
      "required": [
        "organizationName",
        "accountName",
        "provider",
        "environment",
        "scanSchedule",
        "insightsAccountId",
        "scheduledScanEnabled"
      ],
      "inputProperties": {
        "accountName": {
          "type": "string",
          "description": "Name of the insights account.",
          "replaceOnChanges": true
        },
        "environment": {
          "type": "string",
          "description": "The ESC environment used for provider credentials. Format: 'project/environment' with optional '@version' suffix (e.g., 'my-project/prod-env' or 'my-project/prod-env@v1.0')."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "replaceOnChanges": true
        },
        "provider": {
          "$ref": "#/types/pulumiservice:index:CloudProvider",
          "description": "The cloud provider for scanning.",
          "replaceOnChanges": true
        },
        "providerConfig": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "Provider-specific configuration as a JSON object. For AWS, specify regions to scan: {\"regions\": [\"us-west-1\", \"us-west-2\"]}."
        },
        "scanSchedule": {
          "$ref": "#/types/pulumiservice:index:ScanSchedule",
          "description": "Schedule for automated scanning. Use 'daily' for daily scans, '12h' for scans every twelve hours, or 'none' to disable scheduled scanning. Defaults to 'none'.",
          "default": "none"
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Key-value tags to associate with the insights account."
        }
      },
      "requiredInputs": [
        "organizationName",
        "accountName",
        "provider",
        "environment",
        "scanSchedule"
      ]
    },
    "pulumiservice:index:OidcIssuer": {
      "description": "Register an OIDC Provider to establish a trust relationship between third-party systems like GitHub Actions and Pulumi Cloud, obviating the need to store a hard-coded Pulumi Cloud token in systems that need to run Pulumi commands or consume Pulumi Cloud APIs. Instead of a hard-coded, static token that must be manually rotated, trusted systems are granted temporary Pulumi Cloud tokens on an as-needed basis, which is more secure than static tokens.",
      "properties": {
        "maxExpirationSeconds": {
          "type": "integer",
          "description": "The maximum duration of the Pulumi access token working after an exchange, specified in seconds."
        },
        "name": {
          "type": "string",
          "description": "Issuer name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "replaceOnChanges": true
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:AuthPolicyDefinition"
          },
          "description": "The authorization policies for this Oidc Issuer."
        },
        "thumbprints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these."
        },
        "url": {
          "type": "string",
          "description": "The OIDC issuer URL.",
          "replaceOnChanges": true
        }
      },
      "required": [
        "organization",
        "name",
        "url",
        "thumbprints",
        "policies"
      ],
      "inputProperties": {
        "maxExpirationSeconds": {
          "type": "integer",
          "description": "The maximum duration of the Pulumi access token working after an exchange, specified in seconds."
        },
        "name": {
          "type": "string",
          "description": "Issuer name."
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "replaceOnChanges": true
        },
        "policies": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:AuthPolicyDefinition"
          },
          "description": "The auth policies for this Oidc Issuer."
        },
        "thumbprints": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "The thumbprints of issuer's TLS certificates. By default, Pulumi will store the thumbprint of the certificate used to serve the OpenID configuration. If the provider uses multiple certificates to serve content, it is required to manually configure these."
        },
        "url": {
          "type": "string",
          "description": "The OIDC issuer URL.",
          "replaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "name",
        "url"
      ]
    },
    "pulumiservice:index:OrgAccessToken": {
      "description": "The Pulumi Cloud allows users to create access tokens scoped to orgs. Org access tokens is a resource to create them and assign them to an org",
      "properties": {
        "admin": {
          "type": "boolean",
          "description": "Optional. True if this is an admin token."
        },
        "description": {
          "type": "string",
          "description": "Optional. Description for the token."
        },
        "name": {
          "type": "string",
          "description": "The name for the token."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name."
        },
        "value": {
          "type": "string",
          "description": "The token's value.",
          "secret": true
        }
      },
      "required": [
        "name",
        "organizationName",
        "value"
      ],
      "inputProperties": {
        "admin": {
          "type": "boolean",
          "description": "Optional. True if this is an admin token.",
          "default": false
        },
        "description": {
          "type": "string",
          "description": "Optional. Team description."
        },
        "name": {
          "type": "string",
          "description": "The name for the token.",
          "willReplaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "name",
        "organizationName"
      ]
    },
    "pulumiservice:index:OrganizationMember": {
      "description": "Manages a user's membership in a Pulumi Cloud organization and their assigned role. The user must already have a Pulumi Cloud account before they can be added. Custom (fine-grained) roles are assigned by setting `roleId`; built-in roles are assigned by setting `role`. When both are set, `roleId` takes precedence.",
      "properties": {
        "adopted": {
          "type": "boolean",
          "description": "True when this resource adopted an existing organization member (the user was already in the org at Create time). Adopted memberships are left in place on destroy; only the role is reset."
        },
        "email": {
          "type": "string",
          "description": "The member's email address."
        },
        "name": {
          "type": "string",
          "description": "The member's display name."
        },
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "role": {
          "type": "string",
          "description": "The built-in organization role. One of `member`, `admin`, `billing-manager`. Defaults to `member` on create. Ignored when `roleId` is set."
        },
        "roleId": {
          "type": "string",
          "description": "The ID of a custom (fine-grained) organization role to assign. Takes precedence over `role`."
        },
        "roleName": {
          "type": "string",
          "description": "The name of the currently assigned role (custom role name, or built-in role)."
        },
        "username": {
          "type": "string",
          "description": "The Pulumi Cloud username of the member.",
          "replaceOnChanges": true
        }
      },
      "required": [
        "organizationName",
        "username",
        "name",
        "email",
        "roleName",
        "adopted"
      ],
      "inputProperties": {
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "role": {
          "type": "string",
          "description": "The built-in organization role. One of `member`, `admin`, `billing-manager`. Defaults to `member` on create. Ignored when `roleId` is set."
        },
        "roleId": {
          "type": "string",
          "description": "The ID of a custom (fine-grained) organization role to assign. Takes precedence over `role`."
        },
        "username": {
          "type": "string",
          "description": "The Pulumi Cloud username of the member.",
          "replaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organizationName",
        "username"
      ]
    },
    "pulumiservice:index:OrganizationRole": {
      "description": "A custom (fine-grained) role defined on a Pulumi Cloud organization. Custom roles allow precise permission control beyond the built-in `admin` / `member` / `billing-manager` roles. Assign them to members via the `OrganizationMember.roleId` field or to teams via `TeamRoleAssignment`.\n\nRequires the Custom Roles feature to be enabled on the organization. See the [Pulumi Cloud RBAC docs](https://www.pulumi.com/docs/pulumi-cloud/access-management/rbac/) for the shape of the `permissions` descriptor.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Human-readable description of what the role grants."
        },
        "name": {
          "type": "string",
          "description": "The role's display name. Must be unique within the organization."
        },
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "permissions": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "The role's permission descriptor tree. Two kinds: `{kind: \"allow\", permissions: [\"<scope>\", ...]}` to grant scopes, or `{kind: \"group\", entries: [...]}` to compose multiple grants. Either may carry an optional `on:` modifier — a single-key map `{environment: <uuid>}` / `{stack: <id>}` / `{insightsAccount: <id>}` — to scope the descriptor to one entity. For per-entity scoping, prefer the `buildEnvironmentScopedPermissions`, `buildStackScopedPermissions`, and `buildInsightsAccountScopedPermissions` helpers, which build the `on:`-modified Allow for you."
        },
        "resourceType": {
          "type": "string",
          "description": "The resource type the role's permissions apply to. Defaults to `global` (the org-wide role that can be assigned to members and teams). Other valid values: `stack`, `environment`, `insights-account`."
        },
        "roleId": {
          "type": "string",
          "description": "The unique identifier of the custom role."
        },
        "version": {
          "type": "integer",
          "description": "The service-maintained version number that increments on every update."
        }
      },
      "required": [
        "organizationName",
        "name",
        "permissions",
        "roleId",
        "version"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Human-readable description of what the role grants."
        },
        "name": {
          "type": "string",
          "description": "The role's display name. Must be unique within the organization."
        },
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "permissions": {
          "type": "object",
          "additionalProperties": {
            "$ref": "pulumi.json#/Any"
          },
          "description": "The role's permission descriptor tree. Two kinds: `{kind: \"allow\", permissions: [\"<scope>\", ...]}` to grant scopes, or `{kind: \"group\", entries: [...]}` to compose multiple grants. Either may carry an optional `on:` modifier — a single-key map `{environment: <uuid>}` / `{stack: <id>}` / `{insightsAccount: <id>}` — to scope the descriptor to one entity. For per-entity scoping, prefer the `buildEnvironmentScopedPermissions`, `buildStackScopedPermissions`, and `buildInsightsAccountScopedPermissions` helpers, which build the `on:`-modified Allow for you."
        },
        "resourceType": {
          "type": "string",
          "description": "The resource type the role's permissions apply to. Defaults to `global` (the org-wide role that can be assigned to members and teams). Other valid values: `stack`, `environment`, `insights-account`."
        }
      },
      "requiredInputs": [
        "organizationName",
        "name",
        "permissions"
      ]
    },
    "pulumiservice:index:PolicyGroup": {
      "description": "A Policy Group allows you to apply policy packs to a set of stacks in your organization.",
      "properties": {
        "accounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of accounts that belong to this policy group."
        },
        "entityType": {
          "type": "string",
          "description": "The entity type for the policy group. Valid values are 'stacks' or 'accounts'. Defaults to 'stacks'."
        },
        "mode": {
          "type": "string",
          "description": "The mode for the policy group. Valid values are 'audit' (reports violations) or 'preventative' (blocks operations). Defaults to 'audit'."
        },
        "name": {
          "type": "string",
          "description": "The name of the policy group."
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the Pulumi organization the policy group belongs to."
        },
        "policyPacks": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:PolicyGroupPolicyPackReference"
          },
          "description": "List of policy packs applied to this policy group."
        },
        "stacks": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:PolicyGroupStackReference"
          },
          "description": "List of stack references that belong to this policy group."
        }
      },
      "required": [
        "name",
        "organizationName",
        "entityType",
        "mode"
      ],
      "inputProperties": {
        "accounts": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of accounts that belong to this policy group."
        },
        "entityType": {
          "type": "string",
          "description": "The entity type for the policy group. Valid values are 'stacks' or 'accounts'. Defaults to 'stacks'.",
          "default": "stacks",
          "willReplaceOnChanges": true
        },
        "mode": {
          "type": "string",
          "description": "The mode for the policy group. Valid values are 'audit' (reports violations) or 'preventative' (blocks operations). Defaults to 'audit'.",
          "default": "audit",
          "willReplaceOnChanges": true
        },
        "name": {
          "type": "string",
          "description": "The name of the policy group.",
          "willReplaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the Pulumi organization the policy group belongs to.",
          "willReplaceOnChanges": true
        },
        "policyPacks": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:PolicyGroupPolicyPackReferenceInput"
          },
          "description": "List of policy packs applied to this policy group."
        },
        "stacks": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:PolicyGroupStackReference"
          },
          "description": "List of stack references that belong to this policy group."
        }
      },
      "requiredInputs": [
        "name",
        "organizationName"
      ]
    },
    "pulumiservice:index:Stack": {
      "description": "A stack is a collection of resources that share a common lifecycle. Stacks are uniquely identified by their name and the project they belong to.",
      "properties": {
        "forceDestroy": {
          "type": "boolean",
          "description": "Optional. Flag indicating whether to delete the stack even if it still contains resources."
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the organization."
        },
        "projectName": {
          "type": "string",
          "description": "The name of the project."
        },
        "stackName": {
          "type": "string",
          "description": "The name of the stack."
        }
      },
      "required": [
        "organizationName",
        "projectName",
        "stackName"
      ],
      "inputProperties": {
        "forceDestroy": {
          "type": "boolean",
          "description": "Optional. Flag indicating whether to delete the stack even if it still contains resources."
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the organization.",
          "willReplaceOnChanges": true
        },
        "projectName": {
          "type": "string",
          "description": "The name of the project.",
          "willReplaceOnChanges": true
        },
        "stackName": {
          "type": "string",
          "description": "The name of the stack.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organizationName",
        "projectName",
        "stackName"
      ]
    },
    "pulumiservice:index:StackTag": {
      "description": "Stacks have associated metadata in the form of tags. Each tag consists of a name and value.",
      "properties": {
        "name": {
          "type": "string",
          "description": "Name of the tag. The 'key' part of the key=value pair",
          "replaceOnChanges": true
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "replaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "replaceOnChanges": true
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "replaceOnChanges": true
        },
        "value": {
          "type": "string",
          "description": "Value of the tag. The 'value' part of the key=value pair",
          "replaceOnChanges": true
        }
      },
      "required": [
        "organization",
        "project",
        "stack",
        "name",
        "value"
      ],
      "inputProperties": {
        "name": {
          "type": "string",
          "description": "Name of the tag. The 'key' part of the key=value pair",
          "replaceOnChanges": true
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "replaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "replaceOnChanges": true
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "replaceOnChanges": true
        },
        "value": {
          "type": "string",
          "description": "Value of the tag. The 'value' part of the key=value pair",
          "replaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack",
        "name",
        "value"
      ]
    },
    "pulumiservice:index:StackTags": {
      "description": "Manages a set of stack tags as a single resource via a `tags` map, instead of one `StackTag` per key — useful for YAML programs.\n\nOnly tags declared in `tags` are managed; tags added out-of-band (CLI, pulumibot, a singular `StackTag` resource) are left alone. Tag values are immutable in Pulumi Cloud, so a value change is implemented as delete-and-recreate.\n\nImporting with ID `{organization}/{project}/{stack}/tags` adopts every tag currently on the stack; declare `tags` explicitly after import so subsequent updates match your intent. See the [registry docs](https://www.pulumi.com/registry/packages/pulumiservice/api-docs/stacktags/) for full usage and examples.\n",
      "properties": {
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "stack": {
          "type": "string",
          "description": "Stack name."
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tag names to values. Each entry represents a stack tag."
        }
      },
      "required": [
        "organization",
        "project",
        "stack",
        "tags"
      ],
      "inputProperties": {
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "willReplaceOnChanges": true
        },
        "tags": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Map of tag names to values. Each entry represents a stack tag."
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack",
        "tags"
      ]
    },
    "pulumiservice:index:Team": {
      "description": "The Pulumi Cloud offers role-based access control (RBAC) using teams. Teams allow organization admins to assign a set of stack permissions to a group of users.",
      "properties": {
        "description": {
          "type": "string",
          "description": "Optional. Team description."
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Team display name."
        },
        "githubTeamId": {
          "type": "number",
          "description": "The GitHub ID of the team to mirror. Must be in the same GitHub organization that the Pulumi org is backed by. Required for \"github\" teams."
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Pulumi Cloud usernames of team members."
        },
        "name": {
          "type": "string",
          "description": "The team's name. Required for \"pulumi\" teams.",
          "replaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the Pulumi organization the team belongs to.",
          "replaceOnChanges": true
        },
        "teamType": {
          "type": "string",
          "description": "The type of team. Must be either `pulumi` or `github`.",
          "replaceOnChanges": true
        }
      },
      "required": [
        "organizationName",
        "teamType",
        "members"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Optional. Team description."
        },
        "displayName": {
          "type": "string",
          "description": "Optional. Team display name."
        },
        "githubTeamId": {
          "type": "number",
          "description": "The GitHub ID of the team to mirror. Must be in the same GitHub organization that the Pulumi org is backed by. Required for \"github\" teams."
        },
        "members": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "List of Pulumi Cloud usernames of team members."
        },
        "name": {
          "type": "string",
          "description": "The team's name. Required for \"pulumi\" teams.",
          "replaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The name of the Pulumi organization the team belongs to.",
          "replaceOnChanges": true
        },
        "teamType": {
          "type": "string",
          "description": "The type of team. Must be either `pulumi` or `github`.",
          "replaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organizationName",
        "teamType"
      ]
    },
    "pulumiservice:index:TeamAccessToken": {
      "description": "The Pulumi Cloud allows users to create access tokens scoped to team. Team access tokens is a resource to create them and assign them to a team",
      "properties": {
        "description": {
          "type": "string",
          "description": "Optional. Description for the token."
        },
        "name": {
          "type": "string",
          "description": "The name for the token. This must be unique amongst all machine tokens within your organization."
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name."
        },
        "teamName": {
          "type": "string",
          "description": "The team name."
        },
        "value": {
          "type": "string",
          "description": "The token's value.",
          "secret": true
        }
      },
      "required": [
        "name",
        "teamName",
        "organizationName",
        "value"
      ],
      "inputProperties": {
        "description": {
          "type": "string",
          "description": "Optional. Team description."
        },
        "name": {
          "type": "string",
          "description": "The name for the token. This must be unique amongst all machine tokens within your organization.",
          "willReplaceOnChanges": true
        },
        "organizationName": {
          "type": "string",
          "description": "The organization's name.",
          "willReplaceOnChanges": true
        },
        "teamName": {
          "type": "string",
          "description": "The team name.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "name",
        "teamName",
        "organizationName"
      ]
    },
    "pulumiservice:index:TeamEnvironmentPermission": {
      "description": "A permission for a team to use an environment.",
      "properties": {
        "environment": {
          "type": "string",
          "description": "Environment name."
        },
        "maxOpenDuration": {
          "type": "string",
          "description": "The maximum duration for which members of this team may open the environment."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "permission": {
          "$ref": "#/types/pulumiservice:index:EnvironmentPermission",
          "description": "Which permission level to grant to the specified team."
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "default": "default"
        },
        "team": {
          "type": "string",
          "description": "Team name."
        }
      },
      "inputProperties": {
        "environment": {
          "type": "string",
          "description": "Environment name."
        },
        "maxOpenDuration": {
          "type": "string",
          "description": "The maximum duration for which members of this team may open the environment."
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "permission": {
          "$ref": "#/types/pulumiservice:index:EnvironmentPermission",
          "description": "Which permission level to grant to the specified team."
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "default": "default"
        },
        "team": {
          "type": "string",
          "description": "Team name."
        }
      },
      "requiredInputs": [
        "organization",
        "team",
        "environment",
        "permission"
      ]
    },
    "pulumiservice:index:TeamRoleAssignment": {
      "description": "Assigns a custom (fine-grained) role to a Pulumi Cloud team. The Pulumi Cloud API currently supports one role per team; creating a second assignment replaces the first. The team's organization must already have the custom-roles feature enabled.",
      "properties": {
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "roleId": {
          "type": "string",
          "description": "The ID of the custom role to assign.",
          "replaceOnChanges": true
        },
        "roleName": {
          "type": "string",
          "description": "The name of the currently assigned role (custom role name, or built-in role)."
        },
        "teamName": {
          "type": "string",
          "description": "The team name.",
          "replaceOnChanges": true
        }
      },
      "required": [
        "organizationName",
        "teamName",
        "roleId",
        "roleName"
      ],
      "inputProperties": {
        "organizationName": {
          "type": "string",
          "description": "The Pulumi Cloud organization name.",
          "replaceOnChanges": true
        },
        "roleId": {
          "type": "string",
          "description": "The ID of the custom role to assign.",
          "replaceOnChanges": true
        },
        "teamName": {
          "type": "string",
          "description": "The team name.",
          "replaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organizationName",
        "teamName",
        "roleId"
      ]
    },
    "pulumiservice:index:TeamStackPermission": {
      "description": "Grants a team permissions to the specified stack.",
      "properties": {
        "organization": {
          "type": "string",
          "description": "The organization or the personal account name of the stack."
        },
        "permission": {
          "$ref": "#/types/pulumiservice:index:TeamStackPermissionScope",
          "plain": true,
          "description": "Sets the permission level that this team will be granted to the stack."
        },
        "project": {
          "type": "string",
          "description": "The project name for this stack."
        },
        "stack": {
          "type": "string",
          "description": "The name of the stack that the team will be granted permissions to."
        },
        "team": {
          "type": "string",
          "description": "The name of the team to grant this stack permissions to. This is not the display name."
        }
      },
      "required": [
        "team",
        "organization",
        "project",
        "stack",
        "permission"
      ],
      "inputProperties": {
        "organization": {
          "type": "string",
          "description": "The organization or the personal account name of the stack.",
          "willReplaceOnChanges": true
        },
        "permission": {
          "$ref": "#/types/pulumiservice:index:TeamStackPermissionScope",
          "plain": true,
          "description": "Sets the permission level that this team will be granted to the stack.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "The project name for this stack.",
          "willReplaceOnChanges": true
        },
        "stack": {
          "type": "string",
          "description": "The name of the stack that the team will be granted permissions to.",
          "willReplaceOnChanges": true
        },
        "team": {
          "type": "string",
          "description": "The name of the team to grant this stack permissions to. This is not the display name.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "team",
        "organization",
        "project",
        "stack",
        "permission"
      ]
    },
    "pulumiservice:index:TemplateSource": {
      "description": "A source for Pulumi templates",
      "properties": {
        "destination": {
          "$ref": "#/types/pulumiservice:index:TemplateSourceDestination",
          "description": "The default destination for projects using templates from this source."
        },
        "organizationName": {
          "type": "string",
          "description": "Organization name."
        },
        "sourceName": {
          "type": "string",
          "description": "Source name."
        },
        "sourceURL": {
          "type": "string",
          "description": "Github URL of the repository from which to grab templates."
        }
      },
      "required": [
        "organizationName",
        "sourceName",
        "sourceURL"
      ],
      "inputProperties": {
        "destination": {
          "$ref": "#/types/pulumiservice:index:TemplateSourceDestination",
          "description": "The default destination for projects using templates from this source."
        },
        "organizationName": {
          "type": "string",
          "description": "Organization name."
        },
        "sourceName": {
          "type": "string",
          "description": "Source name."
        },
        "sourceURL": {
          "type": "string",
          "description": "Github URL of the repository from which to grab templates."
        }
      },
      "requiredInputs": [
        "organizationName",
        "sourceName",
        "sourceURL"
      ]
    },
    "pulumiservice:index:TtlSchedule": {
      "description": "A scheduled stack destroy run.",
      "properties": {
        "deleteAfterDestroy": {
          "type": "boolean",
          "description": "True if the stack and all associated history and settings should be deleted.",
          "default": false
        },
        "organization": {
          "type": "string",
          "description": "Organization name."
        },
        "project": {
          "type": "string",
          "description": "Project name."
        },
        "scheduleId": {
          "type": "string",
          "description": "Schedule ID of the created schedule, assigned by Pulumi Cloud."
        },
        "stack": {
          "type": "string",
          "description": "Stack name."
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the schedule should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z.",
          "willReplaceOnChanges": true
        }
      },
      "required": [
        "organization",
        "project",
        "stack",
        "timestamp",
        "scheduleId"
      ],
      "inputProperties": {
        "deleteAfterDestroy": {
          "type": "boolean",
          "description": "True if the stack and all associated history and settings should be deleted.",
          "default": false
        },
        "organization": {
          "type": "string",
          "description": "Organization name.",
          "willReplaceOnChanges": true
        },
        "project": {
          "type": "string",
          "description": "Project name.",
          "willReplaceOnChanges": true
        },
        "stack": {
          "type": "string",
          "description": "Stack name.",
          "willReplaceOnChanges": true
        },
        "timestamp": {
          "type": "string",
          "description": "The time at which the schedule should run, in ISO 8601 format. Eg: 2020-01-01T00:00:00Z.",
          "willReplaceOnChanges": true
        }
      },
      "requiredInputs": [
        "organization",
        "project",
        "stack",
        "timestamp"
      ]
    },
    "pulumiservice:index:Webhook": {
      "description": "Pulumi Webhooks allow you to notify external services of events happening within your Pulumi organization or stack. For example, you can trigger a notification whenever a stack is updated. Whenever an event occurs, Pulumi will send an HTTP POST request to all registered webhooks. The webhook can then be used to emit some notification, start running integration tests, or even update additional stacks.\n\n### Import\n\nPulumi webhooks can be imported using the `id`, which for webhooks is `{org}/{project}/{stack}/{webhook-name}` e.g.,\n\n```sh\n $ pulumi import pulumiservice:index:Webhook my_webhook my-org/my-project/my-stack/4b0d0671\n```\n\n",
      "properties": {
        "active": {
          "type": "boolean",
          "description": "Indicates whether this webhook is enabled or not."
        },
        "displayName": {
          "type": "string",
          "description": "The friendly name displayed in the Pulumi Cloud."
        },
        "environmentName": {
          "type": "string",
          "description": "Name of the environment. Only specified if this is an environment webhook."
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:WebhookFilters"
          },
          "description": "Optional set of filters to apply to the webhook. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#filters) for more information."
        },
        "format": {
          "$ref": "#/types/pulumiservice:index:WebhookFormat",
          "description": "Format of the webhook payload. Can be either `raw`, `slack`, `ms_teams` or `pulumi_deployments`. Defaults to `raw`."
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:WebhookGroup"
          },
          "description": "Optional set of filter groups to apply to the webhook. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#groups) for more information."
        },
        "name": {
          "type": "string",
          "description": "Webhook identifier generated by Pulumi Cloud."
        },
        "organizationName": {
          "type": "string",
          "description": "Name of the organization."
        },
        "payloadUrl": {
          "type": "string",
          "description": "URL to send request to."
        },
        "projectName": {
          "type": "string",
          "description": "Name of the project. Only specified if this is a stack or environment webhook."
        },
        "secret": {
          "type": "string",
          "description": "Optional. secret used as the HMAC key. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#headers) for more information.",
          "secret": true
        },
        "stackName": {
          "type": "string",
          "description": "Name of the stack. Only specified if this is a stack webhook."
        }
      },
      "required": [
        "active",
        "displayName",
        "organizationName",
        "payloadUrl",
        "name",
        "format"
      ],
      "inputProperties": {
        "active": {
          "type": "boolean",
          "description": "Indicates whether this webhook is enabled or not."
        },
        "displayName": {
          "type": "string",
          "description": "The friendly name displayed in the Pulumi Cloud."
        },
        "environmentName": {
          "type": "string",
          "description": "Name of the environment. Only specified if this is an environment webhook."
        },
        "filters": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:WebhookFilters"
          },
          "description": "Optional set of filters to apply to the webhook. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#filters) for more information."
        },
        "format": {
          "$ref": "#/types/pulumiservice:index:WebhookFormat",
          "description": "Format of the webhook payload. Can be either `raw` or `slack`. Defaults to `raw`.",
          "default": "raw"
        },
        "groups": {
          "type": "array",
          "items": {
            "$ref": "#/types/pulumiservice:index:WebhookGroup"
          },
          "description": "Optional set of filter groups to apply to the webhook. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#groups) for more information."
        },
        "organizationName": {
          "type": "string",
          "description": "Name of the organization.",
          "willReplaceOnChanges": true
        },
        "payloadUrl": {
          "type": "string",
          "description": "URL to send request to."
        },
        "projectName": {
          "type": "string",
          "description": "Name of the project. Only specified if this is a stack or environment webhook."
        },
        "secret": {
          "type": "string",
          "description": "Optional. secret used as the HMAC key. See [webhook docs](https://www.pulumi.com/docs/intro/pulumi-service/webhooks/#headers) for more information.",
          "secret": true
        },
        "stackName": {
          "type": "string",
          "description": "Name of the stack. Only needed if this is a stack webhook."
        }
      },
      "requiredInputs": [
        "active",
        "displayName",
        "organizationName",
        "payloadUrl"
      ]
    }
  },
  "functions": {
    "pulumiservice:index:buildEnvironmentScopedPermissions": {
      "description": "Builds an `OrganizationRole.permissions` descriptor that grants the supplied scopes only on the named environment. Pair with `Environment.environmentId` (or the `getEnvironment` data source) to avoid hand-rolling the `on:` modifier yourself. The result is directly assignable to `OrganizationRole.permissions`. To grant scopes on more than one entity in a single role, hand-roll a `group` whose `entries` list pulls the output of each helper.",
      "inputs": {
        "properties": {
          "environmentId": {
            "type": "string",
            "description": "The target environment's UUID. Use the `environmentId` output of an `Environment` resource or the `getEnvironment` data source."
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of `environment:*` scopes to grant on the target environment (e.g. `environment:read`, `environment:open`, `environment:update`). Discover valid scope names via the `getOrganizationRoleScopes` data source."
          }
        },
        "type": "object",
        "required": [
          "environmentId",
          "permissions"
        ]
      },
      "outputs": {
        "properties": {
          "permissions": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "description": "A `kind: allow` descriptor with an `on: { environment: <uuid> }` modifier, ready to assign to `OrganizationRole.permissions`.",
            "type": "object"
          }
        },
        "required": [
          "permissions"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:buildInsightsAccountScopedPermissions": {
      "description": "Builds an `OrganizationRole.permissions` descriptor that grants the supplied scopes only on the named insights account. Pair with `InsightsAccount.insightsAccountId` (or the `getInsightsAccount` data source). The result is directly assignable to `OrganizationRole.permissions`. To grant scopes on more than one entity in a single role, hand-roll a `group` whose `entries` list pulls the output of each helper.",
      "inputs": {
        "properties": {
          "insightsAccountId": {
            "type": "string",
            "description": "The target insights account's identifier. Use the `insightsAccountId` output of an `InsightsAccount` resource or the `getInsightsAccount` data source."
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of `insights-account:*` scopes to grant on the target account. Discover valid scope names via the `getOrganizationRoleScopes` data source."
          }
        },
        "type": "object",
        "required": [
          "insightsAccountId",
          "permissions"
        ]
      },
      "outputs": {
        "properties": {
          "permissions": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "description": "A `kind: allow` descriptor with an `on: { insightsAccount: <id> }` modifier, ready to assign to `OrganizationRole.permissions`.",
            "type": "object"
          }
        },
        "required": [
          "permissions"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:buildStackScopedPermissions": {
      "description": "Builds an `OrganizationRole.permissions` descriptor that grants the supplied scopes only on the named stack. The `stackId` is the stack's opaque Pulumi Cloud identifier — distinct from the `organization/project/stack` triple. The result is directly assignable to `OrganizationRole.permissions`. To grant scopes on more than one entity in a single role, hand-roll a `group` whose `entries` list pulls the output of each helper.",
      "inputs": {
        "properties": {
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of `stack:*` scopes to grant on the target stack (e.g. `stack:read`, `stack:edit`, `stack:admin`). Discover valid scope names via the `getOrganizationRoleScopes` data source."
          },
          "stackId": {
            "type": "string",
            "description": "The target stack's opaque Pulumi Cloud identifier (not the `organization/project/stack` triple)."
          }
        },
        "type": "object",
        "required": [
          "stackId",
          "permissions"
        ]
      },
      "outputs": {
        "properties": {
          "permissions": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "description": "A `kind: allow` descriptor with an `on: { stack: <id> }` modifier, ready to assign to `OrganizationRole.permissions`.",
            "type": "object"
          }
        },
        "required": [
          "permissions"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getCurrentUser": {
      "description": "Returns the Pulumi Cloud user that the provider's access token belongs to. Useful for seeding a newly-created `Team` with the creator as a member, since Pulumi Cloud auto-adds the creator. Omitting this user from the team will result in a refresh drift.",
      "inputs": {
        "type": "object"
      },
      "outputs": {
        "properties": {
          "avatarUrl": {
            "description": "URL of the user's avatar image.",
            "type": "string"
          },
          "email": {
            "description": "The user's email address.",
            "type": "string"
          },
          "name": {
            "description": "The user's display name.",
            "type": "string"
          },
          "username": {
            "description": "The user's Pulumi Cloud username.",
            "type": "string"
          }
        },
        "required": [
          "username",
          "name",
          "email",
          "avatarUrl"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getEnvironment": {
      "description": "Looks up an existing ESC environment by name and returns its UUID. Use this to pin a custom RBAC role to a specific environment via a `literalEnvironment` expression when the environment is not managed by the current Pulumi program. Errors when the environment is not found.",
      "inputs": {
        "properties": {
          "name": {
            "type": "string",
            "description": "The environment name."
          },
          "organizationName": {
            "type": "string",
            "description": "The Pulumi Cloud organization that owns the environment."
          },
          "projectName": {
            "type": "string",
            "description": "The ESC project name. Defaults to `default`."
          }
        },
        "type": "object",
        "required": [
          "organizationName",
          "name"
        ]
      },
      "outputs": {
        "properties": {
          "environmentId": {
            "description": "The environment's UUID. Use this as the `identity` value when pinning a custom RBAC role to this environment via a `literalEnvironment` expression.",
            "type": "string"
          },
          "name": {
            "description": "The environment name.",
            "type": "string"
          },
          "organizationName": {
            "description": "The Pulumi Cloud organization that owns the environment.",
            "type": "string"
          },
          "projectName": {
            "description": "The ESC project the environment lives in.",
            "type": "string"
          }
        },
        "required": [
          "organizationName",
          "projectName",
          "name",
          "environmentId"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getInsightsAccount": {
      "description": "Get details about a specific Insights account.",
      "inputs": {
        "properties": {
          "accountName": {
            "type": "string"
          },
          "organizationName": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "organizationName",
          "accountName"
        ]
      },
      "outputs": {
        "properties": {
          "accountName": {
            "description": "Name of the insights account.",
            "replaceOnChanges": true,
            "type": "string"
          },
          "environment": {
            "description": "The ESC environment used for provider credentials. Format: 'project/environment' with optional '@version' suffix (e.g., 'my-project/prod-env' or 'my-project/prod-env@v1.0').",
            "type": "string"
          },
          "insightsAccountId": {
            "description": "The insights account identifier.",
            "type": "string"
          },
          "organizationName": {
            "description": "The organization's name.",
            "replaceOnChanges": true,
            "type": "string"
          },
          "provider": {
            "$ref": "#/types/pulumiservice:index:CloudProvider",
            "description": "The cloud provider for scanning.",
            "replaceOnChanges": true
          },
          "providerConfig": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "description": "Provider-specific configuration as a JSON object. For AWS, specify regions to scan: {\"regions\": [\"us-west-1\", \"us-west-2\"]}.",
            "type": "object"
          },
          "scanSchedule": {
            "$ref": "#/types/pulumiservice:index:ScanSchedule",
            "default": "none",
            "description": "Schedule for automated scanning. Use 'daily' for daily scans, '12h' for scans every twelve hours, or 'none' to disable scheduled scanning. Defaults to 'none'."
          },
          "scheduledScanEnabled": {
            "description": "Whether scheduled scanning is enabled.",
            "type": "boolean"
          },
          "tags": {
            "additionalProperties": {
              "type": "string"
            },
            "description": "Key-value tags to associate with the insights account.",
            "type": "object"
          }
        },
        "required": [
          "organizationName",
          "accountName",
          "provider",
          "environment",
          "scanSchedule",
          "insightsAccountId",
          "scheduledScanEnabled"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getInsightsAccounts": {
      "description": "Get a list of all Insights accounts for an organization.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string"
          }
        },
        "type": "object",
        "required": [
          "organizationName"
        ]
      },
      "outputs": {
        "properties": {
          "accounts": {
            "items": {
              "$ref": "#/types/pulumiservice:index:InsightsAccountState"
            },
            "type": "array"
          }
        },
        "required": [
          "accounts"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getOrganizationMember": {
      "description": "Looks up a single member of a Pulumi Cloud organization by username (the backing identity-provider login, e.g. GitHub login). Returns an error when the member is not found.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string",
            "description": "The name of the Pulumi organization."
          },
          "username": {
            "type": "string",
            "description": "The Pulumi Cloud username (backing identity-provider login) to look up."
          }
        },
        "type": "object",
        "required": [
          "organizationName",
          "username"
        ]
      },
      "outputs": {
        "properties": {
          "role": {
            "description": "The member's built-in role (member, admin, billing-manager). Absent when a custom role is assigned — check `roleId` in that case.",
            "type": "string"
          },
          "roleId": {
            "description": "The custom role ID assigned to this member, if any.",
            "type": "string"
          },
          "roleName": {
            "description": "The name of the currently assigned role (custom role name, or built-in role).",
            "type": "string"
          },
          "username": {
            "description": "The member's Pulumi Cloud username.",
            "type": "string"
          },
          "virtualAdmin": {
            "description": "Whether this member is an admin in Pulumi Cloud without admin access on the backing identity provider.",
            "type": "boolean"
          }
        },
        "required": [
          "username",
          "virtualAdmin"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getOrganizationMembers": {
      "description": "Lists all members of a Pulumi Cloud organization, including their role assignments.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string",
            "description": "The name of the Pulumi organization."
          }
        },
        "type": "object",
        "required": [
          "organizationName"
        ]
      },
      "outputs": {
        "properties": {
          "members": {
            "items": {
              "$ref": "#/types/pulumiservice:index:OrganizationMemberInfo"
            },
            "type": "array"
          }
        },
        "required": [
          "members"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getOrganizationRoleScopes": {
      "description": "Lists the permission scopes available for custom roles in an organization. Use this to discover valid scope names before setting `OrganizationRole.permissions`. The catalogue is flattened into a single list with resource type and group context, sorted deterministically.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string",
            "description": "The Pulumi Cloud organization name."
          }
        },
        "type": "object",
        "required": [
          "organizationName"
        ]
      },
      "outputs": {
        "properties": {
          "scopes": {
            "items": {
              "$ref": "#/types/pulumiservice:index:RoleScopeInfo"
            },
            "type": "array"
          }
        },
        "required": [
          "scopes"
        ],
        "type": "object"
      }
    },
    "pulumiservice:index:getPolicyPack": {
      "description": "Get details about a specific version of a policy pack.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string",
            "description": "The name of the Pulumi organization."
          },
          "policyPackName": {
            "type": "string",
            "description": "The name of the policy pack."
          },
          "version": {
            "type": "integer",
            "description": "The version number of the policy pack. If not specified, returns the latest version."
          }
        },
        "required": [
          "organizationName",
          "policyPackName"
        ]
      },
      "outputs": {
        "properties": {
          "config": {
            "additionalProperties": {
              "$ref": "pulumi.json#/Any"
            },
            "description": "Configuration for the policy pack.",
            "type": "object"
          },
          "displayName": {
            "description": "The display name of the policy pack.",
            "type": "string"
          },
          "name": {
            "description": "The name of the policy pack.",
            "type": "string"
          },
          "policies": {
            "description": "List of policies in this pack.",
            "items": {
              "type": "object"
            },
            "type": "array"
          },
          "version": {
            "description": "The version number.",
            "type": "integer"
          },
          "versionTag": {
            "description": "The version tag (if any).",
            "type": "string"
          }
        },
        "required": [
          "name",
          "displayName",
          "version"
        ]
      }
    },
    "pulumiservice:index:getPolicyPacks": {
      "description": "Get a list of all policy packs for an organization.",
      "inputs": {
        "properties": {
          "organizationName": {
            "type": "string",
            "description": "The name of the Pulumi organization."
          }
        },
        "required": [
          "organizationName"
        ]
      },
      "outputs": {
        "properties": {
          "policyPacks": {
            "description": "List of policy packs in the organization.",
            "items": {
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "policyPacks"
        ]
      }
    }
  }
}
