[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-pulumi-pulumi-component":3,"mdc-kbjgw2-key":33,"related-repo-pulumi-pulumi-component":12644,"related-org-pulumi-pulumi-component":12742},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":23,"repoUrl":24,"updatedAt":25,"license":26,"forks":27,"topics":28,"repo":29,"sourceUrl":31,"mdContent":32},"pulumi-component","author reusable Pulumi component resources","Guide for authoring Pulumi ComponentResource classes. Use when creating reusable infrastructure components, designing component interfaces, setting up multi-language support, or distributing component packages.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"pulumi","Pulumi","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fpulumi.png",[12,16,17,20],{"name":13,"slug":14,"type":15},"Architecture","architecture","tag",{"name":9,"slug":8,"type":15},{"name":18,"slug":19,"type":15},"Engineering","engineering",{"name":21,"slug":22,"type":15},"Infrastructure as Code","infrastructure-as-code",63,"https:\u002F\u002Fgithub.com\u002Fpulumi\u002Fagent-skills","2026-06-04T07:58:57.625622",null,4,[],{"repoUrl":24,"stars":23,"forks":27,"topics":30,"description":26},[],"https:\u002F\u002Fgithub.com\u002Fpulumi\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fpulumi\u002Fskills\u002Fpulumi-component","---\nname: pulumi-component\nversion: 1.0.0\ndescription: Guide for authoring Pulumi ComponentResource classes. Use when creating reusable infrastructure components, designing component interfaces, setting up multi-language support, or distributing component packages.\n---\n\n# Authoring Pulumi Components\n\nA ComponentResource groups related infrastructure resources into a reusable, logical unit. Components make infrastructure easier to understand, reuse, and maintain. Components appear as a single node with children nested underneath in `pulumi preview`\u002F`pulumi up` output and in the Pulumi Cloud console.\n\nThis skill covers the full component authoring lifecycle. For general Pulumi coding patterns (Output handling, secrets, aliases, preview workflows), use the `pulumi-best-practices` skill instead.\n\n## When to Use This Skill\n\nInvoke this skill when:\n\n- Creating a new ComponentResource class\n- Designing the args interface for a component\n- Making a component consumable from multiple Pulumi languages\n- Publishing or distributing a component package\n- Refactoring inline resources into a reusable component\n- Debugging component behavior (missing outputs, stuck creating, children at wrong level)\n\n## Component Anatomy\n\nEvery component has four required elements:\n\n1. **Extend ComponentResource** and call `super()` with a type URN\n2. **Accept standard parameters**: name, args, and `ComponentResourceOptions`\n3. **Set `parent: this`** on all child resources\n4. **Call `registerOutputs()`** at the end of the constructor\n\n### TypeScript\n\n```typescript\nimport * as pulumi from \"@pulumi\u002Fpulumi\";\nimport * as aws from \"@pulumi\u002Faws\";\n\ninterface StaticSiteArgs {\n    indexDocument?: pulumi.Input\u003Cstring>;\n    errorDocument?: pulumi.Input\u003Cstring>;\n}\n\nclass StaticSite extends pulumi.ComponentResource {\n    public readonly bucketName: pulumi.Output\u003Cstring>;\n    public readonly websiteUrl: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: StaticSiteArgs, opts?: pulumi.ComponentResourceOptions) {\n        \u002F\u002F 1. Call super with type URN: \u003Cpackage>:\u003Cmodule>:\u003Ctype>\n        super(\"myorg:index:StaticSite\", name, {}, opts);\n\n        \u002F\u002F 2. Create child resources with parent: this\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n\n        const website = new aws.s3.BucketWebsiteConfigurationV2(`${name}-website`, {\n            bucket: bucket.id,\n            indexDocument: { suffix: args.indexDocument ?? \"index.html\" },\n            errorDocument: { key: args.errorDocument ?? \"error.html\" },\n        }, { parent: this });\n\n        \u002F\u002F 3. Expose outputs as class properties\n        this.bucketName = bucket.id;\n        this.websiteUrl = website.websiteEndpoint;\n\n        \u002F\u002F 4. Register outputs -- always the last line\n        this.registerOutputs({\n            bucketName: this.bucketName,\n            websiteUrl: this.websiteUrl,\n        });\n    }\n}\n\n\u002F\u002F Usage\nconst site = new StaticSite(\"marketing\", {\n    indexDocument: \"index.html\",\n});\nexport const url = site.websiteUrl;\n```\n\n### Python\n\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nclass StaticSiteArgs:\n    def __init__(self,\n                 index_document: pulumi.Input[str] = \"index.html\",\n                 error_document: pulumi.Input[str] = \"error.html\"):\n        self.index_document = index_document\n        self.error_document = error_document\n\nclass StaticSite(pulumi.ComponentResource):\n    bucket_name: pulumi.Output[str]\n    website_url: pulumi.Output[str]\n\n    def __init__(self, name: str, args: StaticSiteArgs,\n                 opts: pulumi.ResourceOptions = None):\n        super().__init__(\"myorg:index:StaticSite\", name, None, opts)\n\n        bucket = aws.s3.Bucket(f\"{name}-bucket\",\n            opts=pulumi.ResourceOptions(parent=self))\n\n        website = aws.s3.BucketWebsiteConfigurationV2(f\"{name}-website\",\n            bucket=bucket.id,\n            index_document=aws.s3.BucketWebsiteConfigurationV2IndexDocumentArgs(\n                suffix=args.index_document,\n            ),\n            error_document=aws.s3.BucketWebsiteConfigurationV2ErrorDocumentArgs(\n                key=args.error_document,\n            ),\n            opts=pulumi.ResourceOptions(parent=self))\n\n        self.bucket_name = bucket.id\n        self.website_url = website.website_endpoint\n\n        self.register_outputs({\n            \"bucket_name\": self.bucket_name,\n            \"website_url\": self.website_url,\n        })\n\nsite = StaticSite(\"marketing\", StaticSiteArgs())\npulumi.export(\"url\", site.website_url)\n```\n\n### Type URN Format\n\nThe first argument to `super()` is the type URN: `\u003Cpackage>:\u003Cmodule>:\u003Ctype>`.\n\n| Segment | Convention | Example |\n|---------|-----------|---------|\n| package | Organization or package name | `myorg`, `acme`, `pkg` |\n| module  | Usually `index` | `index` |\n| type    | PascalCase class name | `StaticSite`, `VpcNetwork` |\n\nFull examples: `myorg:index:StaticSite`, `acme:index:KubernetesCluster`\n\n### registerOutputs Is Required\n\n**Why**: Without `registerOutputs()`, the component appears stuck in a \"creating\" state in the Pulumi console and outputs are not persisted to state.\n\n**Wrong**:\n\n```typescript\nclass MyComponent extends pulumi.ComponentResource {\n    public readonly url: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: MyArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:MyComponent\", name, {}, opts);\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n        this.url = bucket.bucketRegionalDomainName;\n        \u002F\u002F Missing registerOutputs -- component stuck \"creating\"\n    }\n}\n```\n\n**Right**:\n\n```typescript\nclass MyComponent extends pulumi.ComponentResource {\n    public readonly url: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: MyArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:MyComponent\", name, {}, opts);\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n        this.url = bucket.bucketRegionalDomainName;\n\n        this.registerOutputs({ url: this.url });\n    }\n}\n```\n\n### Derive Child Names from the Component Name\n\n**Why**: Hardcoded child names cause collisions when the component is instantiated multiple times.\n\n**Wrong**:\n\n```typescript\n\u002F\u002F Collides if two instances of this component exist\nconst bucket = new aws.s3.Bucket(\"my-bucket\", {}, { parent: this });\n```\n\n**Right**:\n\n```typescript\n\u002F\u002F Unique per component instance\nconst bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n```\n\n---\n\n## Designing the Args Interface\n\nThe args interface is the most impactful design decision. It defines what consumers can configure and how composable the component is.\n\n### Wrap Properties in Input\u003CT>\n\n**Why**: `Input\u003CT>` accepts both plain values and `Output\u003CT>` from other resources. Without it, consumers must unwrap outputs manually with `.apply()`.\n\n**Wrong**:\n\n```typescript\ninterface WebServiceArgs {\n    port: number;            \u002F\u002F Forces consumers to unwrap Outputs\n    vpcId: string;           \u002F\u002F Cannot accept vpc.id directly\n}\n```\n\n**Right**:\n\n```typescript\ninterface WebServiceArgs {\n    port: pulumi.Input\u003Cnumber>;     \u002F\u002F Accepts 8080 or someOutput\n    vpcId: pulumi.Input\u003Cstring>;    \u002F\u002F Accepts \"vpc-123\" or vpc.id\n}\n```\n\n### Keep Structures Flat\n\nAvoid deeply nested arg objects. Flat interfaces are easier to use and evolve.\n\n```typescript\n\u002F\u002F Prefer flat\ninterface DatabaseArgs {\n    instanceClass: pulumi.Input\u003Cstring>;\n    storageGb: pulumi.Input\u003Cnumber>;\n    enableBackups?: pulumi.Input\u003Cboolean>;\n    backupRetentionDays?: pulumi.Input\u003Cnumber>;\n}\n\n\u002F\u002F Avoid deep nesting\ninterface DatabaseArgs {\n    instance: {\n        compute: { class: pulumi.Input\u003Cstring> };\n        storage: { sizeGb: pulumi.Input\u003Cnumber> };\n    };\n    backup: {\n        config: { enabled: pulumi.Input\u003Cboolean>; retention: pulumi.Input\u003Cnumber> };\n    };\n}\n```\n\n### No Union Types\n\nUnion types break multi-language SDK generation. Python, Go, and C# cannot represent `string | number`.\n\n**Wrong**:\n\n```typescript\ninterface MyArgs {\n    port: pulumi.Input\u003Cstring | number>;  \u002F\u002F Fails in Python, Go, C#\n}\n```\n\n**Right**:\n\n```typescript\ninterface MyArgs {\n    port: pulumi.Input\u003Cnumber>;  \u002F\u002F Single type, works everywhere\n}\n```\n\nIf you need to accept multiple forms, use separate optional properties:\n\n```typescript\ninterface StorageArgs {\n    sizeGb?: pulumi.Input\u003Cnumber>;      \u002F\u002F Specify size in GB\n    sizeMb?: pulumi.Input\u003Cnumber>;      \u002F\u002F Or specify size in MB\n}\n```\n\n### No Functions or Callbacks\n\nFunctions cannot be serialized across language boundaries.\n\n**Wrong**:\n\n```typescript\ninterface MyArgs {\n    nameTransform: (name: string) => string;  \u002F\u002F Cannot serialize\n}\n```\n\n**Right**:\n\n```typescript\ninterface MyArgs {\n    namePrefix?: pulumi.Input\u003Cstring>;   \u002F\u002F Configuration instead of callback\n    nameSuffix?: pulumi.Input\u003Cstring>;\n}\n```\n\n### Use Defaults for Optional Properties\n\nSet sensible defaults inside the constructor so consumers only configure what they need:\n\n```typescript\ninterface SecureBucketArgs {\n    enableVersioning?: pulumi.Input\u003Cboolean>;   \u002F\u002F Defaults to true\n    enableEncryption?: pulumi.Input\u003Cboolean>;   \u002F\u002F Defaults to true\n    blockPublicAccess?: pulumi.Input\u003Cboolean>;  \u002F\u002F Defaults to true\n}\n\nclass SecureBucket extends pulumi.ComponentResource {\n    constructor(name: string, args: SecureBucketArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:SecureBucket\", name, {}, opts);\n\n        const enableVersioning = args.enableVersioning ?? true;\n        const enableEncryption = args.enableEncryption ?? true;\n        const blockPublicAccess = args.blockPublicAccess ?? true;\n\n        \u002F\u002F Apply defaults...\n    }\n}\n\n\u002F\u002F Consumer only overrides what they need\nconst bucket = new SecureBucket(\"data\", { enableVersioning: false });\n```\n\n---\n\n## Exposing Outputs\n\n### Expose Only What Consumers Need\n\nComponents often create many internal resources. Expose only the values consumers need, not every internal resource.\n\n**Wrong**:\n\n```typescript\nclass Database extends pulumi.ComponentResource {\n    \u002F\u002F Exposes everything -- consumers see implementation details\n    public readonly cluster: aws.rds.Cluster;\n    public readonly primaryInstance: aws.rds.ClusterInstance;\n    public readonly replicaInstance: aws.rds.ClusterInstance;\n    public readonly subnetGroup: aws.rds.SubnetGroup;\n    public readonly securityGroup: aws.ec2.SecurityGroup;\n    public readonly parameterGroup: aws.rds.ClusterParameterGroup;\n    \u002F\u002F ...\n}\n```\n\n**Right**:\n\n```typescript\nclass Database extends pulumi.ComponentResource {\n    \u002F\u002F Exposes only what consumers need\n    public readonly endpoint: pulumi.Output\u003Cstring>;\n    public readonly port: pulumi.Output\u003Cnumber>;\n    public readonly securityGroupId: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: DatabaseArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:Database\", name, {}, opts);\n\n        const sg = new aws.ec2.SecurityGroup(`${name}-sg`, { \u002F* ... *\u002F }, { parent: this });\n        const cluster = new aws.rds.Cluster(`${name}-cluster`, { \u002F* ... *\u002F }, { parent: this });\n\n        this.endpoint = cluster.endpoint;\n        this.port = cluster.port;\n        this.securityGroupId = sg.id;\n\n        this.registerOutputs({\n            endpoint: this.endpoint,\n            port: this.port,\n            securityGroupId: this.securityGroupId,\n        });\n    }\n}\n```\n\n### Derive Composite Outputs\n\nUse `pulumi.interpolate` or `pulumi.concat` to build derived values:\n\n```typescript\nthis.connectionString = pulumi.interpolate`postgresql:\u002F\u002F${args.username}:${args.password}@${cluster.endpoint}:${cluster.port}\u002F${args.databaseName}`;\n\nthis.registerOutputs({ connectionString: this.connectionString });\n```\n\n---\n\n## Component Design Patterns\n\n### Sensible Defaults with Override\n\nEncode best practices as defaults. Allow consumers to override when they have specific requirements.\n\n```typescript\ninterface SecureBucketArgs {\n    enableVersioning?: pulumi.Input\u003Cboolean>;\n    enableEncryption?: pulumi.Input\u003Cboolean>;\n    blockPublicAccess?: pulumi.Input\u003Cboolean>;\n    tags?: pulumi.Input\u003CRecord\u003Cstring, pulumi.Input\u003Cstring>>>;\n}\n\nclass SecureBucket extends pulumi.ComponentResource {\n    public readonly bucketId: pulumi.Output\u003Cstring>;\n    public readonly arn: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: SecureBucketArgs = {}, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:SecureBucket\", name, {}, opts);\n\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {\n            tags: args.tags,\n        }, { parent: this });\n\n        \u002F\u002F Versioning on by default\n        if (args.enableVersioning !== false) {\n            new aws.s3.BucketVersioningV2(`${name}-versioning`, {\n                bucket: bucket.id,\n                versioningConfiguration: { status: \"Enabled\" },\n            }, { parent: this });\n        }\n\n        \u002F\u002F Encryption on by default\n        if (args.enableEncryption !== false) {\n            new aws.s3.BucketServerSideEncryptionConfigurationV2(`${name}-encryption`, {\n                bucket: bucket.id,\n                rules: [{ applyServerSideEncryptionByDefault: { sseAlgorithm: \"AES256\" } }],\n            }, { parent: this });\n        }\n\n        \u002F\u002F Public access blocked by default\n        if (args.blockPublicAccess !== false) {\n            new aws.s3.BucketPublicAccessBlock(`${name}-public-access`, {\n                bucket: bucket.id,\n                blockPublicAcls: true,\n                blockPublicPolicy: true,\n                ignorePublicAcls: true,\n                restrictPublicBuckets: true,\n            }, { parent: this });\n        }\n\n        this.bucketId = bucket.id;\n        this.arn = bucket.arn;\n        this.registerOutputs({ bucketId: this.bucketId, arn: this.arn });\n    }\n}\n```\n\n### Conditional Resource Creation\n\nUse optional args to gate creation of sub-resources:\n\n```typescript\ninterface WebServiceArgs {\n    image: pulumi.Input\u003Cstring>;\n    port: pulumi.Input\u003Cnumber>;\n    enableMonitoring?: pulumi.Input\u003Cboolean>;\n    alarmEmail?: pulumi.Input\u003Cstring>;\n}\n\nclass WebService extends pulumi.ComponentResource {\n    constructor(name: string, args: WebServiceArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:WebService\", name, {}, opts);\n\n        const service = new aws.ecs.Service(`${name}-service`, {\n            \u002F\u002F ...service config...\n        }, { parent: this });\n\n        \u002F\u002F Only create alarm infrastructure when monitoring is enabled\n        if (args.enableMonitoring) {\n            const topic = new aws.sns.Topic(`${name}-alerts`, {}, { parent: this });\n\n            if (args.alarmEmail) {\n                new aws.sns.TopicSubscription(`${name}-alert-email`, {\n                    topic: topic.arn,\n                    protocol: \"email\",\n                    endpoint: args.alarmEmail,\n                }, { parent: this });\n            }\n\n            new aws.cloudwatch.MetricAlarm(`${name}-cpu-alarm`, {\n                \u002F\u002F ...alarm config referencing service...\n                alarmActions: [topic.arn],\n            }, { parent: this });\n        }\n\n        this.registerOutputs({});\n    }\n}\n```\n\n### Composition\n\nBuild higher-level components from lower-level ones. Each level manages a single concern.\n\n```typescript\n\u002F\u002F Lower-level component\nclass VpcNetwork extends pulumi.ComponentResource {\n    public readonly vpcId: pulumi.Output\u003Cstring>;\n    public readonly publicSubnetIds: pulumi.Output\u003Cstring>[];\n    public readonly privateSubnetIds: pulumi.Output\u003Cstring>[];\n\n    constructor(name: string, args: VpcNetworkArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:VpcNetwork\", name, {}, opts);\n        \u002F\u002F ...create VPC, subnets, route tables...\n        this.registerOutputs({ vpcId: this.vpcId });\n    }\n}\n\n\u002F\u002F Higher-level component that uses VpcNetwork\nclass Platform extends pulumi.ComponentResource {\n    public readonly kubeconfig: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: PlatformArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:Platform\", name, {}, opts);\n\n        \u002F\u002F Compose lower-level components\n        const network = new VpcNetwork(`${name}-network`, {\n            cidrBlock: args.cidrBlock,\n        }, { parent: this });\n\n        const cluster = new aws.eks.Cluster(`${name}-cluster`, {\n            vpcConfig: {\n                subnetIds: network.privateSubnetIds,\n            },\n        }, { parent: this });\n\n        this.kubeconfig = cluster.kubeconfig;\n        this.registerOutputs({ kubeconfig: this.kubeconfig });\n    }\n}\n```\n\n### Provider Passthrough\n\nAccept explicit providers for multi-region or multi-account deployments. `ComponentResourceOptions` carries provider configuration to children automatically:\n\n```typescript\n\u002F\u002F Consumer passes a provider for a different region\nconst usWest = new aws.Provider(\"us-west\", { region: \"us-west-2\" });\nconst site = new StaticSite(\"west-site\", { indexDocument: \"index.html\" }, {\n    providers: [usWest],\n});\n```\n\nChildren with `{ parent: this }` automatically inherit the provider. No extra code is needed inside the component.\n\n---\n\n## Multi-Language Components\n\nIf your component will be consumed from multiple Pulumi languages (TypeScript, Python, Go, C#, Java, YAML), package it as a multi-language component.\n\n### Do You Need Multi-Language?\n\nAsk: \"Will anyone consume this component from a different language than it was authored in?\"\n\n**Single-language component** (no packaging needed):\n\n- Your team uses one language and the component stays within that codebase\n- The component is internal to a single project or monorepo\n- No `PulumiPlugin.yaml` needed -- just import the class directly\n\n**Multi-language component** (packaging required):\n\n- Other teams consume your component in different languages\n- Platform teams building abstractions for developers who choose their own language\n- YAML consumers need access -- even if you author in TypeScript, YAML programs require multi-language packaging to use your component\n- Building a shared component library for your organization\n- Publishing to the Pulumi private registry or public registry is a common reason, but not required for multi-language support\n\n**Common mistake**: A TypeScript platform team builds components only their TypeScript users can consume. If application developers use Python or YAML, those components are invisible to them without multi-language packaging.\n\n### Setup\n\nCreate a `PulumiPlugin.yaml` in the component directory to declare the runtime:\n\n```yaml\nruntime: nodejs\n```\n\nOr for Python:\n\n```yaml\nruntime: python\n```\n\n### Serialization Constraints\n\nFor multi-language compatibility, args must be serializable. These constraints apply regardless of the authoring language:\n\n| Allowed | Not Allowed |\n|---------|-------------|\n| `string`, `number`, `boolean` | Union types (`string \\| number`) |\n| `Input\u003CT>` wrappers | Functions and callbacks |\n| Arrays and maps of primitives | Complex nested generics |\n| Enums | Platform-specific types |\n\n### Consuming Multi-Language Components\n\nConsumers install the component with `pulumi package add`, which automatically downloads the provider plugin, generates a local SDK in the consumer's language, and updates `Pulumi.yaml`:\n\n```bash\n# From a Git repository\npulumi package add \u003Cgit-repo-url>\n\n# From a specific version tag\npulumi package add \u003Cgit-repo-url>@v1.0.0\n```\n\nFor fresh checkouts or CI environments, run `pulumi install` to ensure all package dependencies are available. The consumer does not need to manually generate SDKs.\n\nAuthors who publish SDKs to package managers (npm, PyPI, etc.) can optionally use `pulumi package gen-sdk` to generate language-specific SDKs for publishing. Most component authors do not need this -- `pulumi package add` handles SDK generation on the consumer side.\n\n### Entry Points\n\nPublished multi-language components require an entry point that hosts the component provider process. The entry point pattern differs by language.\n\n**TypeScript** (`runtime: nodejs`):\n\nExport component classes from `index.ts`. No separate entry point file is needed. Pulumi introspects exported classes automatically.\n\n```typescript\n\u002F\u002F index.ts -- exports are the entry point\nexport { StaticSite, StaticSiteArgs } from \".\u002FstaticSite\";\nexport { SecureBucket, SecureBucketArgs } from \".\u002FsecureBucket\";\n```\n\n**Python** (`runtime: python`):\n\nCreate a `__main__.py` that calls `component_provider_host` with all component classes:\n\n```python\nfrom pulumi.provider.experimental import component_provider_host\nfrom static_site import StaticSite\nfrom secure_bucket import SecureBucket\n\nif __name__ == \"__main__\":\n    component_provider_host(\n        name=\"my-components\",\n        components=[StaticSite, SecureBucket],\n    )\n```\n\n**Go** (`runtime: go`):\n\nCreate a `main.go` that builds and runs the provider:\n\n```go\npackage main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"os\"\n\n    \"github.com\u002Fpulumi\u002Fpulumi-go-provider\u002Finfer\"\n)\n\nfunc main() {\n    p, err := infer.NewProviderBuilder().\n        WithComponents(\n            infer.ComponentF(NewStaticSite),\n            infer.ComponentF(NewSecureBucket),\n        ).\n        Build()\n    if err != nil {\n        fmt.Fprintln(os.Stderr, err)\n        os.Exit(1)\n    }\n    if err := p.Run(context.Background(), \"my-components\", \"0.1.0\"); err != nil {\n        fmt.Fprintln(os.Stderr, err)\n        os.Exit(1)\n    }\n}\n```\n\n**C#** (`runtime: dotnet`):\n\nCreate a `Program.cs` that serves the component provider host:\n\n```csharp\nusing System.Threading.Tasks;\n\nclass Program\n{\n    public static Task Main(string[] args) =>\n        Pulumi.Experimental.Provider.ComponentProviderHost.Serve(args);\n}\n```\n\nFor a complete working example across all languages, see https:\u002F\u002Fgithub.com\u002Fmikhailshilkov\u002Fcomp-as-comp.\n\n**Reference**: https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fusing-pulumi\u002Fpulumi-packages\u002F\n\n---\n\n## Distribution\n\nChoose a distribution method based on your audience:\n\n| Audience | Method | How |\n|----------|--------|-----|\n| Same project | Direct import | Standard language import |\n| Same organization | Private registry | `pulumi package publish` to Pulumi Cloud |\n| Same organization | Git repository | `pulumi package add \u003Crepo>` with version tags |\n| Language ecosystem | Package manager | Publish to npm, PyPI, NuGet, or Maven |\n| Public community | Pulumi Registry | Submit via pulumi\u002Fregistry GitHub repo |\n\n### Pulumi Private Registry\n\nThe private registry is the centralized catalog for your organization's components. It provides automatic API documentation, version management, and discoverability for all teams.\n\nPublish a component to the private registry:\n\n```bash\npulumi package publish https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component --publisher myorg\n```\n\nVersion components using git tags with a `v` prefix:\n\n```bash\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n\nA README file is required when publishing. Pulumi uses it as the component's documentation page in the registry.\n\nAutomate publishing from GitHub Actions using OIDC authentication:\n\n```yaml\nname: Publish Component\non:\n  push:\n    tags:\n      - \"v*\"\n\npermissions:\n  id-token: write\n  contents: read\n\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    env:\n      PULUMI_ORG: myorg\n    steps:\n      - uses: actions\u002Fcheckout@v4\n        with:\n          fetch-depth: 0\n      - uses: pulumi\u002Fauth-actions@v1\n        with:\n          organization: ${{ env.PULUMI_ORG }}\n          requested-token-type: urn:pulumi:token-type:access_token:organization\n      - run: pulumi package publish https:\u002F\u002Fgithub.com\u002F${{ github.repository }} --publisher ${{ env.PULUMI_ORG }}\n```\n\n**Prerequisites**: Configure GitHub OIDC integration with Pulumi Cloud before using this workflow.\n\nThe registry supports private GitHub and GitLab repositories. For non-OIDC setups, authenticate with `GITHUB_TOKEN` or `GITLAB_TOKEN` environment variables.\n\nThe private registry automatically generates SDK documentation for each published component. Enrich the generated docs by adding type annotations to your component's inputs and outputs (JSDoc in TypeScript, docstrings in Python, `Annotate()` methods in Go).\n\n**Reference**: https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fidp\u002Fget-started\u002Fprivate-registry\u002F\n\n### Git Repository Distribution\n\nTag releases for consumers to pin versions:\n\n```bash\ngit tag v1.0.0\ngit push origin v1.0.0\n```\n\nConsumers install with:\n\n```bash\npulumi package add https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component@v1.0.0\n```\n\n### Package Manager Distribution\n\nPublish language-specific packages for native dependency management:\n\n- **npm**: `npm publish` for TypeScript\u002FJavaScript\n- **PyPI**: `twine upload` for Python\n- **NuGet**: `dotnet nuget push` for .NET\n- **Maven Central**: Standard Maven publishing for Java\n\n**Reference**: https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fusing-pulumi\u002Fpulumi-packages\u002F\n\n---\n\n## Anti-Patterns\n\n| Anti-Pattern | Problem | Fix |\n|-------------|---------|-----|\n| Resources inside `apply()` | Not visible in `pulumi preview` | Move resource creation outside apply (see `pulumi-best-practices` practice 1) |\n| Missing `registerOutputs()` | Component stuck \"creating\" | Always call as last line of constructor |\n| Missing `parent: this` | Children appear at root level | Pass `{ parent: this }` to all child resources |\n| Union types in args | Breaks Python, Go, C# SDKs | Use single types; separate properties for variants |\n| Functions in args | Cannot serialize across languages | Use configuration properties instead |\n| Hardcoded child names | Collisions with multiple instances | Derive names from `${name}-suffix` |\n| Over-exposed outputs | Leaks implementation details | Export only what consumers need |\n| Single-use component | Unnecessary abstraction overhead | Use inline resources until a pattern repeats |\n| Deeply nested args | Hard to use and evolve | Keep interfaces flat with optional properties |\n\n---\n\n## Quick Reference\n\n| Topic | Key Point |\n|-------|-----------|\n| Type URN | `\u003Cpackage>:\u003Cmodule>:\u003Ctype>`, module usually `index` |\n| Constructor | `super(type, name, {}, opts)` then children then `registerOutputs()` |\n| Child resources | Always `{ parent: this }`, derive name from `${name}-suffix` |\n| Args interface | Wrap in `Input\u003CT>`, no unions, no functions, flat structure |\n| Outputs | Public readonly `Output\u003CT>` properties, expose only essentials |\n| Defaults | Use `??` operator to apply sensible defaults in constructor |\n| Composition | Lower-level components composed into higher-level ones |\n| Multi-language | `PulumiPlugin.yaml` + entry point; consumers use `pulumi package add` |\n| Distribution | Private registry, git tags, package managers, or public Pulumi Registry |\n\n## Related Skills\n\n- **pulumi-best-practices**: General Pulumi patterns including Output handling, secrets, and aliases\n- **pulumi-automation-api**: Programmatic orchestration for integration testing and multi-stack workflows\n- **pulumi-esc**: Centralized secrets and configuration for component deployments\n\n## References\n\n- https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Fresources\u002Fcomponents\u002F\n- https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fusing-pulumi\u002Fpulumi-packages\u002F\n- https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fidp\u002Fget-started\u002Fprivate-registry\u002F\n- https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Finputs-outputs\u002F\n- https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Fresources\u002Foptions\u002Faliases\u002F\n",{"data":34,"body":36},{"name":4,"version":35,"description":6},"1.0.0",{"type":37,"children":38},"root",[39,48,71,84,91,96,131,137,142,213,220,1509,1515,1841,1847,1866,1992,2009,2015,2032,2041,2409,2418,2827,2833,2842,2850,2958,2966,3080,3084,3090,3095,3105,3137,3145,3227,3235,3346,3352,3357,3818,3824,3836,3844,3922,3930,3999,4004,4116,4122,4127,4135,4215,4223,4329,4335,4340,4903,4906,4912,4918,4923,4931,5264,5272,6036,6042,6063,6292,6295,6301,6307,6312,7831,7837,7842,8888,8894,8899,9921,9927,9939,10159,10172,10175,10181,10186,10192,10197,10207,10233,10243,10271,10281,10287,10299,10325,10330,10353,10359,10364,10464,10470,10490,10595,10608,10628,10634,10639,10655,10668,10780,10795,10815,10893,10909,10921,11130,11146,11158,11220,11234,11249,11252,11258,11263,11391,11397,11402,11407,11445,11458,11504,11509,11514,11873,11883,11903,11916,11930,11936,11941,11981,11986,12013,12019,12024,12088,12101,12104,12110,12339,12342,12348,12548,12554,12586,12592,12638],{"type":40,"tag":41,"props":42,"children":44},"element","h1",{"id":43},"authoring-pulumi-components",[45],{"type":46,"value":47},"text","Authoring Pulumi Components",{"type":40,"tag":49,"props":50,"children":51},"p",{},[52,54,61,63,69],{"type":46,"value":53},"A ComponentResource groups related infrastructure resources into a reusable, logical unit. Components make infrastructure easier to understand, reuse, and maintain. Components appear as a single node with children nested underneath in ",{"type":40,"tag":55,"props":56,"children":58},"code",{"className":57},[],[59],{"type":46,"value":60},"pulumi preview",{"type":46,"value":62},"\u002F",{"type":40,"tag":55,"props":64,"children":66},{"className":65},[],[67],{"type":46,"value":68},"pulumi up",{"type":46,"value":70}," output and in the Pulumi Cloud console.",{"type":40,"tag":49,"props":72,"children":73},{},[74,76,82],{"type":46,"value":75},"This skill covers the full component authoring lifecycle. For general Pulumi coding patterns (Output handling, secrets, aliases, preview workflows), use the ",{"type":40,"tag":55,"props":77,"children":79},{"className":78},[],[80],{"type":46,"value":81},"pulumi-best-practices",{"type":46,"value":83}," skill instead.",{"type":40,"tag":85,"props":86,"children":88},"h2",{"id":87},"when-to-use-this-skill",[89],{"type":46,"value":90},"When to Use This Skill",{"type":40,"tag":49,"props":92,"children":93},{},[94],{"type":46,"value":95},"Invoke this skill when:",{"type":40,"tag":97,"props":98,"children":99},"ul",{},[100,106,111,116,121,126],{"type":40,"tag":101,"props":102,"children":103},"li",{},[104],{"type":46,"value":105},"Creating a new ComponentResource class",{"type":40,"tag":101,"props":107,"children":108},{},[109],{"type":46,"value":110},"Designing the args interface for a component",{"type":40,"tag":101,"props":112,"children":113},{},[114],{"type":46,"value":115},"Making a component consumable from multiple Pulumi languages",{"type":40,"tag":101,"props":117,"children":118},{},[119],{"type":46,"value":120},"Publishing or distributing a component package",{"type":40,"tag":101,"props":122,"children":123},{},[124],{"type":46,"value":125},"Refactoring inline resources into a reusable component",{"type":40,"tag":101,"props":127,"children":128},{},[129],{"type":46,"value":130},"Debugging component behavior (missing outputs, stuck creating, children at wrong level)",{"type":40,"tag":85,"props":132,"children":134},{"id":133},"component-anatomy",[135],{"type":46,"value":136},"Component Anatomy",{"type":40,"tag":49,"props":138,"children":139},{},[140],{"type":46,"value":141},"Every component has four required elements:",{"type":40,"tag":143,"props":144,"children":145},"ol",{},[146,165,181,197],{"type":40,"tag":101,"props":147,"children":148},{},[149,155,157,163],{"type":40,"tag":150,"props":151,"children":152},"strong",{},[153],{"type":46,"value":154},"Extend ComponentResource",{"type":46,"value":156}," and call ",{"type":40,"tag":55,"props":158,"children":160},{"className":159},[],[161],{"type":46,"value":162},"super()",{"type":46,"value":164}," with a type URN",{"type":40,"tag":101,"props":166,"children":167},{},[168,173,175],{"type":40,"tag":150,"props":169,"children":170},{},[171],{"type":46,"value":172},"Accept standard parameters",{"type":46,"value":174},": name, args, and ",{"type":40,"tag":55,"props":176,"children":178},{"className":177},[],[179],{"type":46,"value":180},"ComponentResourceOptions",{"type":40,"tag":101,"props":182,"children":183},{},[184,195],{"type":40,"tag":150,"props":185,"children":186},{},[187,189],{"type":46,"value":188},"Set ",{"type":40,"tag":55,"props":190,"children":192},{"className":191},[],[193],{"type":46,"value":194},"parent: this",{"type":46,"value":196}," on all child resources",{"type":40,"tag":101,"props":198,"children":199},{},[200,211],{"type":40,"tag":150,"props":201,"children":202},{},[203,205],{"type":46,"value":204},"Call ",{"type":40,"tag":55,"props":206,"children":208},{"className":207},[],[209],{"type":46,"value":210},"registerOutputs()",{"type":46,"value":212}," at the end of the constructor",{"type":40,"tag":214,"props":215,"children":217},"h3",{"id":216},"typescript",[218],{"type":46,"value":219},"TypeScript",{"type":40,"tag":221,"props":222,"children":226},"pre",{"className":223,"code":224,"language":216,"meta":225,"style":225},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import * as pulumi from \"@pulumi\u002Fpulumi\";\nimport * as aws from \"@pulumi\u002Faws\";\n\ninterface StaticSiteArgs {\n    indexDocument?: pulumi.Input\u003Cstring>;\n    errorDocument?: pulumi.Input\u003Cstring>;\n}\n\nclass StaticSite extends pulumi.ComponentResource {\n    public readonly bucketName: pulumi.Output\u003Cstring>;\n    public readonly websiteUrl: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: StaticSiteArgs, opts?: pulumi.ComponentResourceOptions) {\n        \u002F\u002F 1. Call super with type URN: \u003Cpackage>:\u003Cmodule>:\u003Ctype>\n        super(\"myorg:index:StaticSite\", name, {}, opts);\n\n        \u002F\u002F 2. Create child resources with parent: this\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n\n        const website = new aws.s3.BucketWebsiteConfigurationV2(`${name}-website`, {\n            bucket: bucket.id,\n            indexDocument: { suffix: args.indexDocument ?? \"index.html\" },\n            errorDocument: { key: args.errorDocument ?? \"error.html\" },\n        }, { parent: this });\n\n        \u002F\u002F 3. Expose outputs as class properties\n        this.bucketName = bucket.id;\n        this.websiteUrl = website.websiteEndpoint;\n\n        \u002F\u002F 4. Register outputs -- always the last line\n        this.registerOutputs({\n            bucketName: this.bucketName,\n            websiteUrl: this.websiteUrl,\n        });\n    }\n}\n\n\u002F\u002F Usage\nconst site = new StaticSite(\"marketing\", {\n    indexDocument: \"index.html\",\n});\nexport const url = site.websiteUrl;\n","",[227],{"type":40,"tag":55,"props":228,"children":229},{"__ignoreMap":225},[230,285,327,337,357,402,439,448,456,492,541,586,594,675,685,741,749,758,874,882,957,988,1050,1110,1147,1155,1164,1198,1232,1240,1249,1271,1297,1322,1339,1348,1356,1364,1373,1425,1453,1469],{"type":40,"tag":231,"props":232,"children":235},"span",{"class":233,"line":234},"line",1,[236,242,248,253,259,264,269,275,280],{"type":40,"tag":231,"props":237,"children":239},{"style":238},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[240],{"type":46,"value":241},"import",{"type":40,"tag":231,"props":243,"children":245},{"style":244},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[246],{"type":46,"value":247}," *",{"type":40,"tag":231,"props":249,"children":250},{"style":238},[251],{"type":46,"value":252}," as",{"type":40,"tag":231,"props":254,"children":256},{"style":255},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[257],{"type":46,"value":258}," pulumi ",{"type":40,"tag":231,"props":260,"children":261},{"style":238},[262],{"type":46,"value":263},"from",{"type":40,"tag":231,"props":265,"children":266},{"style":244},[267],{"type":46,"value":268}," \"",{"type":40,"tag":231,"props":270,"children":272},{"style":271},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[273],{"type":46,"value":274},"@pulumi\u002Fpulumi",{"type":40,"tag":231,"props":276,"children":277},{"style":244},[278],{"type":46,"value":279},"\"",{"type":40,"tag":231,"props":281,"children":282},{"style":244},[283],{"type":46,"value":284},";\n",{"type":40,"tag":231,"props":286,"children":288},{"class":233,"line":287},2,[289,293,297,301,306,310,314,319,323],{"type":40,"tag":231,"props":290,"children":291},{"style":238},[292],{"type":46,"value":241},{"type":40,"tag":231,"props":294,"children":295},{"style":244},[296],{"type":46,"value":247},{"type":40,"tag":231,"props":298,"children":299},{"style":238},[300],{"type":46,"value":252},{"type":40,"tag":231,"props":302,"children":303},{"style":255},[304],{"type":46,"value":305}," aws ",{"type":40,"tag":231,"props":307,"children":308},{"style":238},[309],{"type":46,"value":263},{"type":40,"tag":231,"props":311,"children":312},{"style":244},[313],{"type":46,"value":268},{"type":40,"tag":231,"props":315,"children":316},{"style":271},[317],{"type":46,"value":318},"@pulumi\u002Faws",{"type":40,"tag":231,"props":320,"children":321},{"style":244},[322],{"type":46,"value":279},{"type":40,"tag":231,"props":324,"children":325},{"style":244},[326],{"type":46,"value":284},{"type":40,"tag":231,"props":328,"children":330},{"class":233,"line":329},3,[331],{"type":40,"tag":231,"props":332,"children":334},{"emptyLinePlaceholder":333},true,[335],{"type":46,"value":336},"\n",{"type":40,"tag":231,"props":338,"children":339},{"class":233,"line":27},[340,346,352],{"type":40,"tag":231,"props":341,"children":343},{"style":342},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[344],{"type":46,"value":345},"interface",{"type":40,"tag":231,"props":347,"children":349},{"style":348},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[350],{"type":46,"value":351}," StaticSiteArgs",{"type":40,"tag":231,"props":353,"children":354},{"style":244},[355],{"type":46,"value":356}," {\n",{"type":40,"tag":231,"props":358,"children":360},{"class":233,"line":359},5,[361,367,372,377,382,387,392,397],{"type":40,"tag":231,"props":362,"children":364},{"style":363},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[365],{"type":46,"value":366},"    indexDocument",{"type":40,"tag":231,"props":368,"children":369},{"style":244},[370],{"type":46,"value":371},"?:",{"type":40,"tag":231,"props":373,"children":374},{"style":348},[375],{"type":46,"value":376}," pulumi",{"type":40,"tag":231,"props":378,"children":379},{"style":244},[380],{"type":46,"value":381},".",{"type":40,"tag":231,"props":383,"children":384},{"style":348},[385],{"type":46,"value":386},"Input",{"type":40,"tag":231,"props":388,"children":389},{"style":244},[390],{"type":46,"value":391},"\u003C",{"type":40,"tag":231,"props":393,"children":394},{"style":348},[395],{"type":46,"value":396},"string",{"type":40,"tag":231,"props":398,"children":399},{"style":244},[400],{"type":46,"value":401},">;\n",{"type":40,"tag":231,"props":403,"children":405},{"class":233,"line":404},6,[406,411,415,419,423,427,431,435],{"type":40,"tag":231,"props":407,"children":408},{"style":363},[409],{"type":46,"value":410},"    errorDocument",{"type":40,"tag":231,"props":412,"children":413},{"style":244},[414],{"type":46,"value":371},{"type":40,"tag":231,"props":416,"children":417},{"style":348},[418],{"type":46,"value":376},{"type":40,"tag":231,"props":420,"children":421},{"style":244},[422],{"type":46,"value":381},{"type":40,"tag":231,"props":424,"children":425},{"style":348},[426],{"type":46,"value":386},{"type":40,"tag":231,"props":428,"children":429},{"style":244},[430],{"type":46,"value":391},{"type":40,"tag":231,"props":432,"children":433},{"style":348},[434],{"type":46,"value":396},{"type":40,"tag":231,"props":436,"children":437},{"style":244},[438],{"type":46,"value":401},{"type":40,"tag":231,"props":440,"children":442},{"class":233,"line":441},7,[443],{"type":40,"tag":231,"props":444,"children":445},{"style":244},[446],{"type":46,"value":447},"}\n",{"type":40,"tag":231,"props":449,"children":451},{"class":233,"line":450},8,[452],{"type":40,"tag":231,"props":453,"children":454},{"emptyLinePlaceholder":333},[455],{"type":46,"value":336},{"type":40,"tag":231,"props":457,"children":459},{"class":233,"line":458},9,[460,465,470,475,479,483,488],{"type":40,"tag":231,"props":461,"children":462},{"style":342},[463],{"type":46,"value":464},"class",{"type":40,"tag":231,"props":466,"children":467},{"style":348},[468],{"type":46,"value":469}," StaticSite",{"type":40,"tag":231,"props":471,"children":472},{"style":342},[473],{"type":46,"value":474}," extends",{"type":40,"tag":231,"props":476,"children":477},{"style":348},[478],{"type":46,"value":376},{"type":40,"tag":231,"props":480,"children":481},{"style":244},[482],{"type":46,"value":381},{"type":40,"tag":231,"props":484,"children":485},{"style":348},[486],{"type":46,"value":487},"ComponentResource",{"type":40,"tag":231,"props":489,"children":490},{"style":244},[491],{"type":46,"value":356},{"type":40,"tag":231,"props":493,"children":495},{"class":233,"line":494},10,[496,501,506,511,516,520,524,529,533,537],{"type":40,"tag":231,"props":497,"children":498},{"style":342},[499],{"type":46,"value":500},"    public",{"type":40,"tag":231,"props":502,"children":503},{"style":342},[504],{"type":46,"value":505}," readonly",{"type":40,"tag":231,"props":507,"children":508},{"style":363},[509],{"type":46,"value":510}," bucketName",{"type":40,"tag":231,"props":512,"children":513},{"style":244},[514],{"type":46,"value":515},":",{"type":40,"tag":231,"props":517,"children":518},{"style":348},[519],{"type":46,"value":376},{"type":40,"tag":231,"props":521,"children":522},{"style":244},[523],{"type":46,"value":381},{"type":40,"tag":231,"props":525,"children":526},{"style":348},[527],{"type":46,"value":528},"Output",{"type":40,"tag":231,"props":530,"children":531},{"style":244},[532],{"type":46,"value":391},{"type":40,"tag":231,"props":534,"children":535},{"style":348},[536],{"type":46,"value":396},{"type":40,"tag":231,"props":538,"children":539},{"style":244},[540],{"type":46,"value":401},{"type":40,"tag":231,"props":542,"children":544},{"class":233,"line":543},11,[545,549,553,558,562,566,570,574,578,582],{"type":40,"tag":231,"props":546,"children":547},{"style":342},[548],{"type":46,"value":500},{"type":40,"tag":231,"props":550,"children":551},{"style":342},[552],{"type":46,"value":505},{"type":40,"tag":231,"props":554,"children":555},{"style":363},[556],{"type":46,"value":557}," websiteUrl",{"type":40,"tag":231,"props":559,"children":560},{"style":244},[561],{"type":46,"value":515},{"type":40,"tag":231,"props":563,"children":564},{"style":348},[565],{"type":46,"value":376},{"type":40,"tag":231,"props":567,"children":568},{"style":244},[569],{"type":46,"value":381},{"type":40,"tag":231,"props":571,"children":572},{"style":348},[573],{"type":46,"value":528},{"type":40,"tag":231,"props":575,"children":576},{"style":244},[577],{"type":46,"value":391},{"type":40,"tag":231,"props":579,"children":580},{"style":348},[581],{"type":46,"value":396},{"type":40,"tag":231,"props":583,"children":584},{"style":244},[585],{"type":46,"value":401},{"type":40,"tag":231,"props":587,"children":589},{"class":233,"line":588},12,[590],{"type":40,"tag":231,"props":591,"children":592},{"emptyLinePlaceholder":333},[593],{"type":46,"value":336},{"type":40,"tag":231,"props":595,"children":597},{"class":233,"line":596},13,[598,603,608,614,618,623,628,633,637,641,645,650,654,658,662,666,671],{"type":40,"tag":231,"props":599,"children":600},{"style":342},[601],{"type":46,"value":602},"    constructor",{"type":40,"tag":231,"props":604,"children":605},{"style":244},[606],{"type":46,"value":607},"(",{"type":40,"tag":231,"props":609,"children":611},{"style":610},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic",[612],{"type":46,"value":613},"name",{"type":40,"tag":231,"props":615,"children":616},{"style":244},[617],{"type":46,"value":515},{"type":40,"tag":231,"props":619,"children":620},{"style":348},[621],{"type":46,"value":622}," string",{"type":40,"tag":231,"props":624,"children":625},{"style":244},[626],{"type":46,"value":627},",",{"type":40,"tag":231,"props":629,"children":630},{"style":610},[631],{"type":46,"value":632}," args",{"type":40,"tag":231,"props":634,"children":635},{"style":244},[636],{"type":46,"value":515},{"type":40,"tag":231,"props":638,"children":639},{"style":348},[640],{"type":46,"value":351},{"type":40,"tag":231,"props":642,"children":643},{"style":244},[644],{"type":46,"value":627},{"type":40,"tag":231,"props":646,"children":647},{"style":610},[648],{"type":46,"value":649}," opts",{"type":40,"tag":231,"props":651,"children":652},{"style":244},[653],{"type":46,"value":371},{"type":40,"tag":231,"props":655,"children":656},{"style":348},[657],{"type":46,"value":376},{"type":40,"tag":231,"props":659,"children":660},{"style":244},[661],{"type":46,"value":381},{"type":40,"tag":231,"props":663,"children":664},{"style":348},[665],{"type":46,"value":180},{"type":40,"tag":231,"props":667,"children":668},{"style":244},[669],{"type":46,"value":670},")",{"type":40,"tag":231,"props":672,"children":673},{"style":244},[674],{"type":46,"value":356},{"type":40,"tag":231,"props":676,"children":678},{"class":233,"line":677},14,[679],{"type":40,"tag":231,"props":680,"children":682},{"style":681},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[683],{"type":46,"value":684},"        \u002F\u002F 1. Call super with type URN: \u003Cpackage>:\u003Cmodule>:\u003Ctype>\n",{"type":40,"tag":231,"props":686,"children":688},{"class":233,"line":687},15,[689,694,698,702,707,711,715,720,724,729,733,737],{"type":40,"tag":231,"props":690,"children":691},{"style":255},[692],{"type":46,"value":693},"        super",{"type":40,"tag":231,"props":695,"children":696},{"style":363},[697],{"type":46,"value":607},{"type":40,"tag":231,"props":699,"children":700},{"style":244},[701],{"type":46,"value":279},{"type":40,"tag":231,"props":703,"children":704},{"style":271},[705],{"type":46,"value":706},"myorg:index:StaticSite",{"type":40,"tag":231,"props":708,"children":709},{"style":244},[710],{"type":46,"value":279},{"type":40,"tag":231,"props":712,"children":713},{"style":244},[714],{"type":46,"value":627},{"type":40,"tag":231,"props":716,"children":717},{"style":255},[718],{"type":46,"value":719}," name",{"type":40,"tag":231,"props":721,"children":722},{"style":244},[723],{"type":46,"value":627},{"type":40,"tag":231,"props":725,"children":726},{"style":244},[727],{"type":46,"value":728}," {},",{"type":40,"tag":231,"props":730,"children":731},{"style":255},[732],{"type":46,"value":649},{"type":40,"tag":231,"props":734,"children":735},{"style":363},[736],{"type":46,"value":670},{"type":40,"tag":231,"props":738,"children":739},{"style":244},[740],{"type":46,"value":284},{"type":40,"tag":231,"props":742,"children":744},{"class":233,"line":743},16,[745],{"type":40,"tag":231,"props":746,"children":747},{"emptyLinePlaceholder":333},[748],{"type":46,"value":336},{"type":40,"tag":231,"props":750,"children":752},{"class":233,"line":751},17,[753],{"type":40,"tag":231,"props":754,"children":755},{"style":681},[756],{"type":46,"value":757},"        \u002F\u002F 2. Create child resources with parent: this\n",{"type":40,"tag":231,"props":759,"children":761},{"class":233,"line":760},18,[762,767,772,777,782,787,791,796,800,806,810,815,819,824,829,834,838,842,847,852,856,861,866,870],{"type":40,"tag":231,"props":763,"children":764},{"style":342},[765],{"type":46,"value":766},"        const",{"type":40,"tag":231,"props":768,"children":769},{"style":255},[770],{"type":46,"value":771}," bucket",{"type":40,"tag":231,"props":773,"children":774},{"style":244},[775],{"type":46,"value":776}," =",{"type":40,"tag":231,"props":778,"children":779},{"style":244},[780],{"type":46,"value":781}," new",{"type":40,"tag":231,"props":783,"children":784},{"style":255},[785],{"type":46,"value":786}," aws",{"type":40,"tag":231,"props":788,"children":789},{"style":244},[790],{"type":46,"value":381},{"type":40,"tag":231,"props":792,"children":793},{"style":255},[794],{"type":46,"value":795},"s3",{"type":40,"tag":231,"props":797,"children":798},{"style":244},[799],{"type":46,"value":381},{"type":40,"tag":231,"props":801,"children":803},{"style":802},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[804],{"type":46,"value":805},"Bucket",{"type":40,"tag":231,"props":807,"children":808},{"style":363},[809],{"type":46,"value":607},{"type":40,"tag":231,"props":811,"children":812},{"style":244},[813],{"type":46,"value":814},"`${",{"type":40,"tag":231,"props":816,"children":817},{"style":255},[818],{"type":46,"value":613},{"type":40,"tag":231,"props":820,"children":821},{"style":244},[822],{"type":46,"value":823},"}",{"type":40,"tag":231,"props":825,"children":826},{"style":271},[827],{"type":46,"value":828},"-bucket",{"type":40,"tag":231,"props":830,"children":831},{"style":244},[832],{"type":46,"value":833},"`",{"type":40,"tag":231,"props":835,"children":836},{"style":244},[837],{"type":46,"value":627},{"type":40,"tag":231,"props":839,"children":840},{"style":244},[841],{"type":46,"value":728},{"type":40,"tag":231,"props":843,"children":844},{"style":244},[845],{"type":46,"value":846}," {",{"type":40,"tag":231,"props":848,"children":849},{"style":363},[850],{"type":46,"value":851}," parent",{"type":40,"tag":231,"props":853,"children":854},{"style":244},[855],{"type":46,"value":515},{"type":40,"tag":231,"props":857,"children":858},{"style":244},[859],{"type":46,"value":860}," this",{"type":40,"tag":231,"props":862,"children":863},{"style":244},[864],{"type":46,"value":865}," }",{"type":40,"tag":231,"props":867,"children":868},{"style":363},[869],{"type":46,"value":670},{"type":40,"tag":231,"props":871,"children":872},{"style":244},[873],{"type":46,"value":284},{"type":40,"tag":231,"props":875,"children":877},{"class":233,"line":876},19,[878],{"type":40,"tag":231,"props":879,"children":880},{"emptyLinePlaceholder":333},[881],{"type":46,"value":336},{"type":40,"tag":231,"props":883,"children":885},{"class":233,"line":884},20,[886,890,895,899,903,907,911,915,919,924,928,932,936,940,945,949,953],{"type":40,"tag":231,"props":887,"children":888},{"style":342},[889],{"type":46,"value":766},{"type":40,"tag":231,"props":891,"children":892},{"style":255},[893],{"type":46,"value":894}," website",{"type":40,"tag":231,"props":896,"children":897},{"style":244},[898],{"type":46,"value":776},{"type":40,"tag":231,"props":900,"children":901},{"style":244},[902],{"type":46,"value":781},{"type":40,"tag":231,"props":904,"children":905},{"style":255},[906],{"type":46,"value":786},{"type":40,"tag":231,"props":908,"children":909},{"style":244},[910],{"type":46,"value":381},{"type":40,"tag":231,"props":912,"children":913},{"style":255},[914],{"type":46,"value":795},{"type":40,"tag":231,"props":916,"children":917},{"style":244},[918],{"type":46,"value":381},{"type":40,"tag":231,"props":920,"children":921},{"style":802},[922],{"type":46,"value":923},"BucketWebsiteConfigurationV2",{"type":40,"tag":231,"props":925,"children":926},{"style":363},[927],{"type":46,"value":607},{"type":40,"tag":231,"props":929,"children":930},{"style":244},[931],{"type":46,"value":814},{"type":40,"tag":231,"props":933,"children":934},{"style":255},[935],{"type":46,"value":613},{"type":40,"tag":231,"props":937,"children":938},{"style":244},[939],{"type":46,"value":823},{"type":40,"tag":231,"props":941,"children":942},{"style":271},[943],{"type":46,"value":944},"-website",{"type":40,"tag":231,"props":946,"children":947},{"style":244},[948],{"type":46,"value":833},{"type":40,"tag":231,"props":950,"children":951},{"style":244},[952],{"type":46,"value":627},{"type":40,"tag":231,"props":954,"children":955},{"style":244},[956],{"type":46,"value":356},{"type":40,"tag":231,"props":958,"children":960},{"class":233,"line":959},21,[961,966,970,974,978,983],{"type":40,"tag":231,"props":962,"children":963},{"style":363},[964],{"type":46,"value":965},"            bucket",{"type":40,"tag":231,"props":967,"children":968},{"style":244},[969],{"type":46,"value":515},{"type":40,"tag":231,"props":971,"children":972},{"style":255},[973],{"type":46,"value":771},{"type":40,"tag":231,"props":975,"children":976},{"style":244},[977],{"type":46,"value":381},{"type":40,"tag":231,"props":979,"children":980},{"style":255},[981],{"type":46,"value":982},"id",{"type":40,"tag":231,"props":984,"children":985},{"style":244},[986],{"type":46,"value":987},",\n",{"type":40,"tag":231,"props":989,"children":991},{"class":233,"line":990},22,[992,997,1001,1005,1010,1014,1018,1022,1027,1032,1036,1041,1045],{"type":40,"tag":231,"props":993,"children":994},{"style":363},[995],{"type":46,"value":996},"            indexDocument",{"type":40,"tag":231,"props":998,"children":999},{"style":244},[1000],{"type":46,"value":515},{"type":40,"tag":231,"props":1002,"children":1003},{"style":244},[1004],{"type":46,"value":846},{"type":40,"tag":231,"props":1006,"children":1007},{"style":363},[1008],{"type":46,"value":1009}," suffix",{"type":40,"tag":231,"props":1011,"children":1012},{"style":244},[1013],{"type":46,"value":515},{"type":40,"tag":231,"props":1015,"children":1016},{"style":255},[1017],{"type":46,"value":632},{"type":40,"tag":231,"props":1019,"children":1020},{"style":244},[1021],{"type":46,"value":381},{"type":40,"tag":231,"props":1023,"children":1024},{"style":255},[1025],{"type":46,"value":1026},"indexDocument",{"type":40,"tag":231,"props":1028,"children":1029},{"style":244},[1030],{"type":46,"value":1031}," ??",{"type":40,"tag":231,"props":1033,"children":1034},{"style":244},[1035],{"type":46,"value":268},{"type":40,"tag":231,"props":1037,"children":1038},{"style":271},[1039],{"type":46,"value":1040},"index.html",{"type":40,"tag":231,"props":1042,"children":1043},{"style":244},[1044],{"type":46,"value":279},{"type":40,"tag":231,"props":1046,"children":1047},{"style":244},[1048],{"type":46,"value":1049}," },\n",{"type":40,"tag":231,"props":1051,"children":1053},{"class":233,"line":1052},23,[1054,1059,1063,1067,1072,1076,1080,1084,1089,1093,1097,1102,1106],{"type":40,"tag":231,"props":1055,"children":1056},{"style":363},[1057],{"type":46,"value":1058},"            errorDocument",{"type":40,"tag":231,"props":1060,"children":1061},{"style":244},[1062],{"type":46,"value":515},{"type":40,"tag":231,"props":1064,"children":1065},{"style":244},[1066],{"type":46,"value":846},{"type":40,"tag":231,"props":1068,"children":1069},{"style":363},[1070],{"type":46,"value":1071}," key",{"type":40,"tag":231,"props":1073,"children":1074},{"style":244},[1075],{"type":46,"value":515},{"type":40,"tag":231,"props":1077,"children":1078},{"style":255},[1079],{"type":46,"value":632},{"type":40,"tag":231,"props":1081,"children":1082},{"style":244},[1083],{"type":46,"value":381},{"type":40,"tag":231,"props":1085,"children":1086},{"style":255},[1087],{"type":46,"value":1088},"errorDocument",{"type":40,"tag":231,"props":1090,"children":1091},{"style":244},[1092],{"type":46,"value":1031},{"type":40,"tag":231,"props":1094,"children":1095},{"style":244},[1096],{"type":46,"value":268},{"type":40,"tag":231,"props":1098,"children":1099},{"style":271},[1100],{"type":46,"value":1101},"error.html",{"type":40,"tag":231,"props":1103,"children":1104},{"style":244},[1105],{"type":46,"value":279},{"type":40,"tag":231,"props":1107,"children":1108},{"style":244},[1109],{"type":46,"value":1049},{"type":40,"tag":231,"props":1111,"children":1113},{"class":233,"line":1112},24,[1114,1119,1123,1127,1131,1135,1139,1143],{"type":40,"tag":231,"props":1115,"children":1116},{"style":244},[1117],{"type":46,"value":1118},"        },",{"type":40,"tag":231,"props":1120,"children":1121},{"style":244},[1122],{"type":46,"value":846},{"type":40,"tag":231,"props":1124,"children":1125},{"style":363},[1126],{"type":46,"value":851},{"type":40,"tag":231,"props":1128,"children":1129},{"style":244},[1130],{"type":46,"value":515},{"type":40,"tag":231,"props":1132,"children":1133},{"style":244},[1134],{"type":46,"value":860},{"type":40,"tag":231,"props":1136,"children":1137},{"style":244},[1138],{"type":46,"value":865},{"type":40,"tag":231,"props":1140,"children":1141},{"style":363},[1142],{"type":46,"value":670},{"type":40,"tag":231,"props":1144,"children":1145},{"style":244},[1146],{"type":46,"value":284},{"type":40,"tag":231,"props":1148,"children":1150},{"class":233,"line":1149},25,[1151],{"type":40,"tag":231,"props":1152,"children":1153},{"emptyLinePlaceholder":333},[1154],{"type":46,"value":336},{"type":40,"tag":231,"props":1156,"children":1158},{"class":233,"line":1157},26,[1159],{"type":40,"tag":231,"props":1160,"children":1161},{"style":681},[1162],{"type":46,"value":1163},"        \u002F\u002F 3. Expose outputs as class properties\n",{"type":40,"tag":231,"props":1165,"children":1167},{"class":233,"line":1166},27,[1168,1173,1178,1182,1186,1190,1194],{"type":40,"tag":231,"props":1169,"children":1170},{"style":244},[1171],{"type":46,"value":1172},"        this.",{"type":40,"tag":231,"props":1174,"children":1175},{"style":255},[1176],{"type":46,"value":1177},"bucketName",{"type":40,"tag":231,"props":1179,"children":1180},{"style":244},[1181],{"type":46,"value":776},{"type":40,"tag":231,"props":1183,"children":1184},{"style":255},[1185],{"type":46,"value":771},{"type":40,"tag":231,"props":1187,"children":1188},{"style":244},[1189],{"type":46,"value":381},{"type":40,"tag":231,"props":1191,"children":1192},{"style":255},[1193],{"type":46,"value":982},{"type":40,"tag":231,"props":1195,"children":1196},{"style":244},[1197],{"type":46,"value":284},{"type":40,"tag":231,"props":1199,"children":1201},{"class":233,"line":1200},28,[1202,1206,1211,1215,1219,1223,1228],{"type":40,"tag":231,"props":1203,"children":1204},{"style":244},[1205],{"type":46,"value":1172},{"type":40,"tag":231,"props":1207,"children":1208},{"style":255},[1209],{"type":46,"value":1210},"websiteUrl",{"type":40,"tag":231,"props":1212,"children":1213},{"style":244},[1214],{"type":46,"value":776},{"type":40,"tag":231,"props":1216,"children":1217},{"style":255},[1218],{"type":46,"value":894},{"type":40,"tag":231,"props":1220,"children":1221},{"style":244},[1222],{"type":46,"value":381},{"type":40,"tag":231,"props":1224,"children":1225},{"style":255},[1226],{"type":46,"value":1227},"websiteEndpoint",{"type":40,"tag":231,"props":1229,"children":1230},{"style":244},[1231],{"type":46,"value":284},{"type":40,"tag":231,"props":1233,"children":1235},{"class":233,"line":1234},29,[1236],{"type":40,"tag":231,"props":1237,"children":1238},{"emptyLinePlaceholder":333},[1239],{"type":46,"value":336},{"type":40,"tag":231,"props":1241,"children":1243},{"class":233,"line":1242},30,[1244],{"type":40,"tag":231,"props":1245,"children":1246},{"style":681},[1247],{"type":46,"value":1248},"        \u002F\u002F 4. Register outputs -- always the last line\n",{"type":40,"tag":231,"props":1250,"children":1252},{"class":233,"line":1251},31,[1253,1257,1262,1266],{"type":40,"tag":231,"props":1254,"children":1255},{"style":244},[1256],{"type":46,"value":1172},{"type":40,"tag":231,"props":1258,"children":1259},{"style":802},[1260],{"type":46,"value":1261},"registerOutputs",{"type":40,"tag":231,"props":1263,"children":1264},{"style":363},[1265],{"type":46,"value":607},{"type":40,"tag":231,"props":1267,"children":1268},{"style":244},[1269],{"type":46,"value":1270},"{\n",{"type":40,"tag":231,"props":1272,"children":1274},{"class":233,"line":1273},32,[1275,1280,1284,1289,1293],{"type":40,"tag":231,"props":1276,"children":1277},{"style":363},[1278],{"type":46,"value":1279},"            bucketName",{"type":40,"tag":231,"props":1281,"children":1282},{"style":244},[1283],{"type":46,"value":515},{"type":40,"tag":231,"props":1285,"children":1286},{"style":244},[1287],{"type":46,"value":1288}," this.",{"type":40,"tag":231,"props":1290,"children":1291},{"style":255},[1292],{"type":46,"value":1177},{"type":40,"tag":231,"props":1294,"children":1295},{"style":244},[1296],{"type":46,"value":987},{"type":40,"tag":231,"props":1298,"children":1300},{"class":233,"line":1299},33,[1301,1306,1310,1314,1318],{"type":40,"tag":231,"props":1302,"children":1303},{"style":363},[1304],{"type":46,"value":1305},"            websiteUrl",{"type":40,"tag":231,"props":1307,"children":1308},{"style":244},[1309],{"type":46,"value":515},{"type":40,"tag":231,"props":1311,"children":1312},{"style":244},[1313],{"type":46,"value":1288},{"type":40,"tag":231,"props":1315,"children":1316},{"style":255},[1317],{"type":46,"value":1210},{"type":40,"tag":231,"props":1319,"children":1320},{"style":244},[1321],{"type":46,"value":987},{"type":40,"tag":231,"props":1323,"children":1325},{"class":233,"line":1324},34,[1326,1331,1335],{"type":40,"tag":231,"props":1327,"children":1328},{"style":244},[1329],{"type":46,"value":1330},"        }",{"type":40,"tag":231,"props":1332,"children":1333},{"style":363},[1334],{"type":46,"value":670},{"type":40,"tag":231,"props":1336,"children":1337},{"style":244},[1338],{"type":46,"value":284},{"type":40,"tag":231,"props":1340,"children":1342},{"class":233,"line":1341},35,[1343],{"type":40,"tag":231,"props":1344,"children":1345},{"style":244},[1346],{"type":46,"value":1347},"    }\n",{"type":40,"tag":231,"props":1349,"children":1351},{"class":233,"line":1350},36,[1352],{"type":40,"tag":231,"props":1353,"children":1354},{"style":244},[1355],{"type":46,"value":447},{"type":40,"tag":231,"props":1357,"children":1359},{"class":233,"line":1358},37,[1360],{"type":40,"tag":231,"props":1361,"children":1362},{"emptyLinePlaceholder":333},[1363],{"type":46,"value":336},{"type":40,"tag":231,"props":1365,"children":1367},{"class":233,"line":1366},38,[1368],{"type":40,"tag":231,"props":1369,"children":1370},{"style":681},[1371],{"type":46,"value":1372},"\u002F\u002F Usage\n",{"type":40,"tag":231,"props":1374,"children":1376},{"class":233,"line":1375},39,[1377,1382,1387,1392,1396,1400,1404,1408,1413,1417,1421],{"type":40,"tag":231,"props":1378,"children":1379},{"style":342},[1380],{"type":46,"value":1381},"const",{"type":40,"tag":231,"props":1383,"children":1384},{"style":255},[1385],{"type":46,"value":1386}," site ",{"type":40,"tag":231,"props":1388,"children":1389},{"style":244},[1390],{"type":46,"value":1391},"=",{"type":40,"tag":231,"props":1393,"children":1394},{"style":244},[1395],{"type":46,"value":781},{"type":40,"tag":231,"props":1397,"children":1398},{"style":802},[1399],{"type":46,"value":469},{"type":40,"tag":231,"props":1401,"children":1402},{"style":255},[1403],{"type":46,"value":607},{"type":40,"tag":231,"props":1405,"children":1406},{"style":244},[1407],{"type":46,"value":279},{"type":40,"tag":231,"props":1409,"children":1410},{"style":271},[1411],{"type":46,"value":1412},"marketing",{"type":40,"tag":231,"props":1414,"children":1415},{"style":244},[1416],{"type":46,"value":279},{"type":40,"tag":231,"props":1418,"children":1419},{"style":244},[1420],{"type":46,"value":627},{"type":40,"tag":231,"props":1422,"children":1423},{"style":244},[1424],{"type":46,"value":356},{"type":40,"tag":231,"props":1426,"children":1428},{"class":233,"line":1427},40,[1429,1433,1437,1441,1445,1449],{"type":40,"tag":231,"props":1430,"children":1431},{"style":363},[1432],{"type":46,"value":366},{"type":40,"tag":231,"props":1434,"children":1435},{"style":244},[1436],{"type":46,"value":515},{"type":40,"tag":231,"props":1438,"children":1439},{"style":244},[1440],{"type":46,"value":268},{"type":40,"tag":231,"props":1442,"children":1443},{"style":271},[1444],{"type":46,"value":1040},{"type":40,"tag":231,"props":1446,"children":1447},{"style":244},[1448],{"type":46,"value":279},{"type":40,"tag":231,"props":1450,"children":1451},{"style":244},[1452],{"type":46,"value":987},{"type":40,"tag":231,"props":1454,"children":1456},{"class":233,"line":1455},41,[1457,1461,1465],{"type":40,"tag":231,"props":1458,"children":1459},{"style":244},[1460],{"type":46,"value":823},{"type":40,"tag":231,"props":1462,"children":1463},{"style":255},[1464],{"type":46,"value":670},{"type":40,"tag":231,"props":1466,"children":1467},{"style":244},[1468],{"type":46,"value":284},{"type":40,"tag":231,"props":1470,"children":1472},{"class":233,"line":1471},42,[1473,1478,1483,1488,1492,1497,1501,1505],{"type":40,"tag":231,"props":1474,"children":1475},{"style":238},[1476],{"type":46,"value":1477},"export",{"type":40,"tag":231,"props":1479,"children":1480},{"style":342},[1481],{"type":46,"value":1482}," const",{"type":40,"tag":231,"props":1484,"children":1485},{"style":255},[1486],{"type":46,"value":1487}," url ",{"type":40,"tag":231,"props":1489,"children":1490},{"style":244},[1491],{"type":46,"value":1391},{"type":40,"tag":231,"props":1493,"children":1494},{"style":255},[1495],{"type":46,"value":1496}," site",{"type":40,"tag":231,"props":1498,"children":1499},{"style":244},[1500],{"type":46,"value":381},{"type":40,"tag":231,"props":1502,"children":1503},{"style":255},[1504],{"type":46,"value":1210},{"type":40,"tag":231,"props":1506,"children":1507},{"style":244},[1508],{"type":46,"value":284},{"type":40,"tag":214,"props":1510,"children":1512},{"id":1511},"python",[1513],{"type":46,"value":1514},"Python",{"type":40,"tag":221,"props":1516,"children":1519},{"className":1517,"code":1518,"language":1511,"meta":225,"style":225},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import pulumi\nimport pulumi_aws as aws\n\nclass StaticSiteArgs:\n    def __init__(self,\n                 index_document: pulumi.Input[str] = \"index.html\",\n                 error_document: pulumi.Input[str] = \"error.html\"):\n        self.index_document = index_document\n        self.error_document = error_document\n\nclass StaticSite(pulumi.ComponentResource):\n    bucket_name: pulumi.Output[str]\n    website_url: pulumi.Output[str]\n\n    def __init__(self, name: str, args: StaticSiteArgs,\n                 opts: pulumi.ResourceOptions = None):\n        super().__init__(\"myorg:index:StaticSite\", name, None, opts)\n\n        bucket = aws.s3.Bucket(f\"{name}-bucket\",\n            opts=pulumi.ResourceOptions(parent=self))\n\n        website = aws.s3.BucketWebsiteConfigurationV2(f\"{name}-website\",\n            bucket=bucket.id,\n            index_document=aws.s3.BucketWebsiteConfigurationV2IndexDocumentArgs(\n                suffix=args.index_document,\n            ),\n            error_document=aws.s3.BucketWebsiteConfigurationV2ErrorDocumentArgs(\n                key=args.error_document,\n            ),\n            opts=pulumi.ResourceOptions(parent=self))\n\n        self.bucket_name = bucket.id\n        self.website_url = website.website_endpoint\n\n        self.register_outputs({\n            \"bucket_name\": self.bucket_name,\n            \"website_url\": self.website_url,\n        })\n\nsite = StaticSite(\"marketing\", StaticSiteArgs())\npulumi.export(\"url\", site.website_url)\n",[1520],{"type":40,"tag":55,"props":1521,"children":1522},{"__ignoreMap":225},[1523,1531,1539,1546,1554,1562,1570,1578,1586,1594,1601,1609,1617,1625,1632,1640,1648,1656,1663,1671,1679,1686,1694,1702,1710,1718,1726,1734,1742,1749,1756,1763,1771,1779,1786,1794,1802,1810,1818,1825,1833],{"type":40,"tag":231,"props":1524,"children":1525},{"class":233,"line":234},[1526],{"type":40,"tag":231,"props":1527,"children":1528},{},[1529],{"type":46,"value":1530},"import pulumi\n",{"type":40,"tag":231,"props":1532,"children":1533},{"class":233,"line":287},[1534],{"type":40,"tag":231,"props":1535,"children":1536},{},[1537],{"type":46,"value":1538},"import pulumi_aws as aws\n",{"type":40,"tag":231,"props":1540,"children":1541},{"class":233,"line":329},[1542],{"type":40,"tag":231,"props":1543,"children":1544},{"emptyLinePlaceholder":333},[1545],{"type":46,"value":336},{"type":40,"tag":231,"props":1547,"children":1548},{"class":233,"line":27},[1549],{"type":40,"tag":231,"props":1550,"children":1551},{},[1552],{"type":46,"value":1553},"class StaticSiteArgs:\n",{"type":40,"tag":231,"props":1555,"children":1556},{"class":233,"line":359},[1557],{"type":40,"tag":231,"props":1558,"children":1559},{},[1560],{"type":46,"value":1561},"    def __init__(self,\n",{"type":40,"tag":231,"props":1563,"children":1564},{"class":233,"line":404},[1565],{"type":40,"tag":231,"props":1566,"children":1567},{},[1568],{"type":46,"value":1569},"                 index_document: pulumi.Input[str] = \"index.html\",\n",{"type":40,"tag":231,"props":1571,"children":1572},{"class":233,"line":441},[1573],{"type":40,"tag":231,"props":1574,"children":1575},{},[1576],{"type":46,"value":1577},"                 error_document: pulumi.Input[str] = \"error.html\"):\n",{"type":40,"tag":231,"props":1579,"children":1580},{"class":233,"line":450},[1581],{"type":40,"tag":231,"props":1582,"children":1583},{},[1584],{"type":46,"value":1585},"        self.index_document = index_document\n",{"type":40,"tag":231,"props":1587,"children":1588},{"class":233,"line":458},[1589],{"type":40,"tag":231,"props":1590,"children":1591},{},[1592],{"type":46,"value":1593},"        self.error_document = error_document\n",{"type":40,"tag":231,"props":1595,"children":1596},{"class":233,"line":494},[1597],{"type":40,"tag":231,"props":1598,"children":1599},{"emptyLinePlaceholder":333},[1600],{"type":46,"value":336},{"type":40,"tag":231,"props":1602,"children":1603},{"class":233,"line":543},[1604],{"type":40,"tag":231,"props":1605,"children":1606},{},[1607],{"type":46,"value":1608},"class StaticSite(pulumi.ComponentResource):\n",{"type":40,"tag":231,"props":1610,"children":1611},{"class":233,"line":588},[1612],{"type":40,"tag":231,"props":1613,"children":1614},{},[1615],{"type":46,"value":1616},"    bucket_name: pulumi.Output[str]\n",{"type":40,"tag":231,"props":1618,"children":1619},{"class":233,"line":596},[1620],{"type":40,"tag":231,"props":1621,"children":1622},{},[1623],{"type":46,"value":1624},"    website_url: pulumi.Output[str]\n",{"type":40,"tag":231,"props":1626,"children":1627},{"class":233,"line":677},[1628],{"type":40,"tag":231,"props":1629,"children":1630},{"emptyLinePlaceholder":333},[1631],{"type":46,"value":336},{"type":40,"tag":231,"props":1633,"children":1634},{"class":233,"line":687},[1635],{"type":40,"tag":231,"props":1636,"children":1637},{},[1638],{"type":46,"value":1639},"    def __init__(self, name: str, args: StaticSiteArgs,\n",{"type":40,"tag":231,"props":1641,"children":1642},{"class":233,"line":743},[1643],{"type":40,"tag":231,"props":1644,"children":1645},{},[1646],{"type":46,"value":1647},"                 opts: pulumi.ResourceOptions = None):\n",{"type":40,"tag":231,"props":1649,"children":1650},{"class":233,"line":751},[1651],{"type":40,"tag":231,"props":1652,"children":1653},{},[1654],{"type":46,"value":1655},"        super().__init__(\"myorg:index:StaticSite\", name, None, opts)\n",{"type":40,"tag":231,"props":1657,"children":1658},{"class":233,"line":760},[1659],{"type":40,"tag":231,"props":1660,"children":1661},{"emptyLinePlaceholder":333},[1662],{"type":46,"value":336},{"type":40,"tag":231,"props":1664,"children":1665},{"class":233,"line":876},[1666],{"type":40,"tag":231,"props":1667,"children":1668},{},[1669],{"type":46,"value":1670},"        bucket = aws.s3.Bucket(f\"{name}-bucket\",\n",{"type":40,"tag":231,"props":1672,"children":1673},{"class":233,"line":884},[1674],{"type":40,"tag":231,"props":1675,"children":1676},{},[1677],{"type":46,"value":1678},"            opts=pulumi.ResourceOptions(parent=self))\n",{"type":40,"tag":231,"props":1680,"children":1681},{"class":233,"line":959},[1682],{"type":40,"tag":231,"props":1683,"children":1684},{"emptyLinePlaceholder":333},[1685],{"type":46,"value":336},{"type":40,"tag":231,"props":1687,"children":1688},{"class":233,"line":990},[1689],{"type":40,"tag":231,"props":1690,"children":1691},{},[1692],{"type":46,"value":1693},"        website = aws.s3.BucketWebsiteConfigurationV2(f\"{name}-website\",\n",{"type":40,"tag":231,"props":1695,"children":1696},{"class":233,"line":1052},[1697],{"type":40,"tag":231,"props":1698,"children":1699},{},[1700],{"type":46,"value":1701},"            bucket=bucket.id,\n",{"type":40,"tag":231,"props":1703,"children":1704},{"class":233,"line":1112},[1705],{"type":40,"tag":231,"props":1706,"children":1707},{},[1708],{"type":46,"value":1709},"            index_document=aws.s3.BucketWebsiteConfigurationV2IndexDocumentArgs(\n",{"type":40,"tag":231,"props":1711,"children":1712},{"class":233,"line":1149},[1713],{"type":40,"tag":231,"props":1714,"children":1715},{},[1716],{"type":46,"value":1717},"                suffix=args.index_document,\n",{"type":40,"tag":231,"props":1719,"children":1720},{"class":233,"line":1157},[1721],{"type":40,"tag":231,"props":1722,"children":1723},{},[1724],{"type":46,"value":1725},"            ),\n",{"type":40,"tag":231,"props":1727,"children":1728},{"class":233,"line":1166},[1729],{"type":40,"tag":231,"props":1730,"children":1731},{},[1732],{"type":46,"value":1733},"            error_document=aws.s3.BucketWebsiteConfigurationV2ErrorDocumentArgs(\n",{"type":40,"tag":231,"props":1735,"children":1736},{"class":233,"line":1200},[1737],{"type":40,"tag":231,"props":1738,"children":1739},{},[1740],{"type":46,"value":1741},"                key=args.error_document,\n",{"type":40,"tag":231,"props":1743,"children":1744},{"class":233,"line":1234},[1745],{"type":40,"tag":231,"props":1746,"children":1747},{},[1748],{"type":46,"value":1725},{"type":40,"tag":231,"props":1750,"children":1751},{"class":233,"line":1242},[1752],{"type":40,"tag":231,"props":1753,"children":1754},{},[1755],{"type":46,"value":1678},{"type":40,"tag":231,"props":1757,"children":1758},{"class":233,"line":1251},[1759],{"type":40,"tag":231,"props":1760,"children":1761},{"emptyLinePlaceholder":333},[1762],{"type":46,"value":336},{"type":40,"tag":231,"props":1764,"children":1765},{"class":233,"line":1273},[1766],{"type":40,"tag":231,"props":1767,"children":1768},{},[1769],{"type":46,"value":1770},"        self.bucket_name = bucket.id\n",{"type":40,"tag":231,"props":1772,"children":1773},{"class":233,"line":1299},[1774],{"type":40,"tag":231,"props":1775,"children":1776},{},[1777],{"type":46,"value":1778},"        self.website_url = website.website_endpoint\n",{"type":40,"tag":231,"props":1780,"children":1781},{"class":233,"line":1324},[1782],{"type":40,"tag":231,"props":1783,"children":1784},{"emptyLinePlaceholder":333},[1785],{"type":46,"value":336},{"type":40,"tag":231,"props":1787,"children":1788},{"class":233,"line":1341},[1789],{"type":40,"tag":231,"props":1790,"children":1791},{},[1792],{"type":46,"value":1793},"        self.register_outputs({\n",{"type":40,"tag":231,"props":1795,"children":1796},{"class":233,"line":1350},[1797],{"type":40,"tag":231,"props":1798,"children":1799},{},[1800],{"type":46,"value":1801},"            \"bucket_name\": self.bucket_name,\n",{"type":40,"tag":231,"props":1803,"children":1804},{"class":233,"line":1358},[1805],{"type":40,"tag":231,"props":1806,"children":1807},{},[1808],{"type":46,"value":1809},"            \"website_url\": self.website_url,\n",{"type":40,"tag":231,"props":1811,"children":1812},{"class":233,"line":1366},[1813],{"type":40,"tag":231,"props":1814,"children":1815},{},[1816],{"type":46,"value":1817},"        })\n",{"type":40,"tag":231,"props":1819,"children":1820},{"class":233,"line":1375},[1821],{"type":40,"tag":231,"props":1822,"children":1823},{"emptyLinePlaceholder":333},[1824],{"type":46,"value":336},{"type":40,"tag":231,"props":1826,"children":1827},{"class":233,"line":1427},[1828],{"type":40,"tag":231,"props":1829,"children":1830},{},[1831],{"type":46,"value":1832},"site = StaticSite(\"marketing\", StaticSiteArgs())\n",{"type":40,"tag":231,"props":1834,"children":1835},{"class":233,"line":1455},[1836],{"type":40,"tag":231,"props":1837,"children":1838},{},[1839],{"type":46,"value":1840},"pulumi.export(\"url\", site.website_url)\n",{"type":40,"tag":214,"props":1842,"children":1844},{"id":1843},"type-urn-format",[1845],{"type":46,"value":1846},"Type URN Format",{"type":40,"tag":49,"props":1848,"children":1849},{},[1850,1852,1857,1859,1865],{"type":46,"value":1851},"The first argument to ",{"type":40,"tag":55,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":46,"value":162},{"type":46,"value":1858}," is the type URN: ",{"type":40,"tag":55,"props":1860,"children":1862},{"className":1861},[],[1863],{"type":46,"value":1864},"\u003Cpackage>:\u003Cmodule>:\u003Ctype>",{"type":46,"value":381},{"type":40,"tag":1867,"props":1868,"children":1869},"table",{},[1870,1894],{"type":40,"tag":1871,"props":1872,"children":1873},"thead",{},[1874],{"type":40,"tag":1875,"props":1876,"children":1877},"tr",{},[1878,1884,1889],{"type":40,"tag":1879,"props":1880,"children":1881},"th",{},[1882],{"type":46,"value":1883},"Segment",{"type":40,"tag":1879,"props":1885,"children":1886},{},[1887],{"type":46,"value":1888},"Convention",{"type":40,"tag":1879,"props":1890,"children":1891},{},[1892],{"type":46,"value":1893},"Example",{"type":40,"tag":1895,"props":1896,"children":1897},"tbody",{},[1898,1936,1963],{"type":40,"tag":1875,"props":1899,"children":1900},{},[1901,1907,1912],{"type":40,"tag":1902,"props":1903,"children":1904},"td",{},[1905],{"type":46,"value":1906},"package",{"type":40,"tag":1902,"props":1908,"children":1909},{},[1910],{"type":46,"value":1911},"Organization or package name",{"type":40,"tag":1902,"props":1913,"children":1914},{},[1915,1921,1923,1929,1930],{"type":40,"tag":55,"props":1916,"children":1918},{"className":1917},[],[1919],{"type":46,"value":1920},"myorg",{"type":46,"value":1922},", ",{"type":40,"tag":55,"props":1924,"children":1926},{"className":1925},[],[1927],{"type":46,"value":1928},"acme",{"type":46,"value":1922},{"type":40,"tag":55,"props":1931,"children":1933},{"className":1932},[],[1934],{"type":46,"value":1935},"pkg",{"type":40,"tag":1875,"props":1937,"children":1938},{},[1939,1944,1955],{"type":40,"tag":1902,"props":1940,"children":1941},{},[1942],{"type":46,"value":1943},"module",{"type":40,"tag":1902,"props":1945,"children":1946},{},[1947,1949],{"type":46,"value":1948},"Usually ",{"type":40,"tag":55,"props":1950,"children":1952},{"className":1951},[],[1953],{"type":46,"value":1954},"index",{"type":40,"tag":1902,"props":1956,"children":1957},{},[1958],{"type":40,"tag":55,"props":1959,"children":1961},{"className":1960},[],[1962],{"type":46,"value":1954},{"type":40,"tag":1875,"props":1964,"children":1965},{},[1966,1971,1976],{"type":40,"tag":1902,"props":1967,"children":1968},{},[1969],{"type":46,"value":1970},"type",{"type":40,"tag":1902,"props":1972,"children":1973},{},[1974],{"type":46,"value":1975},"PascalCase class name",{"type":40,"tag":1902,"props":1977,"children":1978},{},[1979,1985,1986],{"type":40,"tag":55,"props":1980,"children":1982},{"className":1981},[],[1983],{"type":46,"value":1984},"StaticSite",{"type":46,"value":1922},{"type":40,"tag":55,"props":1987,"children":1989},{"className":1988},[],[1990],{"type":46,"value":1991},"VpcNetwork",{"type":40,"tag":49,"props":1993,"children":1994},{},[1995,1997,2002,2003],{"type":46,"value":1996},"Full examples: ",{"type":40,"tag":55,"props":1998,"children":2000},{"className":1999},[],[2001],{"type":46,"value":706},{"type":46,"value":1922},{"type":40,"tag":55,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":46,"value":2008},"acme:index:KubernetesCluster",{"type":40,"tag":214,"props":2010,"children":2012},{"id":2011},"registeroutputs-is-required",[2013],{"type":46,"value":2014},"registerOutputs Is Required",{"type":40,"tag":49,"props":2016,"children":2017},{},[2018,2023,2025,2030],{"type":40,"tag":150,"props":2019,"children":2020},{},[2021],{"type":46,"value":2022},"Why",{"type":46,"value":2024},": Without ",{"type":40,"tag":55,"props":2026,"children":2028},{"className":2027},[],[2029],{"type":46,"value":210},{"type":46,"value":2031},", the component appears stuck in a \"creating\" state in the Pulumi console and outputs are not persisted to state.",{"type":40,"tag":49,"props":2033,"children":2034},{},[2035,2040],{"type":40,"tag":150,"props":2036,"children":2037},{},[2038],{"type":46,"value":2039},"Wrong",{"type":46,"value":515},{"type":40,"tag":221,"props":2042,"children":2044},{"className":223,"code":2043,"language":216,"meta":225,"style":225},"class MyComponent extends pulumi.ComponentResource {\n    public readonly url: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: MyArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:MyComponent\", name, {}, opts);\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n        this.url = bucket.bucketRegionalDomainName;\n        \u002F\u002F Missing registerOutputs -- component stuck \"creating\"\n    }\n}\n",[2045],{"type":40,"tag":55,"props":2046,"children":2047},{"__ignoreMap":225},[2048,2080,2124,2131,2203,2255,2354,2387,2395,2402],{"type":40,"tag":231,"props":2049,"children":2050},{"class":233,"line":234},[2051,2055,2060,2064,2068,2072,2076],{"type":40,"tag":231,"props":2052,"children":2053},{"style":342},[2054],{"type":46,"value":464},{"type":40,"tag":231,"props":2056,"children":2057},{"style":348},[2058],{"type":46,"value":2059}," MyComponent",{"type":40,"tag":231,"props":2061,"children":2062},{"style":342},[2063],{"type":46,"value":474},{"type":40,"tag":231,"props":2065,"children":2066},{"style":348},[2067],{"type":46,"value":376},{"type":40,"tag":231,"props":2069,"children":2070},{"style":244},[2071],{"type":46,"value":381},{"type":40,"tag":231,"props":2073,"children":2074},{"style":348},[2075],{"type":46,"value":487},{"type":40,"tag":231,"props":2077,"children":2078},{"style":244},[2079],{"type":46,"value":356},{"type":40,"tag":231,"props":2081,"children":2082},{"class":233,"line":287},[2083,2087,2091,2096,2100,2104,2108,2112,2116,2120],{"type":40,"tag":231,"props":2084,"children":2085},{"style":342},[2086],{"type":46,"value":500},{"type":40,"tag":231,"props":2088,"children":2089},{"style":342},[2090],{"type":46,"value":505},{"type":40,"tag":231,"props":2092,"children":2093},{"style":363},[2094],{"type":46,"value":2095}," url",{"type":40,"tag":231,"props":2097,"children":2098},{"style":244},[2099],{"type":46,"value":515},{"type":40,"tag":231,"props":2101,"children":2102},{"style":348},[2103],{"type":46,"value":376},{"type":40,"tag":231,"props":2105,"children":2106},{"style":244},[2107],{"type":46,"value":381},{"type":40,"tag":231,"props":2109,"children":2110},{"style":348},[2111],{"type":46,"value":528},{"type":40,"tag":231,"props":2113,"children":2114},{"style":244},[2115],{"type":46,"value":391},{"type":40,"tag":231,"props":2117,"children":2118},{"style":348},[2119],{"type":46,"value":396},{"type":40,"tag":231,"props":2121,"children":2122},{"style":244},[2123],{"type":46,"value":401},{"type":40,"tag":231,"props":2125,"children":2126},{"class":233,"line":329},[2127],{"type":40,"tag":231,"props":2128,"children":2129},{"emptyLinePlaceholder":333},[2130],{"type":46,"value":336},{"type":40,"tag":231,"props":2132,"children":2133},{"class":233,"line":27},[2134,2138,2142,2146,2150,2154,2158,2162,2166,2171,2175,2179,2183,2187,2191,2195,2199],{"type":40,"tag":231,"props":2135,"children":2136},{"style":342},[2137],{"type":46,"value":602},{"type":40,"tag":231,"props":2139,"children":2140},{"style":244},[2141],{"type":46,"value":607},{"type":40,"tag":231,"props":2143,"children":2144},{"style":610},[2145],{"type":46,"value":613},{"type":40,"tag":231,"props":2147,"children":2148},{"style":244},[2149],{"type":46,"value":515},{"type":40,"tag":231,"props":2151,"children":2152},{"style":348},[2153],{"type":46,"value":622},{"type":40,"tag":231,"props":2155,"children":2156},{"style":244},[2157],{"type":46,"value":627},{"type":40,"tag":231,"props":2159,"children":2160},{"style":610},[2161],{"type":46,"value":632},{"type":40,"tag":231,"props":2163,"children":2164},{"style":244},[2165],{"type":46,"value":515},{"type":40,"tag":231,"props":2167,"children":2168},{"style":348},[2169],{"type":46,"value":2170}," MyArgs",{"type":40,"tag":231,"props":2172,"children":2173},{"style":244},[2174],{"type":46,"value":627},{"type":40,"tag":231,"props":2176,"children":2177},{"style":610},[2178],{"type":46,"value":649},{"type":40,"tag":231,"props":2180,"children":2181},{"style":244},[2182],{"type":46,"value":371},{"type":40,"tag":231,"props":2184,"children":2185},{"style":348},[2186],{"type":46,"value":376},{"type":40,"tag":231,"props":2188,"children":2189},{"style":244},[2190],{"type":46,"value":381},{"type":40,"tag":231,"props":2192,"children":2193},{"style":348},[2194],{"type":46,"value":180},{"type":40,"tag":231,"props":2196,"children":2197},{"style":244},[2198],{"type":46,"value":670},{"type":40,"tag":231,"props":2200,"children":2201},{"style":244},[2202],{"type":46,"value":356},{"type":40,"tag":231,"props":2204,"children":2205},{"class":233,"line":359},[2206,2210,2214,2218,2223,2227,2231,2235,2239,2243,2247,2251],{"type":40,"tag":231,"props":2207,"children":2208},{"style":255},[2209],{"type":46,"value":693},{"type":40,"tag":231,"props":2211,"children":2212},{"style":363},[2213],{"type":46,"value":607},{"type":40,"tag":231,"props":2215,"children":2216},{"style":244},[2217],{"type":46,"value":279},{"type":40,"tag":231,"props":2219,"children":2220},{"style":271},[2221],{"type":46,"value":2222},"myorg:index:MyComponent",{"type":40,"tag":231,"props":2224,"children":2225},{"style":244},[2226],{"type":46,"value":279},{"type":40,"tag":231,"props":2228,"children":2229},{"style":244},[2230],{"type":46,"value":627},{"type":40,"tag":231,"props":2232,"children":2233},{"style":255},[2234],{"type":46,"value":719},{"type":40,"tag":231,"props":2236,"children":2237},{"style":244},[2238],{"type":46,"value":627},{"type":40,"tag":231,"props":2240,"children":2241},{"style":244},[2242],{"type":46,"value":728},{"type":40,"tag":231,"props":2244,"children":2245},{"style":255},[2246],{"type":46,"value":649},{"type":40,"tag":231,"props":2248,"children":2249},{"style":363},[2250],{"type":46,"value":670},{"type":40,"tag":231,"props":2252,"children":2253},{"style":244},[2254],{"type":46,"value":284},{"type":40,"tag":231,"props":2256,"children":2257},{"class":233,"line":404},[2258,2262,2266,2270,2274,2278,2282,2286,2290,2294,2298,2302,2306,2310,2314,2318,2322,2326,2330,2334,2338,2342,2346,2350],{"type":40,"tag":231,"props":2259,"children":2260},{"style":342},[2261],{"type":46,"value":766},{"type":40,"tag":231,"props":2263,"children":2264},{"style":255},[2265],{"type":46,"value":771},{"type":40,"tag":231,"props":2267,"children":2268},{"style":244},[2269],{"type":46,"value":776},{"type":40,"tag":231,"props":2271,"children":2272},{"style":244},[2273],{"type":46,"value":781},{"type":40,"tag":231,"props":2275,"children":2276},{"style":255},[2277],{"type":46,"value":786},{"type":40,"tag":231,"props":2279,"children":2280},{"style":244},[2281],{"type":46,"value":381},{"type":40,"tag":231,"props":2283,"children":2284},{"style":255},[2285],{"type":46,"value":795},{"type":40,"tag":231,"props":2287,"children":2288},{"style":244},[2289],{"type":46,"value":381},{"type":40,"tag":231,"props":2291,"children":2292},{"style":802},[2293],{"type":46,"value":805},{"type":40,"tag":231,"props":2295,"children":2296},{"style":363},[2297],{"type":46,"value":607},{"type":40,"tag":231,"props":2299,"children":2300},{"style":244},[2301],{"type":46,"value":814},{"type":40,"tag":231,"props":2303,"children":2304},{"style":255},[2305],{"type":46,"value":613},{"type":40,"tag":231,"props":2307,"children":2308},{"style":244},[2309],{"type":46,"value":823},{"type":40,"tag":231,"props":2311,"children":2312},{"style":271},[2313],{"type":46,"value":828},{"type":40,"tag":231,"props":2315,"children":2316},{"style":244},[2317],{"type":46,"value":833},{"type":40,"tag":231,"props":2319,"children":2320},{"style":244},[2321],{"type":46,"value":627},{"type":40,"tag":231,"props":2323,"children":2324},{"style":244},[2325],{"type":46,"value":728},{"type":40,"tag":231,"props":2327,"children":2328},{"style":244},[2329],{"type":46,"value":846},{"type":40,"tag":231,"props":2331,"children":2332},{"style":363},[2333],{"type":46,"value":851},{"type":40,"tag":231,"props":2335,"children":2336},{"style":244},[2337],{"type":46,"value":515},{"type":40,"tag":231,"props":2339,"children":2340},{"style":244},[2341],{"type":46,"value":860},{"type":40,"tag":231,"props":2343,"children":2344},{"style":244},[2345],{"type":46,"value":865},{"type":40,"tag":231,"props":2347,"children":2348},{"style":363},[2349],{"type":46,"value":670},{"type":40,"tag":231,"props":2351,"children":2352},{"style":244},[2353],{"type":46,"value":284},{"type":40,"tag":231,"props":2355,"children":2356},{"class":233,"line":441},[2357,2361,2366,2370,2374,2378,2383],{"type":40,"tag":231,"props":2358,"children":2359},{"style":244},[2360],{"type":46,"value":1172},{"type":40,"tag":231,"props":2362,"children":2363},{"style":255},[2364],{"type":46,"value":2365},"url",{"type":40,"tag":231,"props":2367,"children":2368},{"style":244},[2369],{"type":46,"value":776},{"type":40,"tag":231,"props":2371,"children":2372},{"style":255},[2373],{"type":46,"value":771},{"type":40,"tag":231,"props":2375,"children":2376},{"style":244},[2377],{"type":46,"value":381},{"type":40,"tag":231,"props":2379,"children":2380},{"style":255},[2381],{"type":46,"value":2382},"bucketRegionalDomainName",{"type":40,"tag":231,"props":2384,"children":2385},{"style":244},[2386],{"type":46,"value":284},{"type":40,"tag":231,"props":2388,"children":2389},{"class":233,"line":450},[2390],{"type":40,"tag":231,"props":2391,"children":2392},{"style":681},[2393],{"type":46,"value":2394},"        \u002F\u002F Missing registerOutputs -- component stuck \"creating\"\n",{"type":40,"tag":231,"props":2396,"children":2397},{"class":233,"line":458},[2398],{"type":40,"tag":231,"props":2399,"children":2400},{"style":244},[2401],{"type":46,"value":1347},{"type":40,"tag":231,"props":2403,"children":2404},{"class":233,"line":494},[2405],{"type":40,"tag":231,"props":2406,"children":2407},{"style":244},[2408],{"type":46,"value":447},{"type":40,"tag":49,"props":2410,"children":2411},{},[2412,2417],{"type":40,"tag":150,"props":2413,"children":2414},{},[2415],{"type":46,"value":2416},"Right",{"type":46,"value":515},{"type":40,"tag":221,"props":2419,"children":2421},{"className":223,"code":2420,"language":216,"meta":225,"style":225},"class MyComponent extends pulumi.ComponentResource {\n    public readonly url: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: MyArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:MyComponent\", name, {}, opts);\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n        this.url = bucket.bucketRegionalDomainName;\n\n        this.registerOutputs({ url: this.url });\n    }\n}\n",[2422],{"type":40,"tag":55,"props":2423,"children":2424},{"__ignoreMap":225},[2425,2456,2499,2506,2577,2628,2727,2758,2765,2813,2820],{"type":40,"tag":231,"props":2426,"children":2427},{"class":233,"line":234},[2428,2432,2436,2440,2444,2448,2452],{"type":40,"tag":231,"props":2429,"children":2430},{"style":342},[2431],{"type":46,"value":464},{"type":40,"tag":231,"props":2433,"children":2434},{"style":348},[2435],{"type":46,"value":2059},{"type":40,"tag":231,"props":2437,"children":2438},{"style":342},[2439],{"type":46,"value":474},{"type":40,"tag":231,"props":2441,"children":2442},{"style":348},[2443],{"type":46,"value":376},{"type":40,"tag":231,"props":2445,"children":2446},{"style":244},[2447],{"type":46,"value":381},{"type":40,"tag":231,"props":2449,"children":2450},{"style":348},[2451],{"type":46,"value":487},{"type":40,"tag":231,"props":2453,"children":2454},{"style":244},[2455],{"type":46,"value":356},{"type":40,"tag":231,"props":2457,"children":2458},{"class":233,"line":287},[2459,2463,2467,2471,2475,2479,2483,2487,2491,2495],{"type":40,"tag":231,"props":2460,"children":2461},{"style":342},[2462],{"type":46,"value":500},{"type":40,"tag":231,"props":2464,"children":2465},{"style":342},[2466],{"type":46,"value":505},{"type":40,"tag":231,"props":2468,"children":2469},{"style":363},[2470],{"type":46,"value":2095},{"type":40,"tag":231,"props":2472,"children":2473},{"style":244},[2474],{"type":46,"value":515},{"type":40,"tag":231,"props":2476,"children":2477},{"style":348},[2478],{"type":46,"value":376},{"type":40,"tag":231,"props":2480,"children":2481},{"style":244},[2482],{"type":46,"value":381},{"type":40,"tag":231,"props":2484,"children":2485},{"style":348},[2486],{"type":46,"value":528},{"type":40,"tag":231,"props":2488,"children":2489},{"style":244},[2490],{"type":46,"value":391},{"type":40,"tag":231,"props":2492,"children":2493},{"style":348},[2494],{"type":46,"value":396},{"type":40,"tag":231,"props":2496,"children":2497},{"style":244},[2498],{"type":46,"value":401},{"type":40,"tag":231,"props":2500,"children":2501},{"class":233,"line":329},[2502],{"type":40,"tag":231,"props":2503,"children":2504},{"emptyLinePlaceholder":333},[2505],{"type":46,"value":336},{"type":40,"tag":231,"props":2507,"children":2508},{"class":233,"line":27},[2509,2513,2517,2521,2525,2529,2533,2537,2541,2545,2549,2553,2557,2561,2565,2569,2573],{"type":40,"tag":231,"props":2510,"children":2511},{"style":342},[2512],{"type":46,"value":602},{"type":40,"tag":231,"props":2514,"children":2515},{"style":244},[2516],{"type":46,"value":607},{"type":40,"tag":231,"props":2518,"children":2519},{"style":610},[2520],{"type":46,"value":613},{"type":40,"tag":231,"props":2522,"children":2523},{"style":244},[2524],{"type":46,"value":515},{"type":40,"tag":231,"props":2526,"children":2527},{"style":348},[2528],{"type":46,"value":622},{"type":40,"tag":231,"props":2530,"children":2531},{"style":244},[2532],{"type":46,"value":627},{"type":40,"tag":231,"props":2534,"children":2535},{"style":610},[2536],{"type":46,"value":632},{"type":40,"tag":231,"props":2538,"children":2539},{"style":244},[2540],{"type":46,"value":515},{"type":40,"tag":231,"props":2542,"children":2543},{"style":348},[2544],{"type":46,"value":2170},{"type":40,"tag":231,"props":2546,"children":2547},{"style":244},[2548],{"type":46,"value":627},{"type":40,"tag":231,"props":2550,"children":2551},{"style":610},[2552],{"type":46,"value":649},{"type":40,"tag":231,"props":2554,"children":2555},{"style":244},[2556],{"type":46,"value":371},{"type":40,"tag":231,"props":2558,"children":2559},{"style":348},[2560],{"type":46,"value":376},{"type":40,"tag":231,"props":2562,"children":2563},{"style":244},[2564],{"type":46,"value":381},{"type":40,"tag":231,"props":2566,"children":2567},{"style":348},[2568],{"type":46,"value":180},{"type":40,"tag":231,"props":2570,"children":2571},{"style":244},[2572],{"type":46,"value":670},{"type":40,"tag":231,"props":2574,"children":2575},{"style":244},[2576],{"type":46,"value":356},{"type":40,"tag":231,"props":2578,"children":2579},{"class":233,"line":359},[2580,2584,2588,2592,2596,2600,2604,2608,2612,2616,2620,2624],{"type":40,"tag":231,"props":2581,"children":2582},{"style":255},[2583],{"type":46,"value":693},{"type":40,"tag":231,"props":2585,"children":2586},{"style":363},[2587],{"type":46,"value":607},{"type":40,"tag":231,"props":2589,"children":2590},{"style":244},[2591],{"type":46,"value":279},{"type":40,"tag":231,"props":2593,"children":2594},{"style":271},[2595],{"type":46,"value":2222},{"type":40,"tag":231,"props":2597,"children":2598},{"style":244},[2599],{"type":46,"value":279},{"type":40,"tag":231,"props":2601,"children":2602},{"style":244},[2603],{"type":46,"value":627},{"type":40,"tag":231,"props":2605,"children":2606},{"style":255},[2607],{"type":46,"value":719},{"type":40,"tag":231,"props":2609,"children":2610},{"style":244},[2611],{"type":46,"value":627},{"type":40,"tag":231,"props":2613,"children":2614},{"style":244},[2615],{"type":46,"value":728},{"type":40,"tag":231,"props":2617,"children":2618},{"style":255},[2619],{"type":46,"value":649},{"type":40,"tag":231,"props":2621,"children":2622},{"style":363},[2623],{"type":46,"value":670},{"type":40,"tag":231,"props":2625,"children":2626},{"style":244},[2627],{"type":46,"value":284},{"type":40,"tag":231,"props":2629,"children":2630},{"class":233,"line":404},[2631,2635,2639,2643,2647,2651,2655,2659,2663,2667,2671,2675,2679,2683,2687,2691,2695,2699,2703,2707,2711,2715,2719,2723],{"type":40,"tag":231,"props":2632,"children":2633},{"style":342},[2634],{"type":46,"value":766},{"type":40,"tag":231,"props":2636,"children":2637},{"style":255},[2638],{"type":46,"value":771},{"type":40,"tag":231,"props":2640,"children":2641},{"style":244},[2642],{"type":46,"value":776},{"type":40,"tag":231,"props":2644,"children":2645},{"style":244},[2646],{"type":46,"value":781},{"type":40,"tag":231,"props":2648,"children":2649},{"style":255},[2650],{"type":46,"value":786},{"type":40,"tag":231,"props":2652,"children":2653},{"style":244},[2654],{"type":46,"value":381},{"type":40,"tag":231,"props":2656,"children":2657},{"style":255},[2658],{"type":46,"value":795},{"type":40,"tag":231,"props":2660,"children":2661},{"style":244},[2662],{"type":46,"value":381},{"type":40,"tag":231,"props":2664,"children":2665},{"style":802},[2666],{"type":46,"value":805},{"type":40,"tag":231,"props":2668,"children":2669},{"style":363},[2670],{"type":46,"value":607},{"type":40,"tag":231,"props":2672,"children":2673},{"style":244},[2674],{"type":46,"value":814},{"type":40,"tag":231,"props":2676,"children":2677},{"style":255},[2678],{"type":46,"value":613},{"type":40,"tag":231,"props":2680,"children":2681},{"style":244},[2682],{"type":46,"value":823},{"type":40,"tag":231,"props":2684,"children":2685},{"style":271},[2686],{"type":46,"value":828},{"type":40,"tag":231,"props":2688,"children":2689},{"style":244},[2690],{"type":46,"value":833},{"type":40,"tag":231,"props":2692,"children":2693},{"style":244},[2694],{"type":46,"value":627},{"type":40,"tag":231,"props":2696,"children":2697},{"style":244},[2698],{"type":46,"value":728},{"type":40,"tag":231,"props":2700,"children":2701},{"style":244},[2702],{"type":46,"value":846},{"type":40,"tag":231,"props":2704,"children":2705},{"style":363},[2706],{"type":46,"value":851},{"type":40,"tag":231,"props":2708,"children":2709},{"style":244},[2710],{"type":46,"value":515},{"type":40,"tag":231,"props":2712,"children":2713},{"style":244},[2714],{"type":46,"value":860},{"type":40,"tag":231,"props":2716,"children":2717},{"style":244},[2718],{"type":46,"value":865},{"type":40,"tag":231,"props":2720,"children":2721},{"style":363},[2722],{"type":46,"value":670},{"type":40,"tag":231,"props":2724,"children":2725},{"style":244},[2726],{"type":46,"value":284},{"type":40,"tag":231,"props":2728,"children":2729},{"class":233,"line":441},[2730,2734,2738,2742,2746,2750,2754],{"type":40,"tag":231,"props":2731,"children":2732},{"style":244},[2733],{"type":46,"value":1172},{"type":40,"tag":231,"props":2735,"children":2736},{"style":255},[2737],{"type":46,"value":2365},{"type":40,"tag":231,"props":2739,"children":2740},{"style":244},[2741],{"type":46,"value":776},{"type":40,"tag":231,"props":2743,"children":2744},{"style":255},[2745],{"type":46,"value":771},{"type":40,"tag":231,"props":2747,"children":2748},{"style":244},[2749],{"type":46,"value":381},{"type":40,"tag":231,"props":2751,"children":2752},{"style":255},[2753],{"type":46,"value":2382},{"type":40,"tag":231,"props":2755,"children":2756},{"style":244},[2757],{"type":46,"value":284},{"type":40,"tag":231,"props":2759,"children":2760},{"class":233,"line":450},[2761],{"type":40,"tag":231,"props":2762,"children":2763},{"emptyLinePlaceholder":333},[2764],{"type":46,"value":336},{"type":40,"tag":231,"props":2766,"children":2767},{"class":233,"line":458},[2768,2772,2776,2780,2785,2789,2793,2797,2801,2805,2809],{"type":40,"tag":231,"props":2769,"children":2770},{"style":244},[2771],{"type":46,"value":1172},{"type":40,"tag":231,"props":2773,"children":2774},{"style":802},[2775],{"type":46,"value":1261},{"type":40,"tag":231,"props":2777,"children":2778},{"style":363},[2779],{"type":46,"value":607},{"type":40,"tag":231,"props":2781,"children":2782},{"style":244},[2783],{"type":46,"value":2784},"{",{"type":40,"tag":231,"props":2786,"children":2787},{"style":363},[2788],{"type":46,"value":2095},{"type":40,"tag":231,"props":2790,"children":2791},{"style":244},[2792],{"type":46,"value":515},{"type":40,"tag":231,"props":2794,"children":2795},{"style":244},[2796],{"type":46,"value":1288},{"type":40,"tag":231,"props":2798,"children":2799},{"style":255},[2800],{"type":46,"value":2365},{"type":40,"tag":231,"props":2802,"children":2803},{"style":244},[2804],{"type":46,"value":865},{"type":40,"tag":231,"props":2806,"children":2807},{"style":363},[2808],{"type":46,"value":670},{"type":40,"tag":231,"props":2810,"children":2811},{"style":244},[2812],{"type":46,"value":284},{"type":40,"tag":231,"props":2814,"children":2815},{"class":233,"line":494},[2816],{"type":40,"tag":231,"props":2817,"children":2818},{"style":244},[2819],{"type":46,"value":1347},{"type":40,"tag":231,"props":2821,"children":2822},{"class":233,"line":543},[2823],{"type":40,"tag":231,"props":2824,"children":2825},{"style":244},[2826],{"type":46,"value":447},{"type":40,"tag":214,"props":2828,"children":2830},{"id":2829},"derive-child-names-from-the-component-name",[2831],{"type":46,"value":2832},"Derive Child Names from the Component Name",{"type":40,"tag":49,"props":2834,"children":2835},{},[2836,2840],{"type":40,"tag":150,"props":2837,"children":2838},{},[2839],{"type":46,"value":2022},{"type":46,"value":2841},": Hardcoded child names cause collisions when the component is instantiated multiple times.",{"type":40,"tag":49,"props":2843,"children":2844},{},[2845,2849],{"type":40,"tag":150,"props":2846,"children":2847},{},[2848],{"type":46,"value":2039},{"type":46,"value":515},{"type":40,"tag":221,"props":2851,"children":2853},{"className":223,"code":2852,"language":216,"meta":225,"style":225},"\u002F\u002F Collides if two instances of this component exist\nconst bucket = new aws.s3.Bucket(\"my-bucket\", {}, { parent: this });\n",[2854],{"type":40,"tag":55,"props":2855,"children":2856},{"__ignoreMap":225},[2857,2865],{"type":40,"tag":231,"props":2858,"children":2859},{"class":233,"line":234},[2860],{"type":40,"tag":231,"props":2861,"children":2862},{"style":681},[2863],{"type":46,"value":2864},"\u002F\u002F Collides if two instances of this component exist\n",{"type":40,"tag":231,"props":2866,"children":2867},{"class":233,"line":287},[2868,2872,2877,2881,2885,2889,2893,2897,2901,2905,2909,2913,2918,2922,2926,2930,2934,2938,2942,2946,2950,2954],{"type":40,"tag":231,"props":2869,"children":2870},{"style":342},[2871],{"type":46,"value":1381},{"type":40,"tag":231,"props":2873,"children":2874},{"style":255},[2875],{"type":46,"value":2876}," bucket ",{"type":40,"tag":231,"props":2878,"children":2879},{"style":244},[2880],{"type":46,"value":1391},{"type":40,"tag":231,"props":2882,"children":2883},{"style":244},[2884],{"type":46,"value":781},{"type":40,"tag":231,"props":2886,"children":2887},{"style":255},[2888],{"type":46,"value":786},{"type":40,"tag":231,"props":2890,"children":2891},{"style":244},[2892],{"type":46,"value":381},{"type":40,"tag":231,"props":2894,"children":2895},{"style":255},[2896],{"type":46,"value":795},{"type":40,"tag":231,"props":2898,"children":2899},{"style":244},[2900],{"type":46,"value":381},{"type":40,"tag":231,"props":2902,"children":2903},{"style":802},[2904],{"type":46,"value":805},{"type":40,"tag":231,"props":2906,"children":2907},{"style":255},[2908],{"type":46,"value":607},{"type":40,"tag":231,"props":2910,"children":2911},{"style":244},[2912],{"type":46,"value":279},{"type":40,"tag":231,"props":2914,"children":2915},{"style":271},[2916],{"type":46,"value":2917},"my-bucket",{"type":40,"tag":231,"props":2919,"children":2920},{"style":244},[2921],{"type":46,"value":279},{"type":40,"tag":231,"props":2923,"children":2924},{"style":244},[2925],{"type":46,"value":627},{"type":40,"tag":231,"props":2927,"children":2928},{"style":244},[2929],{"type":46,"value":728},{"type":40,"tag":231,"props":2931,"children":2932},{"style":244},[2933],{"type":46,"value":846},{"type":40,"tag":231,"props":2935,"children":2936},{"style":363},[2937],{"type":46,"value":851},{"type":40,"tag":231,"props":2939,"children":2940},{"style":244},[2941],{"type":46,"value":515},{"type":40,"tag":231,"props":2943,"children":2944},{"style":244},[2945],{"type":46,"value":860},{"type":40,"tag":231,"props":2947,"children":2948},{"style":244},[2949],{"type":46,"value":865},{"type":40,"tag":231,"props":2951,"children":2952},{"style":255},[2953],{"type":46,"value":670},{"type":40,"tag":231,"props":2955,"children":2956},{"style":244},[2957],{"type":46,"value":284},{"type":40,"tag":49,"props":2959,"children":2960},{},[2961,2965],{"type":40,"tag":150,"props":2962,"children":2963},{},[2964],{"type":46,"value":2416},{"type":46,"value":515},{"type":40,"tag":221,"props":2967,"children":2969},{"className":223,"code":2968,"language":216,"meta":225,"style":225},"\u002F\u002F Unique per component instance\nconst bucket = new aws.s3.Bucket(`${name}-bucket`, {}, { parent: this });\n",[2970],{"type":40,"tag":55,"props":2971,"children":2972},{"__ignoreMap":225},[2973,2981],{"type":40,"tag":231,"props":2974,"children":2975},{"class":233,"line":234},[2976],{"type":40,"tag":231,"props":2977,"children":2978},{"style":681},[2979],{"type":46,"value":2980},"\u002F\u002F Unique per component instance\n",{"type":40,"tag":231,"props":2982,"children":2983},{"class":233,"line":287},[2984,2988,2992,2996,3000,3004,3008,3012,3016,3020,3024,3028,3032,3036,3040,3044,3048,3052,3056,3060,3064,3068,3072,3076],{"type":40,"tag":231,"props":2985,"children":2986},{"style":342},[2987],{"type":46,"value":1381},{"type":40,"tag":231,"props":2989,"children":2990},{"style":255},[2991],{"type":46,"value":2876},{"type":40,"tag":231,"props":2993,"children":2994},{"style":244},[2995],{"type":46,"value":1391},{"type":40,"tag":231,"props":2997,"children":2998},{"style":244},[2999],{"type":46,"value":781},{"type":40,"tag":231,"props":3001,"children":3002},{"style":255},[3003],{"type":46,"value":786},{"type":40,"tag":231,"props":3005,"children":3006},{"style":244},[3007],{"type":46,"value":381},{"type":40,"tag":231,"props":3009,"children":3010},{"style":255},[3011],{"type":46,"value":795},{"type":40,"tag":231,"props":3013,"children":3014},{"style":244},[3015],{"type":46,"value":381},{"type":40,"tag":231,"props":3017,"children":3018},{"style":802},[3019],{"type":46,"value":805},{"type":40,"tag":231,"props":3021,"children":3022},{"style":255},[3023],{"type":46,"value":607},{"type":40,"tag":231,"props":3025,"children":3026},{"style":244},[3027],{"type":46,"value":814},{"type":40,"tag":231,"props":3029,"children":3030},{"style":255},[3031],{"type":46,"value":613},{"type":40,"tag":231,"props":3033,"children":3034},{"style":244},[3035],{"type":46,"value":823},{"type":40,"tag":231,"props":3037,"children":3038},{"style":271},[3039],{"type":46,"value":828},{"type":40,"tag":231,"props":3041,"children":3042},{"style":244},[3043],{"type":46,"value":833},{"type":40,"tag":231,"props":3045,"children":3046},{"style":244},[3047],{"type":46,"value":627},{"type":40,"tag":231,"props":3049,"children":3050},{"style":244},[3051],{"type":46,"value":728},{"type":40,"tag":231,"props":3053,"children":3054},{"style":244},[3055],{"type":46,"value":846},{"type":40,"tag":231,"props":3057,"children":3058},{"style":363},[3059],{"type":46,"value":851},{"type":40,"tag":231,"props":3061,"children":3062},{"style":244},[3063],{"type":46,"value":515},{"type":40,"tag":231,"props":3065,"children":3066},{"style":244},[3067],{"type":46,"value":860},{"type":40,"tag":231,"props":3069,"children":3070},{"style":244},[3071],{"type":46,"value":865},{"type":40,"tag":231,"props":3073,"children":3074},{"style":255},[3075],{"type":46,"value":670},{"type":40,"tag":231,"props":3077,"children":3078},{"style":244},[3079],{"type":46,"value":284},{"type":40,"tag":3081,"props":3082,"children":3083},"hr",{},[],{"type":40,"tag":85,"props":3085,"children":3087},{"id":3086},"designing-the-args-interface",[3088],{"type":46,"value":3089},"Designing the Args Interface",{"type":40,"tag":49,"props":3091,"children":3092},{},[3093],{"type":46,"value":3094},"The args interface is the most impactful design decision. It defines what consumers can configure and how composable the component is.",{"type":40,"tag":214,"props":3096,"children":3098},{"id":3097},"wrap-properties-in-input",[3099,3101],{"type":46,"value":3100},"Wrap Properties in Input",{"type":40,"tag":3102,"props":3103,"children":3104},"t",{},[],{"type":40,"tag":49,"props":3106,"children":3107},{},[3108,3112,3114,3120,3122,3128,3130,3136],{"type":40,"tag":150,"props":3109,"children":3110},{},[3111],{"type":46,"value":2022},{"type":46,"value":3113},": ",{"type":40,"tag":55,"props":3115,"children":3117},{"className":3116},[],[3118],{"type":46,"value":3119},"Input\u003CT>",{"type":46,"value":3121}," accepts both plain values and ",{"type":40,"tag":55,"props":3123,"children":3125},{"className":3124},[],[3126],{"type":46,"value":3127},"Output\u003CT>",{"type":46,"value":3129}," from other resources. Without it, consumers must unwrap outputs manually with ",{"type":40,"tag":55,"props":3131,"children":3133},{"className":3132},[],[3134],{"type":46,"value":3135},".apply()",{"type":46,"value":381},{"type":40,"tag":49,"props":3138,"children":3139},{},[3140,3144],{"type":40,"tag":150,"props":3141,"children":3142},{},[3143],{"type":46,"value":2039},{"type":46,"value":515},{"type":40,"tag":221,"props":3146,"children":3148},{"className":223,"code":3147,"language":216,"meta":225,"style":225},"interface WebServiceArgs {\n    port: number;            \u002F\u002F Forces consumers to unwrap Outputs\n    vpcId: string;           \u002F\u002F Cannot accept vpc.id directly\n}\n",[3149],{"type":40,"tag":55,"props":3150,"children":3151},{"__ignoreMap":225},[3152,3168,3195,3220],{"type":40,"tag":231,"props":3153,"children":3154},{"class":233,"line":234},[3155,3159,3164],{"type":40,"tag":231,"props":3156,"children":3157},{"style":342},[3158],{"type":46,"value":345},{"type":40,"tag":231,"props":3160,"children":3161},{"style":348},[3162],{"type":46,"value":3163}," WebServiceArgs",{"type":40,"tag":231,"props":3165,"children":3166},{"style":244},[3167],{"type":46,"value":356},{"type":40,"tag":231,"props":3169,"children":3170},{"class":233,"line":287},[3171,3176,3180,3185,3190],{"type":40,"tag":231,"props":3172,"children":3173},{"style":363},[3174],{"type":46,"value":3175},"    port",{"type":40,"tag":231,"props":3177,"children":3178},{"style":244},[3179],{"type":46,"value":515},{"type":40,"tag":231,"props":3181,"children":3182},{"style":348},[3183],{"type":46,"value":3184}," number",{"type":40,"tag":231,"props":3186,"children":3187},{"style":244},[3188],{"type":46,"value":3189},";",{"type":40,"tag":231,"props":3191,"children":3192},{"style":681},[3193],{"type":46,"value":3194},"            \u002F\u002F Forces consumers to unwrap Outputs\n",{"type":40,"tag":231,"props":3196,"children":3197},{"class":233,"line":329},[3198,3203,3207,3211,3215],{"type":40,"tag":231,"props":3199,"children":3200},{"style":363},[3201],{"type":46,"value":3202},"    vpcId",{"type":40,"tag":231,"props":3204,"children":3205},{"style":244},[3206],{"type":46,"value":515},{"type":40,"tag":231,"props":3208,"children":3209},{"style":348},[3210],{"type":46,"value":622},{"type":40,"tag":231,"props":3212,"children":3213},{"style":244},[3214],{"type":46,"value":3189},{"type":40,"tag":231,"props":3216,"children":3217},{"style":681},[3218],{"type":46,"value":3219},"           \u002F\u002F Cannot accept vpc.id directly\n",{"type":40,"tag":231,"props":3221,"children":3222},{"class":233,"line":27},[3223],{"type":40,"tag":231,"props":3224,"children":3225},{"style":244},[3226],{"type":46,"value":447},{"type":40,"tag":49,"props":3228,"children":3229},{},[3230,3234],{"type":40,"tag":150,"props":3231,"children":3232},{},[3233],{"type":46,"value":2416},{"type":46,"value":515},{"type":40,"tag":221,"props":3236,"children":3238},{"className":223,"code":3237,"language":216,"meta":225,"style":225},"interface WebServiceArgs {\n    port: pulumi.Input\u003Cnumber>;     \u002F\u002F Accepts 8080 or someOutput\n    vpcId: pulumi.Input\u003Cstring>;    \u002F\u002F Accepts \"vpc-123\" or vpc.id\n}\n",[3239],{"type":40,"tag":55,"props":3240,"children":3241},{"__ignoreMap":225},[3242,3257,3299,3339],{"type":40,"tag":231,"props":3243,"children":3244},{"class":233,"line":234},[3245,3249,3253],{"type":40,"tag":231,"props":3246,"children":3247},{"style":342},[3248],{"type":46,"value":345},{"type":40,"tag":231,"props":3250,"children":3251},{"style":348},[3252],{"type":46,"value":3163},{"type":40,"tag":231,"props":3254,"children":3255},{"style":244},[3256],{"type":46,"value":356},{"type":40,"tag":231,"props":3258,"children":3259},{"class":233,"line":287},[3260,3264,3268,3272,3276,3280,3284,3289,3294],{"type":40,"tag":231,"props":3261,"children":3262},{"style":363},[3263],{"type":46,"value":3175},{"type":40,"tag":231,"props":3265,"children":3266},{"style":244},[3267],{"type":46,"value":515},{"type":40,"tag":231,"props":3269,"children":3270},{"style":348},[3271],{"type":46,"value":376},{"type":40,"tag":231,"props":3273,"children":3274},{"style":244},[3275],{"type":46,"value":381},{"type":40,"tag":231,"props":3277,"children":3278},{"style":348},[3279],{"type":46,"value":386},{"type":40,"tag":231,"props":3281,"children":3282},{"style":244},[3283],{"type":46,"value":391},{"type":40,"tag":231,"props":3285,"children":3286},{"style":348},[3287],{"type":46,"value":3288},"number",{"type":40,"tag":231,"props":3290,"children":3291},{"style":244},[3292],{"type":46,"value":3293},">;",{"type":40,"tag":231,"props":3295,"children":3296},{"style":681},[3297],{"type":46,"value":3298},"     \u002F\u002F Accepts 8080 or someOutput\n",{"type":40,"tag":231,"props":3300,"children":3301},{"class":233,"line":329},[3302,3306,3310,3314,3318,3322,3326,3330,3334],{"type":40,"tag":231,"props":3303,"children":3304},{"style":363},[3305],{"type":46,"value":3202},{"type":40,"tag":231,"props":3307,"children":3308},{"style":244},[3309],{"type":46,"value":515},{"type":40,"tag":231,"props":3311,"children":3312},{"style":348},[3313],{"type":46,"value":376},{"type":40,"tag":231,"props":3315,"children":3316},{"style":244},[3317],{"type":46,"value":381},{"type":40,"tag":231,"props":3319,"children":3320},{"style":348},[3321],{"type":46,"value":386},{"type":40,"tag":231,"props":3323,"children":3324},{"style":244},[3325],{"type":46,"value":391},{"type":40,"tag":231,"props":3327,"children":3328},{"style":348},[3329],{"type":46,"value":396},{"type":40,"tag":231,"props":3331,"children":3332},{"style":244},[3333],{"type":46,"value":3293},{"type":40,"tag":231,"props":3335,"children":3336},{"style":681},[3337],{"type":46,"value":3338},"    \u002F\u002F Accepts \"vpc-123\" or vpc.id\n",{"type":40,"tag":231,"props":3340,"children":3341},{"class":233,"line":27},[3342],{"type":40,"tag":231,"props":3343,"children":3344},{"style":244},[3345],{"type":46,"value":447},{"type":40,"tag":214,"props":3347,"children":3349},{"id":3348},"keep-structures-flat",[3350],{"type":46,"value":3351},"Keep Structures Flat",{"type":40,"tag":49,"props":3353,"children":3354},{},[3355],{"type":46,"value":3356},"Avoid deeply nested arg objects. Flat interfaces are easier to use and evolve.",{"type":40,"tag":221,"props":3358,"children":3360},{"className":223,"code":3359,"language":216,"meta":225,"style":225},"\u002F\u002F Prefer flat\ninterface DatabaseArgs {\n    instanceClass: pulumi.Input\u003Cstring>;\n    storageGb: pulumi.Input\u003Cnumber>;\n    enableBackups?: pulumi.Input\u003Cboolean>;\n    backupRetentionDays?: pulumi.Input\u003Cnumber>;\n}\n\n\u002F\u002F Avoid deep nesting\ninterface DatabaseArgs {\n    instance: {\n        compute: { class: pulumi.Input\u003Cstring> };\n        storage: { sizeGb: pulumi.Input\u003Cnumber> };\n    };\n    backup: {\n        config: { enabled: pulumi.Input\u003Cboolean>; retention: pulumi.Input\u003Cnumber> };\n    };\n}\n",[3361],{"type":40,"tag":55,"props":3362,"children":3363},{"__ignoreMap":225},[3364,3372,3388,3424,3460,3497,3533,3540,3547,3555,3570,3586,3641,3694,3702,3718,3804,3811],{"type":40,"tag":231,"props":3365,"children":3366},{"class":233,"line":234},[3367],{"type":40,"tag":231,"props":3368,"children":3369},{"style":681},[3370],{"type":46,"value":3371},"\u002F\u002F Prefer flat\n",{"type":40,"tag":231,"props":3373,"children":3374},{"class":233,"line":287},[3375,3379,3384],{"type":40,"tag":231,"props":3376,"children":3377},{"style":342},[3378],{"type":46,"value":345},{"type":40,"tag":231,"props":3380,"children":3381},{"style":348},[3382],{"type":46,"value":3383}," DatabaseArgs",{"type":40,"tag":231,"props":3385,"children":3386},{"style":244},[3387],{"type":46,"value":356},{"type":40,"tag":231,"props":3389,"children":3390},{"class":233,"line":329},[3391,3396,3400,3404,3408,3412,3416,3420],{"type":40,"tag":231,"props":3392,"children":3393},{"style":363},[3394],{"type":46,"value":3395},"    instanceClass",{"type":40,"tag":231,"props":3397,"children":3398},{"style":244},[3399],{"type":46,"value":515},{"type":40,"tag":231,"props":3401,"children":3402},{"style":348},[3403],{"type":46,"value":376},{"type":40,"tag":231,"props":3405,"children":3406},{"style":244},[3407],{"type":46,"value":381},{"type":40,"tag":231,"props":3409,"children":3410},{"style":348},[3411],{"type":46,"value":386},{"type":40,"tag":231,"props":3413,"children":3414},{"style":244},[3415],{"type":46,"value":391},{"type":40,"tag":231,"props":3417,"children":3418},{"style":348},[3419],{"type":46,"value":396},{"type":40,"tag":231,"props":3421,"children":3422},{"style":244},[3423],{"type":46,"value":401},{"type":40,"tag":231,"props":3425,"children":3426},{"class":233,"line":27},[3427,3432,3436,3440,3444,3448,3452,3456],{"type":40,"tag":231,"props":3428,"children":3429},{"style":363},[3430],{"type":46,"value":3431},"    storageGb",{"type":40,"tag":231,"props":3433,"children":3434},{"style":244},[3435],{"type":46,"value":515},{"type":40,"tag":231,"props":3437,"children":3438},{"style":348},[3439],{"type":46,"value":376},{"type":40,"tag":231,"props":3441,"children":3442},{"style":244},[3443],{"type":46,"value":381},{"type":40,"tag":231,"props":3445,"children":3446},{"style":348},[3447],{"type":46,"value":386},{"type":40,"tag":231,"props":3449,"children":3450},{"style":244},[3451],{"type":46,"value":391},{"type":40,"tag":231,"props":3453,"children":3454},{"style":348},[3455],{"type":46,"value":3288},{"type":40,"tag":231,"props":3457,"children":3458},{"style":244},[3459],{"type":46,"value":401},{"type":40,"tag":231,"props":3461,"children":3462},{"class":233,"line":359},[3463,3468,3472,3476,3480,3484,3488,3493],{"type":40,"tag":231,"props":3464,"children":3465},{"style":363},[3466],{"type":46,"value":3467},"    enableBackups",{"type":40,"tag":231,"props":3469,"children":3470},{"style":244},[3471],{"type":46,"value":371},{"type":40,"tag":231,"props":3473,"children":3474},{"style":348},[3475],{"type":46,"value":376},{"type":40,"tag":231,"props":3477,"children":3478},{"style":244},[3479],{"type":46,"value":381},{"type":40,"tag":231,"props":3481,"children":3482},{"style":348},[3483],{"type":46,"value":386},{"type":40,"tag":231,"props":3485,"children":3486},{"style":244},[3487],{"type":46,"value":391},{"type":40,"tag":231,"props":3489,"children":3490},{"style":348},[3491],{"type":46,"value":3492},"boolean",{"type":40,"tag":231,"props":3494,"children":3495},{"style":244},[3496],{"type":46,"value":401},{"type":40,"tag":231,"props":3498,"children":3499},{"class":233,"line":404},[3500,3505,3509,3513,3517,3521,3525,3529],{"type":40,"tag":231,"props":3501,"children":3502},{"style":363},[3503],{"type":46,"value":3504},"    backupRetentionDays",{"type":40,"tag":231,"props":3506,"children":3507},{"style":244},[3508],{"type":46,"value":371},{"type":40,"tag":231,"props":3510,"children":3511},{"style":348},[3512],{"type":46,"value":376},{"type":40,"tag":231,"props":3514,"children":3515},{"style":244},[3516],{"type":46,"value":381},{"type":40,"tag":231,"props":3518,"children":3519},{"style":348},[3520],{"type":46,"value":386},{"type":40,"tag":231,"props":3522,"children":3523},{"style":244},[3524],{"type":46,"value":391},{"type":40,"tag":231,"props":3526,"children":3527},{"style":348},[3528],{"type":46,"value":3288},{"type":40,"tag":231,"props":3530,"children":3531},{"style":244},[3532],{"type":46,"value":401},{"type":40,"tag":231,"props":3534,"children":3535},{"class":233,"line":441},[3536],{"type":40,"tag":231,"props":3537,"children":3538},{"style":244},[3539],{"type":46,"value":447},{"type":40,"tag":231,"props":3541,"children":3542},{"class":233,"line":450},[3543],{"type":40,"tag":231,"props":3544,"children":3545},{"emptyLinePlaceholder":333},[3546],{"type":46,"value":336},{"type":40,"tag":231,"props":3548,"children":3549},{"class":233,"line":458},[3550],{"type":40,"tag":231,"props":3551,"children":3552},{"style":681},[3553],{"type":46,"value":3554},"\u002F\u002F Avoid deep nesting\n",{"type":40,"tag":231,"props":3556,"children":3557},{"class":233,"line":494},[3558,3562,3566],{"type":40,"tag":231,"props":3559,"children":3560},{"style":342},[3561],{"type":46,"value":345},{"type":40,"tag":231,"props":3563,"children":3564},{"style":348},[3565],{"type":46,"value":3383},{"type":40,"tag":231,"props":3567,"children":3568},{"style":244},[3569],{"type":46,"value":356},{"type":40,"tag":231,"props":3571,"children":3572},{"class":233,"line":543},[3573,3578,3582],{"type":40,"tag":231,"props":3574,"children":3575},{"style":363},[3576],{"type":46,"value":3577},"    instance",{"type":40,"tag":231,"props":3579,"children":3580},{"style":244},[3581],{"type":46,"value":515},{"type":40,"tag":231,"props":3583,"children":3584},{"style":244},[3585],{"type":46,"value":356},{"type":40,"tag":231,"props":3587,"children":3588},{"class":233,"line":588},[3589,3594,3598,3602,3607,3611,3615,3619,3623,3627,3631,3636],{"type":40,"tag":231,"props":3590,"children":3591},{"style":363},[3592],{"type":46,"value":3593},"        compute",{"type":40,"tag":231,"props":3595,"children":3596},{"style":244},[3597],{"type":46,"value":515},{"type":40,"tag":231,"props":3599,"children":3600},{"style":244},[3601],{"type":46,"value":846},{"type":40,"tag":231,"props":3603,"children":3604},{"style":363},[3605],{"type":46,"value":3606}," class",{"type":40,"tag":231,"props":3608,"children":3609},{"style":244},[3610],{"type":46,"value":515},{"type":40,"tag":231,"props":3612,"children":3613},{"style":348},[3614],{"type":46,"value":376},{"type":40,"tag":231,"props":3616,"children":3617},{"style":244},[3618],{"type":46,"value":381},{"type":40,"tag":231,"props":3620,"children":3621},{"style":348},[3622],{"type":46,"value":386},{"type":40,"tag":231,"props":3624,"children":3625},{"style":244},[3626],{"type":46,"value":391},{"type":40,"tag":231,"props":3628,"children":3629},{"style":348},[3630],{"type":46,"value":396},{"type":40,"tag":231,"props":3632,"children":3633},{"style":244},[3634],{"type":46,"value":3635},">",{"type":40,"tag":231,"props":3637,"children":3638},{"style":244},[3639],{"type":46,"value":3640}," };\n",{"type":40,"tag":231,"props":3642,"children":3643},{"class":233,"line":596},[3644,3649,3653,3657,3662,3666,3670,3674,3678,3682,3686,3690],{"type":40,"tag":231,"props":3645,"children":3646},{"style":363},[3647],{"type":46,"value":3648},"        storage",{"type":40,"tag":231,"props":3650,"children":3651},{"style":244},[3652],{"type":46,"value":515},{"type":40,"tag":231,"props":3654,"children":3655},{"style":244},[3656],{"type":46,"value":846},{"type":40,"tag":231,"props":3658,"children":3659},{"style":363},[3660],{"type":46,"value":3661}," sizeGb",{"type":40,"tag":231,"props":3663,"children":3664},{"style":244},[3665],{"type":46,"value":515},{"type":40,"tag":231,"props":3667,"children":3668},{"style":348},[3669],{"type":46,"value":376},{"type":40,"tag":231,"props":3671,"children":3672},{"style":244},[3673],{"type":46,"value":381},{"type":40,"tag":231,"props":3675,"children":3676},{"style":348},[3677],{"type":46,"value":386},{"type":40,"tag":231,"props":3679,"children":3680},{"style":244},[3681],{"type":46,"value":391},{"type":40,"tag":231,"props":3683,"children":3684},{"style":348},[3685],{"type":46,"value":3288},{"type":40,"tag":231,"props":3687,"children":3688},{"style":244},[3689],{"type":46,"value":3635},{"type":40,"tag":231,"props":3691,"children":3692},{"style":244},[3693],{"type":46,"value":3640},{"type":40,"tag":231,"props":3695,"children":3696},{"class":233,"line":677},[3697],{"type":40,"tag":231,"props":3698,"children":3699},{"style":244},[3700],{"type":46,"value":3701},"    };\n",{"type":40,"tag":231,"props":3703,"children":3704},{"class":233,"line":687},[3705,3710,3714],{"type":40,"tag":231,"props":3706,"children":3707},{"style":363},[3708],{"type":46,"value":3709},"    backup",{"type":40,"tag":231,"props":3711,"children":3712},{"style":244},[3713],{"type":46,"value":515},{"type":40,"tag":231,"props":3715,"children":3716},{"style":244},[3717],{"type":46,"value":356},{"type":40,"tag":231,"props":3719,"children":3720},{"class":233,"line":743},[3721,3726,3730,3734,3739,3743,3747,3751,3755,3759,3763,3767,3772,3776,3780,3784,3788,3792,3796,3800],{"type":40,"tag":231,"props":3722,"children":3723},{"style":363},[3724],{"type":46,"value":3725},"        config",{"type":40,"tag":231,"props":3727,"children":3728},{"style":244},[3729],{"type":46,"value":515},{"type":40,"tag":231,"props":3731,"children":3732},{"style":244},[3733],{"type":46,"value":846},{"type":40,"tag":231,"props":3735,"children":3736},{"style":363},[3737],{"type":46,"value":3738}," enabled",{"type":40,"tag":231,"props":3740,"children":3741},{"style":244},[3742],{"type":46,"value":515},{"type":40,"tag":231,"props":3744,"children":3745},{"style":348},[3746],{"type":46,"value":376},{"type":40,"tag":231,"props":3748,"children":3749},{"style":244},[3750],{"type":46,"value":381},{"type":40,"tag":231,"props":3752,"children":3753},{"style":348},[3754],{"type":46,"value":386},{"type":40,"tag":231,"props":3756,"children":3757},{"style":244},[3758],{"type":46,"value":391},{"type":40,"tag":231,"props":3760,"children":3761},{"style":348},[3762],{"type":46,"value":3492},{"type":40,"tag":231,"props":3764,"children":3765},{"style":244},[3766],{"type":46,"value":3293},{"type":40,"tag":231,"props":3768,"children":3769},{"style":363},[3770],{"type":46,"value":3771}," retention",{"type":40,"tag":231,"props":3773,"children":3774},{"style":244},[3775],{"type":46,"value":515},{"type":40,"tag":231,"props":3777,"children":3778},{"style":348},[3779],{"type":46,"value":376},{"type":40,"tag":231,"props":3781,"children":3782},{"style":244},[3783],{"type":46,"value":381},{"type":40,"tag":231,"props":3785,"children":3786},{"style":348},[3787],{"type":46,"value":386},{"type":40,"tag":231,"props":3789,"children":3790},{"style":244},[3791],{"type":46,"value":391},{"type":40,"tag":231,"props":3793,"children":3794},{"style":348},[3795],{"type":46,"value":3288},{"type":40,"tag":231,"props":3797,"children":3798},{"style":244},[3799],{"type":46,"value":3635},{"type":40,"tag":231,"props":3801,"children":3802},{"style":244},[3803],{"type":46,"value":3640},{"type":40,"tag":231,"props":3805,"children":3806},{"class":233,"line":751},[3807],{"type":40,"tag":231,"props":3808,"children":3809},{"style":244},[3810],{"type":46,"value":3701},{"type":40,"tag":231,"props":3812,"children":3813},{"class":233,"line":760},[3814],{"type":40,"tag":231,"props":3815,"children":3816},{"style":244},[3817],{"type":46,"value":447},{"type":40,"tag":214,"props":3819,"children":3821},{"id":3820},"no-union-types",[3822],{"type":46,"value":3823},"No Union Types",{"type":40,"tag":49,"props":3825,"children":3826},{},[3827,3829,3835],{"type":46,"value":3828},"Union types break multi-language SDK generation. Python, Go, and C# cannot represent ",{"type":40,"tag":55,"props":3830,"children":3832},{"className":3831},[],[3833],{"type":46,"value":3834},"string | number",{"type":46,"value":381},{"type":40,"tag":49,"props":3837,"children":3838},{},[3839,3843],{"type":40,"tag":150,"props":3840,"children":3841},{},[3842],{"type":46,"value":2039},{"type":46,"value":515},{"type":40,"tag":221,"props":3845,"children":3847},{"className":223,"code":3846,"language":216,"meta":225,"style":225},"interface MyArgs {\n    port: pulumi.Input\u003Cstring | number>;  \u002F\u002F Fails in Python, Go, C#\n}\n",[3848],{"type":40,"tag":55,"props":3849,"children":3850},{"__ignoreMap":225},[3851,3866,3915],{"type":40,"tag":231,"props":3852,"children":3853},{"class":233,"line":234},[3854,3858,3862],{"type":40,"tag":231,"props":3855,"children":3856},{"style":342},[3857],{"type":46,"value":345},{"type":40,"tag":231,"props":3859,"children":3860},{"style":348},[3861],{"type":46,"value":2170},{"type":40,"tag":231,"props":3863,"children":3864},{"style":244},[3865],{"type":46,"value":356},{"type":40,"tag":231,"props":3867,"children":3868},{"class":233,"line":287},[3869,3873,3877,3881,3885,3889,3893,3897,3902,3906,3910],{"type":40,"tag":231,"props":3870,"children":3871},{"style":363},[3872],{"type":46,"value":3175},{"type":40,"tag":231,"props":3874,"children":3875},{"style":244},[3876],{"type":46,"value":515},{"type":40,"tag":231,"props":3878,"children":3879},{"style":348},[3880],{"type":46,"value":376},{"type":40,"tag":231,"props":3882,"children":3883},{"style":244},[3884],{"type":46,"value":381},{"type":40,"tag":231,"props":3886,"children":3887},{"style":348},[3888],{"type":46,"value":386},{"type":40,"tag":231,"props":3890,"children":3891},{"style":244},[3892],{"type":46,"value":391},{"type":40,"tag":231,"props":3894,"children":3895},{"style":348},[3896],{"type":46,"value":396},{"type":40,"tag":231,"props":3898,"children":3899},{"style":244},[3900],{"type":46,"value":3901}," |",{"type":40,"tag":231,"props":3903,"children":3904},{"style":348},[3905],{"type":46,"value":3184},{"type":40,"tag":231,"props":3907,"children":3908},{"style":244},[3909],{"type":46,"value":3293},{"type":40,"tag":231,"props":3911,"children":3912},{"style":681},[3913],{"type":46,"value":3914},"  \u002F\u002F Fails in Python, Go, C#\n",{"type":40,"tag":231,"props":3916,"children":3917},{"class":233,"line":329},[3918],{"type":40,"tag":231,"props":3919,"children":3920},{"style":244},[3921],{"type":46,"value":447},{"type":40,"tag":49,"props":3923,"children":3924},{},[3925,3929],{"type":40,"tag":150,"props":3926,"children":3927},{},[3928],{"type":46,"value":2416},{"type":46,"value":515},{"type":40,"tag":221,"props":3931,"children":3933},{"className":223,"code":3932,"language":216,"meta":225,"style":225},"interface MyArgs {\n    port: pulumi.Input\u003Cnumber>;  \u002F\u002F Single type, works everywhere\n}\n",[3934],{"type":40,"tag":55,"props":3935,"children":3936},{"__ignoreMap":225},[3937,3952,3992],{"type":40,"tag":231,"props":3938,"children":3939},{"class":233,"line":234},[3940,3944,3948],{"type":40,"tag":231,"props":3941,"children":3942},{"style":342},[3943],{"type":46,"value":345},{"type":40,"tag":231,"props":3945,"children":3946},{"style":348},[3947],{"type":46,"value":2170},{"type":40,"tag":231,"props":3949,"children":3950},{"style":244},[3951],{"type":46,"value":356},{"type":40,"tag":231,"props":3953,"children":3954},{"class":233,"line":287},[3955,3959,3963,3967,3971,3975,3979,3983,3987],{"type":40,"tag":231,"props":3956,"children":3957},{"style":363},[3958],{"type":46,"value":3175},{"type":40,"tag":231,"props":3960,"children":3961},{"style":244},[3962],{"type":46,"value":515},{"type":40,"tag":231,"props":3964,"children":3965},{"style":348},[3966],{"type":46,"value":376},{"type":40,"tag":231,"props":3968,"children":3969},{"style":244},[3970],{"type":46,"value":381},{"type":40,"tag":231,"props":3972,"children":3973},{"style":348},[3974],{"type":46,"value":386},{"type":40,"tag":231,"props":3976,"children":3977},{"style":244},[3978],{"type":46,"value":391},{"type":40,"tag":231,"props":3980,"children":3981},{"style":348},[3982],{"type":46,"value":3288},{"type":40,"tag":231,"props":3984,"children":3985},{"style":244},[3986],{"type":46,"value":3293},{"type":40,"tag":231,"props":3988,"children":3989},{"style":681},[3990],{"type":46,"value":3991},"  \u002F\u002F Single type, works everywhere\n",{"type":40,"tag":231,"props":3993,"children":3994},{"class":233,"line":329},[3995],{"type":40,"tag":231,"props":3996,"children":3997},{"style":244},[3998],{"type":46,"value":447},{"type":40,"tag":49,"props":4000,"children":4001},{},[4002],{"type":46,"value":4003},"If you need to accept multiple forms, use separate optional properties:",{"type":40,"tag":221,"props":4005,"children":4007},{"className":223,"code":4006,"language":216,"meta":225,"style":225},"interface StorageArgs {\n    sizeGb?: pulumi.Input\u003Cnumber>;      \u002F\u002F Specify size in GB\n    sizeMb?: pulumi.Input\u003Cnumber>;      \u002F\u002F Or specify size in MB\n}\n",[4008],{"type":40,"tag":55,"props":4009,"children":4010},{"__ignoreMap":225},[4011,4027,4068,4109],{"type":40,"tag":231,"props":4012,"children":4013},{"class":233,"line":234},[4014,4018,4023],{"type":40,"tag":231,"props":4015,"children":4016},{"style":342},[4017],{"type":46,"value":345},{"type":40,"tag":231,"props":4019,"children":4020},{"style":348},[4021],{"type":46,"value":4022}," StorageArgs",{"type":40,"tag":231,"props":4024,"children":4025},{"style":244},[4026],{"type":46,"value":356},{"type":40,"tag":231,"props":4028,"children":4029},{"class":233,"line":287},[4030,4035,4039,4043,4047,4051,4055,4059,4063],{"type":40,"tag":231,"props":4031,"children":4032},{"style":363},[4033],{"type":46,"value":4034},"    sizeGb",{"type":40,"tag":231,"props":4036,"children":4037},{"style":244},[4038],{"type":46,"value":371},{"type":40,"tag":231,"props":4040,"children":4041},{"style":348},[4042],{"type":46,"value":376},{"type":40,"tag":231,"props":4044,"children":4045},{"style":244},[4046],{"type":46,"value":381},{"type":40,"tag":231,"props":4048,"children":4049},{"style":348},[4050],{"type":46,"value":386},{"type":40,"tag":231,"props":4052,"children":4053},{"style":244},[4054],{"type":46,"value":391},{"type":40,"tag":231,"props":4056,"children":4057},{"style":348},[4058],{"type":46,"value":3288},{"type":40,"tag":231,"props":4060,"children":4061},{"style":244},[4062],{"type":46,"value":3293},{"type":40,"tag":231,"props":4064,"children":4065},{"style":681},[4066],{"type":46,"value":4067},"      \u002F\u002F Specify size in GB\n",{"type":40,"tag":231,"props":4069,"children":4070},{"class":233,"line":329},[4071,4076,4080,4084,4088,4092,4096,4100,4104],{"type":40,"tag":231,"props":4072,"children":4073},{"style":363},[4074],{"type":46,"value":4075},"    sizeMb",{"type":40,"tag":231,"props":4077,"children":4078},{"style":244},[4079],{"type":46,"value":371},{"type":40,"tag":231,"props":4081,"children":4082},{"style":348},[4083],{"type":46,"value":376},{"type":40,"tag":231,"props":4085,"children":4086},{"style":244},[4087],{"type":46,"value":381},{"type":40,"tag":231,"props":4089,"children":4090},{"style":348},[4091],{"type":46,"value":386},{"type":40,"tag":231,"props":4093,"children":4094},{"style":244},[4095],{"type":46,"value":391},{"type":40,"tag":231,"props":4097,"children":4098},{"style":348},[4099],{"type":46,"value":3288},{"type":40,"tag":231,"props":4101,"children":4102},{"style":244},[4103],{"type":46,"value":3293},{"type":40,"tag":231,"props":4105,"children":4106},{"style":681},[4107],{"type":46,"value":4108},"      \u002F\u002F Or specify size in MB\n",{"type":40,"tag":231,"props":4110,"children":4111},{"class":233,"line":27},[4112],{"type":40,"tag":231,"props":4113,"children":4114},{"style":244},[4115],{"type":46,"value":447},{"type":40,"tag":214,"props":4117,"children":4119},{"id":4118},"no-functions-or-callbacks",[4120],{"type":46,"value":4121},"No Functions or Callbacks",{"type":40,"tag":49,"props":4123,"children":4124},{},[4125],{"type":46,"value":4126},"Functions cannot be serialized across language boundaries.",{"type":40,"tag":49,"props":4128,"children":4129},{},[4130,4134],{"type":40,"tag":150,"props":4131,"children":4132},{},[4133],{"type":46,"value":2039},{"type":46,"value":515},{"type":40,"tag":221,"props":4136,"children":4138},{"className":223,"code":4137,"language":216,"meta":225,"style":225},"interface MyArgs {\n    nameTransform: (name: string) => string;  \u002F\u002F Cannot serialize\n}\n",[4139],{"type":40,"tag":55,"props":4140,"children":4141},{"__ignoreMap":225},[4142,4157,4208],{"type":40,"tag":231,"props":4143,"children":4144},{"class":233,"line":234},[4145,4149,4153],{"type":40,"tag":231,"props":4146,"children":4147},{"style":342},[4148],{"type":46,"value":345},{"type":40,"tag":231,"props":4150,"children":4151},{"style":348},[4152],{"type":46,"value":2170},{"type":40,"tag":231,"props":4154,"children":4155},{"style":244},[4156],{"type":46,"value":356},{"type":40,"tag":231,"props":4158,"children":4159},{"class":233,"line":287},[4160,4165,4169,4174,4178,4182,4186,4190,4195,4199,4203],{"type":40,"tag":231,"props":4161,"children":4162},{"style":363},[4163],{"type":46,"value":4164},"    nameTransform",{"type":40,"tag":231,"props":4166,"children":4167},{"style":244},[4168],{"type":46,"value":515},{"type":40,"tag":231,"props":4170,"children":4171},{"style":244},[4172],{"type":46,"value":4173}," (",{"type":40,"tag":231,"props":4175,"children":4176},{"style":610},[4177],{"type":46,"value":613},{"type":40,"tag":231,"props":4179,"children":4180},{"style":244},[4181],{"type":46,"value":515},{"type":40,"tag":231,"props":4183,"children":4184},{"style":348},[4185],{"type":46,"value":622},{"type":40,"tag":231,"props":4187,"children":4188},{"style":244},[4189],{"type":46,"value":670},{"type":40,"tag":231,"props":4191,"children":4192},{"style":342},[4193],{"type":46,"value":4194}," =>",{"type":40,"tag":231,"props":4196,"children":4197},{"style":348},[4198],{"type":46,"value":622},{"type":40,"tag":231,"props":4200,"children":4201},{"style":244},[4202],{"type":46,"value":3189},{"type":40,"tag":231,"props":4204,"children":4205},{"style":681},[4206],{"type":46,"value":4207},"  \u002F\u002F Cannot serialize\n",{"type":40,"tag":231,"props":4209,"children":4210},{"class":233,"line":329},[4211],{"type":40,"tag":231,"props":4212,"children":4213},{"style":244},[4214],{"type":46,"value":447},{"type":40,"tag":49,"props":4216,"children":4217},{},[4218,4222],{"type":40,"tag":150,"props":4219,"children":4220},{},[4221],{"type":46,"value":2416},{"type":46,"value":515},{"type":40,"tag":221,"props":4224,"children":4226},{"className":223,"code":4225,"language":216,"meta":225,"style":225},"interface MyArgs {\n    namePrefix?: pulumi.Input\u003Cstring>;   \u002F\u002F Configuration instead of callback\n    nameSuffix?: pulumi.Input\u003Cstring>;\n}\n",[4227],{"type":40,"tag":55,"props":4228,"children":4229},{"__ignoreMap":225},[4230,4245,4286,4322],{"type":40,"tag":231,"props":4231,"children":4232},{"class":233,"line":234},[4233,4237,4241],{"type":40,"tag":231,"props":4234,"children":4235},{"style":342},[4236],{"type":46,"value":345},{"type":40,"tag":231,"props":4238,"children":4239},{"style":348},[4240],{"type":46,"value":2170},{"type":40,"tag":231,"props":4242,"children":4243},{"style":244},[4244],{"type":46,"value":356},{"type":40,"tag":231,"props":4246,"children":4247},{"class":233,"line":287},[4248,4253,4257,4261,4265,4269,4273,4277,4281],{"type":40,"tag":231,"props":4249,"children":4250},{"style":363},[4251],{"type":46,"value":4252},"    namePrefix",{"type":40,"tag":231,"props":4254,"children":4255},{"style":244},[4256],{"type":46,"value":371},{"type":40,"tag":231,"props":4258,"children":4259},{"style":348},[4260],{"type":46,"value":376},{"type":40,"tag":231,"props":4262,"children":4263},{"style":244},[4264],{"type":46,"value":381},{"type":40,"tag":231,"props":4266,"children":4267},{"style":348},[4268],{"type":46,"value":386},{"type":40,"tag":231,"props":4270,"children":4271},{"style":244},[4272],{"type":46,"value":391},{"type":40,"tag":231,"props":4274,"children":4275},{"style":348},[4276],{"type":46,"value":396},{"type":40,"tag":231,"props":4278,"children":4279},{"style":244},[4280],{"type":46,"value":3293},{"type":40,"tag":231,"props":4282,"children":4283},{"style":681},[4284],{"type":46,"value":4285},"   \u002F\u002F Configuration instead of callback\n",{"type":40,"tag":231,"props":4287,"children":4288},{"class":233,"line":329},[4289,4294,4298,4302,4306,4310,4314,4318],{"type":40,"tag":231,"props":4290,"children":4291},{"style":363},[4292],{"type":46,"value":4293},"    nameSuffix",{"type":40,"tag":231,"props":4295,"children":4296},{"style":244},[4297],{"type":46,"value":371},{"type":40,"tag":231,"props":4299,"children":4300},{"style":348},[4301],{"type":46,"value":376},{"type":40,"tag":231,"props":4303,"children":4304},{"style":244},[4305],{"type":46,"value":381},{"type":40,"tag":231,"props":4307,"children":4308},{"style":348},[4309],{"type":46,"value":386},{"type":40,"tag":231,"props":4311,"children":4312},{"style":244},[4313],{"type":46,"value":391},{"type":40,"tag":231,"props":4315,"children":4316},{"style":348},[4317],{"type":46,"value":396},{"type":40,"tag":231,"props":4319,"children":4320},{"style":244},[4321],{"type":46,"value":401},{"type":40,"tag":231,"props":4323,"children":4324},{"class":233,"line":27},[4325],{"type":40,"tag":231,"props":4326,"children":4327},{"style":244},[4328],{"type":46,"value":447},{"type":40,"tag":214,"props":4330,"children":4332},{"id":4331},"use-defaults-for-optional-properties",[4333],{"type":46,"value":4334},"Use Defaults for Optional Properties",{"type":40,"tag":49,"props":4336,"children":4337},{},[4338],{"type":46,"value":4339},"Set sensible defaults inside the constructor so consumers only configure what they need:",{"type":40,"tag":221,"props":4341,"children":4343},{"className":223,"code":4342,"language":216,"meta":225,"style":225},"interface SecureBucketArgs {\n    enableVersioning?: pulumi.Input\u003Cboolean>;   \u002F\u002F Defaults to true\n    enableEncryption?: pulumi.Input\u003Cboolean>;   \u002F\u002F Defaults to true\n    blockPublicAccess?: pulumi.Input\u003Cboolean>;  \u002F\u002F Defaults to true\n}\n\nclass SecureBucket extends pulumi.ComponentResource {\n    constructor(name: string, args: SecureBucketArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:SecureBucket\", name, {}, opts);\n\n        const enableVersioning = args.enableVersioning ?? true;\n        const enableEncryption = args.enableEncryption ?? true;\n        const blockPublicAccess = args.blockPublicAccess ?? true;\n\n        \u002F\u002F Apply defaults...\n    }\n}\n\n\u002F\u002F Consumer only overrides what they need\nconst bucket = new SecureBucket(\"data\", { enableVersioning: false });\n",[4344],{"type":40,"tag":55,"props":4345,"children":4346},{"__ignoreMap":225},[4347,4363,4404,4444,4485,4492,4499,4531,4602,4654,4661,4704,4745,4786,4793,4801,4808,4815,4822,4830],{"type":40,"tag":231,"props":4348,"children":4349},{"class":233,"line":234},[4350,4354,4359],{"type":40,"tag":231,"props":4351,"children":4352},{"style":342},[4353],{"type":46,"value":345},{"type":40,"tag":231,"props":4355,"children":4356},{"style":348},[4357],{"type":46,"value":4358}," SecureBucketArgs",{"type":40,"tag":231,"props":4360,"children":4361},{"style":244},[4362],{"type":46,"value":356},{"type":40,"tag":231,"props":4364,"children":4365},{"class":233,"line":287},[4366,4371,4375,4379,4383,4387,4391,4395,4399],{"type":40,"tag":231,"props":4367,"children":4368},{"style":363},[4369],{"type":46,"value":4370},"    enableVersioning",{"type":40,"tag":231,"props":4372,"children":4373},{"style":244},[4374],{"type":46,"value":371},{"type":40,"tag":231,"props":4376,"children":4377},{"style":348},[4378],{"type":46,"value":376},{"type":40,"tag":231,"props":4380,"children":4381},{"style":244},[4382],{"type":46,"value":381},{"type":40,"tag":231,"props":4384,"children":4385},{"style":348},[4386],{"type":46,"value":386},{"type":40,"tag":231,"props":4388,"children":4389},{"style":244},[4390],{"type":46,"value":391},{"type":40,"tag":231,"props":4392,"children":4393},{"style":348},[4394],{"type":46,"value":3492},{"type":40,"tag":231,"props":4396,"children":4397},{"style":244},[4398],{"type":46,"value":3293},{"type":40,"tag":231,"props":4400,"children":4401},{"style":681},[4402],{"type":46,"value":4403},"   \u002F\u002F Defaults to true\n",{"type":40,"tag":231,"props":4405,"children":4406},{"class":233,"line":329},[4407,4412,4416,4420,4424,4428,4432,4436,4440],{"type":40,"tag":231,"props":4408,"children":4409},{"style":363},[4410],{"type":46,"value":4411},"    enableEncryption",{"type":40,"tag":231,"props":4413,"children":4414},{"style":244},[4415],{"type":46,"value":371},{"type":40,"tag":231,"props":4417,"children":4418},{"style":348},[4419],{"type":46,"value":376},{"type":40,"tag":231,"props":4421,"children":4422},{"style":244},[4423],{"type":46,"value":381},{"type":40,"tag":231,"props":4425,"children":4426},{"style":348},[4427],{"type":46,"value":386},{"type":40,"tag":231,"props":4429,"children":4430},{"style":244},[4431],{"type":46,"value":391},{"type":40,"tag":231,"props":4433,"children":4434},{"style":348},[4435],{"type":46,"value":3492},{"type":40,"tag":231,"props":4437,"children":4438},{"style":244},[4439],{"type":46,"value":3293},{"type":40,"tag":231,"props":4441,"children":4442},{"style":681},[4443],{"type":46,"value":4403},{"type":40,"tag":231,"props":4445,"children":4446},{"class":233,"line":27},[4447,4452,4456,4460,4464,4468,4472,4476,4480],{"type":40,"tag":231,"props":4448,"children":4449},{"style":363},[4450],{"type":46,"value":4451},"    blockPublicAccess",{"type":40,"tag":231,"props":4453,"children":4454},{"style":244},[4455],{"type":46,"value":371},{"type":40,"tag":231,"props":4457,"children":4458},{"style":348},[4459],{"type":46,"value":376},{"type":40,"tag":231,"props":4461,"children":4462},{"style":244},[4463],{"type":46,"value":381},{"type":40,"tag":231,"props":4465,"children":4466},{"style":348},[4467],{"type":46,"value":386},{"type":40,"tag":231,"props":4469,"children":4470},{"style":244},[4471],{"type":46,"value":391},{"type":40,"tag":231,"props":4473,"children":4474},{"style":348},[4475],{"type":46,"value":3492},{"type":40,"tag":231,"props":4477,"children":4478},{"style":244},[4479],{"type":46,"value":3293},{"type":40,"tag":231,"props":4481,"children":4482},{"style":681},[4483],{"type":46,"value":4484},"  \u002F\u002F Defaults to true\n",{"type":40,"tag":231,"props":4486,"children":4487},{"class":233,"line":359},[4488],{"type":40,"tag":231,"props":4489,"children":4490},{"style":244},[4491],{"type":46,"value":447},{"type":40,"tag":231,"props":4493,"children":4494},{"class":233,"line":404},[4495],{"type":40,"tag":231,"props":4496,"children":4497},{"emptyLinePlaceholder":333},[4498],{"type":46,"value":336},{"type":40,"tag":231,"props":4500,"children":4501},{"class":233,"line":441},[4502,4506,4511,4515,4519,4523,4527],{"type":40,"tag":231,"props":4503,"children":4504},{"style":342},[4505],{"type":46,"value":464},{"type":40,"tag":231,"props":4507,"children":4508},{"style":348},[4509],{"type":46,"value":4510}," SecureBucket",{"type":40,"tag":231,"props":4512,"children":4513},{"style":342},[4514],{"type":46,"value":474},{"type":40,"tag":231,"props":4516,"children":4517},{"style":348},[4518],{"type":46,"value":376},{"type":40,"tag":231,"props":4520,"children":4521},{"style":244},[4522],{"type":46,"value":381},{"type":40,"tag":231,"props":4524,"children":4525},{"style":348},[4526],{"type":46,"value":487},{"type":40,"tag":231,"props":4528,"children":4529},{"style":244},[4530],{"type":46,"value":356},{"type":40,"tag":231,"props":4532,"children":4533},{"class":233,"line":450},[4534,4538,4542,4546,4550,4554,4558,4562,4566,4570,4574,4578,4582,4586,4590,4594,4598],{"type":40,"tag":231,"props":4535,"children":4536},{"style":342},[4537],{"type":46,"value":602},{"type":40,"tag":231,"props":4539,"children":4540},{"style":244},[4541],{"type":46,"value":607},{"type":40,"tag":231,"props":4543,"children":4544},{"style":610},[4545],{"type":46,"value":613},{"type":40,"tag":231,"props":4547,"children":4548},{"style":244},[4549],{"type":46,"value":515},{"type":40,"tag":231,"props":4551,"children":4552},{"style":348},[4553],{"type":46,"value":622},{"type":40,"tag":231,"props":4555,"children":4556},{"style":244},[4557],{"type":46,"value":627},{"type":40,"tag":231,"props":4559,"children":4560},{"style":610},[4561],{"type":46,"value":632},{"type":40,"tag":231,"props":4563,"children":4564},{"style":244},[4565],{"type":46,"value":515},{"type":40,"tag":231,"props":4567,"children":4568},{"style":348},[4569],{"type":46,"value":4358},{"type":40,"tag":231,"props":4571,"children":4572},{"style":244},[4573],{"type":46,"value":627},{"type":40,"tag":231,"props":4575,"children":4576},{"style":610},[4577],{"type":46,"value":649},{"type":40,"tag":231,"props":4579,"children":4580},{"style":244},[4581],{"type":46,"value":371},{"type":40,"tag":231,"props":4583,"children":4584},{"style":348},[4585],{"type":46,"value":376},{"type":40,"tag":231,"props":4587,"children":4588},{"style":244},[4589],{"type":46,"value":381},{"type":40,"tag":231,"props":4591,"children":4592},{"style":348},[4593],{"type":46,"value":180},{"type":40,"tag":231,"props":4595,"children":4596},{"style":244},[4597],{"type":46,"value":670},{"type":40,"tag":231,"props":4599,"children":4600},{"style":244},[4601],{"type":46,"value":356},{"type":40,"tag":231,"props":4603,"children":4604},{"class":233,"line":458},[4605,4609,4613,4617,4622,4626,4630,4634,4638,4642,4646,4650],{"type":40,"tag":231,"props":4606,"children":4607},{"style":255},[4608],{"type":46,"value":693},{"type":40,"tag":231,"props":4610,"children":4611},{"style":363},[4612],{"type":46,"value":607},{"type":40,"tag":231,"props":4614,"children":4615},{"style":244},[4616],{"type":46,"value":279},{"type":40,"tag":231,"props":4618,"children":4619},{"style":271},[4620],{"type":46,"value":4621},"myorg:index:SecureBucket",{"type":40,"tag":231,"props":4623,"children":4624},{"style":244},[4625],{"type":46,"value":279},{"type":40,"tag":231,"props":4627,"children":4628},{"style":244},[4629],{"type":46,"value":627},{"type":40,"tag":231,"props":4631,"children":4632},{"style":255},[4633],{"type":46,"value":719},{"type":40,"tag":231,"props":4635,"children":4636},{"style":244},[4637],{"type":46,"value":627},{"type":40,"tag":231,"props":4639,"children":4640},{"style":244},[4641],{"type":46,"value":728},{"type":40,"tag":231,"props":4643,"children":4644},{"style":255},[4645],{"type":46,"value":649},{"type":40,"tag":231,"props":4647,"children":4648},{"style":363},[4649],{"type":46,"value":670},{"type":40,"tag":231,"props":4651,"children":4652},{"style":244},[4653],{"type":46,"value":284},{"type":40,"tag":231,"props":4655,"children":4656},{"class":233,"line":494},[4657],{"type":40,"tag":231,"props":4658,"children":4659},{"emptyLinePlaceholder":333},[4660],{"type":46,"value":336},{"type":40,"tag":231,"props":4662,"children":4663},{"class":233,"line":543},[4664,4668,4673,4677,4681,4685,4690,4694,4700],{"type":40,"tag":231,"props":4665,"children":4666},{"style":342},[4667],{"type":46,"value":766},{"type":40,"tag":231,"props":4669,"children":4670},{"style":255},[4671],{"type":46,"value":4672}," enableVersioning",{"type":40,"tag":231,"props":4674,"children":4675},{"style":244},[4676],{"type":46,"value":776},{"type":40,"tag":231,"props":4678,"children":4679},{"style":255},[4680],{"type":46,"value":632},{"type":40,"tag":231,"props":4682,"children":4683},{"style":244},[4684],{"type":46,"value":381},{"type":40,"tag":231,"props":4686,"children":4687},{"style":255},[4688],{"type":46,"value":4689},"enableVersioning",{"type":40,"tag":231,"props":4691,"children":4692},{"style":244},[4693],{"type":46,"value":1031},{"type":40,"tag":231,"props":4695,"children":4697},{"style":4696},"--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC",[4698],{"type":46,"value":4699}," true",{"type":40,"tag":231,"props":4701,"children":4702},{"style":244},[4703],{"type":46,"value":284},{"type":40,"tag":231,"props":4705,"children":4706},{"class":233,"line":588},[4707,4711,4716,4720,4724,4728,4733,4737,4741],{"type":40,"tag":231,"props":4708,"children":4709},{"style":342},[4710],{"type":46,"value":766},{"type":40,"tag":231,"props":4712,"children":4713},{"style":255},[4714],{"type":46,"value":4715}," enableEncryption",{"type":40,"tag":231,"props":4717,"children":4718},{"style":244},[4719],{"type":46,"value":776},{"type":40,"tag":231,"props":4721,"children":4722},{"style":255},[4723],{"type":46,"value":632},{"type":40,"tag":231,"props":4725,"children":4726},{"style":244},[4727],{"type":46,"value":381},{"type":40,"tag":231,"props":4729,"children":4730},{"style":255},[4731],{"type":46,"value":4732},"enableEncryption",{"type":40,"tag":231,"props":4734,"children":4735},{"style":244},[4736],{"type":46,"value":1031},{"type":40,"tag":231,"props":4738,"children":4739},{"style":4696},[4740],{"type":46,"value":4699},{"type":40,"tag":231,"props":4742,"children":4743},{"style":244},[4744],{"type":46,"value":284},{"type":40,"tag":231,"props":4746,"children":4747},{"class":233,"line":596},[4748,4752,4757,4761,4765,4769,4774,4778,4782],{"type":40,"tag":231,"props":4749,"children":4750},{"style":342},[4751],{"type":46,"value":766},{"type":40,"tag":231,"props":4753,"children":4754},{"style":255},[4755],{"type":46,"value":4756}," blockPublicAccess",{"type":40,"tag":231,"props":4758,"children":4759},{"style":244},[4760],{"type":46,"value":776},{"type":40,"tag":231,"props":4762,"children":4763},{"style":255},[4764],{"type":46,"value":632},{"type":40,"tag":231,"props":4766,"children":4767},{"style":244},[4768],{"type":46,"value":381},{"type":40,"tag":231,"props":4770,"children":4771},{"style":255},[4772],{"type":46,"value":4773},"blockPublicAccess",{"type":40,"tag":231,"props":4775,"children":4776},{"style":244},[4777],{"type":46,"value":1031},{"type":40,"tag":231,"props":4779,"children":4780},{"style":4696},[4781],{"type":46,"value":4699},{"type":40,"tag":231,"props":4783,"children":4784},{"style":244},[4785],{"type":46,"value":284},{"type":40,"tag":231,"props":4787,"children":4788},{"class":233,"line":677},[4789],{"type":40,"tag":231,"props":4790,"children":4791},{"emptyLinePlaceholder":333},[4792],{"type":46,"value":336},{"type":40,"tag":231,"props":4794,"children":4795},{"class":233,"line":687},[4796],{"type":40,"tag":231,"props":4797,"children":4798},{"style":681},[4799],{"type":46,"value":4800},"        \u002F\u002F Apply defaults...\n",{"type":40,"tag":231,"props":4802,"children":4803},{"class":233,"line":743},[4804],{"type":40,"tag":231,"props":4805,"children":4806},{"style":244},[4807],{"type":46,"value":1347},{"type":40,"tag":231,"props":4809,"children":4810},{"class":233,"line":751},[4811],{"type":40,"tag":231,"props":4812,"children":4813},{"style":244},[4814],{"type":46,"value":447},{"type":40,"tag":231,"props":4816,"children":4817},{"class":233,"line":760},[4818],{"type":40,"tag":231,"props":4819,"children":4820},{"emptyLinePlaceholder":333},[4821],{"type":46,"value":336},{"type":40,"tag":231,"props":4823,"children":4824},{"class":233,"line":876},[4825],{"type":40,"tag":231,"props":4826,"children":4827},{"style":681},[4828],{"type":46,"value":4829},"\u002F\u002F Consumer only overrides what they need\n",{"type":40,"tag":231,"props":4831,"children":4832},{"class":233,"line":884},[4833,4837,4841,4845,4849,4853,4857,4861,4866,4870,4874,4878,4882,4886,4891,4895,4899],{"type":40,"tag":231,"props":4834,"children":4835},{"style":342},[4836],{"type":46,"value":1381},{"type":40,"tag":231,"props":4838,"children":4839},{"style":255},[4840],{"type":46,"value":2876},{"type":40,"tag":231,"props":4842,"children":4843},{"style":244},[4844],{"type":46,"value":1391},{"type":40,"tag":231,"props":4846,"children":4847},{"style":244},[4848],{"type":46,"value":781},{"type":40,"tag":231,"props":4850,"children":4851},{"style":802},[4852],{"type":46,"value":4510},{"type":40,"tag":231,"props":4854,"children":4855},{"style":255},[4856],{"type":46,"value":607},{"type":40,"tag":231,"props":4858,"children":4859},{"style":244},[4860],{"type":46,"value":279},{"type":40,"tag":231,"props":4862,"children":4863},{"style":271},[4864],{"type":46,"value":4865},"data",{"type":40,"tag":231,"props":4867,"children":4868},{"style":244},[4869],{"type":46,"value":279},{"type":40,"tag":231,"props":4871,"children":4872},{"style":244},[4873],{"type":46,"value":627},{"type":40,"tag":231,"props":4875,"children":4876},{"style":244},[4877],{"type":46,"value":846},{"type":40,"tag":231,"props":4879,"children":4880},{"style":363},[4881],{"type":46,"value":4672},{"type":40,"tag":231,"props":4883,"children":4884},{"style":244},[4885],{"type":46,"value":515},{"type":40,"tag":231,"props":4887,"children":4888},{"style":4696},[4889],{"type":46,"value":4890}," false",{"type":40,"tag":231,"props":4892,"children":4893},{"style":244},[4894],{"type":46,"value":865},{"type":40,"tag":231,"props":4896,"children":4897},{"style":255},[4898],{"type":46,"value":670},{"type":40,"tag":231,"props":4900,"children":4901},{"style":244},[4902],{"type":46,"value":284},{"type":40,"tag":3081,"props":4904,"children":4905},{},[],{"type":40,"tag":85,"props":4907,"children":4909},{"id":4908},"exposing-outputs",[4910],{"type":46,"value":4911},"Exposing Outputs",{"type":40,"tag":214,"props":4913,"children":4915},{"id":4914},"expose-only-what-consumers-need",[4916],{"type":46,"value":4917},"Expose Only What Consumers Need",{"type":40,"tag":49,"props":4919,"children":4920},{},[4921],{"type":46,"value":4922},"Components often create many internal resources. Expose only the values consumers need, not every internal resource.",{"type":40,"tag":49,"props":4924,"children":4925},{},[4926,4930],{"type":40,"tag":150,"props":4927,"children":4928},{},[4929],{"type":46,"value":2039},{"type":46,"value":515},{"type":40,"tag":221,"props":4932,"children":4934},{"className":223,"code":4933,"language":216,"meta":225,"style":225},"class Database extends pulumi.ComponentResource {\n    \u002F\u002F Exposes everything -- consumers see implementation details\n    public readonly cluster: aws.rds.Cluster;\n    public readonly primaryInstance: aws.rds.ClusterInstance;\n    public readonly replicaInstance: aws.rds.ClusterInstance;\n    public readonly subnetGroup: aws.rds.SubnetGroup;\n    public readonly securityGroup: aws.ec2.SecurityGroup;\n    public readonly parameterGroup: aws.rds.ClusterParameterGroup;\n    \u002F\u002F ...\n}\n",[4935],{"type":40,"tag":55,"props":4936,"children":4937},{"__ignoreMap":225},[4938,4970,4978,5024,5069,5113,5158,5204,5249,5257],{"type":40,"tag":231,"props":4939,"children":4940},{"class":233,"line":234},[4941,4945,4950,4954,4958,4962,4966],{"type":40,"tag":231,"props":4942,"children":4943},{"style":342},[4944],{"type":46,"value":464},{"type":40,"tag":231,"props":4946,"children":4947},{"style":348},[4948],{"type":46,"value":4949}," Database",{"type":40,"tag":231,"props":4951,"children":4952},{"style":342},[4953],{"type":46,"value":474},{"type":40,"tag":231,"props":4955,"children":4956},{"style":348},[4957],{"type":46,"value":376},{"type":40,"tag":231,"props":4959,"children":4960},{"style":244},[4961],{"type":46,"value":381},{"type":40,"tag":231,"props":4963,"children":4964},{"style":348},[4965],{"type":46,"value":487},{"type":40,"tag":231,"props":4967,"children":4968},{"style":244},[4969],{"type":46,"value":356},{"type":40,"tag":231,"props":4971,"children":4972},{"class":233,"line":287},[4973],{"type":40,"tag":231,"props":4974,"children":4975},{"style":681},[4976],{"type":46,"value":4977},"    \u002F\u002F Exposes everything -- consumers see implementation details\n",{"type":40,"tag":231,"props":4979,"children":4980},{"class":233,"line":329},[4981,4985,4989,4994,4998,5002,5006,5011,5015,5020],{"type":40,"tag":231,"props":4982,"children":4983},{"style":342},[4984],{"type":46,"value":500},{"type":40,"tag":231,"props":4986,"children":4987},{"style":342},[4988],{"type":46,"value":505},{"type":40,"tag":231,"props":4990,"children":4991},{"style":363},[4992],{"type":46,"value":4993}," cluster",{"type":40,"tag":231,"props":4995,"children":4996},{"style":244},[4997],{"type":46,"value":515},{"type":40,"tag":231,"props":4999,"children":5000},{"style":348},[5001],{"type":46,"value":786},{"type":40,"tag":231,"props":5003,"children":5004},{"style":244},[5005],{"type":46,"value":381},{"type":40,"tag":231,"props":5007,"children":5008},{"style":348},[5009],{"type":46,"value":5010},"rds",{"type":40,"tag":231,"props":5012,"children":5013},{"style":244},[5014],{"type":46,"value":381},{"type":40,"tag":231,"props":5016,"children":5017},{"style":348},[5018],{"type":46,"value":5019},"Cluster",{"type":40,"tag":231,"props":5021,"children":5022},{"style":244},[5023],{"type":46,"value":284},{"type":40,"tag":231,"props":5025,"children":5026},{"class":233,"line":27},[5027,5031,5035,5040,5044,5048,5052,5056,5060,5065],{"type":40,"tag":231,"props":5028,"children":5029},{"style":342},[5030],{"type":46,"value":500},{"type":40,"tag":231,"props":5032,"children":5033},{"style":342},[5034],{"type":46,"value":505},{"type":40,"tag":231,"props":5036,"children":5037},{"style":363},[5038],{"type":46,"value":5039}," primaryInstance",{"type":40,"tag":231,"props":5041,"children":5042},{"style":244},[5043],{"type":46,"value":515},{"type":40,"tag":231,"props":5045,"children":5046},{"style":348},[5047],{"type":46,"value":786},{"type":40,"tag":231,"props":5049,"children":5050},{"style":244},[5051],{"type":46,"value":381},{"type":40,"tag":231,"props":5053,"children":5054},{"style":348},[5055],{"type":46,"value":5010},{"type":40,"tag":231,"props":5057,"children":5058},{"style":244},[5059],{"type":46,"value":381},{"type":40,"tag":231,"props":5061,"children":5062},{"style":348},[5063],{"type":46,"value":5064},"ClusterInstance",{"type":40,"tag":231,"props":5066,"children":5067},{"style":244},[5068],{"type":46,"value":284},{"type":40,"tag":231,"props":5070,"children":5071},{"class":233,"line":359},[5072,5076,5080,5085,5089,5093,5097,5101,5105,5109],{"type":40,"tag":231,"props":5073,"children":5074},{"style":342},[5075],{"type":46,"value":500},{"type":40,"tag":231,"props":5077,"children":5078},{"style":342},[5079],{"type":46,"value":505},{"type":40,"tag":231,"props":5081,"children":5082},{"style":363},[5083],{"type":46,"value":5084}," replicaInstance",{"type":40,"tag":231,"props":5086,"children":5087},{"style":244},[5088],{"type":46,"value":515},{"type":40,"tag":231,"props":5090,"children":5091},{"style":348},[5092],{"type":46,"value":786},{"type":40,"tag":231,"props":5094,"children":5095},{"style":244},[5096],{"type":46,"value":381},{"type":40,"tag":231,"props":5098,"children":5099},{"style":348},[5100],{"type":46,"value":5010},{"type":40,"tag":231,"props":5102,"children":5103},{"style":244},[5104],{"type":46,"value":381},{"type":40,"tag":231,"props":5106,"children":5107},{"style":348},[5108],{"type":46,"value":5064},{"type":40,"tag":231,"props":5110,"children":5111},{"style":244},[5112],{"type":46,"value":284},{"type":40,"tag":231,"props":5114,"children":5115},{"class":233,"line":404},[5116,5120,5124,5129,5133,5137,5141,5145,5149,5154],{"type":40,"tag":231,"props":5117,"children":5118},{"style":342},[5119],{"type":46,"value":500},{"type":40,"tag":231,"props":5121,"children":5122},{"style":342},[5123],{"type":46,"value":505},{"type":40,"tag":231,"props":5125,"children":5126},{"style":363},[5127],{"type":46,"value":5128}," subnetGroup",{"type":40,"tag":231,"props":5130,"children":5131},{"style":244},[5132],{"type":46,"value":515},{"type":40,"tag":231,"props":5134,"children":5135},{"style":348},[5136],{"type":46,"value":786},{"type":40,"tag":231,"props":5138,"children":5139},{"style":244},[5140],{"type":46,"value":381},{"type":40,"tag":231,"props":5142,"children":5143},{"style":348},[5144],{"type":46,"value":5010},{"type":40,"tag":231,"props":5146,"children":5147},{"style":244},[5148],{"type":46,"value":381},{"type":40,"tag":231,"props":5150,"children":5151},{"style":348},[5152],{"type":46,"value":5153},"SubnetGroup",{"type":40,"tag":231,"props":5155,"children":5156},{"style":244},[5157],{"type":46,"value":284},{"type":40,"tag":231,"props":5159,"children":5160},{"class":233,"line":441},[5161,5165,5169,5174,5178,5182,5186,5191,5195,5200],{"type":40,"tag":231,"props":5162,"children":5163},{"style":342},[5164],{"type":46,"value":500},{"type":40,"tag":231,"props":5166,"children":5167},{"style":342},[5168],{"type":46,"value":505},{"type":40,"tag":231,"props":5170,"children":5171},{"style":363},[5172],{"type":46,"value":5173}," securityGroup",{"type":40,"tag":231,"props":5175,"children":5176},{"style":244},[5177],{"type":46,"value":515},{"type":40,"tag":231,"props":5179,"children":5180},{"style":348},[5181],{"type":46,"value":786},{"type":40,"tag":231,"props":5183,"children":5184},{"style":244},[5185],{"type":46,"value":381},{"type":40,"tag":231,"props":5187,"children":5188},{"style":348},[5189],{"type":46,"value":5190},"ec2",{"type":40,"tag":231,"props":5192,"children":5193},{"style":244},[5194],{"type":46,"value":381},{"type":40,"tag":231,"props":5196,"children":5197},{"style":348},[5198],{"type":46,"value":5199},"SecurityGroup",{"type":40,"tag":231,"props":5201,"children":5202},{"style":244},[5203],{"type":46,"value":284},{"type":40,"tag":231,"props":5205,"children":5206},{"class":233,"line":450},[5207,5211,5215,5220,5224,5228,5232,5236,5240,5245],{"type":40,"tag":231,"props":5208,"children":5209},{"style":342},[5210],{"type":46,"value":500},{"type":40,"tag":231,"props":5212,"children":5213},{"style":342},[5214],{"type":46,"value":505},{"type":40,"tag":231,"props":5216,"children":5217},{"style":363},[5218],{"type":46,"value":5219}," parameterGroup",{"type":40,"tag":231,"props":5221,"children":5222},{"style":244},[5223],{"type":46,"value":515},{"type":40,"tag":231,"props":5225,"children":5226},{"style":348},[5227],{"type":46,"value":786},{"type":40,"tag":231,"props":5229,"children":5230},{"style":244},[5231],{"type":46,"value":381},{"type":40,"tag":231,"props":5233,"children":5234},{"style":348},[5235],{"type":46,"value":5010},{"type":40,"tag":231,"props":5237,"children":5238},{"style":244},[5239],{"type":46,"value":381},{"type":40,"tag":231,"props":5241,"children":5242},{"style":348},[5243],{"type":46,"value":5244},"ClusterParameterGroup",{"type":40,"tag":231,"props":5246,"children":5247},{"style":244},[5248],{"type":46,"value":284},{"type":40,"tag":231,"props":5250,"children":5251},{"class":233,"line":458},[5252],{"type":40,"tag":231,"props":5253,"children":5254},{"style":681},[5255],{"type":46,"value":5256},"    \u002F\u002F ...\n",{"type":40,"tag":231,"props":5258,"children":5259},{"class":233,"line":494},[5260],{"type":40,"tag":231,"props":5261,"children":5262},{"style":244},[5263],{"type":46,"value":447},{"type":40,"tag":49,"props":5265,"children":5266},{},[5267,5271],{"type":40,"tag":150,"props":5268,"children":5269},{},[5270],{"type":46,"value":2416},{"type":46,"value":515},{"type":40,"tag":221,"props":5273,"children":5275},{"className":223,"code":5274,"language":216,"meta":225,"style":225},"class Database extends pulumi.ComponentResource {\n    \u002F\u002F Exposes only what consumers need\n    public readonly endpoint: pulumi.Output\u003Cstring>;\n    public readonly port: pulumi.Output\u003Cnumber>;\n    public readonly securityGroupId: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: DatabaseArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:Database\", name, {}, opts);\n\n        const sg = new aws.ec2.SecurityGroup(`${name}-sg`, { \u002F* ... *\u002F }, { parent: this });\n        const cluster = new aws.rds.Cluster(`${name}-cluster`, { \u002F* ... *\u002F }, { parent: this });\n\n        this.endpoint = cluster.endpoint;\n        this.port = cluster.port;\n        this.securityGroupId = sg.id;\n\n        this.registerOutputs({\n            endpoint: this.endpoint,\n            port: this.port,\n            securityGroupId: this.securityGroupId,\n        });\n    }\n}\n",[5276],{"type":40,"tag":55,"props":5277,"children":5278},{"__ignoreMap":225},[5279,5310,5318,5362,5406,5450,5457,5528,5580,5587,5698,5806,5813,5845,5877,5909,5916,5935,5959,5983,6007,6022,6029],{"type":40,"tag":231,"props":5280,"children":5281},{"class":233,"line":234},[5282,5286,5290,5294,5298,5302,5306],{"type":40,"tag":231,"props":5283,"children":5284},{"style":342},[5285],{"type":46,"value":464},{"type":40,"tag":231,"props":5287,"children":5288},{"style":348},[5289],{"type":46,"value":4949},{"type":40,"tag":231,"props":5291,"children":5292},{"style":342},[5293],{"type":46,"value":474},{"type":40,"tag":231,"props":5295,"children":5296},{"style":348},[5297],{"type":46,"value":376},{"type":40,"tag":231,"props":5299,"children":5300},{"style":244},[5301],{"type":46,"value":381},{"type":40,"tag":231,"props":5303,"children":5304},{"style":348},[5305],{"type":46,"value":487},{"type":40,"tag":231,"props":5307,"children":5308},{"style":244},[5309],{"type":46,"value":356},{"type":40,"tag":231,"props":5311,"children":5312},{"class":233,"line":287},[5313],{"type":40,"tag":231,"props":5314,"children":5315},{"style":681},[5316],{"type":46,"value":5317},"    \u002F\u002F Exposes only what consumers need\n",{"type":40,"tag":231,"props":5319,"children":5320},{"class":233,"line":329},[5321,5325,5329,5334,5338,5342,5346,5350,5354,5358],{"type":40,"tag":231,"props":5322,"children":5323},{"style":342},[5324],{"type":46,"value":500},{"type":40,"tag":231,"props":5326,"children":5327},{"style":342},[5328],{"type":46,"value":505},{"type":40,"tag":231,"props":5330,"children":5331},{"style":363},[5332],{"type":46,"value":5333}," endpoint",{"type":40,"tag":231,"props":5335,"children":5336},{"style":244},[5337],{"type":46,"value":515},{"type":40,"tag":231,"props":5339,"children":5340},{"style":348},[5341],{"type":46,"value":376},{"type":40,"tag":231,"props":5343,"children":5344},{"style":244},[5345],{"type":46,"value":381},{"type":40,"tag":231,"props":5347,"children":5348},{"style":348},[5349],{"type":46,"value":528},{"type":40,"tag":231,"props":5351,"children":5352},{"style":244},[5353],{"type":46,"value":391},{"type":40,"tag":231,"props":5355,"children":5356},{"style":348},[5357],{"type":46,"value":396},{"type":40,"tag":231,"props":5359,"children":5360},{"style":244},[5361],{"type":46,"value":401},{"type":40,"tag":231,"props":5363,"children":5364},{"class":233,"line":27},[5365,5369,5373,5378,5382,5386,5390,5394,5398,5402],{"type":40,"tag":231,"props":5366,"children":5367},{"style":342},[5368],{"type":46,"value":500},{"type":40,"tag":231,"props":5370,"children":5371},{"style":342},[5372],{"type":46,"value":505},{"type":40,"tag":231,"props":5374,"children":5375},{"style":363},[5376],{"type":46,"value":5377}," port",{"type":40,"tag":231,"props":5379,"children":5380},{"style":244},[5381],{"type":46,"value":515},{"type":40,"tag":231,"props":5383,"children":5384},{"style":348},[5385],{"type":46,"value":376},{"type":40,"tag":231,"props":5387,"children":5388},{"style":244},[5389],{"type":46,"value":381},{"type":40,"tag":231,"props":5391,"children":5392},{"style":348},[5393],{"type":46,"value":528},{"type":40,"tag":231,"props":5395,"children":5396},{"style":244},[5397],{"type":46,"value":391},{"type":40,"tag":231,"props":5399,"children":5400},{"style":348},[5401],{"type":46,"value":3288},{"type":40,"tag":231,"props":5403,"children":5404},{"style":244},[5405],{"type":46,"value":401},{"type":40,"tag":231,"props":5407,"children":5408},{"class":233,"line":359},[5409,5413,5417,5422,5426,5430,5434,5438,5442,5446],{"type":40,"tag":231,"props":5410,"children":5411},{"style":342},[5412],{"type":46,"value":500},{"type":40,"tag":231,"props":5414,"children":5415},{"style":342},[5416],{"type":46,"value":505},{"type":40,"tag":231,"props":5418,"children":5419},{"style":363},[5420],{"type":46,"value":5421}," securityGroupId",{"type":40,"tag":231,"props":5423,"children":5424},{"style":244},[5425],{"type":46,"value":515},{"type":40,"tag":231,"props":5427,"children":5428},{"style":348},[5429],{"type":46,"value":376},{"type":40,"tag":231,"props":5431,"children":5432},{"style":244},[5433],{"type":46,"value":381},{"type":40,"tag":231,"props":5435,"children":5436},{"style":348},[5437],{"type":46,"value":528},{"type":40,"tag":231,"props":5439,"children":5440},{"style":244},[5441],{"type":46,"value":391},{"type":40,"tag":231,"props":5443,"children":5444},{"style":348},[5445],{"type":46,"value":396},{"type":40,"tag":231,"props":5447,"children":5448},{"style":244},[5449],{"type":46,"value":401},{"type":40,"tag":231,"props":5451,"children":5452},{"class":233,"line":404},[5453],{"type":40,"tag":231,"props":5454,"children":5455},{"emptyLinePlaceholder":333},[5456],{"type":46,"value":336},{"type":40,"tag":231,"props":5458,"children":5459},{"class":233,"line":441},[5460,5464,5468,5472,5476,5480,5484,5488,5492,5496,5500,5504,5508,5512,5516,5520,5524],{"type":40,"tag":231,"props":5461,"children":5462},{"style":342},[5463],{"type":46,"value":602},{"type":40,"tag":231,"props":5465,"children":5466},{"style":244},[5467],{"type":46,"value":607},{"type":40,"tag":231,"props":5469,"children":5470},{"style":610},[5471],{"type":46,"value":613},{"type":40,"tag":231,"props":5473,"children":5474},{"style":244},[5475],{"type":46,"value":515},{"type":40,"tag":231,"props":5477,"children":5478},{"style":348},[5479],{"type":46,"value":622},{"type":40,"tag":231,"props":5481,"children":5482},{"style":244},[5483],{"type":46,"value":627},{"type":40,"tag":231,"props":5485,"children":5486},{"style":610},[5487],{"type":46,"value":632},{"type":40,"tag":231,"props":5489,"children":5490},{"style":244},[5491],{"type":46,"value":515},{"type":40,"tag":231,"props":5493,"children":5494},{"style":348},[5495],{"type":46,"value":3383},{"type":40,"tag":231,"props":5497,"children":5498},{"style":244},[5499],{"type":46,"value":627},{"type":40,"tag":231,"props":5501,"children":5502},{"style":610},[5503],{"type":46,"value":649},{"type":40,"tag":231,"props":5505,"children":5506},{"style":244},[5507],{"type":46,"value":371},{"type":40,"tag":231,"props":5509,"children":5510},{"style":348},[5511],{"type":46,"value":376},{"type":40,"tag":231,"props":5513,"children":5514},{"style":244},[5515],{"type":46,"value":381},{"type":40,"tag":231,"props":5517,"children":5518},{"style":348},[5519],{"type":46,"value":180},{"type":40,"tag":231,"props":5521,"children":5522},{"style":244},[5523],{"type":46,"value":670},{"type":40,"tag":231,"props":5525,"children":5526},{"style":244},[5527],{"type":46,"value":356},{"type":40,"tag":231,"props":5529,"children":5530},{"class":233,"line":450},[5531,5535,5539,5543,5548,5552,5556,5560,5564,5568,5572,5576],{"type":40,"tag":231,"props":5532,"children":5533},{"style":255},[5534],{"type":46,"value":693},{"type":40,"tag":231,"props":5536,"children":5537},{"style":363},[5538],{"type":46,"value":607},{"type":40,"tag":231,"props":5540,"children":5541},{"style":244},[5542],{"type":46,"value":279},{"type":40,"tag":231,"props":5544,"children":5545},{"style":271},[5546],{"type":46,"value":5547},"myorg:index:Database",{"type":40,"tag":231,"props":5549,"children":5550},{"style":244},[5551],{"type":46,"value":279},{"type":40,"tag":231,"props":5553,"children":5554},{"style":244},[5555],{"type":46,"value":627},{"type":40,"tag":231,"props":5557,"children":5558},{"style":255},[5559],{"type":46,"value":719},{"type":40,"tag":231,"props":5561,"children":5562},{"style":244},[5563],{"type":46,"value":627},{"type":40,"tag":231,"props":5565,"children":5566},{"style":244},[5567],{"type":46,"value":728},{"type":40,"tag":231,"props":5569,"children":5570},{"style":255},[5571],{"type":46,"value":649},{"type":40,"tag":231,"props":5573,"children":5574},{"style":363},[5575],{"type":46,"value":670},{"type":40,"tag":231,"props":5577,"children":5578},{"style":244},[5579],{"type":46,"value":284},{"type":40,"tag":231,"props":5581,"children":5582},{"class":233,"line":458},[5583],{"type":40,"tag":231,"props":5584,"children":5585},{"emptyLinePlaceholder":333},[5586],{"type":46,"value":336},{"type":40,"tag":231,"props":5588,"children":5589},{"class":233,"line":494},[5590,5594,5599,5603,5607,5611,5615,5619,5623,5627,5631,5635,5639,5643,5648,5652,5656,5660,5665,5670,5674,5678,5682,5686,5690,5694],{"type":40,"tag":231,"props":5591,"children":5592},{"style":342},[5593],{"type":46,"value":766},{"type":40,"tag":231,"props":5595,"children":5596},{"style":255},[5597],{"type":46,"value":5598}," sg",{"type":40,"tag":231,"props":5600,"children":5601},{"style":244},[5602],{"type":46,"value":776},{"type":40,"tag":231,"props":5604,"children":5605},{"style":244},[5606],{"type":46,"value":781},{"type":40,"tag":231,"props":5608,"children":5609},{"style":255},[5610],{"type":46,"value":786},{"type":40,"tag":231,"props":5612,"children":5613},{"style":244},[5614],{"type":46,"value":381},{"type":40,"tag":231,"props":5616,"children":5617},{"style":255},[5618],{"type":46,"value":5190},{"type":40,"tag":231,"props":5620,"children":5621},{"style":244},[5622],{"type":46,"value":381},{"type":40,"tag":231,"props":5624,"children":5625},{"style":802},[5626],{"type":46,"value":5199},{"type":40,"tag":231,"props":5628,"children":5629},{"style":363},[5630],{"type":46,"value":607},{"type":40,"tag":231,"props":5632,"children":5633},{"style":244},[5634],{"type":46,"value":814},{"type":40,"tag":231,"props":5636,"children":5637},{"style":255},[5638],{"type":46,"value":613},{"type":40,"tag":231,"props":5640,"children":5641},{"style":244},[5642],{"type":46,"value":823},{"type":40,"tag":231,"props":5644,"children":5645},{"style":271},[5646],{"type":46,"value":5647},"-sg",{"type":40,"tag":231,"props":5649,"children":5650},{"style":244},[5651],{"type":46,"value":833},{"type":40,"tag":231,"props":5653,"children":5654},{"style":244},[5655],{"type":46,"value":627},{"type":40,"tag":231,"props":5657,"children":5658},{"style":244},[5659],{"type":46,"value":846},{"type":40,"tag":231,"props":5661,"children":5662},{"style":681},[5663],{"type":46,"value":5664}," \u002F* ... *\u002F",{"type":40,"tag":231,"props":5666,"children":5667},{"style":244},[5668],{"type":46,"value":5669}," },",{"type":40,"tag":231,"props":5671,"children":5672},{"style":244},[5673],{"type":46,"value":846},{"type":40,"tag":231,"props":5675,"children":5676},{"style":363},[5677],{"type":46,"value":851},{"type":40,"tag":231,"props":5679,"children":5680},{"style":244},[5681],{"type":46,"value":515},{"type":40,"tag":231,"props":5683,"children":5684},{"style":244},[5685],{"type":46,"value":860},{"type":40,"tag":231,"props":5687,"children":5688},{"style":244},[5689],{"type":46,"value":865},{"type":40,"tag":231,"props":5691,"children":5692},{"style":363},[5693],{"type":46,"value":670},{"type":40,"tag":231,"props":5695,"children":5696},{"style":244},[5697],{"type":46,"value":284},{"type":40,"tag":231,"props":5699,"children":5700},{"class":233,"line":543},[5701,5705,5709,5713,5717,5721,5725,5729,5733,5737,5741,5745,5749,5753,5758,5762,5766,5770,5774,5778,5782,5786,5790,5794,5798,5802],{"type":40,"tag":231,"props":5702,"children":5703},{"style":342},[5704],{"type":46,"value":766},{"type":40,"tag":231,"props":5706,"children":5707},{"style":255},[5708],{"type":46,"value":4993},{"type":40,"tag":231,"props":5710,"children":5711},{"style":244},[5712],{"type":46,"value":776},{"type":40,"tag":231,"props":5714,"children":5715},{"style":244},[5716],{"type":46,"value":781},{"type":40,"tag":231,"props":5718,"children":5719},{"style":255},[5720],{"type":46,"value":786},{"type":40,"tag":231,"props":5722,"children":5723},{"style":244},[5724],{"type":46,"value":381},{"type":40,"tag":231,"props":5726,"children":5727},{"style":255},[5728],{"type":46,"value":5010},{"type":40,"tag":231,"props":5730,"children":5731},{"style":244},[5732],{"type":46,"value":381},{"type":40,"tag":231,"props":5734,"children":5735},{"style":802},[5736],{"type":46,"value":5019},{"type":40,"tag":231,"props":5738,"children":5739},{"style":363},[5740],{"type":46,"value":607},{"type":40,"tag":231,"props":5742,"children":5743},{"style":244},[5744],{"type":46,"value":814},{"type":40,"tag":231,"props":5746,"children":5747},{"style":255},[5748],{"type":46,"value":613},{"type":40,"tag":231,"props":5750,"children":5751},{"style":244},[5752],{"type":46,"value":823},{"type":40,"tag":231,"props":5754,"children":5755},{"style":271},[5756],{"type":46,"value":5757},"-cluster",{"type":40,"tag":231,"props":5759,"children":5760},{"style":244},[5761],{"type":46,"value":833},{"type":40,"tag":231,"props":5763,"children":5764},{"style":244},[5765],{"type":46,"value":627},{"type":40,"tag":231,"props":5767,"children":5768},{"style":244},[5769],{"type":46,"value":846},{"type":40,"tag":231,"props":5771,"children":5772},{"style":681},[5773],{"type":46,"value":5664},{"type":40,"tag":231,"props":5775,"children":5776},{"style":244},[5777],{"type":46,"value":5669},{"type":40,"tag":231,"props":5779,"children":5780},{"style":244},[5781],{"type":46,"value":846},{"type":40,"tag":231,"props":5783,"children":5784},{"style":363},[5785],{"type":46,"value":851},{"type":40,"tag":231,"props":5787,"children":5788},{"style":244},[5789],{"type":46,"value":515},{"type":40,"tag":231,"props":5791,"children":5792},{"style":244},[5793],{"type":46,"value":860},{"type":40,"tag":231,"props":5795,"children":5796},{"style":244},[5797],{"type":46,"value":865},{"type":40,"tag":231,"props":5799,"children":5800},{"style":363},[5801],{"type":46,"value":670},{"type":40,"tag":231,"props":5803,"children":5804},{"style":244},[5805],{"type":46,"value":284},{"type":40,"tag":231,"props":5807,"children":5808},{"class":233,"line":588},[5809],{"type":40,"tag":231,"props":5810,"children":5811},{"emptyLinePlaceholder":333},[5812],{"type":46,"value":336},{"type":40,"tag":231,"props":5814,"children":5815},{"class":233,"line":596},[5816,5820,5825,5829,5833,5837,5841],{"type":40,"tag":231,"props":5817,"children":5818},{"style":244},[5819],{"type":46,"value":1172},{"type":40,"tag":231,"props":5821,"children":5822},{"style":255},[5823],{"type":46,"value":5824},"endpoint",{"type":40,"tag":231,"props":5826,"children":5827},{"style":244},[5828],{"type":46,"value":776},{"type":40,"tag":231,"props":5830,"children":5831},{"style":255},[5832],{"type":46,"value":4993},{"type":40,"tag":231,"props":5834,"children":5835},{"style":244},[5836],{"type":46,"value":381},{"type":40,"tag":231,"props":5838,"children":5839},{"style":255},[5840],{"type":46,"value":5824},{"type":40,"tag":231,"props":5842,"children":5843},{"style":244},[5844],{"type":46,"value":284},{"type":40,"tag":231,"props":5846,"children":5847},{"class":233,"line":677},[5848,5852,5857,5861,5865,5869,5873],{"type":40,"tag":231,"props":5849,"children":5850},{"style":244},[5851],{"type":46,"value":1172},{"type":40,"tag":231,"props":5853,"children":5854},{"style":255},[5855],{"type":46,"value":5856},"port",{"type":40,"tag":231,"props":5858,"children":5859},{"style":244},[5860],{"type":46,"value":776},{"type":40,"tag":231,"props":5862,"children":5863},{"style":255},[5864],{"type":46,"value":4993},{"type":40,"tag":231,"props":5866,"children":5867},{"style":244},[5868],{"type":46,"value":381},{"type":40,"tag":231,"props":5870,"children":5871},{"style":255},[5872],{"type":46,"value":5856},{"type":40,"tag":231,"props":5874,"children":5875},{"style":244},[5876],{"type":46,"value":284},{"type":40,"tag":231,"props":5878,"children":5879},{"class":233,"line":687},[5880,5884,5889,5893,5897,5901,5905],{"type":40,"tag":231,"props":5881,"children":5882},{"style":244},[5883],{"type":46,"value":1172},{"type":40,"tag":231,"props":5885,"children":5886},{"style":255},[5887],{"type":46,"value":5888},"securityGroupId",{"type":40,"tag":231,"props":5890,"children":5891},{"style":244},[5892],{"type":46,"value":776},{"type":40,"tag":231,"props":5894,"children":5895},{"style":255},[5896],{"type":46,"value":5598},{"type":40,"tag":231,"props":5898,"children":5899},{"style":244},[5900],{"type":46,"value":381},{"type":40,"tag":231,"props":5902,"children":5903},{"style":255},[5904],{"type":46,"value":982},{"type":40,"tag":231,"props":5906,"children":5907},{"style":244},[5908],{"type":46,"value":284},{"type":40,"tag":231,"props":5910,"children":5911},{"class":233,"line":743},[5912],{"type":40,"tag":231,"props":5913,"children":5914},{"emptyLinePlaceholder":333},[5915],{"type":46,"value":336},{"type":40,"tag":231,"props":5917,"children":5918},{"class":233,"line":751},[5919,5923,5927,5931],{"type":40,"tag":231,"props":5920,"children":5921},{"style":244},[5922],{"type":46,"value":1172},{"type":40,"tag":231,"props":5924,"children":5925},{"style":802},[5926],{"type":46,"value":1261},{"type":40,"tag":231,"props":5928,"children":5929},{"style":363},[5930],{"type":46,"value":607},{"type":40,"tag":231,"props":5932,"children":5933},{"style":244},[5934],{"type":46,"value":1270},{"type":40,"tag":231,"props":5936,"children":5937},{"class":233,"line":760},[5938,5943,5947,5951,5955],{"type":40,"tag":231,"props":5939,"children":5940},{"style":363},[5941],{"type":46,"value":5942},"            endpoint",{"type":40,"tag":231,"props":5944,"children":5945},{"style":244},[5946],{"type":46,"value":515},{"type":40,"tag":231,"props":5948,"children":5949},{"style":244},[5950],{"type":46,"value":1288},{"type":40,"tag":231,"props":5952,"children":5953},{"style":255},[5954],{"type":46,"value":5824},{"type":40,"tag":231,"props":5956,"children":5957},{"style":244},[5958],{"type":46,"value":987},{"type":40,"tag":231,"props":5960,"children":5961},{"class":233,"line":876},[5962,5967,5971,5975,5979],{"type":40,"tag":231,"props":5963,"children":5964},{"style":363},[5965],{"type":46,"value":5966},"            port",{"type":40,"tag":231,"props":5968,"children":5969},{"style":244},[5970],{"type":46,"value":515},{"type":40,"tag":231,"props":5972,"children":5973},{"style":244},[5974],{"type":46,"value":1288},{"type":40,"tag":231,"props":5976,"children":5977},{"style":255},[5978],{"type":46,"value":5856},{"type":40,"tag":231,"props":5980,"children":5981},{"style":244},[5982],{"type":46,"value":987},{"type":40,"tag":231,"props":5984,"children":5985},{"class":233,"line":884},[5986,5991,5995,5999,6003],{"type":40,"tag":231,"props":5987,"children":5988},{"style":363},[5989],{"type":46,"value":5990},"            securityGroupId",{"type":40,"tag":231,"props":5992,"children":5993},{"style":244},[5994],{"type":46,"value":515},{"type":40,"tag":231,"props":5996,"children":5997},{"style":244},[5998],{"type":46,"value":1288},{"type":40,"tag":231,"props":6000,"children":6001},{"style":255},[6002],{"type":46,"value":5888},{"type":40,"tag":231,"props":6004,"children":6005},{"style":244},[6006],{"type":46,"value":987},{"type":40,"tag":231,"props":6008,"children":6009},{"class":233,"line":959},[6010,6014,6018],{"type":40,"tag":231,"props":6011,"children":6012},{"style":244},[6013],{"type":46,"value":1330},{"type":40,"tag":231,"props":6015,"children":6016},{"style":363},[6017],{"type":46,"value":670},{"type":40,"tag":231,"props":6019,"children":6020},{"style":244},[6021],{"type":46,"value":284},{"type":40,"tag":231,"props":6023,"children":6024},{"class":233,"line":990},[6025],{"type":40,"tag":231,"props":6026,"children":6027},{"style":244},[6028],{"type":46,"value":1347},{"type":40,"tag":231,"props":6030,"children":6031},{"class":233,"line":1052},[6032],{"type":40,"tag":231,"props":6033,"children":6034},{"style":244},[6035],{"type":46,"value":447},{"type":40,"tag":214,"props":6037,"children":6039},{"id":6038},"derive-composite-outputs",[6040],{"type":46,"value":6041},"Derive Composite Outputs",{"type":40,"tag":49,"props":6043,"children":6044},{},[6045,6047,6053,6055,6061],{"type":46,"value":6046},"Use ",{"type":40,"tag":55,"props":6048,"children":6050},{"className":6049},[],[6051],{"type":46,"value":6052},"pulumi.interpolate",{"type":46,"value":6054}," or ",{"type":40,"tag":55,"props":6056,"children":6058},{"className":6057},[],[6059],{"type":46,"value":6060},"pulumi.concat",{"type":46,"value":6062}," to build derived values:",{"type":40,"tag":221,"props":6064,"children":6066},{"className":223,"code":6065,"language":216,"meta":225,"style":225},"this.connectionString = pulumi.interpolate`postgresql:\u002F\u002F${args.username}:${args.password}@${cluster.endpoint}:${cluster.port}\u002F${args.databaseName}`;\n\nthis.registerOutputs({ connectionString: this.connectionString });\n",[6067],{"type":40,"tag":55,"props":6068,"children":6069},{"__ignoreMap":225},[6070,6237,6244],{"type":40,"tag":231,"props":6071,"children":6072},{"class":233,"line":234},[6073,6078,6083,6087,6091,6095,6100,6104,6109,6114,6119,6123,6128,6132,6136,6140,6144,6148,6153,6157,6162,6166,6171,6175,6179,6183,6187,6191,6195,6199,6203,6207,6211,6215,6219,6223,6228,6233],{"type":40,"tag":231,"props":6074,"children":6075},{"style":244},[6076],{"type":46,"value":6077},"this.",{"type":40,"tag":231,"props":6079,"children":6080},{"style":255},[6081],{"type":46,"value":6082},"connectionString ",{"type":40,"tag":231,"props":6084,"children":6085},{"style":244},[6086],{"type":46,"value":1391},{"type":40,"tag":231,"props":6088,"children":6089},{"style":255},[6090],{"type":46,"value":376},{"type":40,"tag":231,"props":6092,"children":6093},{"style":244},[6094],{"type":46,"value":381},{"type":40,"tag":231,"props":6096,"children":6097},{"style":802},[6098],{"type":46,"value":6099},"interpolate",{"type":40,"tag":231,"props":6101,"children":6102},{"style":244},[6103],{"type":46,"value":833},{"type":40,"tag":231,"props":6105,"children":6106},{"style":271},[6107],{"type":46,"value":6108},"postgresql:\u002F\u002F",{"type":40,"tag":231,"props":6110,"children":6111},{"style":244},[6112],{"type":46,"value":6113},"${",{"type":40,"tag":231,"props":6115,"children":6116},{"style":255},[6117],{"type":46,"value":6118},"args",{"type":40,"tag":231,"props":6120,"children":6121},{"style":244},[6122],{"type":46,"value":381},{"type":40,"tag":231,"props":6124,"children":6125},{"style":255},[6126],{"type":46,"value":6127},"username",{"type":40,"tag":231,"props":6129,"children":6130},{"style":244},[6131],{"type":46,"value":823},{"type":40,"tag":231,"props":6133,"children":6134},{"style":271},[6135],{"type":46,"value":515},{"type":40,"tag":231,"props":6137,"children":6138},{"style":244},[6139],{"type":46,"value":6113},{"type":40,"tag":231,"props":6141,"children":6142},{"style":255},[6143],{"type":46,"value":6118},{"type":40,"tag":231,"props":6145,"children":6146},{"style":244},[6147],{"type":46,"value":381},{"type":40,"tag":231,"props":6149,"children":6150},{"style":255},[6151],{"type":46,"value":6152},"password",{"type":40,"tag":231,"props":6154,"children":6155},{"style":244},[6156],{"type":46,"value":823},{"type":40,"tag":231,"props":6158,"children":6159},{"style":271},[6160],{"type":46,"value":6161},"@",{"type":40,"tag":231,"props":6163,"children":6164},{"style":244},[6165],{"type":46,"value":6113},{"type":40,"tag":231,"props":6167,"children":6168},{"style":255},[6169],{"type":46,"value":6170},"cluster",{"type":40,"tag":231,"props":6172,"children":6173},{"style":244},[6174],{"type":46,"value":381},{"type":40,"tag":231,"props":6176,"children":6177},{"style":255},[6178],{"type":46,"value":5824},{"type":40,"tag":231,"props":6180,"children":6181},{"style":244},[6182],{"type":46,"value":823},{"type":40,"tag":231,"props":6184,"children":6185},{"style":271},[6186],{"type":46,"value":515},{"type":40,"tag":231,"props":6188,"children":6189},{"style":244},[6190],{"type":46,"value":6113},{"type":40,"tag":231,"props":6192,"children":6193},{"style":255},[6194],{"type":46,"value":6170},{"type":40,"tag":231,"props":6196,"children":6197},{"style":244},[6198],{"type":46,"value":381},{"type":40,"tag":231,"props":6200,"children":6201},{"style":255},[6202],{"type":46,"value":5856},{"type":40,"tag":231,"props":6204,"children":6205},{"style":244},[6206],{"type":46,"value":823},{"type":40,"tag":231,"props":6208,"children":6209},{"style":271},[6210],{"type":46,"value":62},{"type":40,"tag":231,"props":6212,"children":6213},{"style":244},[6214],{"type":46,"value":6113},{"type":40,"tag":231,"props":6216,"children":6217},{"style":255},[6218],{"type":46,"value":6118},{"type":40,"tag":231,"props":6220,"children":6221},{"style":244},[6222],{"type":46,"value":381},{"type":40,"tag":231,"props":6224,"children":6225},{"style":255},[6226],{"type":46,"value":6227},"databaseName",{"type":40,"tag":231,"props":6229,"children":6230},{"style":244},[6231],{"type":46,"value":6232},"}`",{"type":40,"tag":231,"props":6234,"children":6235},{"style":244},[6236],{"type":46,"value":284},{"type":40,"tag":231,"props":6238,"children":6239},{"class":233,"line":287},[6240],{"type":40,"tag":231,"props":6241,"children":6242},{"emptyLinePlaceholder":333},[6243],{"type":46,"value":336},{"type":40,"tag":231,"props":6245,"children":6246},{"class":233,"line":329},[6247,6251,6255,6259,6263,6268,6272,6276,6280,6284,6288],{"type":40,"tag":231,"props":6248,"children":6249},{"style":244},[6250],{"type":46,"value":6077},{"type":40,"tag":231,"props":6252,"children":6253},{"style":802},[6254],{"type":46,"value":1261},{"type":40,"tag":231,"props":6256,"children":6257},{"style":255},[6258],{"type":46,"value":607},{"type":40,"tag":231,"props":6260,"children":6261},{"style":244},[6262],{"type":46,"value":2784},{"type":40,"tag":231,"props":6264,"children":6265},{"style":363},[6266],{"type":46,"value":6267}," connectionString",{"type":40,"tag":231,"props":6269,"children":6270},{"style":244},[6271],{"type":46,"value":515},{"type":40,"tag":231,"props":6273,"children":6274},{"style":244},[6275],{"type":46,"value":1288},{"type":40,"tag":231,"props":6277,"children":6278},{"style":255},[6279],{"type":46,"value":6082},{"type":40,"tag":231,"props":6281,"children":6282},{"style":244},[6283],{"type":46,"value":823},{"type":40,"tag":231,"props":6285,"children":6286},{"style":255},[6287],{"type":46,"value":670},{"type":40,"tag":231,"props":6289,"children":6290},{"style":244},[6291],{"type":46,"value":284},{"type":40,"tag":3081,"props":6293,"children":6294},{},[],{"type":40,"tag":85,"props":6296,"children":6298},{"id":6297},"component-design-patterns",[6299],{"type":46,"value":6300},"Component Design Patterns",{"type":40,"tag":214,"props":6302,"children":6304},{"id":6303},"sensible-defaults-with-override",[6305],{"type":46,"value":6306},"Sensible Defaults with Override",{"type":40,"tag":49,"props":6308,"children":6309},{},[6310],{"type":46,"value":6311},"Encode best practices as defaults. Allow consumers to override when they have specific requirements.",{"type":40,"tag":221,"props":6313,"children":6315},{"className":223,"code":6314,"language":216,"meta":225,"style":225},"interface SecureBucketArgs {\n    enableVersioning?: pulumi.Input\u003Cboolean>;\n    enableEncryption?: pulumi.Input\u003Cboolean>;\n    blockPublicAccess?: pulumi.Input\u003Cboolean>;\n    tags?: pulumi.Input\u003CRecord\u003Cstring, pulumi.Input\u003Cstring>>>;\n}\n\nclass SecureBucket extends pulumi.ComponentResource {\n    public readonly bucketId: pulumi.Output\u003Cstring>;\n    public readonly arn: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: SecureBucketArgs = {}, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:SecureBucket\", name, {}, opts);\n\n        const bucket = new aws.s3.Bucket(`${name}-bucket`, {\n            tags: args.tags,\n        }, { parent: this });\n\n        \u002F\u002F Versioning on by default\n        if (args.enableVersioning !== false) {\n            new aws.s3.BucketVersioningV2(`${name}-versioning`, {\n                bucket: bucket.id,\n                versioningConfiguration: { status: \"Enabled\" },\n            }, { parent: this });\n        }\n\n        \u002F\u002F Encryption on by default\n        if (args.enableEncryption !== false) {\n            new aws.s3.BucketServerSideEncryptionConfigurationV2(`${name}-encryption`, {\n                bucket: bucket.id,\n                rules: [{ applyServerSideEncryptionByDefault: { sseAlgorithm: \"AES256\" } }],\n            }, { parent: this });\n        }\n\n        \u002F\u002F Public access blocked by default\n        if (args.blockPublicAccess !== false) {\n            new aws.s3.BucketPublicAccessBlock(`${name}-public-access`, {\n                bucket: bucket.id,\n                blockPublicAcls: true,\n                blockPublicPolicy: true,\n                ignorePublicAcls: true,\n                restrictPublicBuckets: true,\n            }, { parent: this });\n        }\n\n        this.bucketId = bucket.id;\n        this.arn = bucket.arn;\n        this.registerOutputs({ bucketId: this.bucketId, arn: this.arn });\n    }\n}\n",[6316],{"type":40,"tag":55,"props":6317,"children":6318},{"__ignoreMap":225},[6319,6334,6369,6404,6439,6509,6516,6523,6554,6598,6642,6649,6724,6775,6782,6853,6882,6917,6924,6932,6974,7036,7064,7106,7142,7150,7157,7165,7204,7265,7292,7365,7400,7407,7414,7422,7461,7522,7549,7569,7589,7609,7629,7665,7673,7681,7714,7747,7815,7823],{"type":40,"tag":231,"props":6320,"children":6321},{"class":233,"line":234},[6322,6326,6330],{"type":40,"tag":231,"props":6323,"children":6324},{"style":342},[6325],{"type":46,"value":345},{"type":40,"tag":231,"props":6327,"children":6328},{"style":348},[6329],{"type":46,"value":4358},{"type":40,"tag":231,"props":6331,"children":6332},{"style":244},[6333],{"type":46,"value":356},{"type":40,"tag":231,"props":6335,"children":6336},{"class":233,"line":287},[6337,6341,6345,6349,6353,6357,6361,6365],{"type":40,"tag":231,"props":6338,"children":6339},{"style":363},[6340],{"type":46,"value":4370},{"type":40,"tag":231,"props":6342,"children":6343},{"style":244},[6344],{"type":46,"value":371},{"type":40,"tag":231,"props":6346,"children":6347},{"style":348},[6348],{"type":46,"value":376},{"type":40,"tag":231,"props":6350,"children":6351},{"style":244},[6352],{"type":46,"value":381},{"type":40,"tag":231,"props":6354,"children":6355},{"style":348},[6356],{"type":46,"value":386},{"type":40,"tag":231,"props":6358,"children":6359},{"style":244},[6360],{"type":46,"value":391},{"type":40,"tag":231,"props":6362,"children":6363},{"style":348},[6364],{"type":46,"value":3492},{"type":40,"tag":231,"props":6366,"children":6367},{"style":244},[6368],{"type":46,"value":401},{"type":40,"tag":231,"props":6370,"children":6371},{"class":233,"line":329},[6372,6376,6380,6384,6388,6392,6396,6400],{"type":40,"tag":231,"props":6373,"children":6374},{"style":363},[6375],{"type":46,"value":4411},{"type":40,"tag":231,"props":6377,"children":6378},{"style":244},[6379],{"type":46,"value":371},{"type":40,"tag":231,"props":6381,"children":6382},{"style":348},[6383],{"type":46,"value":376},{"type":40,"tag":231,"props":6385,"children":6386},{"style":244},[6387],{"type":46,"value":381},{"type":40,"tag":231,"props":6389,"children":6390},{"style":348},[6391],{"type":46,"value":386},{"type":40,"tag":231,"props":6393,"children":6394},{"style":244},[6395],{"type":46,"value":391},{"type":40,"tag":231,"props":6397,"children":6398},{"style":348},[6399],{"type":46,"value":3492},{"type":40,"tag":231,"props":6401,"children":6402},{"style":244},[6403],{"type":46,"value":401},{"type":40,"tag":231,"props":6405,"children":6406},{"class":233,"line":27},[6407,6411,6415,6419,6423,6427,6431,6435],{"type":40,"tag":231,"props":6408,"children":6409},{"style":363},[6410],{"type":46,"value":4451},{"type":40,"tag":231,"props":6412,"children":6413},{"style":244},[6414],{"type":46,"value":371},{"type":40,"tag":231,"props":6416,"children":6417},{"style":348},[6418],{"type":46,"value":376},{"type":40,"tag":231,"props":6420,"children":6421},{"style":244},[6422],{"type":46,"value":381},{"type":40,"tag":231,"props":6424,"children":6425},{"style":348},[6426],{"type":46,"value":386},{"type":40,"tag":231,"props":6428,"children":6429},{"style":244},[6430],{"type":46,"value":391},{"type":40,"tag":231,"props":6432,"children":6433},{"style":348},[6434],{"type":46,"value":3492},{"type":40,"tag":231,"props":6436,"children":6437},{"style":244},[6438],{"type":46,"value":401},{"type":40,"tag":231,"props":6440,"children":6441},{"class":233,"line":359},[6442,6447,6451,6455,6459,6463,6467,6472,6476,6480,6484,6488,6492,6496,6500,6504],{"type":40,"tag":231,"props":6443,"children":6444},{"style":363},[6445],{"type":46,"value":6446},"    tags",{"type":40,"tag":231,"props":6448,"children":6449},{"style":244},[6450],{"type":46,"value":371},{"type":40,"tag":231,"props":6452,"children":6453},{"style":348},[6454],{"type":46,"value":376},{"type":40,"tag":231,"props":6456,"children":6457},{"style":244},[6458],{"type":46,"value":381},{"type":40,"tag":231,"props":6460,"children":6461},{"style":348},[6462],{"type":46,"value":386},{"type":40,"tag":231,"props":6464,"children":6465},{"style":244},[6466],{"type":46,"value":391},{"type":40,"tag":231,"props":6468,"children":6469},{"style":348},[6470],{"type":46,"value":6471},"Record",{"type":40,"tag":231,"props":6473,"children":6474},{"style":244},[6475],{"type":46,"value":391},{"type":40,"tag":231,"props":6477,"children":6478},{"style":348},[6479],{"type":46,"value":396},{"type":40,"tag":231,"props":6481,"children":6482},{"style":244},[6483],{"type":46,"value":627},{"type":40,"tag":231,"props":6485,"children":6486},{"style":348},[6487],{"type":46,"value":376},{"type":40,"tag":231,"props":6489,"children":6490},{"style":244},[6491],{"type":46,"value":381},{"type":40,"tag":231,"props":6493,"children":6494},{"style":348},[6495],{"type":46,"value":386},{"type":40,"tag":231,"props":6497,"children":6498},{"style":244},[6499],{"type":46,"value":391},{"type":40,"tag":231,"props":6501,"children":6502},{"style":348},[6503],{"type":46,"value":396},{"type":40,"tag":231,"props":6505,"children":6506},{"style":244},[6507],{"type":46,"value":6508},">>>;\n",{"type":40,"tag":231,"props":6510,"children":6511},{"class":233,"line":404},[6512],{"type":40,"tag":231,"props":6513,"children":6514},{"style":244},[6515],{"type":46,"value":447},{"type":40,"tag":231,"props":6517,"children":6518},{"class":233,"line":441},[6519],{"type":40,"tag":231,"props":6520,"children":6521},{"emptyLinePlaceholder":333},[6522],{"type":46,"value":336},{"type":40,"tag":231,"props":6524,"children":6525},{"class":233,"line":450},[6526,6530,6534,6538,6542,6546,6550],{"type":40,"tag":231,"props":6527,"children":6528},{"style":342},[6529],{"type":46,"value":464},{"type":40,"tag":231,"props":6531,"children":6532},{"style":348},[6533],{"type":46,"value":4510},{"type":40,"tag":231,"props":6535,"children":6536},{"style":342},[6537],{"type":46,"value":474},{"type":40,"tag":231,"props":6539,"children":6540},{"style":348},[6541],{"type":46,"value":376},{"type":40,"tag":231,"props":6543,"children":6544},{"style":244},[6545],{"type":46,"value":381},{"type":40,"tag":231,"props":6547,"children":6548},{"style":348},[6549],{"type":46,"value":487},{"type":40,"tag":231,"props":6551,"children":6552},{"style":244},[6553],{"type":46,"value":356},{"type":40,"tag":231,"props":6555,"children":6556},{"class":233,"line":458},[6557,6561,6565,6570,6574,6578,6582,6586,6590,6594],{"type":40,"tag":231,"props":6558,"children":6559},{"style":342},[6560],{"type":46,"value":500},{"type":40,"tag":231,"props":6562,"children":6563},{"style":342},[6564],{"type":46,"value":505},{"type":40,"tag":231,"props":6566,"children":6567},{"style":363},[6568],{"type":46,"value":6569}," bucketId",{"type":40,"tag":231,"props":6571,"children":6572},{"style":244},[6573],{"type":46,"value":515},{"type":40,"tag":231,"props":6575,"children":6576},{"style":348},[6577],{"type":46,"value":376},{"type":40,"tag":231,"props":6579,"children":6580},{"style":244},[6581],{"type":46,"value":381},{"type":40,"tag":231,"props":6583,"children":6584},{"style":348},[6585],{"type":46,"value":528},{"type":40,"tag":231,"props":6587,"children":6588},{"style":244},[6589],{"type":46,"value":391},{"type":40,"tag":231,"props":6591,"children":6592},{"style":348},[6593],{"type":46,"value":396},{"type":40,"tag":231,"props":6595,"children":6596},{"style":244},[6597],{"type":46,"value":401},{"type":40,"tag":231,"props":6599,"children":6600},{"class":233,"line":494},[6601,6605,6609,6614,6618,6622,6626,6630,6634,6638],{"type":40,"tag":231,"props":6602,"children":6603},{"style":342},[6604],{"type":46,"value":500},{"type":40,"tag":231,"props":6606,"children":6607},{"style":342},[6608],{"type":46,"value":505},{"type":40,"tag":231,"props":6610,"children":6611},{"style":363},[6612],{"type":46,"value":6613}," arn",{"type":40,"tag":231,"props":6615,"children":6616},{"style":244},[6617],{"type":46,"value":515},{"type":40,"tag":231,"props":6619,"children":6620},{"style":348},[6621],{"type":46,"value":376},{"type":40,"tag":231,"props":6623,"children":6624},{"style":244},[6625],{"type":46,"value":381},{"type":40,"tag":231,"props":6627,"children":6628},{"style":348},[6629],{"type":46,"value":528},{"type":40,"tag":231,"props":6631,"children":6632},{"style":244},[6633],{"type":46,"value":391},{"type":40,"tag":231,"props":6635,"children":6636},{"style":348},[6637],{"type":46,"value":396},{"type":40,"tag":231,"props":6639,"children":6640},{"style":244},[6641],{"type":46,"value":401},{"type":40,"tag":231,"props":6643,"children":6644},{"class":233,"line":543},[6645],{"type":40,"tag":231,"props":6646,"children":6647},{"emptyLinePlaceholder":333},[6648],{"type":46,"value":336},{"type":40,"tag":231,"props":6650,"children":6651},{"class":233,"line":588},[6652,6656,6660,6664,6668,6672,6676,6680,6684,6688,6692,6696,6700,6704,6708,6712,6716,6720],{"type":40,"tag":231,"props":6653,"children":6654},{"style":342},[6655],{"type":46,"value":602},{"type":40,"tag":231,"props":6657,"children":6658},{"style":244},[6659],{"type":46,"value":607},{"type":40,"tag":231,"props":6661,"children":6662},{"style":610},[6663],{"type":46,"value":613},{"type":40,"tag":231,"props":6665,"children":6666},{"style":244},[6667],{"type":46,"value":515},{"type":40,"tag":231,"props":6669,"children":6670},{"style":348},[6671],{"type":46,"value":622},{"type":40,"tag":231,"props":6673,"children":6674},{"style":244},[6675],{"type":46,"value":627},{"type":40,"tag":231,"props":6677,"children":6678},{"style":610},[6679],{"type":46,"value":632},{"type":40,"tag":231,"props":6681,"children":6682},{"style":244},[6683],{"type":46,"value":515},{"type":40,"tag":231,"props":6685,"children":6686},{"style":348},[6687],{"type":46,"value":4358},{"type":40,"tag":231,"props":6689,"children":6690},{"style":244},[6691],{"type":46,"value":776},{"type":40,"tag":231,"props":6693,"children":6694},{"style":244},[6695],{"type":46,"value":728},{"type":40,"tag":231,"props":6697,"children":6698},{"style":610},[6699],{"type":46,"value":649},{"type":40,"tag":231,"props":6701,"children":6702},{"style":244},[6703],{"type":46,"value":371},{"type":40,"tag":231,"props":6705,"children":6706},{"style":348},[6707],{"type":46,"value":376},{"type":40,"tag":231,"props":6709,"children":6710},{"style":244},[6711],{"type":46,"value":381},{"type":40,"tag":231,"props":6713,"children":6714},{"style":348},[6715],{"type":46,"value":180},{"type":40,"tag":231,"props":6717,"children":6718},{"style":244},[6719],{"type":46,"value":670},{"type":40,"tag":231,"props":6721,"children":6722},{"style":244},[6723],{"type":46,"value":356},{"type":40,"tag":231,"props":6725,"children":6726},{"class":233,"line":596},[6727,6731,6735,6739,6743,6747,6751,6755,6759,6763,6767,6771],{"type":40,"tag":231,"props":6728,"children":6729},{"style":255},[6730],{"type":46,"value":693},{"type":40,"tag":231,"props":6732,"children":6733},{"style":363},[6734],{"type":46,"value":607},{"type":40,"tag":231,"props":6736,"children":6737},{"style":244},[6738],{"type":46,"value":279},{"type":40,"tag":231,"props":6740,"children":6741},{"style":271},[6742],{"type":46,"value":4621},{"type":40,"tag":231,"props":6744,"children":6745},{"style":244},[6746],{"type":46,"value":279},{"type":40,"tag":231,"props":6748,"children":6749},{"style":244},[6750],{"type":46,"value":627},{"type":40,"tag":231,"props":6752,"children":6753},{"style":255},[6754],{"type":46,"value":719},{"type":40,"tag":231,"props":6756,"children":6757},{"style":244},[6758],{"type":46,"value":627},{"type":40,"tag":231,"props":6760,"children":6761},{"style":244},[6762],{"type":46,"value":728},{"type":40,"tag":231,"props":6764,"children":6765},{"style":255},[6766],{"type":46,"value":649},{"type":40,"tag":231,"props":6768,"children":6769},{"style":363},[6770],{"type":46,"value":670},{"type":40,"tag":231,"props":6772,"children":6773},{"style":244},[6774],{"type":46,"value":284},{"type":40,"tag":231,"props":6776,"children":6777},{"class":233,"line":677},[6778],{"type":40,"tag":231,"props":6779,"children":6780},{"emptyLinePlaceholder":333},[6781],{"type":46,"value":336},{"type":40,"tag":231,"props":6783,"children":6784},{"class":233,"line":687},[6785,6789,6793,6797,6801,6805,6809,6813,6817,6821,6825,6829,6833,6837,6841,6845,6849],{"type":40,"tag":231,"props":6786,"children":6787},{"style":342},[6788],{"type":46,"value":766},{"type":40,"tag":231,"props":6790,"children":6791},{"style":255},[6792],{"type":46,"value":771},{"type":40,"tag":231,"props":6794,"children":6795},{"style":244},[6796],{"type":46,"value":776},{"type":40,"tag":231,"props":6798,"children":6799},{"style":244},[6800],{"type":46,"value":781},{"type":40,"tag":231,"props":6802,"children":6803},{"style":255},[6804],{"type":46,"value":786},{"type":40,"tag":231,"props":6806,"children":6807},{"style":244},[6808],{"type":46,"value":381},{"type":40,"tag":231,"props":6810,"children":6811},{"style":255},[6812],{"type":46,"value":795},{"type":40,"tag":231,"props":6814,"children":6815},{"style":244},[6816],{"type":46,"value":381},{"type":40,"tag":231,"props":6818,"children":6819},{"style":802},[6820],{"type":46,"value":805},{"type":40,"tag":231,"props":6822,"children":6823},{"style":363},[6824],{"type":46,"value":607},{"type":40,"tag":231,"props":6826,"children":6827},{"style":244},[6828],{"type":46,"value":814},{"type":40,"tag":231,"props":6830,"children":6831},{"style":255},[6832],{"type":46,"value":613},{"type":40,"tag":231,"props":6834,"children":6835},{"style":244},[6836],{"type":46,"value":823},{"type":40,"tag":231,"props":6838,"children":6839},{"style":271},[6840],{"type":46,"value":828},{"type":40,"tag":231,"props":6842,"children":6843},{"style":244},[6844],{"type":46,"value":833},{"type":40,"tag":231,"props":6846,"children":6847},{"style":244},[6848],{"type":46,"value":627},{"type":40,"tag":231,"props":6850,"children":6851},{"style":244},[6852],{"type":46,"value":356},{"type":40,"tag":231,"props":6854,"children":6855},{"class":233,"line":743},[6856,6861,6865,6869,6873,6878],{"type":40,"tag":231,"props":6857,"children":6858},{"style":363},[6859],{"type":46,"value":6860},"            tags",{"type":40,"tag":231,"props":6862,"children":6863},{"style":244},[6864],{"type":46,"value":515},{"type":40,"tag":231,"props":6866,"children":6867},{"style":255},[6868],{"type":46,"value":632},{"type":40,"tag":231,"props":6870,"children":6871},{"style":244},[6872],{"type":46,"value":381},{"type":40,"tag":231,"props":6874,"children":6875},{"style":255},[6876],{"type":46,"value":6877},"tags",{"type":40,"tag":231,"props":6879,"children":6880},{"style":244},[6881],{"type":46,"value":987},{"type":40,"tag":231,"props":6883,"children":6884},{"class":233,"line":751},[6885,6889,6893,6897,6901,6905,6909,6913],{"type":40,"tag":231,"props":6886,"children":6887},{"style":244},[6888],{"type":46,"value":1118},{"type":40,"tag":231,"props":6890,"children":6891},{"style":244},[6892],{"type":46,"value":846},{"type":40,"tag":231,"props":6894,"children":6895},{"style":363},[6896],{"type":46,"value":851},{"type":40,"tag":231,"props":6898,"children":6899},{"style":244},[6900],{"type":46,"value":515},{"type":40,"tag":231,"props":6902,"children":6903},{"style":244},[6904],{"type":46,"value":860},{"type":40,"tag":231,"props":6906,"children":6907},{"style":244},[6908],{"type":46,"value":865},{"type":40,"tag":231,"props":6910,"children":6911},{"style":363},[6912],{"type":46,"value":670},{"type":40,"tag":231,"props":6914,"children":6915},{"style":244},[6916],{"type":46,"value":284},{"type":40,"tag":231,"props":6918,"children":6919},{"class":233,"line":760},[6920],{"type":40,"tag":231,"props":6921,"children":6922},{"emptyLinePlaceholder":333},[6923],{"type":46,"value":336},{"type":40,"tag":231,"props":6925,"children":6926},{"class":233,"line":876},[6927],{"type":40,"tag":231,"props":6928,"children":6929},{"style":681},[6930],{"type":46,"value":6931},"        \u002F\u002F Versioning on by default\n",{"type":40,"tag":231,"props":6933,"children":6934},{"class":233,"line":884},[6935,6940,6944,6948,6952,6956,6961,6965,6970],{"type":40,"tag":231,"props":6936,"children":6937},{"style":238},[6938],{"type":46,"value":6939},"        if",{"type":40,"tag":231,"props":6941,"children":6942},{"style":363},[6943],{"type":46,"value":4173},{"type":40,"tag":231,"props":6945,"children":6946},{"style":255},[6947],{"type":46,"value":6118},{"type":40,"tag":231,"props":6949,"children":6950},{"style":244},[6951],{"type":46,"value":381},{"type":40,"tag":231,"props":6953,"children":6954},{"style":255},[6955],{"type":46,"value":4689},{"type":40,"tag":231,"props":6957,"children":6958},{"style":244},[6959],{"type":46,"value":6960}," !==",{"type":40,"tag":231,"props":6962,"children":6963},{"style":4696},[6964],{"type":46,"value":4890},{"type":40,"tag":231,"props":6966,"children":6967},{"style":363},[6968],{"type":46,"value":6969},") ",{"type":40,"tag":231,"props":6971,"children":6972},{"style":244},[6973],{"type":46,"value":1270},{"type":40,"tag":231,"props":6975,"children":6976},{"class":233,"line":959},[6977,6982,6986,6990,6994,6998,7003,7007,7011,7015,7019,7024,7028,7032],{"type":40,"tag":231,"props":6978,"children":6979},{"style":244},[6980],{"type":46,"value":6981},"            new",{"type":40,"tag":231,"props":6983,"children":6984},{"style":255},[6985],{"type":46,"value":786},{"type":40,"tag":231,"props":6987,"children":6988},{"style":244},[6989],{"type":46,"value":381},{"type":40,"tag":231,"props":6991,"children":6992},{"style":255},[6993],{"type":46,"value":795},{"type":40,"tag":231,"props":6995,"children":6996},{"style":244},[6997],{"type":46,"value":381},{"type":40,"tag":231,"props":6999,"children":7000},{"style":802},[7001],{"type":46,"value":7002},"BucketVersioningV2",{"type":40,"tag":231,"props":7004,"children":7005},{"style":363},[7006],{"type":46,"value":607},{"type":40,"tag":231,"props":7008,"children":7009},{"style":244},[7010],{"type":46,"value":814},{"type":40,"tag":231,"props":7012,"children":7013},{"style":255},[7014],{"type":46,"value":613},{"type":40,"tag":231,"props":7016,"children":7017},{"style":244},[7018],{"type":46,"value":823},{"type":40,"tag":231,"props":7020,"children":7021},{"style":271},[7022],{"type":46,"value":7023},"-versioning",{"type":40,"tag":231,"props":7025,"children":7026},{"style":244},[7027],{"type":46,"value":833},{"type":40,"tag":231,"props":7029,"children":7030},{"style":244},[7031],{"type":46,"value":627},{"type":40,"tag":231,"props":7033,"children":7034},{"style":244},[7035],{"type":46,"value":356},{"type":40,"tag":231,"props":7037,"children":7038},{"class":233,"line":990},[7039,7044,7048,7052,7056,7060],{"type":40,"tag":231,"props":7040,"children":7041},{"style":363},[7042],{"type":46,"value":7043},"                bucket",{"type":40,"tag":231,"props":7045,"children":7046},{"style":244},[7047],{"type":46,"value":515},{"type":40,"tag":231,"props":7049,"children":7050},{"style":255},[7051],{"type":46,"value":771},{"type":40,"tag":231,"props":7053,"children":7054},{"style":244},[7055],{"type":46,"value":381},{"type":40,"tag":231,"props":7057,"children":7058},{"style":255},[7059],{"type":46,"value":982},{"type":40,"tag":231,"props":7061,"children":7062},{"style":244},[7063],{"type":46,"value":987},{"type":40,"tag":231,"props":7065,"children":7066},{"class":233,"line":1052},[7067,7072,7076,7080,7085,7089,7093,7098,7102],{"type":40,"tag":231,"props":7068,"children":7069},{"style":363},[7070],{"type":46,"value":7071},"                versioningConfiguration",{"type":40,"tag":231,"props":7073,"children":7074},{"style":244},[7075],{"type":46,"value":515},{"type":40,"tag":231,"props":7077,"children":7078},{"style":244},[7079],{"type":46,"value":846},{"type":40,"tag":231,"props":7081,"children":7082},{"style":363},[7083],{"type":46,"value":7084}," status",{"type":40,"tag":231,"props":7086,"children":7087},{"style":244},[7088],{"type":46,"value":515},{"type":40,"tag":231,"props":7090,"children":7091},{"style":244},[7092],{"type":46,"value":268},{"type":40,"tag":231,"props":7094,"children":7095},{"style":271},[7096],{"type":46,"value":7097},"Enabled",{"type":40,"tag":231,"props":7099,"children":7100},{"style":244},[7101],{"type":46,"value":279},{"type":40,"tag":231,"props":7103,"children":7104},{"style":244},[7105],{"type":46,"value":1049},{"type":40,"tag":231,"props":7107,"children":7108},{"class":233,"line":1112},[7109,7114,7118,7122,7126,7130,7134,7138],{"type":40,"tag":231,"props":7110,"children":7111},{"style":244},[7112],{"type":46,"value":7113},"            },",{"type":40,"tag":231,"props":7115,"children":7116},{"style":244},[7117],{"type":46,"value":846},{"type":40,"tag":231,"props":7119,"children":7120},{"style":363},[7121],{"type":46,"value":851},{"type":40,"tag":231,"props":7123,"children":7124},{"style":244},[7125],{"type":46,"value":515},{"type":40,"tag":231,"props":7127,"children":7128},{"style":244},[7129],{"type":46,"value":860},{"type":40,"tag":231,"props":7131,"children":7132},{"style":244},[7133],{"type":46,"value":865},{"type":40,"tag":231,"props":7135,"children":7136},{"style":363},[7137],{"type":46,"value":670},{"type":40,"tag":231,"props":7139,"children":7140},{"style":244},[7141],{"type":46,"value":284},{"type":40,"tag":231,"props":7143,"children":7144},{"class":233,"line":1149},[7145],{"type":40,"tag":231,"props":7146,"children":7147},{"style":244},[7148],{"type":46,"value":7149},"        }\n",{"type":40,"tag":231,"props":7151,"children":7152},{"class":233,"line":1157},[7153],{"type":40,"tag":231,"props":7154,"children":7155},{"emptyLinePlaceholder":333},[7156],{"type":46,"value":336},{"type":40,"tag":231,"props":7158,"children":7159},{"class":233,"line":1166},[7160],{"type":40,"tag":231,"props":7161,"children":7162},{"style":681},[7163],{"type":46,"value":7164},"        \u002F\u002F Encryption on by default\n",{"type":40,"tag":231,"props":7166,"children":7167},{"class":233,"line":1200},[7168,7172,7176,7180,7184,7188,7192,7196,7200],{"type":40,"tag":231,"props":7169,"children":7170},{"style":238},[7171],{"type":46,"value":6939},{"type":40,"tag":231,"props":7173,"children":7174},{"style":363},[7175],{"type":46,"value":4173},{"type":40,"tag":231,"props":7177,"children":7178},{"style":255},[7179],{"type":46,"value":6118},{"type":40,"tag":231,"props":7181,"children":7182},{"style":244},[7183],{"type":46,"value":381},{"type":40,"tag":231,"props":7185,"children":7186},{"style":255},[7187],{"type":46,"value":4732},{"type":40,"tag":231,"props":7189,"children":7190},{"style":244},[7191],{"type":46,"value":6960},{"type":40,"tag":231,"props":7193,"children":7194},{"style":4696},[7195],{"type":46,"value":4890},{"type":40,"tag":231,"props":7197,"children":7198},{"style":363},[7199],{"type":46,"value":6969},{"type":40,"tag":231,"props":7201,"children":7202},{"style":244},[7203],{"type":46,"value":1270},{"type":40,"tag":231,"props":7205,"children":7206},{"class":233,"line":1234},[7207,7211,7215,7219,7223,7227,7232,7236,7240,7244,7248,7253,7257,7261],{"type":40,"tag":231,"props":7208,"children":7209},{"style":244},[7210],{"type":46,"value":6981},{"type":40,"tag":231,"props":7212,"children":7213},{"style":255},[7214],{"type":46,"value":786},{"type":40,"tag":231,"props":7216,"children":7217},{"style":244},[7218],{"type":46,"value":381},{"type":40,"tag":231,"props":7220,"children":7221},{"style":255},[7222],{"type":46,"value":795},{"type":40,"tag":231,"props":7224,"children":7225},{"style":244},[7226],{"type":46,"value":381},{"type":40,"tag":231,"props":7228,"children":7229},{"style":802},[7230],{"type":46,"value":7231},"BucketServerSideEncryptionConfigurationV2",{"type":40,"tag":231,"props":7233,"children":7234},{"style":363},[7235],{"type":46,"value":607},{"type":40,"tag":231,"props":7237,"children":7238},{"style":244},[7239],{"type":46,"value":814},{"type":40,"tag":231,"props":7241,"children":7242},{"style":255},[7243],{"type":46,"value":613},{"type":40,"tag":231,"props":7245,"children":7246},{"style":244},[7247],{"type":46,"value":823},{"type":40,"tag":231,"props":7249,"children":7250},{"style":271},[7251],{"type":46,"value":7252},"-encryption",{"type":40,"tag":231,"props":7254,"children":7255},{"style":244},[7256],{"type":46,"value":833},{"type":40,"tag":231,"props":7258,"children":7259},{"style":244},[7260],{"type":46,"value":627},{"type":40,"tag":231,"props":7262,"children":7263},{"style":244},[7264],{"type":46,"value":356},{"type":40,"tag":231,"props":7266,"children":7267},{"class":233,"line":1242},[7268,7272,7276,7280,7284,7288],{"type":40,"tag":231,"props":7269,"children":7270},{"style":363},[7271],{"type":46,"value":7043},{"type":40,"tag":231,"props":7273,"children":7274},{"style":244},[7275],{"type":46,"value":515},{"type":40,"tag":231,"props":7277,"children":7278},{"style":255},[7279],{"type":46,"value":771},{"type":40,"tag":231,"props":7281,"children":7282},{"style":244},[7283],{"type":46,"value":381},{"type":40,"tag":231,"props":7285,"children":7286},{"style":255},[7287],{"type":46,"value":982},{"type":40,"tag":231,"props":7289,"children":7290},{"style":244},[7291],{"type":46,"value":987},{"type":40,"tag":231,"props":7293,"children":7294},{"class":233,"line":1251},[7295,7300,7304,7309,7313,7318,7322,7326,7331,7335,7339,7344,7348,7352,7356,7361],{"type":40,"tag":231,"props":7296,"children":7297},{"style":363},[7298],{"type":46,"value":7299},"                rules",{"type":40,"tag":231,"props":7301,"children":7302},{"style":244},[7303],{"type":46,"value":515},{"type":40,"tag":231,"props":7305,"children":7306},{"style":363},[7307],{"type":46,"value":7308}," [",{"type":40,"tag":231,"props":7310,"children":7311},{"style":244},[7312],{"type":46,"value":2784},{"type":40,"tag":231,"props":7314,"children":7315},{"style":363},[7316],{"type":46,"value":7317}," applyServerSideEncryptionByDefault",{"type":40,"tag":231,"props":7319,"children":7320},{"style":244},[7321],{"type":46,"value":515},{"type":40,"tag":231,"props":7323,"children":7324},{"style":244},[7325],{"type":46,"value":846},{"type":40,"tag":231,"props":7327,"children":7328},{"style":363},[7329],{"type":46,"value":7330}," sseAlgorithm",{"type":40,"tag":231,"props":7332,"children":7333},{"style":244},[7334],{"type":46,"value":515},{"type":40,"tag":231,"props":7336,"children":7337},{"style":244},[7338],{"type":46,"value":268},{"type":40,"tag":231,"props":7340,"children":7341},{"style":271},[7342],{"type":46,"value":7343},"AES256",{"type":40,"tag":231,"props":7345,"children":7346},{"style":244},[7347],{"type":46,"value":279},{"type":40,"tag":231,"props":7349,"children":7350},{"style":244},[7351],{"type":46,"value":865},{"type":40,"tag":231,"props":7353,"children":7354},{"style":244},[7355],{"type":46,"value":865},{"type":40,"tag":231,"props":7357,"children":7358},{"style":363},[7359],{"type":46,"value":7360},"]",{"type":40,"tag":231,"props":7362,"children":7363},{"style":244},[7364],{"type":46,"value":987},{"type":40,"tag":231,"props":7366,"children":7367},{"class":233,"line":1273},[7368,7372,7376,7380,7384,7388,7392,7396],{"type":40,"tag":231,"props":7369,"children":7370},{"style":244},[7371],{"type":46,"value":7113},{"type":40,"tag":231,"props":7373,"children":7374},{"style":244},[7375],{"type":46,"value":846},{"type":40,"tag":231,"props":7377,"children":7378},{"style":363},[7379],{"type":46,"value":851},{"type":40,"tag":231,"props":7381,"children":7382},{"style":244},[7383],{"type":46,"value":515},{"type":40,"tag":231,"props":7385,"children":7386},{"style":244},[7387],{"type":46,"value":860},{"type":40,"tag":231,"props":7389,"children":7390},{"style":244},[7391],{"type":46,"value":865},{"type":40,"tag":231,"props":7393,"children":7394},{"style":363},[7395],{"type":46,"value":670},{"type":40,"tag":231,"props":7397,"children":7398},{"style":244},[7399],{"type":46,"value":284},{"type":40,"tag":231,"props":7401,"children":7402},{"class":233,"line":1299},[7403],{"type":40,"tag":231,"props":7404,"children":7405},{"style":244},[7406],{"type":46,"value":7149},{"type":40,"tag":231,"props":7408,"children":7409},{"class":233,"line":1324},[7410],{"type":40,"tag":231,"props":7411,"children":7412},{"emptyLinePlaceholder":333},[7413],{"type":46,"value":336},{"type":40,"tag":231,"props":7415,"children":7416},{"class":233,"line":1341},[7417],{"type":40,"tag":231,"props":7418,"children":7419},{"style":681},[7420],{"type":46,"value":7421},"        \u002F\u002F Public access blocked by default\n",{"type":40,"tag":231,"props":7423,"children":7424},{"class":233,"line":1350},[7425,7429,7433,7437,7441,7445,7449,7453,7457],{"type":40,"tag":231,"props":7426,"children":7427},{"style":238},[7428],{"type":46,"value":6939},{"type":40,"tag":231,"props":7430,"children":7431},{"style":363},[7432],{"type":46,"value":4173},{"type":40,"tag":231,"props":7434,"children":7435},{"style":255},[7436],{"type":46,"value":6118},{"type":40,"tag":231,"props":7438,"children":7439},{"style":244},[7440],{"type":46,"value":381},{"type":40,"tag":231,"props":7442,"children":7443},{"style":255},[7444],{"type":46,"value":4773},{"type":40,"tag":231,"props":7446,"children":7447},{"style":244},[7448],{"type":46,"value":6960},{"type":40,"tag":231,"props":7450,"children":7451},{"style":4696},[7452],{"type":46,"value":4890},{"type":40,"tag":231,"props":7454,"children":7455},{"style":363},[7456],{"type":46,"value":6969},{"type":40,"tag":231,"props":7458,"children":7459},{"style":244},[7460],{"type":46,"value":1270},{"type":40,"tag":231,"props":7462,"children":7463},{"class":233,"line":1358},[7464,7468,7472,7476,7480,7484,7489,7493,7497,7501,7505,7510,7514,7518],{"type":40,"tag":231,"props":7465,"children":7466},{"style":244},[7467],{"type":46,"value":6981},{"type":40,"tag":231,"props":7469,"children":7470},{"style":255},[7471],{"type":46,"value":786},{"type":40,"tag":231,"props":7473,"children":7474},{"style":244},[7475],{"type":46,"value":381},{"type":40,"tag":231,"props":7477,"children":7478},{"style":255},[7479],{"type":46,"value":795},{"type":40,"tag":231,"props":7481,"children":7482},{"style":244},[7483],{"type":46,"value":381},{"type":40,"tag":231,"props":7485,"children":7486},{"style":802},[7487],{"type":46,"value":7488},"BucketPublicAccessBlock",{"type":40,"tag":231,"props":7490,"children":7491},{"style":363},[7492],{"type":46,"value":607},{"type":40,"tag":231,"props":7494,"children":7495},{"style":244},[7496],{"type":46,"value":814},{"type":40,"tag":231,"props":7498,"children":7499},{"style":255},[7500],{"type":46,"value":613},{"type":40,"tag":231,"props":7502,"children":7503},{"style":244},[7504],{"type":46,"value":823},{"type":40,"tag":231,"props":7506,"children":7507},{"style":271},[7508],{"type":46,"value":7509},"-public-access",{"type":40,"tag":231,"props":7511,"children":7512},{"style":244},[7513],{"type":46,"value":833},{"type":40,"tag":231,"props":7515,"children":7516},{"style":244},[7517],{"type":46,"value":627},{"type":40,"tag":231,"props":7519,"children":7520},{"style":244},[7521],{"type":46,"value":356},{"type":40,"tag":231,"props":7523,"children":7524},{"class":233,"line":1366},[7525,7529,7533,7537,7541,7545],{"type":40,"tag":231,"props":7526,"children":7527},{"style":363},[7528],{"type":46,"value":7043},{"type":40,"tag":231,"props":7530,"children":7531},{"style":244},[7532],{"type":46,"value":515},{"type":40,"tag":231,"props":7534,"children":7535},{"style":255},[7536],{"type":46,"value":771},{"type":40,"tag":231,"props":7538,"children":7539},{"style":244},[7540],{"type":46,"value":381},{"type":40,"tag":231,"props":7542,"children":7543},{"style":255},[7544],{"type":46,"value":982},{"type":40,"tag":231,"props":7546,"children":7547},{"style":244},[7548],{"type":46,"value":987},{"type":40,"tag":231,"props":7550,"children":7551},{"class":233,"line":1375},[7552,7557,7561,7565],{"type":40,"tag":231,"props":7553,"children":7554},{"style":363},[7555],{"type":46,"value":7556},"                blockPublicAcls",{"type":40,"tag":231,"props":7558,"children":7559},{"style":244},[7560],{"type":46,"value":515},{"type":40,"tag":231,"props":7562,"children":7563},{"style":4696},[7564],{"type":46,"value":4699},{"type":40,"tag":231,"props":7566,"children":7567},{"style":244},[7568],{"type":46,"value":987},{"type":40,"tag":231,"props":7570,"children":7571},{"class":233,"line":1427},[7572,7577,7581,7585],{"type":40,"tag":231,"props":7573,"children":7574},{"style":363},[7575],{"type":46,"value":7576},"                blockPublicPolicy",{"type":40,"tag":231,"props":7578,"children":7579},{"style":244},[7580],{"type":46,"value":515},{"type":40,"tag":231,"props":7582,"children":7583},{"style":4696},[7584],{"type":46,"value":4699},{"type":40,"tag":231,"props":7586,"children":7587},{"style":244},[7588],{"type":46,"value":987},{"type":40,"tag":231,"props":7590,"children":7591},{"class":233,"line":1455},[7592,7597,7601,7605],{"type":40,"tag":231,"props":7593,"children":7594},{"style":363},[7595],{"type":46,"value":7596},"                ignorePublicAcls",{"type":40,"tag":231,"props":7598,"children":7599},{"style":244},[7600],{"type":46,"value":515},{"type":40,"tag":231,"props":7602,"children":7603},{"style":4696},[7604],{"type":46,"value":4699},{"type":40,"tag":231,"props":7606,"children":7607},{"style":244},[7608],{"type":46,"value":987},{"type":40,"tag":231,"props":7610,"children":7611},{"class":233,"line":1471},[7612,7617,7621,7625],{"type":40,"tag":231,"props":7613,"children":7614},{"style":363},[7615],{"type":46,"value":7616},"                restrictPublicBuckets",{"type":40,"tag":231,"props":7618,"children":7619},{"style":244},[7620],{"type":46,"value":515},{"type":40,"tag":231,"props":7622,"children":7623},{"style":4696},[7624],{"type":46,"value":4699},{"type":40,"tag":231,"props":7626,"children":7627},{"style":244},[7628],{"type":46,"value":987},{"type":40,"tag":231,"props":7630,"children":7632},{"class":233,"line":7631},43,[7633,7637,7641,7645,7649,7653,7657,7661],{"type":40,"tag":231,"props":7634,"children":7635},{"style":244},[7636],{"type":46,"value":7113},{"type":40,"tag":231,"props":7638,"children":7639},{"style":244},[7640],{"type":46,"value":846},{"type":40,"tag":231,"props":7642,"children":7643},{"style":363},[7644],{"type":46,"value":851},{"type":40,"tag":231,"props":7646,"children":7647},{"style":244},[7648],{"type":46,"value":515},{"type":40,"tag":231,"props":7650,"children":7651},{"style":244},[7652],{"type":46,"value":860},{"type":40,"tag":231,"props":7654,"children":7655},{"style":244},[7656],{"type":46,"value":865},{"type":40,"tag":231,"props":7658,"children":7659},{"style":363},[7660],{"type":46,"value":670},{"type":40,"tag":231,"props":7662,"children":7663},{"style":244},[7664],{"type":46,"value":284},{"type":40,"tag":231,"props":7666,"children":7668},{"class":233,"line":7667},44,[7669],{"type":40,"tag":231,"props":7670,"children":7671},{"style":244},[7672],{"type":46,"value":7149},{"type":40,"tag":231,"props":7674,"children":7676},{"class":233,"line":7675},45,[7677],{"type":40,"tag":231,"props":7678,"children":7679},{"emptyLinePlaceholder":333},[7680],{"type":46,"value":336},{"type":40,"tag":231,"props":7682,"children":7684},{"class":233,"line":7683},46,[7685,7689,7694,7698,7702,7706,7710],{"type":40,"tag":231,"props":7686,"children":7687},{"style":244},[7688],{"type":46,"value":1172},{"type":40,"tag":231,"props":7690,"children":7691},{"style":255},[7692],{"type":46,"value":7693},"bucketId",{"type":40,"tag":231,"props":7695,"children":7696},{"style":244},[7697],{"type":46,"value":776},{"type":40,"tag":231,"props":7699,"children":7700},{"style":255},[7701],{"type":46,"value":771},{"type":40,"tag":231,"props":7703,"children":7704},{"style":244},[7705],{"type":46,"value":381},{"type":40,"tag":231,"props":7707,"children":7708},{"style":255},[7709],{"type":46,"value":982},{"type":40,"tag":231,"props":7711,"children":7712},{"style":244},[7713],{"type":46,"value":284},{"type":40,"tag":231,"props":7715,"children":7717},{"class":233,"line":7716},47,[7718,7722,7727,7731,7735,7739,7743],{"type":40,"tag":231,"props":7719,"children":7720},{"style":244},[7721],{"type":46,"value":1172},{"type":40,"tag":231,"props":7723,"children":7724},{"style":255},[7725],{"type":46,"value":7726},"arn",{"type":40,"tag":231,"props":7728,"children":7729},{"style":244},[7730],{"type":46,"value":776},{"type":40,"tag":231,"props":7732,"children":7733},{"style":255},[7734],{"type":46,"value":771},{"type":40,"tag":231,"props":7736,"children":7737},{"style":244},[7738],{"type":46,"value":381},{"type":40,"tag":231,"props":7740,"children":7741},{"style":255},[7742],{"type":46,"value":7726},{"type":40,"tag":231,"props":7744,"children":7745},{"style":244},[7746],{"type":46,"value":284},{"type":40,"tag":231,"props":7748,"children":7750},{"class":233,"line":7749},48,[7751,7755,7759,7763,7767,7771,7775,7779,7783,7787,7791,7795,7799,7803,7807,7811],{"type":40,"tag":231,"props":7752,"children":7753},{"style":244},[7754],{"type":46,"value":1172},{"type":40,"tag":231,"props":7756,"children":7757},{"style":802},[7758],{"type":46,"value":1261},{"type":40,"tag":231,"props":7760,"children":7761},{"style":363},[7762],{"type":46,"value":607},{"type":40,"tag":231,"props":7764,"children":7765},{"style":244},[7766],{"type":46,"value":2784},{"type":40,"tag":231,"props":7768,"children":7769},{"style":363},[7770],{"type":46,"value":6569},{"type":40,"tag":231,"props":7772,"children":7773},{"style":244},[7774],{"type":46,"value":515},{"type":40,"tag":231,"props":7776,"children":7777},{"style":244},[7778],{"type":46,"value":1288},{"type":40,"tag":231,"props":7780,"children":7781},{"style":255},[7782],{"type":46,"value":7693},{"type":40,"tag":231,"props":7784,"children":7785},{"style":244},[7786],{"type":46,"value":627},{"type":40,"tag":231,"props":7788,"children":7789},{"style":363},[7790],{"type":46,"value":6613},{"type":40,"tag":231,"props":7792,"children":7793},{"style":244},[7794],{"type":46,"value":515},{"type":40,"tag":231,"props":7796,"children":7797},{"style":244},[7798],{"type":46,"value":1288},{"type":40,"tag":231,"props":7800,"children":7801},{"style":255},[7802],{"type":46,"value":7726},{"type":40,"tag":231,"props":7804,"children":7805},{"style":244},[7806],{"type":46,"value":865},{"type":40,"tag":231,"props":7808,"children":7809},{"style":363},[7810],{"type":46,"value":670},{"type":40,"tag":231,"props":7812,"children":7813},{"style":244},[7814],{"type":46,"value":284},{"type":40,"tag":231,"props":7816,"children":7818},{"class":233,"line":7817},49,[7819],{"type":40,"tag":231,"props":7820,"children":7821},{"style":244},[7822],{"type":46,"value":1347},{"type":40,"tag":231,"props":7824,"children":7826},{"class":233,"line":7825},50,[7827],{"type":40,"tag":231,"props":7828,"children":7829},{"style":244},[7830],{"type":46,"value":447},{"type":40,"tag":214,"props":7832,"children":7834},{"id":7833},"conditional-resource-creation",[7835],{"type":46,"value":7836},"Conditional Resource Creation",{"type":40,"tag":49,"props":7838,"children":7839},{},[7840],{"type":46,"value":7841},"Use optional args to gate creation of sub-resources:",{"type":40,"tag":221,"props":7843,"children":7845},{"className":223,"code":7844,"language":216,"meta":225,"style":225},"interface WebServiceArgs {\n    image: pulumi.Input\u003Cstring>;\n    port: pulumi.Input\u003Cnumber>;\n    enableMonitoring?: pulumi.Input\u003Cboolean>;\n    alarmEmail?: pulumi.Input\u003Cstring>;\n}\n\nclass WebService extends pulumi.ComponentResource {\n    constructor(name: string, args: WebServiceArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:WebService\", name, {}, opts);\n\n        const service = new aws.ecs.Service(`${name}-service`, {\n            \u002F\u002F ...service config...\n        }, { parent: this });\n\n        \u002F\u002F Only create alarm infrastructure when monitoring is enabled\n        if (args.enableMonitoring) {\n            const topic = new aws.sns.Topic(`${name}-alerts`, {}, { parent: this });\n\n            if (args.alarmEmail) {\n                new aws.sns.TopicSubscription(`${name}-alert-email`, {\n                    topic: topic.arn,\n                    protocol: \"email\",\n                    endpoint: args.alarmEmail,\n                }, { parent: this });\n            }\n\n            new aws.cloudwatch.MetricAlarm(`${name}-cpu-alarm`, {\n                \u002F\u002F ...alarm config referencing service...\n                alarmActions: [topic.arn],\n            }, { parent: this });\n        }\n\n        this.registerOutputs({});\n    }\n}\n",[7846],{"type":40,"tag":55,"props":7847,"children":7848},{"__ignoreMap":225},[7849,7864,7900,7935,7971,8007,8014,8021,8053,8124,8176,8183,8258,8266,8301,8308,8316,8348,8452,8459,8492,8554,8582,8611,8639,8675,8683,8690,8752,8760,8797,8832,8839,8846,8874,8881],{"type":40,"tag":231,"props":7850,"children":7851},{"class":233,"line":234},[7852,7856,7860],{"type":40,"tag":231,"props":7853,"children":7854},{"style":342},[7855],{"type":46,"value":345},{"type":40,"tag":231,"props":7857,"children":7858},{"style":348},[7859],{"type":46,"value":3163},{"type":40,"tag":231,"props":7861,"children":7862},{"style":244},[7863],{"type":46,"value":356},{"type":40,"tag":231,"props":7865,"children":7866},{"class":233,"line":287},[7867,7872,7876,7880,7884,7888,7892,7896],{"type":40,"tag":231,"props":7868,"children":7869},{"style":363},[7870],{"type":46,"value":7871},"    image",{"type":40,"tag":231,"props":7873,"children":7874},{"style":244},[7875],{"type":46,"value":515},{"type":40,"tag":231,"props":7877,"children":7878},{"style":348},[7879],{"type":46,"value":376},{"type":40,"tag":231,"props":7881,"children":7882},{"style":244},[7883],{"type":46,"value":381},{"type":40,"tag":231,"props":7885,"children":7886},{"style":348},[7887],{"type":46,"value":386},{"type":40,"tag":231,"props":7889,"children":7890},{"style":244},[7891],{"type":46,"value":391},{"type":40,"tag":231,"props":7893,"children":7894},{"style":348},[7895],{"type":46,"value":396},{"type":40,"tag":231,"props":7897,"children":7898},{"style":244},[7899],{"type":46,"value":401},{"type":40,"tag":231,"props":7901,"children":7902},{"class":233,"line":329},[7903,7907,7911,7915,7919,7923,7927,7931],{"type":40,"tag":231,"props":7904,"children":7905},{"style":363},[7906],{"type":46,"value":3175},{"type":40,"tag":231,"props":7908,"children":7909},{"style":244},[7910],{"type":46,"value":515},{"type":40,"tag":231,"props":7912,"children":7913},{"style":348},[7914],{"type":46,"value":376},{"type":40,"tag":231,"props":7916,"children":7917},{"style":244},[7918],{"type":46,"value":381},{"type":40,"tag":231,"props":7920,"children":7921},{"style":348},[7922],{"type":46,"value":386},{"type":40,"tag":231,"props":7924,"children":7925},{"style":244},[7926],{"type":46,"value":391},{"type":40,"tag":231,"props":7928,"children":7929},{"style":348},[7930],{"type":46,"value":3288},{"type":40,"tag":231,"props":7932,"children":7933},{"style":244},[7934],{"type":46,"value":401},{"type":40,"tag":231,"props":7936,"children":7937},{"class":233,"line":27},[7938,7943,7947,7951,7955,7959,7963,7967],{"type":40,"tag":231,"props":7939,"children":7940},{"style":363},[7941],{"type":46,"value":7942},"    enableMonitoring",{"type":40,"tag":231,"props":7944,"children":7945},{"style":244},[7946],{"type":46,"value":371},{"type":40,"tag":231,"props":7948,"children":7949},{"style":348},[7950],{"type":46,"value":376},{"type":40,"tag":231,"props":7952,"children":7953},{"style":244},[7954],{"type":46,"value":381},{"type":40,"tag":231,"props":7956,"children":7957},{"style":348},[7958],{"type":46,"value":386},{"type":40,"tag":231,"props":7960,"children":7961},{"style":244},[7962],{"type":46,"value":391},{"type":40,"tag":231,"props":7964,"children":7965},{"style":348},[7966],{"type":46,"value":3492},{"type":40,"tag":231,"props":7968,"children":7969},{"style":244},[7970],{"type":46,"value":401},{"type":40,"tag":231,"props":7972,"children":7973},{"class":233,"line":359},[7974,7979,7983,7987,7991,7995,7999,8003],{"type":40,"tag":231,"props":7975,"children":7976},{"style":363},[7977],{"type":46,"value":7978},"    alarmEmail",{"type":40,"tag":231,"props":7980,"children":7981},{"style":244},[7982],{"type":46,"value":371},{"type":40,"tag":231,"props":7984,"children":7985},{"style":348},[7986],{"type":46,"value":376},{"type":40,"tag":231,"props":7988,"children":7989},{"style":244},[7990],{"type":46,"value":381},{"type":40,"tag":231,"props":7992,"children":7993},{"style":348},[7994],{"type":46,"value":386},{"type":40,"tag":231,"props":7996,"children":7997},{"style":244},[7998],{"type":46,"value":391},{"type":40,"tag":231,"props":8000,"children":8001},{"style":348},[8002],{"type":46,"value":396},{"type":40,"tag":231,"props":8004,"children":8005},{"style":244},[8006],{"type":46,"value":401},{"type":40,"tag":231,"props":8008,"children":8009},{"class":233,"line":404},[8010],{"type":40,"tag":231,"props":8011,"children":8012},{"style":244},[8013],{"type":46,"value":447},{"type":40,"tag":231,"props":8015,"children":8016},{"class":233,"line":441},[8017],{"type":40,"tag":231,"props":8018,"children":8019},{"emptyLinePlaceholder":333},[8020],{"type":46,"value":336},{"type":40,"tag":231,"props":8022,"children":8023},{"class":233,"line":450},[8024,8028,8033,8037,8041,8045,8049],{"type":40,"tag":231,"props":8025,"children":8026},{"style":342},[8027],{"type":46,"value":464},{"type":40,"tag":231,"props":8029,"children":8030},{"style":348},[8031],{"type":46,"value":8032}," WebService",{"type":40,"tag":231,"props":8034,"children":8035},{"style":342},[8036],{"type":46,"value":474},{"type":40,"tag":231,"props":8038,"children":8039},{"style":348},[8040],{"type":46,"value":376},{"type":40,"tag":231,"props":8042,"children":8043},{"style":244},[8044],{"type":46,"value":381},{"type":40,"tag":231,"props":8046,"children":8047},{"style":348},[8048],{"type":46,"value":487},{"type":40,"tag":231,"props":8050,"children":8051},{"style":244},[8052],{"type":46,"value":356},{"type":40,"tag":231,"props":8054,"children":8055},{"class":233,"line":458},[8056,8060,8064,8068,8072,8076,8080,8084,8088,8092,8096,8100,8104,8108,8112,8116,8120],{"type":40,"tag":231,"props":8057,"children":8058},{"style":342},[8059],{"type":46,"value":602},{"type":40,"tag":231,"props":8061,"children":8062},{"style":244},[8063],{"type":46,"value":607},{"type":40,"tag":231,"props":8065,"children":8066},{"style":610},[8067],{"type":46,"value":613},{"type":40,"tag":231,"props":8069,"children":8070},{"style":244},[8071],{"type":46,"value":515},{"type":40,"tag":231,"props":8073,"children":8074},{"style":348},[8075],{"type":46,"value":622},{"type":40,"tag":231,"props":8077,"children":8078},{"style":244},[8079],{"type":46,"value":627},{"type":40,"tag":231,"props":8081,"children":8082},{"style":610},[8083],{"type":46,"value":632},{"type":40,"tag":231,"props":8085,"children":8086},{"style":244},[8087],{"type":46,"value":515},{"type":40,"tag":231,"props":8089,"children":8090},{"style":348},[8091],{"type":46,"value":3163},{"type":40,"tag":231,"props":8093,"children":8094},{"style":244},[8095],{"type":46,"value":627},{"type":40,"tag":231,"props":8097,"children":8098},{"style":610},[8099],{"type":46,"value":649},{"type":40,"tag":231,"props":8101,"children":8102},{"style":244},[8103],{"type":46,"value":371},{"type":40,"tag":231,"props":8105,"children":8106},{"style":348},[8107],{"type":46,"value":376},{"type":40,"tag":231,"props":8109,"children":8110},{"style":244},[8111],{"type":46,"value":381},{"type":40,"tag":231,"props":8113,"children":8114},{"style":348},[8115],{"type":46,"value":180},{"type":40,"tag":231,"props":8117,"children":8118},{"style":244},[8119],{"type":46,"value":670},{"type":40,"tag":231,"props":8121,"children":8122},{"style":244},[8123],{"type":46,"value":356},{"type":40,"tag":231,"props":8125,"children":8126},{"class":233,"line":494},[8127,8131,8135,8139,8144,8148,8152,8156,8160,8164,8168,8172],{"type":40,"tag":231,"props":8128,"children":8129},{"style":255},[8130],{"type":46,"value":693},{"type":40,"tag":231,"props":8132,"children":8133},{"style":363},[8134],{"type":46,"value":607},{"type":40,"tag":231,"props":8136,"children":8137},{"style":244},[8138],{"type":46,"value":279},{"type":40,"tag":231,"props":8140,"children":8141},{"style":271},[8142],{"type":46,"value":8143},"myorg:index:WebService",{"type":40,"tag":231,"props":8145,"children":8146},{"style":244},[8147],{"type":46,"value":279},{"type":40,"tag":231,"props":8149,"children":8150},{"style":244},[8151],{"type":46,"value":627},{"type":40,"tag":231,"props":8153,"children":8154},{"style":255},[8155],{"type":46,"value":719},{"type":40,"tag":231,"props":8157,"children":8158},{"style":244},[8159],{"type":46,"value":627},{"type":40,"tag":231,"props":8161,"children":8162},{"style":244},[8163],{"type":46,"value":728},{"type":40,"tag":231,"props":8165,"children":8166},{"style":255},[8167],{"type":46,"value":649},{"type":40,"tag":231,"props":8169,"children":8170},{"style":363},[8171],{"type":46,"value":670},{"type":40,"tag":231,"props":8173,"children":8174},{"style":244},[8175],{"type":46,"value":284},{"type":40,"tag":231,"props":8177,"children":8178},{"class":233,"line":543},[8179],{"type":40,"tag":231,"props":8180,"children":8181},{"emptyLinePlaceholder":333},[8182],{"type":46,"value":336},{"type":40,"tag":231,"props":8184,"children":8185},{"class":233,"line":588},[8186,8190,8195,8199,8203,8207,8211,8216,8220,8225,8229,8233,8237,8241,8246,8250,8254],{"type":40,"tag":231,"props":8187,"children":8188},{"style":342},[8189],{"type":46,"value":766},{"type":40,"tag":231,"props":8191,"children":8192},{"style":255},[8193],{"type":46,"value":8194}," service",{"type":40,"tag":231,"props":8196,"children":8197},{"style":244},[8198],{"type":46,"value":776},{"type":40,"tag":231,"props":8200,"children":8201},{"style":244},[8202],{"type":46,"value":781},{"type":40,"tag":231,"props":8204,"children":8205},{"style":255},[8206],{"type":46,"value":786},{"type":40,"tag":231,"props":8208,"children":8209},{"style":244},[8210],{"type":46,"value":381},{"type":40,"tag":231,"props":8212,"children":8213},{"style":255},[8214],{"type":46,"value":8215},"ecs",{"type":40,"tag":231,"props":8217,"children":8218},{"style":244},[8219],{"type":46,"value":381},{"type":40,"tag":231,"props":8221,"children":8222},{"style":802},[8223],{"type":46,"value":8224},"Service",{"type":40,"tag":231,"props":8226,"children":8227},{"style":363},[8228],{"type":46,"value":607},{"type":40,"tag":231,"props":8230,"children":8231},{"style":244},[8232],{"type":46,"value":814},{"type":40,"tag":231,"props":8234,"children":8235},{"style":255},[8236],{"type":46,"value":613},{"type":40,"tag":231,"props":8238,"children":8239},{"style":244},[8240],{"type":46,"value":823},{"type":40,"tag":231,"props":8242,"children":8243},{"style":271},[8244],{"type":46,"value":8245},"-service",{"type":40,"tag":231,"props":8247,"children":8248},{"style":244},[8249],{"type":46,"value":833},{"type":40,"tag":231,"props":8251,"children":8252},{"style":244},[8253],{"type":46,"value":627},{"type":40,"tag":231,"props":8255,"children":8256},{"style":244},[8257],{"type":46,"value":356},{"type":40,"tag":231,"props":8259,"children":8260},{"class":233,"line":596},[8261],{"type":40,"tag":231,"props":8262,"children":8263},{"style":681},[8264],{"type":46,"value":8265},"            \u002F\u002F ...service config...\n",{"type":40,"tag":231,"props":8267,"children":8268},{"class":233,"line":677},[8269,8273,8277,8281,8285,8289,8293,8297],{"type":40,"tag":231,"props":8270,"children":8271},{"style":244},[8272],{"type":46,"value":1118},{"type":40,"tag":231,"props":8274,"children":8275},{"style":244},[8276],{"type":46,"value":846},{"type":40,"tag":231,"props":8278,"children":8279},{"style":363},[8280],{"type":46,"value":851},{"type":40,"tag":231,"props":8282,"children":8283},{"style":244},[8284],{"type":46,"value":515},{"type":40,"tag":231,"props":8286,"children":8287},{"style":244},[8288],{"type":46,"value":860},{"type":40,"tag":231,"props":8290,"children":8291},{"style":244},[8292],{"type":46,"value":865},{"type":40,"tag":231,"props":8294,"children":8295},{"style":363},[8296],{"type":46,"value":670},{"type":40,"tag":231,"props":8298,"children":8299},{"style":244},[8300],{"type":46,"value":284},{"type":40,"tag":231,"props":8302,"children":8303},{"class":233,"line":687},[8304],{"type":40,"tag":231,"props":8305,"children":8306},{"emptyLinePlaceholder":333},[8307],{"type":46,"value":336},{"type":40,"tag":231,"props":8309,"children":8310},{"class":233,"line":743},[8311],{"type":40,"tag":231,"props":8312,"children":8313},{"style":681},[8314],{"type":46,"value":8315},"        \u002F\u002F Only create alarm infrastructure when monitoring is enabled\n",{"type":40,"tag":231,"props":8317,"children":8318},{"class":233,"line":751},[8319,8323,8327,8331,8335,8340,8344],{"type":40,"tag":231,"props":8320,"children":8321},{"style":238},[8322],{"type":46,"value":6939},{"type":40,"tag":231,"props":8324,"children":8325},{"style":363},[8326],{"type":46,"value":4173},{"type":40,"tag":231,"props":8328,"children":8329},{"style":255},[8330],{"type":46,"value":6118},{"type":40,"tag":231,"props":8332,"children":8333},{"style":244},[8334],{"type":46,"value":381},{"type":40,"tag":231,"props":8336,"children":8337},{"style":255},[8338],{"type":46,"value":8339},"enableMonitoring",{"type":40,"tag":231,"props":8341,"children":8342},{"style":363},[8343],{"type":46,"value":6969},{"type":40,"tag":231,"props":8345,"children":8346},{"style":244},[8347],{"type":46,"value":1270},{"type":40,"tag":231,"props":8349,"children":8350},{"class":233,"line":760},[8351,8356,8361,8365,8369,8373,8377,8382,8386,8391,8395,8399,8403,8407,8412,8416,8420,8424,8428,8432,8436,8440,8444,8448],{"type":40,"tag":231,"props":8352,"children":8353},{"style":342},[8354],{"type":46,"value":8355},"            const",{"type":40,"tag":231,"props":8357,"children":8358},{"style":255},[8359],{"type":46,"value":8360}," topic",{"type":40,"tag":231,"props":8362,"children":8363},{"style":244},[8364],{"type":46,"value":776},{"type":40,"tag":231,"props":8366,"children":8367},{"style":244},[8368],{"type":46,"value":781},{"type":40,"tag":231,"props":8370,"children":8371},{"style":255},[8372],{"type":46,"value":786},{"type":40,"tag":231,"props":8374,"children":8375},{"style":244},[8376],{"type":46,"value":381},{"type":40,"tag":231,"props":8378,"children":8379},{"style":255},[8380],{"type":46,"value":8381},"sns",{"type":40,"tag":231,"props":8383,"children":8384},{"style":244},[8385],{"type":46,"value":381},{"type":40,"tag":231,"props":8387,"children":8388},{"style":802},[8389],{"type":46,"value":8390},"Topic",{"type":40,"tag":231,"props":8392,"children":8393},{"style":363},[8394],{"type":46,"value":607},{"type":40,"tag":231,"props":8396,"children":8397},{"style":244},[8398],{"type":46,"value":814},{"type":40,"tag":231,"props":8400,"children":8401},{"style":255},[8402],{"type":46,"value":613},{"type":40,"tag":231,"props":8404,"children":8405},{"style":244},[8406],{"type":46,"value":823},{"type":40,"tag":231,"props":8408,"children":8409},{"style":271},[8410],{"type":46,"value":8411},"-alerts",{"type":40,"tag":231,"props":8413,"children":8414},{"style":244},[8415],{"type":46,"value":833},{"type":40,"tag":231,"props":8417,"children":8418},{"style":244},[8419],{"type":46,"value":627},{"type":40,"tag":231,"props":8421,"children":8422},{"style":244},[8423],{"type":46,"value":728},{"type":40,"tag":231,"props":8425,"children":8426},{"style":244},[8427],{"type":46,"value":846},{"type":40,"tag":231,"props":8429,"children":8430},{"style":363},[8431],{"type":46,"value":851},{"type":40,"tag":231,"props":8433,"children":8434},{"style":244},[8435],{"type":46,"value":515},{"type":40,"tag":231,"props":8437,"children":8438},{"style":244},[8439],{"type":46,"value":860},{"type":40,"tag":231,"props":8441,"children":8442},{"style":244},[8443],{"type":46,"value":865},{"type":40,"tag":231,"props":8445,"children":8446},{"style":363},[8447],{"type":46,"value":670},{"type":40,"tag":231,"props":8449,"children":8450},{"style":244},[8451],{"type":46,"value":284},{"type":40,"tag":231,"props":8453,"children":8454},{"class":233,"line":876},[8455],{"type":40,"tag":231,"props":8456,"children":8457},{"emptyLinePlaceholder":333},[8458],{"type":46,"value":336},{"type":40,"tag":231,"props":8460,"children":8461},{"class":233,"line":884},[8462,8467,8471,8475,8479,8484,8488],{"type":40,"tag":231,"props":8463,"children":8464},{"style":238},[8465],{"type":46,"value":8466},"            if",{"type":40,"tag":231,"props":8468,"children":8469},{"style":363},[8470],{"type":46,"value":4173},{"type":40,"tag":231,"props":8472,"children":8473},{"style":255},[8474],{"type":46,"value":6118},{"type":40,"tag":231,"props":8476,"children":8477},{"style":244},[8478],{"type":46,"value":381},{"type":40,"tag":231,"props":8480,"children":8481},{"style":255},[8482],{"type":46,"value":8483},"alarmEmail",{"type":40,"tag":231,"props":8485,"children":8486},{"style":363},[8487],{"type":46,"value":6969},{"type":40,"tag":231,"props":8489,"children":8490},{"style":244},[8491],{"type":46,"value":1270},{"type":40,"tag":231,"props":8493,"children":8494},{"class":233,"line":959},[8495,8500,8504,8508,8512,8516,8521,8525,8529,8533,8537,8542,8546,8550],{"type":40,"tag":231,"props":8496,"children":8497},{"style":244},[8498],{"type":46,"value":8499},"                new",{"type":40,"tag":231,"props":8501,"children":8502},{"style":255},[8503],{"type":46,"value":786},{"type":40,"tag":231,"props":8505,"children":8506},{"style":244},[8507],{"type":46,"value":381},{"type":40,"tag":231,"props":8509,"children":8510},{"style":255},[8511],{"type":46,"value":8381},{"type":40,"tag":231,"props":8513,"children":8514},{"style":244},[8515],{"type":46,"value":381},{"type":40,"tag":231,"props":8517,"children":8518},{"style":802},[8519],{"type":46,"value":8520},"TopicSubscription",{"type":40,"tag":231,"props":8522,"children":8523},{"style":363},[8524],{"type":46,"value":607},{"type":40,"tag":231,"props":8526,"children":8527},{"style":244},[8528],{"type":46,"value":814},{"type":40,"tag":231,"props":8530,"children":8531},{"style":255},[8532],{"type":46,"value":613},{"type":40,"tag":231,"props":8534,"children":8535},{"style":244},[8536],{"type":46,"value":823},{"type":40,"tag":231,"props":8538,"children":8539},{"style":271},[8540],{"type":46,"value":8541},"-alert-email",{"type":40,"tag":231,"props":8543,"children":8544},{"style":244},[8545],{"type":46,"value":833},{"type":40,"tag":231,"props":8547,"children":8548},{"style":244},[8549],{"type":46,"value":627},{"type":40,"tag":231,"props":8551,"children":8552},{"style":244},[8553],{"type":46,"value":356},{"type":40,"tag":231,"props":8555,"children":8556},{"class":233,"line":990},[8557,8562,8566,8570,8574,8578],{"type":40,"tag":231,"props":8558,"children":8559},{"style":363},[8560],{"type":46,"value":8561},"                    topic",{"type":40,"tag":231,"props":8563,"children":8564},{"style":244},[8565],{"type":46,"value":515},{"type":40,"tag":231,"props":8567,"children":8568},{"style":255},[8569],{"type":46,"value":8360},{"type":40,"tag":231,"props":8571,"children":8572},{"style":244},[8573],{"type":46,"value":381},{"type":40,"tag":231,"props":8575,"children":8576},{"style":255},[8577],{"type":46,"value":7726},{"type":40,"tag":231,"props":8579,"children":8580},{"style":244},[8581],{"type":46,"value":987},{"type":40,"tag":231,"props":8583,"children":8584},{"class":233,"line":1052},[8585,8590,8594,8598,8603,8607],{"type":40,"tag":231,"props":8586,"children":8587},{"style":363},[8588],{"type":46,"value":8589},"                    protocol",{"type":40,"tag":231,"props":8591,"children":8592},{"style":244},[8593],{"type":46,"value":515},{"type":40,"tag":231,"props":8595,"children":8596},{"style":244},[8597],{"type":46,"value":268},{"type":40,"tag":231,"props":8599,"children":8600},{"style":271},[8601],{"type":46,"value":8602},"email",{"type":40,"tag":231,"props":8604,"children":8605},{"style":244},[8606],{"type":46,"value":279},{"type":40,"tag":231,"props":8608,"children":8609},{"style":244},[8610],{"type":46,"value":987},{"type":40,"tag":231,"props":8612,"children":8613},{"class":233,"line":1112},[8614,8619,8623,8627,8631,8635],{"type":40,"tag":231,"props":8615,"children":8616},{"style":363},[8617],{"type":46,"value":8618},"                    endpoint",{"type":40,"tag":231,"props":8620,"children":8621},{"style":244},[8622],{"type":46,"value":515},{"type":40,"tag":231,"props":8624,"children":8625},{"style":255},[8626],{"type":46,"value":632},{"type":40,"tag":231,"props":8628,"children":8629},{"style":244},[8630],{"type":46,"value":381},{"type":40,"tag":231,"props":8632,"children":8633},{"style":255},[8634],{"type":46,"value":8483},{"type":40,"tag":231,"props":8636,"children":8637},{"style":244},[8638],{"type":46,"value":987},{"type":40,"tag":231,"props":8640,"children":8641},{"class":233,"line":1149},[8642,8647,8651,8655,8659,8663,8667,8671],{"type":40,"tag":231,"props":8643,"children":8644},{"style":244},[8645],{"type":46,"value":8646},"                },",{"type":40,"tag":231,"props":8648,"children":8649},{"style":244},[8650],{"type":46,"value":846},{"type":40,"tag":231,"props":8652,"children":8653},{"style":363},[8654],{"type":46,"value":851},{"type":40,"tag":231,"props":8656,"children":8657},{"style":244},[8658],{"type":46,"value":515},{"type":40,"tag":231,"props":8660,"children":8661},{"style":244},[8662],{"type":46,"value":860},{"type":40,"tag":231,"props":8664,"children":8665},{"style":244},[8666],{"type":46,"value":865},{"type":40,"tag":231,"props":8668,"children":8669},{"style":363},[8670],{"type":46,"value":670},{"type":40,"tag":231,"props":8672,"children":8673},{"style":244},[8674],{"type":46,"value":284},{"type":40,"tag":231,"props":8676,"children":8677},{"class":233,"line":1157},[8678],{"type":40,"tag":231,"props":8679,"children":8680},{"style":244},[8681],{"type":46,"value":8682},"            }\n",{"type":40,"tag":231,"props":8684,"children":8685},{"class":233,"line":1166},[8686],{"type":40,"tag":231,"props":8687,"children":8688},{"emptyLinePlaceholder":333},[8689],{"type":46,"value":336},{"type":40,"tag":231,"props":8691,"children":8692},{"class":233,"line":1200},[8693,8697,8701,8705,8710,8714,8719,8723,8727,8731,8735,8740,8744,8748],{"type":40,"tag":231,"props":8694,"children":8695},{"style":244},[8696],{"type":46,"value":6981},{"type":40,"tag":231,"props":8698,"children":8699},{"style":255},[8700],{"type":46,"value":786},{"type":40,"tag":231,"props":8702,"children":8703},{"style":244},[8704],{"type":46,"value":381},{"type":40,"tag":231,"props":8706,"children":8707},{"style":255},[8708],{"type":46,"value":8709},"cloudwatch",{"type":40,"tag":231,"props":8711,"children":8712},{"style":244},[8713],{"type":46,"value":381},{"type":40,"tag":231,"props":8715,"children":8716},{"style":802},[8717],{"type":46,"value":8718},"MetricAlarm",{"type":40,"tag":231,"props":8720,"children":8721},{"style":363},[8722],{"type":46,"value":607},{"type":40,"tag":231,"props":8724,"children":8725},{"style":244},[8726],{"type":46,"value":814},{"type":40,"tag":231,"props":8728,"children":8729},{"style":255},[8730],{"type":46,"value":613},{"type":40,"tag":231,"props":8732,"children":8733},{"style":244},[8734],{"type":46,"value":823},{"type":40,"tag":231,"props":8736,"children":8737},{"style":271},[8738],{"type":46,"value":8739},"-cpu-alarm",{"type":40,"tag":231,"props":8741,"children":8742},{"style":244},[8743],{"type":46,"value":833},{"type":40,"tag":231,"props":8745,"children":8746},{"style":244},[8747],{"type":46,"value":627},{"type":40,"tag":231,"props":8749,"children":8750},{"style":244},[8751],{"type":46,"value":356},{"type":40,"tag":231,"props":8753,"children":8754},{"class":233,"line":1234},[8755],{"type":40,"tag":231,"props":8756,"children":8757},{"style":681},[8758],{"type":46,"value":8759},"                \u002F\u002F ...alarm config referencing service...\n",{"type":40,"tag":231,"props":8761,"children":8762},{"class":233,"line":1242},[8763,8768,8772,8776,8781,8785,8789,8793],{"type":40,"tag":231,"props":8764,"children":8765},{"style":363},[8766],{"type":46,"value":8767},"                alarmActions",{"type":40,"tag":231,"props":8769,"children":8770},{"style":244},[8771],{"type":46,"value":515},{"type":40,"tag":231,"props":8773,"children":8774},{"style":363},[8775],{"type":46,"value":7308},{"type":40,"tag":231,"props":8777,"children":8778},{"style":255},[8779],{"type":46,"value":8780},"topic",{"type":40,"tag":231,"props":8782,"children":8783},{"style":244},[8784],{"type":46,"value":381},{"type":40,"tag":231,"props":8786,"children":8787},{"style":255},[8788],{"type":46,"value":7726},{"type":40,"tag":231,"props":8790,"children":8791},{"style":363},[8792],{"type":46,"value":7360},{"type":40,"tag":231,"props":8794,"children":8795},{"style":244},[8796],{"type":46,"value":987},{"type":40,"tag":231,"props":8798,"children":8799},{"class":233,"line":1251},[8800,8804,8808,8812,8816,8820,8824,8828],{"type":40,"tag":231,"props":8801,"children":8802},{"style":244},[8803],{"type":46,"value":7113},{"type":40,"tag":231,"props":8805,"children":8806},{"style":244},[8807],{"type":46,"value":846},{"type":40,"tag":231,"props":8809,"children":8810},{"style":363},[8811],{"type":46,"value":851},{"type":40,"tag":231,"props":8813,"children":8814},{"style":244},[8815],{"type":46,"value":515},{"type":40,"tag":231,"props":8817,"children":8818},{"style":244},[8819],{"type":46,"value":860},{"type":40,"tag":231,"props":8821,"children":8822},{"style":244},[8823],{"type":46,"value":865},{"type":40,"tag":231,"props":8825,"children":8826},{"style":363},[8827],{"type":46,"value":670},{"type":40,"tag":231,"props":8829,"children":8830},{"style":244},[8831],{"type":46,"value":284},{"type":40,"tag":231,"props":8833,"children":8834},{"class":233,"line":1273},[8835],{"type":40,"tag":231,"props":8836,"children":8837},{"style":244},[8838],{"type":46,"value":7149},{"type":40,"tag":231,"props":8840,"children":8841},{"class":233,"line":1299},[8842],{"type":40,"tag":231,"props":8843,"children":8844},{"emptyLinePlaceholder":333},[8845],{"type":46,"value":336},{"type":40,"tag":231,"props":8847,"children":8848},{"class":233,"line":1324},[8849,8853,8857,8861,8866,8870],{"type":40,"tag":231,"props":8850,"children":8851},{"style":244},[8852],{"type":46,"value":1172},{"type":40,"tag":231,"props":8854,"children":8855},{"style":802},[8856],{"type":46,"value":1261},{"type":40,"tag":231,"props":8858,"children":8859},{"style":363},[8860],{"type":46,"value":607},{"type":40,"tag":231,"props":8862,"children":8863},{"style":244},[8864],{"type":46,"value":8865},"{}",{"type":40,"tag":231,"props":8867,"children":8868},{"style":363},[8869],{"type":46,"value":670},{"type":40,"tag":231,"props":8871,"children":8872},{"style":244},[8873],{"type":46,"value":284},{"type":40,"tag":231,"props":8875,"children":8876},{"class":233,"line":1341},[8877],{"type":40,"tag":231,"props":8878,"children":8879},{"style":244},[8880],{"type":46,"value":1347},{"type":40,"tag":231,"props":8882,"children":8883},{"class":233,"line":1350},[8884],{"type":40,"tag":231,"props":8885,"children":8886},{"style":244},[8887],{"type":46,"value":447},{"type":40,"tag":214,"props":8889,"children":8891},{"id":8890},"composition",[8892],{"type":46,"value":8893},"Composition",{"type":40,"tag":49,"props":8895,"children":8896},{},[8897],{"type":46,"value":8898},"Build higher-level components from lower-level ones. Each level manages a single concern.",{"type":40,"tag":221,"props":8900,"children":8902},{"className":223,"code":8901,"language":216,"meta":225,"style":225},"\u002F\u002F Lower-level component\nclass VpcNetwork extends pulumi.ComponentResource {\n    public readonly vpcId: pulumi.Output\u003Cstring>;\n    public readonly publicSubnetIds: pulumi.Output\u003Cstring>[];\n    public readonly privateSubnetIds: pulumi.Output\u003Cstring>[];\n\n    constructor(name: string, args: VpcNetworkArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:VpcNetwork\", name, {}, opts);\n        \u002F\u002F ...create VPC, subnets, route tables...\n        this.registerOutputs({ vpcId: this.vpcId });\n    }\n}\n\n\u002F\u002F Higher-level component that uses VpcNetwork\nclass Platform extends pulumi.ComponentResource {\n    public readonly kubeconfig: pulumi.Output\u003Cstring>;\n\n    constructor(name: string, args: PlatformArgs, opts?: pulumi.ComponentResourceOptions) {\n        super(\"myorg:index:Platform\", name, {}, opts);\n\n        \u002F\u002F Compose lower-level components\n        const network = new VpcNetwork(`${name}-network`, {\n            cidrBlock: args.cidrBlock,\n        }, { parent: this });\n\n        const cluster = new aws.eks.Cluster(`${name}-cluster`, {\n            vpcConfig: {\n                subnetIds: network.privateSubnetIds,\n            },\n        }, { parent: this });\n\n        this.kubeconfig = cluster.kubeconfig;\n        this.registerOutputs({ kubeconfig: this.kubeconfig });\n    }\n}\n",[8903],{"type":40,"tag":55,"props":8904,"children":8905},{"__ignoreMap":225},[8906,8914,8946,8990,9043,9095,9102,9174,9226,9234,9282,9289,9296,9303,9311,9343,9387,9394,9466,9518,9525,9533,9590,9619,9654,9661,9733,9749,9778,9786,9821,9828,9860,9907,9914],{"type":40,"tag":231,"props":8907,"children":8908},{"class":233,"line":234},[8909],{"type":40,"tag":231,"props":8910,"children":8911},{"style":681},[8912],{"type":46,"value":8913},"\u002F\u002F Lower-level component\n",{"type":40,"tag":231,"props":8915,"children":8916},{"class":233,"line":287},[8917,8921,8926,8930,8934,8938,8942],{"type":40,"tag":231,"props":8918,"children":8919},{"style":342},[8920],{"type":46,"value":464},{"type":40,"tag":231,"props":8922,"children":8923},{"style":348},[8924],{"type":46,"value":8925}," VpcNetwork",{"type":40,"tag":231,"props":8927,"children":8928},{"style":342},[8929],{"type":46,"value":474},{"type":40,"tag":231,"props":8931,"children":8932},{"style":348},[8933],{"type":46,"value":376},{"type":40,"tag":231,"props":8935,"children":8936},{"style":244},[8937],{"type":46,"value":381},{"type":40,"tag":231,"props":8939,"children":8940},{"style":348},[8941],{"type":46,"value":487},{"type":40,"tag":231,"props":8943,"children":8944},{"style":244},[8945],{"type":46,"value":356},{"type":40,"tag":231,"props":8947,"children":8948},{"class":233,"line":329},[8949,8953,8957,8962,8966,8970,8974,8978,8982,8986],{"type":40,"tag":231,"props":8950,"children":8951},{"style":342},[8952],{"type":46,"value":500},{"type":40,"tag":231,"props":8954,"children":8955},{"style":342},[8956],{"type":46,"value":505},{"type":40,"tag":231,"props":8958,"children":8959},{"style":363},[8960],{"type":46,"value":8961}," vpcId",{"type":40,"tag":231,"props":8963,"children":8964},{"style":244},[8965],{"type":46,"value":515},{"type":40,"tag":231,"props":8967,"children":8968},{"style":348},[8969],{"type":46,"value":376},{"type":40,"tag":231,"props":8971,"children":8972},{"style":244},[8973],{"type":46,"value":381},{"type":40,"tag":231,"props":8975,"children":8976},{"style":348},[8977],{"type":46,"value":528},{"type":40,"tag":231,"props":8979,"children":8980},{"style":244},[8981],{"type":46,"value":391},{"type":40,"tag":231,"props":8983,"children":8984},{"style":348},[8985],{"type":46,"value":396},{"type":40,"tag":231,"props":8987,"children":8988},{"style":244},[8989],{"type":46,"value":401},{"type":40,"tag":231,"props":8991,"children":8992},{"class":233,"line":27},[8993,8997,9001,9006,9010,9014,9018,9022,9026,9030,9034,9039],{"type":40,"tag":231,"props":8994,"children":8995},{"style":342},[8996],{"type":46,"value":500},{"type":40,"tag":231,"props":8998,"children":8999},{"style":342},[9000],{"type":46,"value":505},{"type":40,"tag":231,"props":9002,"children":9003},{"style":363},[9004],{"type":46,"value":9005}," publicSubnetIds",{"type":40,"tag":231,"props":9007,"children":9008},{"style":244},[9009],{"type":46,"value":515},{"type":40,"tag":231,"props":9011,"children":9012},{"style":348},[9013],{"type":46,"value":376},{"type":40,"tag":231,"props":9015,"children":9016},{"style":244},[9017],{"type":46,"value":381},{"type":40,"tag":231,"props":9019,"children":9020},{"style":348},[9021],{"type":46,"value":528},{"type":40,"tag":231,"props":9023,"children":9024},{"style":244},[9025],{"type":46,"value":391},{"type":40,"tag":231,"props":9027,"children":9028},{"style":348},[9029],{"type":46,"value":396},{"type":40,"tag":231,"props":9031,"children":9032},{"style":244},[9033],{"type":46,"value":3635},{"type":40,"tag":231,"props":9035,"children":9036},{"style":255},[9037],{"type":46,"value":9038},"[]",{"type":40,"tag":231,"props":9040,"children":9041},{"style":244},[9042],{"type":46,"value":284},{"type":40,"tag":231,"props":9044,"children":9045},{"class":233,"line":359},[9046,9050,9054,9059,9063,9067,9071,9075,9079,9083,9087,9091],{"type":40,"tag":231,"props":9047,"children":9048},{"style":342},[9049],{"type":46,"value":500},{"type":40,"tag":231,"props":9051,"children":9052},{"style":342},[9053],{"type":46,"value":505},{"type":40,"tag":231,"props":9055,"children":9056},{"style":363},[9057],{"type":46,"value":9058}," privateSubnetIds",{"type":40,"tag":231,"props":9060,"children":9061},{"style":244},[9062],{"type":46,"value":515},{"type":40,"tag":231,"props":9064,"children":9065},{"style":348},[9066],{"type":46,"value":376},{"type":40,"tag":231,"props":9068,"children":9069},{"style":244},[9070],{"type":46,"value":381},{"type":40,"tag":231,"props":9072,"children":9073},{"style":348},[9074],{"type":46,"value":528},{"type":40,"tag":231,"props":9076,"children":9077},{"style":244},[9078],{"type":46,"value":391},{"type":40,"tag":231,"props":9080,"children":9081},{"style":348},[9082],{"type":46,"value":396},{"type":40,"tag":231,"props":9084,"children":9085},{"style":244},[9086],{"type":46,"value":3635},{"type":40,"tag":231,"props":9088,"children":9089},{"style":255},[9090],{"type":46,"value":9038},{"type":40,"tag":231,"props":9092,"children":9093},{"style":244},[9094],{"type":46,"value":284},{"type":40,"tag":231,"props":9096,"children":9097},{"class":233,"line":404},[9098],{"type":40,"tag":231,"props":9099,"children":9100},{"emptyLinePlaceholder":333},[9101],{"type":46,"value":336},{"type":40,"tag":231,"props":9103,"children":9104},{"class":233,"line":441},[9105,9109,9113,9117,9121,9125,9129,9133,9137,9142,9146,9150,9154,9158,9162,9166,9170],{"type":40,"tag":231,"props":9106,"children":9107},{"style":342},[9108],{"type":46,"value":602},{"type":40,"tag":231,"props":9110,"children":9111},{"style":244},[9112],{"type":46,"value":607},{"type":40,"tag":231,"props":9114,"children":9115},{"style":610},[9116],{"type":46,"value":613},{"type":40,"tag":231,"props":9118,"children":9119},{"style":244},[9120],{"type":46,"value":515},{"type":40,"tag":231,"props":9122,"children":9123},{"style":348},[9124],{"type":46,"value":622},{"type":40,"tag":231,"props":9126,"children":9127},{"style":244},[9128],{"type":46,"value":627},{"type":40,"tag":231,"props":9130,"children":9131},{"style":610},[9132],{"type":46,"value":632},{"type":40,"tag":231,"props":9134,"children":9135},{"style":244},[9136],{"type":46,"value":515},{"type":40,"tag":231,"props":9138,"children":9139},{"style":348},[9140],{"type":46,"value":9141}," VpcNetworkArgs",{"type":40,"tag":231,"props":9143,"children":9144},{"style":244},[9145],{"type":46,"value":627},{"type":40,"tag":231,"props":9147,"children":9148},{"style":610},[9149],{"type":46,"value":649},{"type":40,"tag":231,"props":9151,"children":9152},{"style":244},[9153],{"type":46,"value":371},{"type":40,"tag":231,"props":9155,"children":9156},{"style":348},[9157],{"type":46,"value":376},{"type":40,"tag":231,"props":9159,"children":9160},{"style":244},[9161],{"type":46,"value":381},{"type":40,"tag":231,"props":9163,"children":9164},{"style":348},[9165],{"type":46,"value":180},{"type":40,"tag":231,"props":9167,"children":9168},{"style":244},[9169],{"type":46,"value":670},{"type":40,"tag":231,"props":9171,"children":9172},{"style":244},[9173],{"type":46,"value":356},{"type":40,"tag":231,"props":9175,"children":9176},{"class":233,"line":450},[9177,9181,9185,9189,9194,9198,9202,9206,9210,9214,9218,9222],{"type":40,"tag":231,"props":9178,"children":9179},{"style":255},[9180],{"type":46,"value":693},{"type":40,"tag":231,"props":9182,"children":9183},{"style":363},[9184],{"type":46,"value":607},{"type":40,"tag":231,"props":9186,"children":9187},{"style":244},[9188],{"type":46,"value":279},{"type":40,"tag":231,"props":9190,"children":9191},{"style":271},[9192],{"type":46,"value":9193},"myorg:index:VpcNetwork",{"type":40,"tag":231,"props":9195,"children":9196},{"style":244},[9197],{"type":46,"value":279},{"type":40,"tag":231,"props":9199,"children":9200},{"style":244},[9201],{"type":46,"value":627},{"type":40,"tag":231,"props":9203,"children":9204},{"style":255},[9205],{"type":46,"value":719},{"type":40,"tag":231,"props":9207,"children":9208},{"style":244},[9209],{"type":46,"value":627},{"type":40,"tag":231,"props":9211,"children":9212},{"style":244},[9213],{"type":46,"value":728},{"type":40,"tag":231,"props":9215,"children":9216},{"style":255},[9217],{"type":46,"value":649},{"type":40,"tag":231,"props":9219,"children":9220},{"style":363},[9221],{"type":46,"value":670},{"type":40,"tag":231,"props":9223,"children":9224},{"style":244},[9225],{"type":46,"value":284},{"type":40,"tag":231,"props":9227,"children":9228},{"class":233,"line":458},[9229],{"type":40,"tag":231,"props":9230,"children":9231},{"style":681},[9232],{"type":46,"value":9233},"        \u002F\u002F ...create VPC, subnets, route tables...\n",{"type":40,"tag":231,"props":9235,"children":9236},{"class":233,"line":494},[9237,9241,9245,9249,9253,9257,9261,9265,9270,9274,9278],{"type":40,"tag":231,"props":9238,"children":9239},{"style":244},[9240],{"type":46,"value":1172},{"type":40,"tag":231,"props":9242,"children":9243},{"style":802},[9244],{"type":46,"value":1261},{"type":40,"tag":231,"props":9246,"children":9247},{"style":363},[9248],{"type":46,"value":607},{"type":40,"tag":231,"props":9250,"children":9251},{"style":244},[9252],{"type":46,"value":2784},{"type":40,"tag":231,"props":9254,"children":9255},{"style":363},[9256],{"type":46,"value":8961},{"type":40,"tag":231,"props":9258,"children":9259},{"style":244},[9260],{"type":46,"value":515},{"type":40,"tag":231,"props":9262,"children":9263},{"style":244},[9264],{"type":46,"value":1288},{"type":40,"tag":231,"props":9266,"children":9267},{"style":255},[9268],{"type":46,"value":9269},"vpcId",{"type":40,"tag":231,"props":9271,"children":9272},{"style":244},[9273],{"type":46,"value":865},{"type":40,"tag":231,"props":9275,"children":9276},{"style":363},[9277],{"type":46,"value":670},{"type":40,"tag":231,"props":9279,"children":9280},{"style":244},[9281],{"type":46,"value":284},{"type":40,"tag":231,"props":9283,"children":9284},{"class":233,"line":543},[9285],{"type":40,"tag":231,"props":9286,"children":9287},{"style":244},[9288],{"type":46,"value":1347},{"type":40,"tag":231,"props":9290,"children":9291},{"class":233,"line":588},[9292],{"type":40,"tag":231,"props":9293,"children":9294},{"style":244},[9295],{"type":46,"value":447},{"type":40,"tag":231,"props":9297,"children":9298},{"class":233,"line":596},[9299],{"type":40,"tag":231,"props":9300,"children":9301},{"emptyLinePlaceholder":333},[9302],{"type":46,"value":336},{"type":40,"tag":231,"props":9304,"children":9305},{"class":233,"line":677},[9306],{"type":40,"tag":231,"props":9307,"children":9308},{"style":681},[9309],{"type":46,"value":9310},"\u002F\u002F Higher-level component that uses VpcNetwork\n",{"type":40,"tag":231,"props":9312,"children":9313},{"class":233,"line":687},[9314,9318,9323,9327,9331,9335,9339],{"type":40,"tag":231,"props":9315,"children":9316},{"style":342},[9317],{"type":46,"value":464},{"type":40,"tag":231,"props":9319,"children":9320},{"style":348},[9321],{"type":46,"value":9322}," Platform",{"type":40,"tag":231,"props":9324,"children":9325},{"style":342},[9326],{"type":46,"value":474},{"type":40,"tag":231,"props":9328,"children":9329},{"style":348},[9330],{"type":46,"value":376},{"type":40,"tag":231,"props":9332,"children":9333},{"style":244},[9334],{"type":46,"value":381},{"type":40,"tag":231,"props":9336,"children":9337},{"style":348},[9338],{"type":46,"value":487},{"type":40,"tag":231,"props":9340,"children":9341},{"style":244},[9342],{"type":46,"value":356},{"type":40,"tag":231,"props":9344,"children":9345},{"class":233,"line":743},[9346,9350,9354,9359,9363,9367,9371,9375,9379,9383],{"type":40,"tag":231,"props":9347,"children":9348},{"style":342},[9349],{"type":46,"value":500},{"type":40,"tag":231,"props":9351,"children":9352},{"style":342},[9353],{"type":46,"value":505},{"type":40,"tag":231,"props":9355,"children":9356},{"style":363},[9357],{"type":46,"value":9358}," kubeconfig",{"type":40,"tag":231,"props":9360,"children":9361},{"style":244},[9362],{"type":46,"value":515},{"type":40,"tag":231,"props":9364,"children":9365},{"style":348},[9366],{"type":46,"value":376},{"type":40,"tag":231,"props":9368,"children":9369},{"style":244},[9370],{"type":46,"value":381},{"type":40,"tag":231,"props":9372,"children":9373},{"style":348},[9374],{"type":46,"value":528},{"type":40,"tag":231,"props":9376,"children":9377},{"style":244},[9378],{"type":46,"value":391},{"type":40,"tag":231,"props":9380,"children":9381},{"style":348},[9382],{"type":46,"value":396},{"type":40,"tag":231,"props":9384,"children":9385},{"style":244},[9386],{"type":46,"value":401},{"type":40,"tag":231,"props":9388,"children":9389},{"class":233,"line":751},[9390],{"type":40,"tag":231,"props":9391,"children":9392},{"emptyLinePlaceholder":333},[9393],{"type":46,"value":336},{"type":40,"tag":231,"props":9395,"children":9396},{"class":233,"line":760},[9397,9401,9405,9409,9413,9417,9421,9425,9429,9434,9438,9442,9446,9450,9454,9458,9462],{"type":40,"tag":231,"props":9398,"children":9399},{"style":342},[9400],{"type":46,"value":602},{"type":40,"tag":231,"props":9402,"children":9403},{"style":244},[9404],{"type":46,"value":607},{"type":40,"tag":231,"props":9406,"children":9407},{"style":610},[9408],{"type":46,"value":613},{"type":40,"tag":231,"props":9410,"children":9411},{"style":244},[9412],{"type":46,"value":515},{"type":40,"tag":231,"props":9414,"children":9415},{"style":348},[9416],{"type":46,"value":622},{"type":40,"tag":231,"props":9418,"children":9419},{"style":244},[9420],{"type":46,"value":627},{"type":40,"tag":231,"props":9422,"children":9423},{"style":610},[9424],{"type":46,"value":632},{"type":40,"tag":231,"props":9426,"children":9427},{"style":244},[9428],{"type":46,"value":515},{"type":40,"tag":231,"props":9430,"children":9431},{"style":348},[9432],{"type":46,"value":9433}," PlatformArgs",{"type":40,"tag":231,"props":9435,"children":9436},{"style":244},[9437],{"type":46,"value":627},{"type":40,"tag":231,"props":9439,"children":9440},{"style":610},[9441],{"type":46,"value":649},{"type":40,"tag":231,"props":9443,"children":9444},{"style":244},[9445],{"type":46,"value":371},{"type":40,"tag":231,"props":9447,"children":9448},{"style":348},[9449],{"type":46,"value":376},{"type":40,"tag":231,"props":9451,"children":9452},{"style":244},[9453],{"type":46,"value":381},{"type":40,"tag":231,"props":9455,"children":9456},{"style":348},[9457],{"type":46,"value":180},{"type":40,"tag":231,"props":9459,"children":9460},{"style":244},[9461],{"type":46,"value":670},{"type":40,"tag":231,"props":9463,"children":9464},{"style":244},[9465],{"type":46,"value":356},{"type":40,"tag":231,"props":9467,"children":9468},{"class":233,"line":876},[9469,9473,9477,9481,9486,9490,9494,9498,9502,9506,9510,9514],{"type":40,"tag":231,"props":9470,"children":9471},{"style":255},[9472],{"type":46,"value":693},{"type":40,"tag":231,"props":9474,"children":9475},{"style":363},[9476],{"type":46,"value":607},{"type":40,"tag":231,"props":9478,"children":9479},{"style":244},[9480],{"type":46,"value":279},{"type":40,"tag":231,"props":9482,"children":9483},{"style":271},[9484],{"type":46,"value":9485},"myorg:index:Platform",{"type":40,"tag":231,"props":9487,"children":9488},{"style":244},[9489],{"type":46,"value":279},{"type":40,"tag":231,"props":9491,"children":9492},{"style":244},[9493],{"type":46,"value":627},{"type":40,"tag":231,"props":9495,"children":9496},{"style":255},[9497],{"type":46,"value":719},{"type":40,"tag":231,"props":9499,"children":9500},{"style":244},[9501],{"type":46,"value":627},{"type":40,"tag":231,"props":9503,"children":9504},{"style":244},[9505],{"type":46,"value":728},{"type":40,"tag":231,"props":9507,"children":9508},{"style":255},[9509],{"type":46,"value":649},{"type":40,"tag":231,"props":9511,"children":9512},{"style":363},[9513],{"type":46,"value":670},{"type":40,"tag":231,"props":9515,"children":9516},{"style":244},[9517],{"type":46,"value":284},{"type":40,"tag":231,"props":9519,"children":9520},{"class":233,"line":884},[9521],{"type":40,"tag":231,"props":9522,"children":9523},{"emptyLinePlaceholder":333},[9524],{"type":46,"value":336},{"type":40,"tag":231,"props":9526,"children":9527},{"class":233,"line":959},[9528],{"type":40,"tag":231,"props":9529,"children":9530},{"style":681},[9531],{"type":46,"value":9532},"        \u002F\u002F Compose lower-level components\n",{"type":40,"tag":231,"props":9534,"children":9535},{"class":233,"line":990},[9536,9540,9545,9549,9553,9557,9561,9565,9569,9573,9578,9582,9586],{"type":40,"tag":231,"props":9537,"children":9538},{"style":342},[9539],{"type":46,"value":766},{"type":40,"tag":231,"props":9541,"children":9542},{"style":255},[9543],{"type":46,"value":9544}," network",{"type":40,"tag":231,"props":9546,"children":9547},{"style":244},[9548],{"type":46,"value":776},{"type":40,"tag":231,"props":9550,"children":9551},{"style":244},[9552],{"type":46,"value":781},{"type":40,"tag":231,"props":9554,"children":9555},{"style":802},[9556],{"type":46,"value":8925},{"type":40,"tag":231,"props":9558,"children":9559},{"style":363},[9560],{"type":46,"value":607},{"type":40,"tag":231,"props":9562,"children":9563},{"style":244},[9564],{"type":46,"value":814},{"type":40,"tag":231,"props":9566,"children":9567},{"style":255},[9568],{"type":46,"value":613},{"type":40,"tag":231,"props":9570,"children":9571},{"style":244},[9572],{"type":46,"value":823},{"type":40,"tag":231,"props":9574,"children":9575},{"style":271},[9576],{"type":46,"value":9577},"-network",{"type":40,"tag":231,"props":9579,"children":9580},{"style":244},[9581],{"type":46,"value":833},{"type":40,"tag":231,"props":9583,"children":9584},{"style":244},[9585],{"type":46,"value":627},{"type":40,"tag":231,"props":9587,"children":9588},{"style":244},[9589],{"type":46,"value":356},{"type":40,"tag":231,"props":9591,"children":9592},{"class":233,"line":1052},[9593,9598,9602,9606,9610,9615],{"type":40,"tag":231,"props":9594,"children":9595},{"style":363},[9596],{"type":46,"value":9597},"            cidrBlock",{"type":40,"tag":231,"props":9599,"children":9600},{"style":244},[9601],{"type":46,"value":515},{"type":40,"tag":231,"props":9603,"children":9604},{"style":255},[9605],{"type":46,"value":632},{"type":40,"tag":231,"props":9607,"children":9608},{"style":244},[9609],{"type":46,"value":381},{"type":40,"tag":231,"props":9611,"children":9612},{"style":255},[9613],{"type":46,"value":9614},"cidrBlock",{"type":40,"tag":231,"props":9616,"children":9617},{"style":244},[9618],{"type":46,"value":987},{"type":40,"tag":231,"props":9620,"children":9621},{"class":233,"line":1112},[9622,9626,9630,9634,9638,9642,9646,9650],{"type":40,"tag":231,"props":9623,"children":9624},{"style":244},[9625],{"type":46,"value":1118},{"type":40,"tag":231,"props":9627,"children":9628},{"style":244},[9629],{"type":46,"value":846},{"type":40,"tag":231,"props":9631,"children":9632},{"style":363},[9633],{"type":46,"value":851},{"type":40,"tag":231,"props":9635,"children":9636},{"style":244},[9637],{"type":46,"value":515},{"type":40,"tag":231,"props":9639,"children":9640},{"style":244},[9641],{"type":46,"value":860},{"type":40,"tag":231,"props":9643,"children":9644},{"style":244},[9645],{"type":46,"value":865},{"type":40,"tag":231,"props":9647,"children":9648},{"style":363},[9649],{"type":46,"value":670},{"type":40,"tag":231,"props":9651,"children":9652},{"style":244},[9653],{"type":46,"value":284},{"type":40,"tag":231,"props":9655,"children":9656},{"class":233,"line":1149},[9657],{"type":40,"tag":231,"props":9658,"children":9659},{"emptyLinePlaceholder":333},[9660],{"type":46,"value":336},{"type":40,"tag":231,"props":9662,"children":9663},{"class":233,"line":1157},[9664,9668,9672,9676,9680,9684,9688,9693,9697,9701,9705,9709,9713,9717,9721,9725,9729],{"type":40,"tag":231,"props":9665,"children":9666},{"style":342},[9667],{"type":46,"value":766},{"type":40,"tag":231,"props":9669,"children":9670},{"style":255},[9671],{"type":46,"value":4993},{"type":40,"tag":231,"props":9673,"children":9674},{"style":244},[9675],{"type":46,"value":776},{"type":40,"tag":231,"props":9677,"children":9678},{"style":244},[9679],{"type":46,"value":781},{"type":40,"tag":231,"props":9681,"children":9682},{"style":255},[9683],{"type":46,"value":786},{"type":40,"tag":231,"props":9685,"children":9686},{"style":244},[9687],{"type":46,"value":381},{"type":40,"tag":231,"props":9689,"children":9690},{"style":255},[9691],{"type":46,"value":9692},"eks",{"type":40,"tag":231,"props":9694,"children":9695},{"style":244},[9696],{"type":46,"value":381},{"type":40,"tag":231,"props":9698,"children":9699},{"style":802},[9700],{"type":46,"value":5019},{"type":40,"tag":231,"props":9702,"children":9703},{"style":363},[9704],{"type":46,"value":607},{"type":40,"tag":231,"props":9706,"children":9707},{"style":244},[9708],{"type":46,"value":814},{"type":40,"tag":231,"props":9710,"children":9711},{"style":255},[9712],{"type":46,"value":613},{"type":40,"tag":231,"props":9714,"children":9715},{"style":244},[9716],{"type":46,"value":823},{"type":40,"tag":231,"props":9718,"children":9719},{"style":271},[9720],{"type":46,"value":5757},{"type":40,"tag":231,"props":9722,"children":9723},{"style":244},[9724],{"type":46,"value":833},{"type":40,"tag":231,"props":9726,"children":9727},{"style":244},[9728],{"type":46,"value":627},{"type":40,"tag":231,"props":9730,"children":9731},{"style":244},[9732],{"type":46,"value":356},{"type":40,"tag":231,"props":9734,"children":9735},{"class":233,"line":1166},[9736,9741,9745],{"type":40,"tag":231,"props":9737,"children":9738},{"style":363},[9739],{"type":46,"value":9740},"            vpcConfig",{"type":40,"tag":231,"props":9742,"children":9743},{"style":244},[9744],{"type":46,"value":515},{"type":40,"tag":231,"props":9746,"children":9747},{"style":244},[9748],{"type":46,"value":356},{"type":40,"tag":231,"props":9750,"children":9751},{"class":233,"line":1200},[9752,9757,9761,9765,9769,9774],{"type":40,"tag":231,"props":9753,"children":9754},{"style":363},[9755],{"type":46,"value":9756},"                subnetIds",{"type":40,"tag":231,"props":9758,"children":9759},{"style":244},[9760],{"type":46,"value":515},{"type":40,"tag":231,"props":9762,"children":9763},{"style":255},[9764],{"type":46,"value":9544},{"type":40,"tag":231,"props":9766,"children":9767},{"style":244},[9768],{"type":46,"value":381},{"type":40,"tag":231,"props":9770,"children":9771},{"style":255},[9772],{"type":46,"value":9773},"privateSubnetIds",{"type":40,"tag":231,"props":9775,"children":9776},{"style":244},[9777],{"type":46,"value":987},{"type":40,"tag":231,"props":9779,"children":9780},{"class":233,"line":1234},[9781],{"type":40,"tag":231,"props":9782,"children":9783},{"style":244},[9784],{"type":46,"value":9785},"            },\n",{"type":40,"tag":231,"props":9787,"children":9788},{"class":233,"line":1242},[9789,9793,9797,9801,9805,9809,9813,9817],{"type":40,"tag":231,"props":9790,"children":9791},{"style":244},[9792],{"type":46,"value":1118},{"type":40,"tag":231,"props":9794,"children":9795},{"style":244},[9796],{"type":46,"value":846},{"type":40,"tag":231,"props":9798,"children":9799},{"style":363},[9800],{"type":46,"value":851},{"type":40,"tag":231,"props":9802,"children":9803},{"style":244},[9804],{"type":46,"value":515},{"type":40,"tag":231,"props":9806,"children":9807},{"style":244},[9808],{"type":46,"value":860},{"type":40,"tag":231,"props":9810,"children":9811},{"style":244},[9812],{"type":46,"value":865},{"type":40,"tag":231,"props":9814,"children":9815},{"style":363},[9816],{"type":46,"value":670},{"type":40,"tag":231,"props":9818,"children":9819},{"style":244},[9820],{"type":46,"value":284},{"type":40,"tag":231,"props":9822,"children":9823},{"class":233,"line":1251},[9824],{"type":40,"tag":231,"props":9825,"children":9826},{"emptyLinePlaceholder":333},[9827],{"type":46,"value":336},{"type":40,"tag":231,"props":9829,"children":9830},{"class":233,"line":1273},[9831,9835,9840,9844,9848,9852,9856],{"type":40,"tag":231,"props":9832,"children":9833},{"style":244},[9834],{"type":46,"value":1172},{"type":40,"tag":231,"props":9836,"children":9837},{"style":255},[9838],{"type":46,"value":9839},"kubeconfig",{"type":40,"tag":231,"props":9841,"children":9842},{"style":244},[9843],{"type":46,"value":776},{"type":40,"tag":231,"props":9845,"children":9846},{"style":255},[9847],{"type":46,"value":4993},{"type":40,"tag":231,"props":9849,"children":9850},{"style":244},[9851],{"type":46,"value":381},{"type":40,"tag":231,"props":9853,"children":9854},{"style":255},[9855],{"type":46,"value":9839},{"type":40,"tag":231,"props":9857,"children":9858},{"style":244},[9859],{"type":46,"value":284},{"type":40,"tag":231,"props":9861,"children":9862},{"class":233,"line":1299},[9863,9867,9871,9875,9879,9883,9887,9891,9895,9899,9903],{"type":40,"tag":231,"props":9864,"children":9865},{"style":244},[9866],{"type":46,"value":1172},{"type":40,"tag":231,"props":9868,"children":9869},{"style":802},[9870],{"type":46,"value":1261},{"type":40,"tag":231,"props":9872,"children":9873},{"style":363},[9874],{"type":46,"value":607},{"type":40,"tag":231,"props":9876,"children":9877},{"style":244},[9878],{"type":46,"value":2784},{"type":40,"tag":231,"props":9880,"children":9881},{"style":363},[9882],{"type":46,"value":9358},{"type":40,"tag":231,"props":9884,"children":9885},{"style":244},[9886],{"type":46,"value":515},{"type":40,"tag":231,"props":9888,"children":9889},{"style":244},[9890],{"type":46,"value":1288},{"type":40,"tag":231,"props":9892,"children":9893},{"style":255},[9894],{"type":46,"value":9839},{"type":40,"tag":231,"props":9896,"children":9897},{"style":244},[9898],{"type":46,"value":865},{"type":40,"tag":231,"props":9900,"children":9901},{"style":363},[9902],{"type":46,"value":670},{"type":40,"tag":231,"props":9904,"children":9905},{"style":244},[9906],{"type":46,"value":284},{"type":40,"tag":231,"props":9908,"children":9909},{"class":233,"line":1324},[9910],{"type":40,"tag":231,"props":9911,"children":9912},{"style":244},[9913],{"type":46,"value":1347},{"type":40,"tag":231,"props":9915,"children":9916},{"class":233,"line":1341},[9917],{"type":40,"tag":231,"props":9918,"children":9919},{"style":244},[9920],{"type":46,"value":447},{"type":40,"tag":214,"props":9922,"children":9924},{"id":9923},"provider-passthrough",[9925],{"type":46,"value":9926},"Provider Passthrough",{"type":40,"tag":49,"props":9928,"children":9929},{},[9930,9932,9937],{"type":46,"value":9931},"Accept explicit providers for multi-region or multi-account deployments. ",{"type":40,"tag":55,"props":9933,"children":9935},{"className":9934},[],[9936],{"type":46,"value":180},{"type":46,"value":9938}," carries provider configuration to children automatically:",{"type":40,"tag":221,"props":9940,"children":9942},{"className":223,"code":9941,"language":216,"meta":225,"style":225},"\u002F\u002F Consumer passes a provider for a different region\nconst usWest = new aws.Provider(\"us-west\", { region: \"us-west-2\" });\nconst site = new StaticSite(\"west-site\", { indexDocument: \"index.html\" }, {\n    providers: [usWest],\n});\n",[9943],{"type":40,"tag":55,"props":9944,"children":9945},{"__ignoreMap":225},[9946,9954,10046,10123,10144],{"type":40,"tag":231,"props":9947,"children":9948},{"class":233,"line":234},[9949],{"type":40,"tag":231,"props":9950,"children":9951},{"style":681},[9952],{"type":46,"value":9953},"\u002F\u002F Consumer passes a provider for a different region\n",{"type":40,"tag":231,"props":9955,"children":9956},{"class":233,"line":287},[9957,9961,9966,9970,9974,9978,9982,9987,9991,9995,10000,10004,10008,10012,10017,10021,10025,10030,10034,10038,10042],{"type":40,"tag":231,"props":9958,"children":9959},{"style":342},[9960],{"type":46,"value":1381},{"type":40,"tag":231,"props":9962,"children":9963},{"style":255},[9964],{"type":46,"value":9965}," usWest ",{"type":40,"tag":231,"props":9967,"children":9968},{"style":244},[9969],{"type":46,"value":1391},{"type":40,"tag":231,"props":9971,"children":9972},{"style":244},[9973],{"type":46,"value":781},{"type":40,"tag":231,"props":9975,"children":9976},{"style":255},[9977],{"type":46,"value":786},{"type":40,"tag":231,"props":9979,"children":9980},{"style":244},[9981],{"type":46,"value":381},{"type":40,"tag":231,"props":9983,"children":9984},{"style":802},[9985],{"type":46,"value":9986},"Provider",{"type":40,"tag":231,"props":9988,"children":9989},{"style":255},[9990],{"type":46,"value":607},{"type":40,"tag":231,"props":9992,"children":9993},{"style":244},[9994],{"type":46,"value":279},{"type":40,"tag":231,"props":9996,"children":9997},{"style":271},[9998],{"type":46,"value":9999},"us-west",{"type":40,"tag":231,"props":10001,"children":10002},{"style":244},[10003],{"type":46,"value":279},{"type":40,"tag":231,"props":10005,"children":10006},{"style":244},[10007],{"type":46,"value":627},{"type":40,"tag":231,"props":10009,"children":10010},{"style":244},[10011],{"type":46,"value":846},{"type":40,"tag":231,"props":10013,"children":10014},{"style":363},[10015],{"type":46,"value":10016}," region",{"type":40,"tag":231,"props":10018,"children":10019},{"style":244},[10020],{"type":46,"value":515},{"type":40,"tag":231,"props":10022,"children":10023},{"style":244},[10024],{"type":46,"value":268},{"type":40,"tag":231,"props":10026,"children":10027},{"style":271},[10028],{"type":46,"value":10029},"us-west-2",{"type":40,"tag":231,"props":10031,"children":10032},{"style":244},[10033],{"type":46,"value":279},{"type":40,"tag":231,"props":10035,"children":10036},{"style":244},[10037],{"type":46,"value":865},{"type":40,"tag":231,"props":10039,"children":10040},{"style":255},[10041],{"type":46,"value":670},{"type":40,"tag":231,"props":10043,"children":10044},{"style":244},[10045],{"type":46,"value":284},{"type":40,"tag":231,"props":10047,"children":10048},{"class":233,"line":329},[10049,10053,10057,10061,10065,10069,10073,10077,10082,10086,10090,10094,10099,10103,10107,10111,10115,10119],{"type":40,"tag":231,"props":10050,"children":10051},{"style":342},[10052],{"type":46,"value":1381},{"type":40,"tag":231,"props":10054,"children":10055},{"style":255},[10056],{"type":46,"value":1386},{"type":40,"tag":231,"props":10058,"children":10059},{"style":244},[10060],{"type":46,"value":1391},{"type":40,"tag":231,"props":10062,"children":10063},{"style":244},[10064],{"type":46,"value":781},{"type":40,"tag":231,"props":10066,"children":10067},{"style":802},[10068],{"type":46,"value":469},{"type":40,"tag":231,"props":10070,"children":10071},{"style":255},[10072],{"type":46,"value":607},{"type":40,"tag":231,"props":10074,"children":10075},{"style":244},[10076],{"type":46,"value":279},{"type":40,"tag":231,"props":10078,"children":10079},{"style":271},[10080],{"type":46,"value":10081},"west-site",{"type":40,"tag":231,"props":10083,"children":10084},{"style":244},[10085],{"type":46,"value":279},{"type":40,"tag":231,"props":10087,"children":10088},{"style":244},[10089],{"type":46,"value":627},{"type":40,"tag":231,"props":10091,"children":10092},{"style":244},[10093],{"type":46,"value":846},{"type":40,"tag":231,"props":10095,"children":10096},{"style":363},[10097],{"type":46,"value":10098}," indexDocument",{"type":40,"tag":231,"props":10100,"children":10101},{"style":244},[10102],{"type":46,"value":515},{"type":40,"tag":231,"props":10104,"children":10105},{"style":244},[10106],{"type":46,"value":268},{"type":40,"tag":231,"props":10108,"children":10109},{"style":271},[10110],{"type":46,"value":1040},{"type":40,"tag":231,"props":10112,"children":10113},{"style":244},[10114],{"type":46,"value":279},{"type":40,"tag":231,"props":10116,"children":10117},{"style":244},[10118],{"type":46,"value":5669},{"type":40,"tag":231,"props":10120,"children":10121},{"style":244},[10122],{"type":46,"value":356},{"type":40,"tag":231,"props":10124,"children":10125},{"class":233,"line":27},[10126,10131,10135,10140],{"type":40,"tag":231,"props":10127,"children":10128},{"style":363},[10129],{"type":46,"value":10130},"    providers",{"type":40,"tag":231,"props":10132,"children":10133},{"style":244},[10134],{"type":46,"value":515},{"type":40,"tag":231,"props":10136,"children":10137},{"style":255},[10138],{"type":46,"value":10139}," [usWest]",{"type":40,"tag":231,"props":10141,"children":10142},{"style":244},[10143],{"type":46,"value":987},{"type":40,"tag":231,"props":10145,"children":10146},{"class":233,"line":359},[10147,10151,10155],{"type":40,"tag":231,"props":10148,"children":10149},{"style":244},[10150],{"type":46,"value":823},{"type":40,"tag":231,"props":10152,"children":10153},{"style":255},[10154],{"type":46,"value":670},{"type":40,"tag":231,"props":10156,"children":10157},{"style":244},[10158],{"type":46,"value":284},{"type":40,"tag":49,"props":10160,"children":10161},{},[10162,10164,10170],{"type":46,"value":10163},"Children with ",{"type":40,"tag":55,"props":10165,"children":10167},{"className":10166},[],[10168],{"type":46,"value":10169},"{ parent: this }",{"type":46,"value":10171}," automatically inherit the provider. No extra code is needed inside the component.",{"type":40,"tag":3081,"props":10173,"children":10174},{},[],{"type":40,"tag":85,"props":10176,"children":10178},{"id":10177},"multi-language-components",[10179],{"type":46,"value":10180},"Multi-Language Components",{"type":40,"tag":49,"props":10182,"children":10183},{},[10184],{"type":46,"value":10185},"If your component will be consumed from multiple Pulumi languages (TypeScript, Python, Go, C#, Java, YAML), package it as a multi-language component.",{"type":40,"tag":214,"props":10187,"children":10189},{"id":10188},"do-you-need-multi-language",[10190],{"type":46,"value":10191},"Do You Need Multi-Language?",{"type":40,"tag":49,"props":10193,"children":10194},{},[10195],{"type":46,"value":10196},"Ask: \"Will anyone consume this component from a different language than it was authored in?\"",{"type":40,"tag":49,"props":10198,"children":10199},{},[10200,10205],{"type":40,"tag":150,"props":10201,"children":10202},{},[10203],{"type":46,"value":10204},"Single-language component",{"type":46,"value":10206}," (no packaging needed):",{"type":40,"tag":97,"props":10208,"children":10209},{},[10210,10215,10220],{"type":40,"tag":101,"props":10211,"children":10212},{},[10213],{"type":46,"value":10214},"Your team uses one language and the component stays within that codebase",{"type":40,"tag":101,"props":10216,"children":10217},{},[10218],{"type":46,"value":10219},"The component is internal to a single project or monorepo",{"type":40,"tag":101,"props":10221,"children":10222},{},[10223,10225,10231],{"type":46,"value":10224},"No ",{"type":40,"tag":55,"props":10226,"children":10228},{"className":10227},[],[10229],{"type":46,"value":10230},"PulumiPlugin.yaml",{"type":46,"value":10232}," needed -- just import the class directly",{"type":40,"tag":49,"props":10234,"children":10235},{},[10236,10241],{"type":40,"tag":150,"props":10237,"children":10238},{},[10239],{"type":46,"value":10240},"Multi-language component",{"type":46,"value":10242}," (packaging required):",{"type":40,"tag":97,"props":10244,"children":10245},{},[10246,10251,10256,10261,10266],{"type":40,"tag":101,"props":10247,"children":10248},{},[10249],{"type":46,"value":10250},"Other teams consume your component in different languages",{"type":40,"tag":101,"props":10252,"children":10253},{},[10254],{"type":46,"value":10255},"Platform teams building abstractions for developers who choose their own language",{"type":40,"tag":101,"props":10257,"children":10258},{},[10259],{"type":46,"value":10260},"YAML consumers need access -- even if you author in TypeScript, YAML programs require multi-language packaging to use your component",{"type":40,"tag":101,"props":10262,"children":10263},{},[10264],{"type":46,"value":10265},"Building a shared component library for your organization",{"type":40,"tag":101,"props":10267,"children":10268},{},[10269],{"type":46,"value":10270},"Publishing to the Pulumi private registry or public registry is a common reason, but not required for multi-language support",{"type":40,"tag":49,"props":10272,"children":10273},{},[10274,10279],{"type":40,"tag":150,"props":10275,"children":10276},{},[10277],{"type":46,"value":10278},"Common mistake",{"type":46,"value":10280},": A TypeScript platform team builds components only their TypeScript users can consume. If application developers use Python or YAML, those components are invisible to them without multi-language packaging.",{"type":40,"tag":214,"props":10282,"children":10284},{"id":10283},"setup",[10285],{"type":46,"value":10286},"Setup",{"type":40,"tag":49,"props":10288,"children":10289},{},[10290,10292,10297],{"type":46,"value":10291},"Create a ",{"type":40,"tag":55,"props":10293,"children":10295},{"className":10294},[],[10296],{"type":46,"value":10230},{"type":46,"value":10298}," in the component directory to declare the runtime:",{"type":40,"tag":221,"props":10300,"children":10304},{"className":10301,"code":10302,"language":10303,"meta":225,"style":225},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","runtime: nodejs\n","yaml",[10305],{"type":40,"tag":55,"props":10306,"children":10307},{"__ignoreMap":225},[10308],{"type":40,"tag":231,"props":10309,"children":10310},{"class":233,"line":234},[10311,10316,10320],{"type":40,"tag":231,"props":10312,"children":10313},{"style":363},[10314],{"type":46,"value":10315},"runtime",{"type":40,"tag":231,"props":10317,"children":10318},{"style":244},[10319],{"type":46,"value":515},{"type":40,"tag":231,"props":10321,"children":10322},{"style":271},[10323],{"type":46,"value":10324}," nodejs\n",{"type":40,"tag":49,"props":10326,"children":10327},{},[10328],{"type":46,"value":10329},"Or for Python:",{"type":40,"tag":221,"props":10331,"children":10333},{"className":10301,"code":10332,"language":10303,"meta":225,"style":225},"runtime: python\n",[10334],{"type":40,"tag":55,"props":10335,"children":10336},{"__ignoreMap":225},[10337],{"type":40,"tag":231,"props":10338,"children":10339},{"class":233,"line":234},[10340,10344,10348],{"type":40,"tag":231,"props":10341,"children":10342},{"style":363},[10343],{"type":46,"value":10315},{"type":40,"tag":231,"props":10345,"children":10346},{"style":244},[10347],{"type":46,"value":515},{"type":40,"tag":231,"props":10349,"children":10350},{"style":271},[10351],{"type":46,"value":10352}," python\n",{"type":40,"tag":214,"props":10354,"children":10356},{"id":10355},"serialization-constraints",[10357],{"type":46,"value":10358},"Serialization Constraints",{"type":40,"tag":49,"props":10360,"children":10361},{},[10362],{"type":46,"value":10363},"For multi-language compatibility, args must be serializable. These constraints apply regardless of the authoring language:",{"type":40,"tag":1867,"props":10365,"children":10366},{},[10367,10383],{"type":40,"tag":1871,"props":10368,"children":10369},{},[10370],{"type":40,"tag":1875,"props":10371,"children":10372},{},[10373,10378],{"type":40,"tag":1879,"props":10374,"children":10375},{},[10376],{"type":46,"value":10377},"Allowed",{"type":40,"tag":1879,"props":10379,"children":10380},{},[10381],{"type":46,"value":10382},"Not Allowed",{"type":40,"tag":1895,"props":10384,"children":10385},{},[10386,10420,10438,10451],{"type":40,"tag":1875,"props":10387,"children":10388},{},[10389,10409],{"type":40,"tag":1902,"props":10390,"children":10391},{},[10392,10397,10398,10403,10404],{"type":40,"tag":55,"props":10393,"children":10395},{"className":10394},[],[10396],{"type":46,"value":396},{"type":46,"value":1922},{"type":40,"tag":55,"props":10399,"children":10401},{"className":10400},[],[10402],{"type":46,"value":3288},{"type":46,"value":1922},{"type":40,"tag":55,"props":10405,"children":10407},{"className":10406},[],[10408],{"type":46,"value":3492},{"type":40,"tag":1902,"props":10410,"children":10411},{},[10412,10414,10419],{"type":46,"value":10413},"Union types (",{"type":40,"tag":55,"props":10415,"children":10417},{"className":10416},[],[10418],{"type":46,"value":3834},{"type":46,"value":670},{"type":40,"tag":1875,"props":10421,"children":10422},{},[10423,10433],{"type":40,"tag":1902,"props":10424,"children":10425},{},[10426,10431],{"type":40,"tag":55,"props":10427,"children":10429},{"className":10428},[],[10430],{"type":46,"value":3119},{"type":46,"value":10432}," wrappers",{"type":40,"tag":1902,"props":10434,"children":10435},{},[10436],{"type":46,"value":10437},"Functions and callbacks",{"type":40,"tag":1875,"props":10439,"children":10440},{},[10441,10446],{"type":40,"tag":1902,"props":10442,"children":10443},{},[10444],{"type":46,"value":10445},"Arrays and maps of primitives",{"type":40,"tag":1902,"props":10447,"children":10448},{},[10449],{"type":46,"value":10450},"Complex nested generics",{"type":40,"tag":1875,"props":10452,"children":10453},{},[10454,10459],{"type":40,"tag":1902,"props":10455,"children":10456},{},[10457],{"type":46,"value":10458},"Enums",{"type":40,"tag":1902,"props":10460,"children":10461},{},[10462],{"type":46,"value":10463},"Platform-specific types",{"type":40,"tag":214,"props":10465,"children":10467},{"id":10466},"consuming-multi-language-components",[10468],{"type":46,"value":10469},"Consuming Multi-Language Components",{"type":40,"tag":49,"props":10471,"children":10472},{},[10473,10475,10481,10483,10489],{"type":46,"value":10474},"Consumers install the component with ",{"type":40,"tag":55,"props":10476,"children":10478},{"className":10477},[],[10479],{"type":46,"value":10480},"pulumi package add",{"type":46,"value":10482},", which automatically downloads the provider plugin, generates a local SDK in the consumer's language, and updates ",{"type":40,"tag":55,"props":10484,"children":10486},{"className":10485},[],[10487],{"type":46,"value":10488},"Pulumi.yaml",{"type":46,"value":515},{"type":40,"tag":221,"props":10491,"children":10495},{"className":10492,"code":10493,"language":10494,"meta":225,"style":225},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# From a Git repository\npulumi package add \u003Cgit-repo-url>\n\n# From a specific version tag\npulumi package add \u003Cgit-repo-url>@v1.0.0\n","bash",[10496],{"type":40,"tag":55,"props":10497,"children":10498},{"__ignoreMap":225},[10499,10507,10544,10551,10559],{"type":40,"tag":231,"props":10500,"children":10501},{"class":233,"line":234},[10502],{"type":40,"tag":231,"props":10503,"children":10504},{"style":681},[10505],{"type":46,"value":10506},"# From a Git repository\n",{"type":40,"tag":231,"props":10508,"children":10509},{"class":233,"line":287},[10510,10514,10519,10524,10529,10534,10539],{"type":40,"tag":231,"props":10511,"children":10512},{"style":348},[10513],{"type":46,"value":8},{"type":40,"tag":231,"props":10515,"children":10516},{"style":271},[10517],{"type":46,"value":10518}," package",{"type":40,"tag":231,"props":10520,"children":10521},{"style":271},[10522],{"type":46,"value":10523}," add",{"type":40,"tag":231,"props":10525,"children":10526},{"style":244},[10527],{"type":46,"value":10528}," \u003C",{"type":40,"tag":231,"props":10530,"children":10531},{"style":271},[10532],{"type":46,"value":10533},"git-repo-ur",{"type":40,"tag":231,"props":10535,"children":10536},{"style":255},[10537],{"type":46,"value":10538},"l",{"type":40,"tag":231,"props":10540,"children":10541},{"style":244},[10542],{"type":46,"value":10543},">\n",{"type":40,"tag":231,"props":10545,"children":10546},{"class":233,"line":329},[10547],{"type":40,"tag":231,"props":10548,"children":10549},{"emptyLinePlaceholder":333},[10550],{"type":46,"value":336},{"type":40,"tag":231,"props":10552,"children":10553},{"class":233,"line":27},[10554],{"type":40,"tag":231,"props":10555,"children":10556},{"style":681},[10557],{"type":46,"value":10558},"# From a specific version tag\n",{"type":40,"tag":231,"props":10560,"children":10561},{"class":233,"line":359},[10562,10566,10570,10574,10578,10582,10586,10590],{"type":40,"tag":231,"props":10563,"children":10564},{"style":348},[10565],{"type":46,"value":8},{"type":40,"tag":231,"props":10567,"children":10568},{"style":271},[10569],{"type":46,"value":10518},{"type":40,"tag":231,"props":10571,"children":10572},{"style":271},[10573],{"type":46,"value":10523},{"type":40,"tag":231,"props":10575,"children":10576},{"style":244},[10577],{"type":46,"value":10528},{"type":40,"tag":231,"props":10579,"children":10580},{"style":271},[10581],{"type":46,"value":10533},{"type":40,"tag":231,"props":10583,"children":10584},{"style":255},[10585],{"type":46,"value":10538},{"type":40,"tag":231,"props":10587,"children":10588},{"style":244},[10589],{"type":46,"value":3635},{"type":40,"tag":231,"props":10591,"children":10592},{"style":271},[10593],{"type":46,"value":10594},"@v1.0.0\n",{"type":40,"tag":49,"props":10596,"children":10597},{},[10598,10600,10606],{"type":46,"value":10599},"For fresh checkouts or CI environments, run ",{"type":40,"tag":55,"props":10601,"children":10603},{"className":10602},[],[10604],{"type":46,"value":10605},"pulumi install",{"type":46,"value":10607}," to ensure all package dependencies are available. The consumer does not need to manually generate SDKs.",{"type":40,"tag":49,"props":10609,"children":10610},{},[10611,10613,10619,10621,10626],{"type":46,"value":10612},"Authors who publish SDKs to package managers (npm, PyPI, etc.) can optionally use ",{"type":40,"tag":55,"props":10614,"children":10616},{"className":10615},[],[10617],{"type":46,"value":10618},"pulumi package gen-sdk",{"type":46,"value":10620}," to generate language-specific SDKs for publishing. Most component authors do not need this -- ",{"type":40,"tag":55,"props":10622,"children":10624},{"className":10623},[],[10625],{"type":46,"value":10480},{"type":46,"value":10627}," handles SDK generation on the consumer side.",{"type":40,"tag":214,"props":10629,"children":10631},{"id":10630},"entry-points",[10632],{"type":46,"value":10633},"Entry Points",{"type":40,"tag":49,"props":10635,"children":10636},{},[10637],{"type":46,"value":10638},"Published multi-language components require an entry point that hosts the component provider process. The entry point pattern differs by language.",{"type":40,"tag":49,"props":10640,"children":10641},{},[10642,10646,10647,10653],{"type":40,"tag":150,"props":10643,"children":10644},{},[10645],{"type":46,"value":219},{"type":46,"value":4173},{"type":40,"tag":55,"props":10648,"children":10650},{"className":10649},[],[10651],{"type":46,"value":10652},"runtime: nodejs",{"type":46,"value":10654},"):",{"type":40,"tag":49,"props":10656,"children":10657},{},[10658,10660,10666],{"type":46,"value":10659},"Export component classes from ",{"type":40,"tag":55,"props":10661,"children":10663},{"className":10662},[],[10664],{"type":46,"value":10665},"index.ts",{"type":46,"value":10667},". No separate entry point file is needed. Pulumi introspects exported classes automatically.",{"type":40,"tag":221,"props":10669,"children":10671},{"className":223,"code":10670,"language":216,"meta":225,"style":225},"\u002F\u002F index.ts -- exports are the entry point\nexport { StaticSite, StaticSiteArgs } from \".\u002FstaticSite\";\nexport { SecureBucket, SecureBucketArgs } from \".\u002FsecureBucket\";\n",[10672],{"type":40,"tag":55,"props":10673,"children":10674},{"__ignoreMap":225},[10675,10683,10732],{"type":40,"tag":231,"props":10676,"children":10677},{"class":233,"line":234},[10678],{"type":40,"tag":231,"props":10679,"children":10680},{"style":681},[10681],{"type":46,"value":10682},"\u002F\u002F index.ts -- exports are the entry point\n",{"type":40,"tag":231,"props":10684,"children":10685},{"class":233,"line":287},[10686,10690,10694,10698,10702,10706,10710,10715,10719,10724,10728],{"type":40,"tag":231,"props":10687,"children":10688},{"style":238},[10689],{"type":46,"value":1477},{"type":40,"tag":231,"props":10691,"children":10692},{"style":244},[10693],{"type":46,"value":846},{"type":40,"tag":231,"props":10695,"children":10696},{"style":255},[10697],{"type":46,"value":469},{"type":40,"tag":231,"props":10699,"children":10700},{"style":244},[10701],{"type":46,"value":627},{"type":40,"tag":231,"props":10703,"children":10704},{"style":255},[10705],{"type":46,"value":351},{"type":40,"tag":231,"props":10707,"children":10708},{"style":244},[10709],{"type":46,"value":865},{"type":40,"tag":231,"props":10711,"children":10712},{"style":238},[10713],{"type":46,"value":10714}," from",{"type":40,"tag":231,"props":10716,"children":10717},{"style":244},[10718],{"type":46,"value":268},{"type":40,"tag":231,"props":10720,"children":10721},{"style":271},[10722],{"type":46,"value":10723},".\u002FstaticSite",{"type":40,"tag":231,"props":10725,"children":10726},{"style":244},[10727],{"type":46,"value":279},{"type":40,"tag":231,"props":10729,"children":10730},{"style":244},[10731],{"type":46,"value":284},{"type":40,"tag":231,"props":10733,"children":10734},{"class":233,"line":329},[10735,10739,10743,10747,10751,10755,10759,10763,10767,10772,10776],{"type":40,"tag":231,"props":10736,"children":10737},{"style":238},[10738],{"type":46,"value":1477},{"type":40,"tag":231,"props":10740,"children":10741},{"style":244},[10742],{"type":46,"value":846},{"type":40,"tag":231,"props":10744,"children":10745},{"style":255},[10746],{"type":46,"value":4510},{"type":40,"tag":231,"props":10748,"children":10749},{"style":244},[10750],{"type":46,"value":627},{"type":40,"tag":231,"props":10752,"children":10753},{"style":255},[10754],{"type":46,"value":4358},{"type":40,"tag":231,"props":10756,"children":10757},{"style":244},[10758],{"type":46,"value":865},{"type":40,"tag":231,"props":10760,"children":10761},{"style":238},[10762],{"type":46,"value":10714},{"type":40,"tag":231,"props":10764,"children":10765},{"style":244},[10766],{"type":46,"value":268},{"type":40,"tag":231,"props":10768,"children":10769},{"style":271},[10770],{"type":46,"value":10771},".\u002FsecureBucket",{"type":40,"tag":231,"props":10773,"children":10774},{"style":244},[10775],{"type":46,"value":279},{"type":40,"tag":231,"props":10777,"children":10778},{"style":244},[10779],{"type":46,"value":284},{"type":40,"tag":49,"props":10781,"children":10782},{},[10783,10787,10788,10794],{"type":40,"tag":150,"props":10784,"children":10785},{},[10786],{"type":46,"value":1514},{"type":46,"value":4173},{"type":40,"tag":55,"props":10789,"children":10791},{"className":10790},[],[10792],{"type":46,"value":10793},"runtime: python",{"type":46,"value":10654},{"type":40,"tag":49,"props":10796,"children":10797},{},[10798,10799,10805,10807,10813],{"type":46,"value":10291},{"type":40,"tag":55,"props":10800,"children":10802},{"className":10801},[],[10803],{"type":46,"value":10804},"__main__.py",{"type":46,"value":10806}," that calls ",{"type":40,"tag":55,"props":10808,"children":10810},{"className":10809},[],[10811],{"type":46,"value":10812},"component_provider_host",{"type":46,"value":10814}," with all component classes:",{"type":40,"tag":221,"props":10816,"children":10818},{"className":1517,"code":10817,"language":1511,"meta":225,"style":225},"from pulumi.provider.experimental import component_provider_host\nfrom static_site import StaticSite\nfrom secure_bucket import SecureBucket\n\nif __name__ == \"__main__\":\n    component_provider_host(\n        name=\"my-components\",\n        components=[StaticSite, SecureBucket],\n    )\n",[10819],{"type":40,"tag":55,"props":10820,"children":10821},{"__ignoreMap":225},[10822,10830,10838,10846,10853,10861,10869,10877,10885],{"type":40,"tag":231,"props":10823,"children":10824},{"class":233,"line":234},[10825],{"type":40,"tag":231,"props":10826,"children":10827},{},[10828],{"type":46,"value":10829},"from pulumi.provider.experimental import component_provider_host\n",{"type":40,"tag":231,"props":10831,"children":10832},{"class":233,"line":287},[10833],{"type":40,"tag":231,"props":10834,"children":10835},{},[10836],{"type":46,"value":10837},"from static_site import StaticSite\n",{"type":40,"tag":231,"props":10839,"children":10840},{"class":233,"line":329},[10841],{"type":40,"tag":231,"props":10842,"children":10843},{},[10844],{"type":46,"value":10845},"from secure_bucket import SecureBucket\n",{"type":40,"tag":231,"props":10847,"children":10848},{"class":233,"line":27},[10849],{"type":40,"tag":231,"props":10850,"children":10851},{"emptyLinePlaceholder":333},[10852],{"type":46,"value":336},{"type":40,"tag":231,"props":10854,"children":10855},{"class":233,"line":359},[10856],{"type":40,"tag":231,"props":10857,"children":10858},{},[10859],{"type":46,"value":10860},"if __name__ == \"__main__\":\n",{"type":40,"tag":231,"props":10862,"children":10863},{"class":233,"line":404},[10864],{"type":40,"tag":231,"props":10865,"children":10866},{},[10867],{"type":46,"value":10868},"    component_provider_host(\n",{"type":40,"tag":231,"props":10870,"children":10871},{"class":233,"line":441},[10872],{"type":40,"tag":231,"props":10873,"children":10874},{},[10875],{"type":46,"value":10876},"        name=\"my-components\",\n",{"type":40,"tag":231,"props":10878,"children":10879},{"class":233,"line":450},[10880],{"type":40,"tag":231,"props":10881,"children":10882},{},[10883],{"type":46,"value":10884},"        components=[StaticSite, SecureBucket],\n",{"type":40,"tag":231,"props":10886,"children":10887},{"class":233,"line":458},[10888],{"type":40,"tag":231,"props":10889,"children":10890},{},[10891],{"type":46,"value":10892},"    )\n",{"type":40,"tag":49,"props":10894,"children":10895},{},[10896,10901,10902,10908],{"type":40,"tag":150,"props":10897,"children":10898},{},[10899],{"type":46,"value":10900},"Go",{"type":46,"value":4173},{"type":40,"tag":55,"props":10903,"children":10905},{"className":10904},[],[10906],{"type":46,"value":10907},"runtime: go",{"type":46,"value":10654},{"type":40,"tag":49,"props":10910,"children":10911},{},[10912,10913,10919],{"type":46,"value":10291},{"type":40,"tag":55,"props":10914,"children":10916},{"className":10915},[],[10917],{"type":46,"value":10918},"main.go",{"type":46,"value":10920}," that builds and runs the provider:",{"type":40,"tag":221,"props":10922,"children":10926},{"className":10923,"code":10924,"language":10925,"meta":225,"style":225},"language-go shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","package main\n\nimport (\n    \"context\"\n    \"fmt\"\n    \"os\"\n\n    \"github.com\u002Fpulumi\u002Fpulumi-go-provider\u002Finfer\"\n)\n\nfunc main() {\n    p, err := infer.NewProviderBuilder().\n        WithComponents(\n            infer.ComponentF(NewStaticSite),\n            infer.ComponentF(NewSecureBucket),\n        ).\n        Build()\n    if err != nil {\n        fmt.Fprintln(os.Stderr, err)\n        os.Exit(1)\n    }\n    if err := p.Run(context.Background(), \"my-components\", \"0.1.0\"); err != nil {\n        fmt.Fprintln(os.Stderr, err)\n        os.Exit(1)\n    }\n}\n","go",[10927],{"type":40,"tag":55,"props":10928,"children":10929},{"__ignoreMap":225},[10930,10938,10945,10953,10961,10969,10977,10984,10992,11000,11007,11015,11023,11031,11039,11047,11055,11063,11071,11079,11087,11094,11102,11109,11116,11123],{"type":40,"tag":231,"props":10931,"children":10932},{"class":233,"line":234},[10933],{"type":40,"tag":231,"props":10934,"children":10935},{},[10936],{"type":46,"value":10937},"package main\n",{"type":40,"tag":231,"props":10939,"children":10940},{"class":233,"line":287},[10941],{"type":40,"tag":231,"props":10942,"children":10943},{"emptyLinePlaceholder":333},[10944],{"type":46,"value":336},{"type":40,"tag":231,"props":10946,"children":10947},{"class":233,"line":329},[10948],{"type":40,"tag":231,"props":10949,"children":10950},{},[10951],{"type":46,"value":10952},"import (\n",{"type":40,"tag":231,"props":10954,"children":10955},{"class":233,"line":27},[10956],{"type":40,"tag":231,"props":10957,"children":10958},{},[10959],{"type":46,"value":10960},"    \"context\"\n",{"type":40,"tag":231,"props":10962,"children":10963},{"class":233,"line":359},[10964],{"type":40,"tag":231,"props":10965,"children":10966},{},[10967],{"type":46,"value":10968},"    \"fmt\"\n",{"type":40,"tag":231,"props":10970,"children":10971},{"class":233,"line":404},[10972],{"type":40,"tag":231,"props":10973,"children":10974},{},[10975],{"type":46,"value":10976},"    \"os\"\n",{"type":40,"tag":231,"props":10978,"children":10979},{"class":233,"line":441},[10980],{"type":40,"tag":231,"props":10981,"children":10982},{"emptyLinePlaceholder":333},[10983],{"type":46,"value":336},{"type":40,"tag":231,"props":10985,"children":10986},{"class":233,"line":450},[10987],{"type":40,"tag":231,"props":10988,"children":10989},{},[10990],{"type":46,"value":10991},"    \"github.com\u002Fpulumi\u002Fpulumi-go-provider\u002Finfer\"\n",{"type":40,"tag":231,"props":10993,"children":10994},{"class":233,"line":458},[10995],{"type":40,"tag":231,"props":10996,"children":10997},{},[10998],{"type":46,"value":10999},")\n",{"type":40,"tag":231,"props":11001,"children":11002},{"class":233,"line":494},[11003],{"type":40,"tag":231,"props":11004,"children":11005},{"emptyLinePlaceholder":333},[11006],{"type":46,"value":336},{"type":40,"tag":231,"props":11008,"children":11009},{"class":233,"line":543},[11010],{"type":40,"tag":231,"props":11011,"children":11012},{},[11013],{"type":46,"value":11014},"func main() {\n",{"type":40,"tag":231,"props":11016,"children":11017},{"class":233,"line":588},[11018],{"type":40,"tag":231,"props":11019,"children":11020},{},[11021],{"type":46,"value":11022},"    p, err := infer.NewProviderBuilder().\n",{"type":40,"tag":231,"props":11024,"children":11025},{"class":233,"line":596},[11026],{"type":40,"tag":231,"props":11027,"children":11028},{},[11029],{"type":46,"value":11030},"        WithComponents(\n",{"type":40,"tag":231,"props":11032,"children":11033},{"class":233,"line":677},[11034],{"type":40,"tag":231,"props":11035,"children":11036},{},[11037],{"type":46,"value":11038},"            infer.ComponentF(NewStaticSite),\n",{"type":40,"tag":231,"props":11040,"children":11041},{"class":233,"line":687},[11042],{"type":40,"tag":231,"props":11043,"children":11044},{},[11045],{"type":46,"value":11046},"            infer.ComponentF(NewSecureBucket),\n",{"type":40,"tag":231,"props":11048,"children":11049},{"class":233,"line":743},[11050],{"type":40,"tag":231,"props":11051,"children":11052},{},[11053],{"type":46,"value":11054},"        ).\n",{"type":40,"tag":231,"props":11056,"children":11057},{"class":233,"line":751},[11058],{"type":40,"tag":231,"props":11059,"children":11060},{},[11061],{"type":46,"value":11062},"        Build()\n",{"type":40,"tag":231,"props":11064,"children":11065},{"class":233,"line":760},[11066],{"type":40,"tag":231,"props":11067,"children":11068},{},[11069],{"type":46,"value":11070},"    if err != nil {\n",{"type":40,"tag":231,"props":11072,"children":11073},{"class":233,"line":876},[11074],{"type":40,"tag":231,"props":11075,"children":11076},{},[11077],{"type":46,"value":11078},"        fmt.Fprintln(os.Stderr, err)\n",{"type":40,"tag":231,"props":11080,"children":11081},{"class":233,"line":884},[11082],{"type":40,"tag":231,"props":11083,"children":11084},{},[11085],{"type":46,"value":11086},"        os.Exit(1)\n",{"type":40,"tag":231,"props":11088,"children":11089},{"class":233,"line":959},[11090],{"type":40,"tag":231,"props":11091,"children":11092},{},[11093],{"type":46,"value":1347},{"type":40,"tag":231,"props":11095,"children":11096},{"class":233,"line":990},[11097],{"type":40,"tag":231,"props":11098,"children":11099},{},[11100],{"type":46,"value":11101},"    if err := p.Run(context.Background(), \"my-components\", \"0.1.0\"); err != nil {\n",{"type":40,"tag":231,"props":11103,"children":11104},{"class":233,"line":1052},[11105],{"type":40,"tag":231,"props":11106,"children":11107},{},[11108],{"type":46,"value":11078},{"type":40,"tag":231,"props":11110,"children":11111},{"class":233,"line":1112},[11112],{"type":40,"tag":231,"props":11113,"children":11114},{},[11115],{"type":46,"value":11086},{"type":40,"tag":231,"props":11117,"children":11118},{"class":233,"line":1149},[11119],{"type":40,"tag":231,"props":11120,"children":11121},{},[11122],{"type":46,"value":1347},{"type":40,"tag":231,"props":11124,"children":11125},{"class":233,"line":1157},[11126],{"type":40,"tag":231,"props":11127,"children":11128},{},[11129],{"type":46,"value":447},{"type":40,"tag":49,"props":11131,"children":11132},{},[11133,11138,11139,11145],{"type":40,"tag":150,"props":11134,"children":11135},{},[11136],{"type":46,"value":11137},"C#",{"type":46,"value":4173},{"type":40,"tag":55,"props":11140,"children":11142},{"className":11141},[],[11143],{"type":46,"value":11144},"runtime: dotnet",{"type":46,"value":10654},{"type":40,"tag":49,"props":11147,"children":11148},{},[11149,11150,11156],{"type":46,"value":10291},{"type":40,"tag":55,"props":11151,"children":11153},{"className":11152},[],[11154],{"type":46,"value":11155},"Program.cs",{"type":46,"value":11157}," that serves the component provider host:",{"type":40,"tag":221,"props":11159,"children":11163},{"className":11160,"code":11161,"language":11162,"meta":225,"style":225},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","using System.Threading.Tasks;\n\nclass Program\n{\n    public static Task Main(string[] args) =>\n        Pulumi.Experimental.Provider.ComponentProviderHost.Serve(args);\n}\n","csharp",[11164],{"type":40,"tag":55,"props":11165,"children":11166},{"__ignoreMap":225},[11167,11175,11182,11190,11197,11205,11213],{"type":40,"tag":231,"props":11168,"children":11169},{"class":233,"line":234},[11170],{"type":40,"tag":231,"props":11171,"children":11172},{},[11173],{"type":46,"value":11174},"using System.Threading.Tasks;\n",{"type":40,"tag":231,"props":11176,"children":11177},{"class":233,"line":287},[11178],{"type":40,"tag":231,"props":11179,"children":11180},{"emptyLinePlaceholder":333},[11181],{"type":46,"value":336},{"type":40,"tag":231,"props":11183,"children":11184},{"class":233,"line":329},[11185],{"type":40,"tag":231,"props":11186,"children":11187},{},[11188],{"type":46,"value":11189},"class Program\n",{"type":40,"tag":231,"props":11191,"children":11192},{"class":233,"line":27},[11193],{"type":40,"tag":231,"props":11194,"children":11195},{},[11196],{"type":46,"value":1270},{"type":40,"tag":231,"props":11198,"children":11199},{"class":233,"line":359},[11200],{"type":40,"tag":231,"props":11201,"children":11202},{},[11203],{"type":46,"value":11204},"    public static Task Main(string[] args) =>\n",{"type":40,"tag":231,"props":11206,"children":11207},{"class":233,"line":404},[11208],{"type":40,"tag":231,"props":11209,"children":11210},{},[11211],{"type":46,"value":11212},"        Pulumi.Experimental.Provider.ComponentProviderHost.Serve(args);\n",{"type":40,"tag":231,"props":11214,"children":11215},{"class":233,"line":441},[11216],{"type":40,"tag":231,"props":11217,"children":11218},{},[11219],{"type":46,"value":447},{"type":40,"tag":49,"props":11221,"children":11222},{},[11223,11225,11233],{"type":46,"value":11224},"For a complete working example across all languages, see ",{"type":40,"tag":11226,"props":11227,"children":11231},"a",{"href":11228,"rel":11229},"https:\u002F\u002Fgithub.com\u002Fmikhailshilkov\u002Fcomp-as-comp",[11230],"nofollow",[11232],{"type":46,"value":11228},{"type":46,"value":381},{"type":40,"tag":49,"props":11235,"children":11236},{},[11237,11242,11243],{"type":40,"tag":150,"props":11238,"children":11239},{},[11240],{"type":46,"value":11241},"Reference",{"type":46,"value":3113},{"type":40,"tag":11226,"props":11244,"children":11247},{"href":11245,"rel":11246},"https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fusing-pulumi\u002Fpulumi-packages\u002F",[11230],[11248],{"type":46,"value":11245},{"type":40,"tag":3081,"props":11250,"children":11251},{},[],{"type":40,"tag":85,"props":11253,"children":11255},{"id":11254},"distribution",[11256],{"type":46,"value":11257},"Distribution",{"type":40,"tag":49,"props":11259,"children":11260},{},[11261],{"type":46,"value":11262},"Choose a distribution method based on your audience:",{"type":40,"tag":1867,"props":11264,"children":11265},{},[11266,11287],{"type":40,"tag":1871,"props":11267,"children":11268},{},[11269],{"type":40,"tag":1875,"props":11270,"children":11271},{},[11272,11277,11282],{"type":40,"tag":1879,"props":11273,"children":11274},{},[11275],{"type":46,"value":11276},"Audience",{"type":40,"tag":1879,"props":11278,"children":11279},{},[11280],{"type":46,"value":11281},"Method",{"type":40,"tag":1879,"props":11283,"children":11284},{},[11285],{"type":46,"value":11286},"How",{"type":40,"tag":1895,"props":11288,"children":11289},{},[11290,11308,11332,11355,11373],{"type":40,"tag":1875,"props":11291,"children":11292},{},[11293,11298,11303],{"type":40,"tag":1902,"props":11294,"children":11295},{},[11296],{"type":46,"value":11297},"Same project",{"type":40,"tag":1902,"props":11299,"children":11300},{},[11301],{"type":46,"value":11302},"Direct import",{"type":40,"tag":1902,"props":11304,"children":11305},{},[11306],{"type":46,"value":11307},"Standard language import",{"type":40,"tag":1875,"props":11309,"children":11310},{},[11311,11316,11321],{"type":40,"tag":1902,"props":11312,"children":11313},{},[11314],{"type":46,"value":11315},"Same organization",{"type":40,"tag":1902,"props":11317,"children":11318},{},[11319],{"type":46,"value":11320},"Private registry",{"type":40,"tag":1902,"props":11322,"children":11323},{},[11324,11330],{"type":40,"tag":55,"props":11325,"children":11327},{"className":11326},[],[11328],{"type":46,"value":11329},"pulumi package publish",{"type":46,"value":11331}," to Pulumi Cloud",{"type":40,"tag":1875,"props":11333,"children":11334},{},[11335,11339,11344],{"type":40,"tag":1902,"props":11336,"children":11337},{},[11338],{"type":46,"value":11315},{"type":40,"tag":1902,"props":11340,"children":11341},{},[11342],{"type":46,"value":11343},"Git repository",{"type":40,"tag":1902,"props":11345,"children":11346},{},[11347,11353],{"type":40,"tag":55,"props":11348,"children":11350},{"className":11349},[],[11351],{"type":46,"value":11352},"pulumi package add \u003Crepo>",{"type":46,"value":11354}," with version tags",{"type":40,"tag":1875,"props":11356,"children":11357},{},[11358,11363,11368],{"type":40,"tag":1902,"props":11359,"children":11360},{},[11361],{"type":46,"value":11362},"Language ecosystem",{"type":40,"tag":1902,"props":11364,"children":11365},{},[11366],{"type":46,"value":11367},"Package manager",{"type":40,"tag":1902,"props":11369,"children":11370},{},[11371],{"type":46,"value":11372},"Publish to npm, PyPI, NuGet, or Maven",{"type":40,"tag":1875,"props":11374,"children":11375},{},[11376,11381,11386],{"type":40,"tag":1902,"props":11377,"children":11378},{},[11379],{"type":46,"value":11380},"Public community",{"type":40,"tag":1902,"props":11382,"children":11383},{},[11384],{"type":46,"value":11385},"Pulumi Registry",{"type":40,"tag":1902,"props":11387,"children":11388},{},[11389],{"type":46,"value":11390},"Submit via pulumi\u002Fregistry GitHub repo",{"type":40,"tag":214,"props":11392,"children":11394},{"id":11393},"pulumi-private-registry",[11395],{"type":46,"value":11396},"Pulumi Private Registry",{"type":40,"tag":49,"props":11398,"children":11399},{},[11400],{"type":46,"value":11401},"The private registry is the centralized catalog for your organization's components. It provides automatic API documentation, version management, and discoverability for all teams.",{"type":40,"tag":49,"props":11403,"children":11404},{},[11405],{"type":46,"value":11406},"Publish a component to the private registry:",{"type":40,"tag":221,"props":11408,"children":11410},{"className":10492,"code":11409,"language":10494,"meta":225,"style":225},"pulumi package publish https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component --publisher myorg\n",[11411],{"type":40,"tag":55,"props":11412,"children":11413},{"__ignoreMap":225},[11414],{"type":40,"tag":231,"props":11415,"children":11416},{"class":233,"line":234},[11417,11421,11425,11430,11435,11440],{"type":40,"tag":231,"props":11418,"children":11419},{"style":348},[11420],{"type":46,"value":8},{"type":40,"tag":231,"props":11422,"children":11423},{"style":271},[11424],{"type":46,"value":10518},{"type":40,"tag":231,"props":11426,"children":11427},{"style":271},[11428],{"type":46,"value":11429}," publish",{"type":40,"tag":231,"props":11431,"children":11432},{"style":271},[11433],{"type":46,"value":11434}," https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component",{"type":40,"tag":231,"props":11436,"children":11437},{"style":271},[11438],{"type":46,"value":11439}," --publisher",{"type":40,"tag":231,"props":11441,"children":11442},{"style":271},[11443],{"type":46,"value":11444}," myorg\n",{"type":40,"tag":49,"props":11446,"children":11447},{},[11448,11450,11456],{"type":46,"value":11449},"Version components using git tags with a ",{"type":40,"tag":55,"props":11451,"children":11453},{"className":11452},[],[11454],{"type":46,"value":11455},"v",{"type":46,"value":11457}," prefix:",{"type":40,"tag":221,"props":11459,"children":11461},{"className":10492,"code":11460,"language":10494,"meta":225,"style":225},"git tag v1.0.0\ngit push origin v1.0.0\n",[11462],{"type":40,"tag":55,"props":11463,"children":11464},{"__ignoreMap":225},[11465,11483],{"type":40,"tag":231,"props":11466,"children":11467},{"class":233,"line":234},[11468,11473,11478],{"type":40,"tag":231,"props":11469,"children":11470},{"style":348},[11471],{"type":46,"value":11472},"git",{"type":40,"tag":231,"props":11474,"children":11475},{"style":271},[11476],{"type":46,"value":11477}," tag",{"type":40,"tag":231,"props":11479,"children":11480},{"style":271},[11481],{"type":46,"value":11482}," v1.0.0\n",{"type":40,"tag":231,"props":11484,"children":11485},{"class":233,"line":287},[11486,11490,11495,11500],{"type":40,"tag":231,"props":11487,"children":11488},{"style":348},[11489],{"type":46,"value":11472},{"type":40,"tag":231,"props":11491,"children":11492},{"style":271},[11493],{"type":46,"value":11494}," push",{"type":40,"tag":231,"props":11496,"children":11497},{"style":271},[11498],{"type":46,"value":11499}," origin",{"type":40,"tag":231,"props":11501,"children":11502},{"style":271},[11503],{"type":46,"value":11482},{"type":40,"tag":49,"props":11505,"children":11506},{},[11507],{"type":46,"value":11508},"A README file is required when publishing. Pulumi uses it as the component's documentation page in the registry.",{"type":40,"tag":49,"props":11510,"children":11511},{},[11512],{"type":46,"value":11513},"Automate publishing from GitHub Actions using OIDC authentication:",{"type":40,"tag":221,"props":11515,"children":11517},{"className":10301,"code":11516,"language":10303,"meta":225,"style":225},"name: Publish Component\non:\n  push:\n    tags:\n      - \"v*\"\n\npermissions:\n  id-token: write\n  contents: read\n\njobs:\n  publish:\n    runs-on: ubuntu-latest\n    env:\n      PULUMI_ORG: myorg\n    steps:\n      - uses: actions\u002Fcheckout@v4\n        with:\n          fetch-depth: 0\n      - uses: pulumi\u002Fauth-actions@v1\n        with:\n          organization: ${{ env.PULUMI_ORG }}\n          requested-token-type: urn:pulumi:token-type:access_token:organization\n      - run: pulumi package publish https:\u002F\u002Fgithub.com\u002F${{ github.repository }} --publisher ${{ env.PULUMI_ORG }}\n",[11518],{"type":40,"tag":55,"props":11519,"children":11520},{"__ignoreMap":225},[11521,11537,11550,11562,11573,11595,11602,11614,11631,11648,11655,11667,11679,11696,11708,11724,11736,11757,11769,11787,11807,11818,11835,11852],{"type":40,"tag":231,"props":11522,"children":11523},{"class":233,"line":234},[11524,11528,11532],{"type":40,"tag":231,"props":11525,"children":11526},{"style":363},[11527],{"type":46,"value":613},{"type":40,"tag":231,"props":11529,"children":11530},{"style":244},[11531],{"type":46,"value":515},{"type":40,"tag":231,"props":11533,"children":11534},{"style":271},[11535],{"type":46,"value":11536}," Publish Component\n",{"type":40,"tag":231,"props":11538,"children":11539},{"class":233,"line":287},[11540,11545],{"type":40,"tag":231,"props":11541,"children":11542},{"style":4696},[11543],{"type":46,"value":11544},"on",{"type":40,"tag":231,"props":11546,"children":11547},{"style":244},[11548],{"type":46,"value":11549},":\n",{"type":40,"tag":231,"props":11551,"children":11552},{"class":233,"line":329},[11553,11558],{"type":40,"tag":231,"props":11554,"children":11555},{"style":363},[11556],{"type":46,"value":11557},"  push",{"type":40,"tag":231,"props":11559,"children":11560},{"style":244},[11561],{"type":46,"value":11549},{"type":40,"tag":231,"props":11563,"children":11564},{"class":233,"line":27},[11565,11569],{"type":40,"tag":231,"props":11566,"children":11567},{"style":363},[11568],{"type":46,"value":6446},{"type":40,"tag":231,"props":11570,"children":11571},{"style":244},[11572],{"type":46,"value":11549},{"type":40,"tag":231,"props":11574,"children":11575},{"class":233,"line":359},[11576,11581,11585,11590],{"type":40,"tag":231,"props":11577,"children":11578},{"style":244},[11579],{"type":46,"value":11580},"      -",{"type":40,"tag":231,"props":11582,"children":11583},{"style":244},[11584],{"type":46,"value":268},{"type":40,"tag":231,"props":11586,"children":11587},{"style":271},[11588],{"type":46,"value":11589},"v*",{"type":40,"tag":231,"props":11591,"children":11592},{"style":244},[11593],{"type":46,"value":11594},"\"\n",{"type":40,"tag":231,"props":11596,"children":11597},{"class":233,"line":404},[11598],{"type":40,"tag":231,"props":11599,"children":11600},{"emptyLinePlaceholder":333},[11601],{"type":46,"value":336},{"type":40,"tag":231,"props":11603,"children":11604},{"class":233,"line":441},[11605,11610],{"type":40,"tag":231,"props":11606,"children":11607},{"style":363},[11608],{"type":46,"value":11609},"permissions",{"type":40,"tag":231,"props":11611,"children":11612},{"style":244},[11613],{"type":46,"value":11549},{"type":40,"tag":231,"props":11615,"children":11616},{"class":233,"line":450},[11617,11622,11626],{"type":40,"tag":231,"props":11618,"children":11619},{"style":363},[11620],{"type":46,"value":11621},"  id-token",{"type":40,"tag":231,"props":11623,"children":11624},{"style":244},[11625],{"type":46,"value":515},{"type":40,"tag":231,"props":11627,"children":11628},{"style":271},[11629],{"type":46,"value":11630}," write\n",{"type":40,"tag":231,"props":11632,"children":11633},{"class":233,"line":458},[11634,11639,11643],{"type":40,"tag":231,"props":11635,"children":11636},{"style":363},[11637],{"type":46,"value":11638},"  contents",{"type":40,"tag":231,"props":11640,"children":11641},{"style":244},[11642],{"type":46,"value":515},{"type":40,"tag":231,"props":11644,"children":11645},{"style":271},[11646],{"type":46,"value":11647}," read\n",{"type":40,"tag":231,"props":11649,"children":11650},{"class":233,"line":494},[11651],{"type":40,"tag":231,"props":11652,"children":11653},{"emptyLinePlaceholder":333},[11654],{"type":46,"value":336},{"type":40,"tag":231,"props":11656,"children":11657},{"class":233,"line":543},[11658,11663],{"type":40,"tag":231,"props":11659,"children":11660},{"style":363},[11661],{"type":46,"value":11662},"jobs",{"type":40,"tag":231,"props":11664,"children":11665},{"style":244},[11666],{"type":46,"value":11549},{"type":40,"tag":231,"props":11668,"children":11669},{"class":233,"line":588},[11670,11675],{"type":40,"tag":231,"props":11671,"children":11672},{"style":363},[11673],{"type":46,"value":11674},"  publish",{"type":40,"tag":231,"props":11676,"children":11677},{"style":244},[11678],{"type":46,"value":11549},{"type":40,"tag":231,"props":11680,"children":11681},{"class":233,"line":596},[11682,11687,11691],{"type":40,"tag":231,"props":11683,"children":11684},{"style":363},[11685],{"type":46,"value":11686},"    runs-on",{"type":40,"tag":231,"props":11688,"children":11689},{"style":244},[11690],{"type":46,"value":515},{"type":40,"tag":231,"props":11692,"children":11693},{"style":271},[11694],{"type":46,"value":11695}," ubuntu-latest\n",{"type":40,"tag":231,"props":11697,"children":11698},{"class":233,"line":677},[11699,11704],{"type":40,"tag":231,"props":11700,"children":11701},{"style":363},[11702],{"type":46,"value":11703},"    env",{"type":40,"tag":231,"props":11705,"children":11706},{"style":244},[11707],{"type":46,"value":11549},{"type":40,"tag":231,"props":11709,"children":11710},{"class":233,"line":687},[11711,11716,11720],{"type":40,"tag":231,"props":11712,"children":11713},{"style":363},[11714],{"type":46,"value":11715},"      PULUMI_ORG",{"type":40,"tag":231,"props":11717,"children":11718},{"style":244},[11719],{"type":46,"value":515},{"type":40,"tag":231,"props":11721,"children":11722},{"style":271},[11723],{"type":46,"value":11444},{"type":40,"tag":231,"props":11725,"children":11726},{"class":233,"line":743},[11727,11732],{"type":40,"tag":231,"props":11728,"children":11729},{"style":363},[11730],{"type":46,"value":11731},"    steps",{"type":40,"tag":231,"props":11733,"children":11734},{"style":244},[11735],{"type":46,"value":11549},{"type":40,"tag":231,"props":11737,"children":11738},{"class":233,"line":751},[11739,11743,11748,11752],{"type":40,"tag":231,"props":11740,"children":11741},{"style":244},[11742],{"type":46,"value":11580},{"type":40,"tag":231,"props":11744,"children":11745},{"style":363},[11746],{"type":46,"value":11747}," uses",{"type":40,"tag":231,"props":11749,"children":11750},{"style":244},[11751],{"type":46,"value":515},{"type":40,"tag":231,"props":11753,"children":11754},{"style":271},[11755],{"type":46,"value":11756}," actions\u002Fcheckout@v4\n",{"type":40,"tag":231,"props":11758,"children":11759},{"class":233,"line":760},[11760,11765],{"type":40,"tag":231,"props":11761,"children":11762},{"style":363},[11763],{"type":46,"value":11764},"        with",{"type":40,"tag":231,"props":11766,"children":11767},{"style":244},[11768],{"type":46,"value":11549},{"type":40,"tag":231,"props":11770,"children":11771},{"class":233,"line":876},[11772,11777,11781],{"type":40,"tag":231,"props":11773,"children":11774},{"style":363},[11775],{"type":46,"value":11776},"          fetch-depth",{"type":40,"tag":231,"props":11778,"children":11779},{"style":244},[11780],{"type":46,"value":515},{"type":40,"tag":231,"props":11782,"children":11784},{"style":11783},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[11785],{"type":46,"value":11786}," 0\n",{"type":40,"tag":231,"props":11788,"children":11789},{"class":233,"line":884},[11790,11794,11798,11802],{"type":40,"tag":231,"props":11791,"children":11792},{"style":244},[11793],{"type":46,"value":11580},{"type":40,"tag":231,"props":11795,"children":11796},{"style":363},[11797],{"type":46,"value":11747},{"type":40,"tag":231,"props":11799,"children":11800},{"style":244},[11801],{"type":46,"value":515},{"type":40,"tag":231,"props":11803,"children":11804},{"style":271},[11805],{"type":46,"value":11806}," pulumi\u002Fauth-actions@v1\n",{"type":40,"tag":231,"props":11808,"children":11809},{"class":233,"line":959},[11810,11814],{"type":40,"tag":231,"props":11811,"children":11812},{"style":363},[11813],{"type":46,"value":11764},{"type":40,"tag":231,"props":11815,"children":11816},{"style":244},[11817],{"type":46,"value":11549},{"type":40,"tag":231,"props":11819,"children":11820},{"class":233,"line":990},[11821,11826,11830],{"type":40,"tag":231,"props":11822,"children":11823},{"style":363},[11824],{"type":46,"value":11825},"          organization",{"type":40,"tag":231,"props":11827,"children":11828},{"style":244},[11829],{"type":46,"value":515},{"type":40,"tag":231,"props":11831,"children":11832},{"style":271},[11833],{"type":46,"value":11834}," ${{ env.PULUMI_ORG }}\n",{"type":40,"tag":231,"props":11836,"children":11837},{"class":233,"line":1052},[11838,11843,11847],{"type":40,"tag":231,"props":11839,"children":11840},{"style":363},[11841],{"type":46,"value":11842},"          requested-token-type",{"type":40,"tag":231,"props":11844,"children":11845},{"style":244},[11846],{"type":46,"value":515},{"type":40,"tag":231,"props":11848,"children":11849},{"style":271},[11850],{"type":46,"value":11851}," urn:pulumi:token-type:access_token:organization\n",{"type":40,"tag":231,"props":11853,"children":11854},{"class":233,"line":1112},[11855,11859,11864,11868],{"type":40,"tag":231,"props":11856,"children":11857},{"style":244},[11858],{"type":46,"value":11580},{"type":40,"tag":231,"props":11860,"children":11861},{"style":363},[11862],{"type":46,"value":11863}," run",{"type":40,"tag":231,"props":11865,"children":11866},{"style":244},[11867],{"type":46,"value":515},{"type":40,"tag":231,"props":11869,"children":11870},{"style":271},[11871],{"type":46,"value":11872}," pulumi package publish https:\u002F\u002Fgithub.com\u002F${{ github.repository }} --publisher ${{ env.PULUMI_ORG }}\n",{"type":40,"tag":49,"props":11874,"children":11875},{},[11876,11881],{"type":40,"tag":150,"props":11877,"children":11878},{},[11879],{"type":46,"value":11880},"Prerequisites",{"type":46,"value":11882},": Configure GitHub OIDC integration with Pulumi Cloud before using this workflow.",{"type":40,"tag":49,"props":11884,"children":11885},{},[11886,11888,11894,11895,11901],{"type":46,"value":11887},"The registry supports private GitHub and GitLab repositories. For non-OIDC setups, authenticate with ",{"type":40,"tag":55,"props":11889,"children":11891},{"className":11890},[],[11892],{"type":46,"value":11893},"GITHUB_TOKEN",{"type":46,"value":6054},{"type":40,"tag":55,"props":11896,"children":11898},{"className":11897},[],[11899],{"type":46,"value":11900},"GITLAB_TOKEN",{"type":46,"value":11902}," environment variables.",{"type":40,"tag":49,"props":11904,"children":11905},{},[11906,11908,11914],{"type":46,"value":11907},"The private registry automatically generates SDK documentation for each published component. Enrich the generated docs by adding type annotations to your component's inputs and outputs (JSDoc in TypeScript, docstrings in Python, ",{"type":40,"tag":55,"props":11909,"children":11911},{"className":11910},[],[11912],{"type":46,"value":11913},"Annotate()",{"type":46,"value":11915}," methods in Go).",{"type":40,"tag":49,"props":11917,"children":11918},{},[11919,11923,11924],{"type":40,"tag":150,"props":11920,"children":11921},{},[11922],{"type":46,"value":11241},{"type":46,"value":3113},{"type":40,"tag":11226,"props":11925,"children":11928},{"href":11926,"rel":11927},"https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fidp\u002Fget-started\u002Fprivate-registry\u002F",[11230],[11929],{"type":46,"value":11926},{"type":40,"tag":214,"props":11931,"children":11933},{"id":11932},"git-repository-distribution",[11934],{"type":46,"value":11935},"Git Repository Distribution",{"type":40,"tag":49,"props":11937,"children":11938},{},[11939],{"type":46,"value":11940},"Tag releases for consumers to pin versions:",{"type":40,"tag":221,"props":11942,"children":11943},{"className":10492,"code":11460,"language":10494,"meta":225,"style":225},[11944],{"type":40,"tag":55,"props":11945,"children":11946},{"__ignoreMap":225},[11947,11962],{"type":40,"tag":231,"props":11948,"children":11949},{"class":233,"line":234},[11950,11954,11958],{"type":40,"tag":231,"props":11951,"children":11952},{"style":348},[11953],{"type":46,"value":11472},{"type":40,"tag":231,"props":11955,"children":11956},{"style":271},[11957],{"type":46,"value":11477},{"type":40,"tag":231,"props":11959,"children":11960},{"style":271},[11961],{"type":46,"value":11482},{"type":40,"tag":231,"props":11963,"children":11964},{"class":233,"line":287},[11965,11969,11973,11977],{"type":40,"tag":231,"props":11966,"children":11967},{"style":348},[11968],{"type":46,"value":11472},{"type":40,"tag":231,"props":11970,"children":11971},{"style":271},[11972],{"type":46,"value":11494},{"type":40,"tag":231,"props":11974,"children":11975},{"style":271},[11976],{"type":46,"value":11499},{"type":40,"tag":231,"props":11978,"children":11979},{"style":271},[11980],{"type":46,"value":11482},{"type":40,"tag":49,"props":11982,"children":11983},{},[11984],{"type":46,"value":11985},"Consumers install with:",{"type":40,"tag":221,"props":11987,"children":11989},{"className":10492,"code":11988,"language":10494,"meta":225,"style":225},"pulumi package add https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component@v1.0.0\n",[11990],{"type":40,"tag":55,"props":11991,"children":11992},{"__ignoreMap":225},[11993],{"type":40,"tag":231,"props":11994,"children":11995},{"class":233,"line":234},[11996,12000,12004,12008],{"type":40,"tag":231,"props":11997,"children":11998},{"style":348},[11999],{"type":46,"value":8},{"type":40,"tag":231,"props":12001,"children":12002},{"style":271},[12003],{"type":46,"value":10518},{"type":40,"tag":231,"props":12005,"children":12006},{"style":271},[12007],{"type":46,"value":10523},{"type":40,"tag":231,"props":12009,"children":12010},{"style":271},[12011],{"type":46,"value":12012}," https:\u002F\u002Fgithub.com\u002Fmyorg\u002Fmy-component@v1.0.0\n",{"type":40,"tag":214,"props":12014,"children":12016},{"id":12015},"package-manager-distribution",[12017],{"type":46,"value":12018},"Package Manager Distribution",{"type":40,"tag":49,"props":12020,"children":12021},{},[12022],{"type":46,"value":12023},"Publish language-specific packages for native dependency management:",{"type":40,"tag":97,"props":12025,"children":12026},{},[12027,12044,12061,12078],{"type":40,"tag":101,"props":12028,"children":12029},{},[12030,12035,12036,12042],{"type":40,"tag":150,"props":12031,"children":12032},{},[12033],{"type":46,"value":12034},"npm",{"type":46,"value":3113},{"type":40,"tag":55,"props":12037,"children":12039},{"className":12038},[],[12040],{"type":46,"value":12041},"npm publish",{"type":46,"value":12043}," for TypeScript\u002FJavaScript",{"type":40,"tag":101,"props":12045,"children":12046},{},[12047,12052,12053,12059],{"type":40,"tag":150,"props":12048,"children":12049},{},[12050],{"type":46,"value":12051},"PyPI",{"type":46,"value":3113},{"type":40,"tag":55,"props":12054,"children":12056},{"className":12055},[],[12057],{"type":46,"value":12058},"twine upload",{"type":46,"value":12060}," for Python",{"type":40,"tag":101,"props":12062,"children":12063},{},[12064,12069,12070,12076],{"type":40,"tag":150,"props":12065,"children":12066},{},[12067],{"type":46,"value":12068},"NuGet",{"type":46,"value":3113},{"type":40,"tag":55,"props":12071,"children":12073},{"className":12072},[],[12074],{"type":46,"value":12075},"dotnet nuget push",{"type":46,"value":12077}," for .NET",{"type":40,"tag":101,"props":12079,"children":12080},{},[12081,12086],{"type":40,"tag":150,"props":12082,"children":12083},{},[12084],{"type":46,"value":12085},"Maven Central",{"type":46,"value":12087},": Standard Maven publishing for Java",{"type":40,"tag":49,"props":12089,"children":12090},{},[12091,12095,12096],{"type":40,"tag":150,"props":12092,"children":12093},{},[12094],{"type":46,"value":11241},{"type":46,"value":3113},{"type":40,"tag":11226,"props":12097,"children":12099},{"href":11245,"rel":12098},[11230],[12100],{"type":46,"value":11245},{"type":40,"tag":3081,"props":12102,"children":12103},{},[],{"type":40,"tag":85,"props":12105,"children":12107},{"id":12106},"anti-patterns",[12108],{"type":46,"value":12109},"Anti-Patterns",{"type":40,"tag":1867,"props":12111,"children":12112},{},[12113,12134],{"type":40,"tag":1871,"props":12114,"children":12115},{},[12116],{"type":40,"tag":1875,"props":12117,"children":12118},{},[12119,12124,12129],{"type":40,"tag":1879,"props":12120,"children":12121},{},[12122],{"type":46,"value":12123},"Anti-Pattern",{"type":40,"tag":1879,"props":12125,"children":12126},{},[12127],{"type":46,"value":12128},"Problem",{"type":40,"tag":1879,"props":12130,"children":12131},{},[12132],{"type":46,"value":12133},"Fix",{"type":40,"tag":1895,"props":12135,"children":12136},{},[12137,12173,12196,12225,12243,12261,12285,12303,12321],{"type":40,"tag":1875,"props":12138,"children":12139},{},[12140,12151,12161],{"type":40,"tag":1902,"props":12141,"children":12142},{},[12143,12145],{"type":46,"value":12144},"Resources inside ",{"type":40,"tag":55,"props":12146,"children":12148},{"className":12147},[],[12149],{"type":46,"value":12150},"apply()",{"type":40,"tag":1902,"props":12152,"children":12153},{},[12154,12156],{"type":46,"value":12155},"Not visible in ",{"type":40,"tag":55,"props":12157,"children":12159},{"className":12158},[],[12160],{"type":46,"value":60},{"type":40,"tag":1902,"props":12162,"children":12163},{},[12164,12166,12171],{"type":46,"value":12165},"Move resource creation outside apply (see ",{"type":40,"tag":55,"props":12167,"children":12169},{"className":12168},[],[12170],{"type":46,"value":81},{"type":46,"value":12172}," practice 1)",{"type":40,"tag":1875,"props":12174,"children":12175},{},[12176,12186,12191],{"type":40,"tag":1902,"props":12177,"children":12178},{},[12179,12181],{"type":46,"value":12180},"Missing ",{"type":40,"tag":55,"props":12182,"children":12184},{"className":12183},[],[12185],{"type":46,"value":210},{"type":40,"tag":1902,"props":12187,"children":12188},{},[12189],{"type":46,"value":12190},"Component stuck \"creating\"",{"type":40,"tag":1902,"props":12192,"children":12193},{},[12194],{"type":46,"value":12195},"Always call as last line of constructor",{"type":40,"tag":1875,"props":12197,"children":12198},{},[12199,12208,12213],{"type":40,"tag":1902,"props":12200,"children":12201},{},[12202,12203],{"type":46,"value":12180},{"type":40,"tag":55,"props":12204,"children":12206},{"className":12205},[],[12207],{"type":46,"value":194},{"type":40,"tag":1902,"props":12209,"children":12210},{},[12211],{"type":46,"value":12212},"Children appear at root level",{"type":40,"tag":1902,"props":12214,"children":12215},{},[12216,12218,12223],{"type":46,"value":12217},"Pass ",{"type":40,"tag":55,"props":12219,"children":12221},{"className":12220},[],[12222],{"type":46,"value":10169},{"type":46,"value":12224}," to all child resources",{"type":40,"tag":1875,"props":12226,"children":12227},{},[12228,12233,12238],{"type":40,"tag":1902,"props":12229,"children":12230},{},[12231],{"type":46,"value":12232},"Union types in args",{"type":40,"tag":1902,"props":12234,"children":12235},{},[12236],{"type":46,"value":12237},"Breaks Python, Go, C# SDKs",{"type":40,"tag":1902,"props":12239,"children":12240},{},[12241],{"type":46,"value":12242},"Use single types; separate properties for variants",{"type":40,"tag":1875,"props":12244,"children":12245},{},[12246,12251,12256],{"type":40,"tag":1902,"props":12247,"children":12248},{},[12249],{"type":46,"value":12250},"Functions in args",{"type":40,"tag":1902,"props":12252,"children":12253},{},[12254],{"type":46,"value":12255},"Cannot serialize across languages",{"type":40,"tag":1902,"props":12257,"children":12258},{},[12259],{"type":46,"value":12260},"Use configuration properties instead",{"type":40,"tag":1875,"props":12262,"children":12263},{},[12264,12269,12274],{"type":40,"tag":1902,"props":12265,"children":12266},{},[12267],{"type":46,"value":12268},"Hardcoded child names",{"type":40,"tag":1902,"props":12270,"children":12271},{},[12272],{"type":46,"value":12273},"Collisions with multiple instances",{"type":40,"tag":1902,"props":12275,"children":12276},{},[12277,12279],{"type":46,"value":12278},"Derive names from ",{"type":40,"tag":55,"props":12280,"children":12282},{"className":12281},[],[12283],{"type":46,"value":12284},"${name}-suffix",{"type":40,"tag":1875,"props":12286,"children":12287},{},[12288,12293,12298],{"type":40,"tag":1902,"props":12289,"children":12290},{},[12291],{"type":46,"value":12292},"Over-exposed outputs",{"type":40,"tag":1902,"props":12294,"children":12295},{},[12296],{"type":46,"value":12297},"Leaks implementation details",{"type":40,"tag":1902,"props":12299,"children":12300},{},[12301],{"type":46,"value":12302},"Export only what consumers need",{"type":40,"tag":1875,"props":12304,"children":12305},{},[12306,12311,12316],{"type":40,"tag":1902,"props":12307,"children":12308},{},[12309],{"type":46,"value":12310},"Single-use component",{"type":40,"tag":1902,"props":12312,"children":12313},{},[12314],{"type":46,"value":12315},"Unnecessary abstraction overhead",{"type":40,"tag":1902,"props":12317,"children":12318},{},[12319],{"type":46,"value":12320},"Use inline resources until a pattern repeats",{"type":40,"tag":1875,"props":12322,"children":12323},{},[12324,12329,12334],{"type":40,"tag":1902,"props":12325,"children":12326},{},[12327],{"type":46,"value":12328},"Deeply nested args",{"type":40,"tag":1902,"props":12330,"children":12331},{},[12332],{"type":46,"value":12333},"Hard to use and evolve",{"type":40,"tag":1902,"props":12335,"children":12336},{},[12337],{"type":46,"value":12338},"Keep interfaces flat with optional properties",{"type":40,"tag":3081,"props":12340,"children":12341},{},[],{"type":40,"tag":85,"props":12343,"children":12345},{"id":12344},"quick-reference",[12346],{"type":46,"value":12347},"Quick Reference",{"type":40,"tag":1867,"props":12349,"children":12350},{},[12351,12366],{"type":40,"tag":1871,"props":12352,"children":12353},{},[12354],{"type":40,"tag":1875,"props":12355,"children":12356},{},[12357,12361],{"type":40,"tag":1879,"props":12358,"children":12359},{},[12360],{"type":46,"value":8390},{"type":40,"tag":1879,"props":12362,"children":12363},{},[12364],{"type":46,"value":12365},"Key Point",{"type":40,"tag":1895,"props":12367,"children":12368},{},[12369,12392,12416,12441,12461,12481,12501,12513,12536],{"type":40,"tag":1875,"props":12370,"children":12371},{},[12372,12377],{"type":40,"tag":1902,"props":12373,"children":12374},{},[12375],{"type":46,"value":12376},"Type URN",{"type":40,"tag":1902,"props":12378,"children":12379},{},[12380,12385,12387],{"type":40,"tag":55,"props":12381,"children":12383},{"className":12382},[],[12384],{"type":46,"value":1864},{"type":46,"value":12386},", module usually ",{"type":40,"tag":55,"props":12388,"children":12390},{"className":12389},[],[12391],{"type":46,"value":1954},{"type":40,"tag":1875,"props":12393,"children":12394},{},[12395,12400],{"type":40,"tag":1902,"props":12396,"children":12397},{},[12398],{"type":46,"value":12399},"Constructor",{"type":40,"tag":1902,"props":12401,"children":12402},{},[12403,12409,12411],{"type":40,"tag":55,"props":12404,"children":12406},{"className":12405},[],[12407],{"type":46,"value":12408},"super(type, name, {}, opts)",{"type":46,"value":12410}," then children then ",{"type":40,"tag":55,"props":12412,"children":12414},{"className":12413},[],[12415],{"type":46,"value":210},{"type":40,"tag":1875,"props":12417,"children":12418},{},[12419,12424],{"type":40,"tag":1902,"props":12420,"children":12421},{},[12422],{"type":46,"value":12423},"Child resources",{"type":40,"tag":1902,"props":12425,"children":12426},{},[12427,12429,12434,12436],{"type":46,"value":12428},"Always ",{"type":40,"tag":55,"props":12430,"children":12432},{"className":12431},[],[12433],{"type":46,"value":10169},{"type":46,"value":12435},", derive name from ",{"type":40,"tag":55,"props":12437,"children":12439},{"className":12438},[],[12440],{"type":46,"value":12284},{"type":40,"tag":1875,"props":12442,"children":12443},{},[12444,12449],{"type":40,"tag":1902,"props":12445,"children":12446},{},[12447],{"type":46,"value":12448},"Args interface",{"type":40,"tag":1902,"props":12450,"children":12451},{},[12452,12454,12459],{"type":46,"value":12453},"Wrap in ",{"type":40,"tag":55,"props":12455,"children":12457},{"className":12456},[],[12458],{"type":46,"value":3119},{"type":46,"value":12460},", no unions, no functions, flat structure",{"type":40,"tag":1875,"props":12462,"children":12463},{},[12464,12469],{"type":40,"tag":1902,"props":12465,"children":12466},{},[12467],{"type":46,"value":12468},"Outputs",{"type":40,"tag":1902,"props":12470,"children":12471},{},[12472,12474,12479],{"type":46,"value":12473},"Public readonly ",{"type":40,"tag":55,"props":12475,"children":12477},{"className":12476},[],[12478],{"type":46,"value":3127},{"type":46,"value":12480}," properties, expose only essentials",{"type":40,"tag":1875,"props":12482,"children":12483},{},[12484,12489],{"type":40,"tag":1902,"props":12485,"children":12486},{},[12487],{"type":46,"value":12488},"Defaults",{"type":40,"tag":1902,"props":12490,"children":12491},{},[12492,12493,12499],{"type":46,"value":6046},{"type":40,"tag":55,"props":12494,"children":12496},{"className":12495},[],[12497],{"type":46,"value":12498},"??",{"type":46,"value":12500}," operator to apply sensible defaults in constructor",{"type":40,"tag":1875,"props":12502,"children":12503},{},[12504,12508],{"type":40,"tag":1902,"props":12505,"children":12506},{},[12507],{"type":46,"value":8893},{"type":40,"tag":1902,"props":12509,"children":12510},{},[12511],{"type":46,"value":12512},"Lower-level components composed into higher-level ones",{"type":40,"tag":1875,"props":12514,"children":12515},{},[12516,12521],{"type":40,"tag":1902,"props":12517,"children":12518},{},[12519],{"type":46,"value":12520},"Multi-language",{"type":40,"tag":1902,"props":12522,"children":12523},{},[12524,12529,12531],{"type":40,"tag":55,"props":12525,"children":12527},{"className":12526},[],[12528],{"type":46,"value":10230},{"type":46,"value":12530}," + entry point; consumers use ",{"type":40,"tag":55,"props":12532,"children":12534},{"className":12533},[],[12535],{"type":46,"value":10480},{"type":40,"tag":1875,"props":12537,"children":12538},{},[12539,12543],{"type":40,"tag":1902,"props":12540,"children":12541},{},[12542],{"type":46,"value":11257},{"type":40,"tag":1902,"props":12544,"children":12545},{},[12546],{"type":46,"value":12547},"Private registry, git tags, package managers, or public Pulumi Registry",{"type":40,"tag":85,"props":12549,"children":12551},{"id":12550},"related-skills",[12552],{"type":46,"value":12553},"Related Skills",{"type":40,"tag":97,"props":12555,"children":12556},{},[12557,12566,12576],{"type":40,"tag":101,"props":12558,"children":12559},{},[12560,12564],{"type":40,"tag":150,"props":12561,"children":12562},{},[12563],{"type":46,"value":81},{"type":46,"value":12565},": General Pulumi patterns including Output handling, secrets, and aliases",{"type":40,"tag":101,"props":12567,"children":12568},{},[12569,12574],{"type":40,"tag":150,"props":12570,"children":12571},{},[12572],{"type":46,"value":12573},"pulumi-automation-api",{"type":46,"value":12575},": Programmatic orchestration for integration testing and multi-stack workflows",{"type":40,"tag":101,"props":12577,"children":12578},{},[12579,12584],{"type":40,"tag":150,"props":12580,"children":12581},{},[12582],{"type":46,"value":12583},"pulumi-esc",{"type":46,"value":12585},": Centralized secrets and configuration for component deployments",{"type":40,"tag":85,"props":12587,"children":12589},{"id":12588},"references",[12590],{"type":46,"value":12591},"References",{"type":40,"tag":97,"props":12593,"children":12594},{},[12595,12604,12612,12620,12629],{"type":40,"tag":101,"props":12596,"children":12597},{},[12598],{"type":40,"tag":11226,"props":12599,"children":12602},{"href":12600,"rel":12601},"https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Fresources\u002Fcomponents\u002F",[11230],[12603],{"type":46,"value":12600},{"type":40,"tag":101,"props":12605,"children":12606},{},[12607],{"type":40,"tag":11226,"props":12608,"children":12610},{"href":11245,"rel":12609},[11230],[12611],{"type":46,"value":11245},{"type":40,"tag":101,"props":12613,"children":12614},{},[12615],{"type":40,"tag":11226,"props":12616,"children":12618},{"href":11926,"rel":12617},[11230],[12619],{"type":46,"value":11926},{"type":40,"tag":101,"props":12621,"children":12622},{},[12623],{"type":40,"tag":11226,"props":12624,"children":12627},{"href":12625,"rel":12626},"https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Finputs-outputs\u002F",[11230],[12628],{"type":46,"value":12625},{"type":40,"tag":101,"props":12630,"children":12631},{},[12632],{"type":40,"tag":11226,"props":12633,"children":12636},{"href":12634,"rel":12635},"https:\u002F\u002Fwww.pulumi.com\u002Fdocs\u002Fiac\u002Fconcepts\u002Fresources\u002Foptions\u002Faliases\u002F",[11230],[12637],{"type":46,"value":12634},{"type":40,"tag":12639,"props":12640,"children":12641},"style",{},[12642],{"type":46,"value":12643},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":12645,"total":588},[12646,12664,12679,12692,12706,12720,12730],{"slug":12647,"name":12647,"fn":12648,"description":12649,"org":12650,"tags":12651,"stars":23,"repoUrl":24,"updatedAt":12663},"cloudformation-to-pulumi","migrate CloudFormation to Pulumi","Convert, migrate, or import AWS CloudFormation stacks or templates into Pulumi programs. Load this skill whenever a user wants to move from CloudFormation to Pulumi, convert a CFN template, import existing CloudFormation-managed resources into Pulumi, or asks about CloudFormation-to-Pulumi migration in any form. Also load when the user mentions cdk-importer in a migration context.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12652,12655,12658,12659,12662],{"name":12653,"slug":12654,"type":15},"AWS","aws",{"name":12656,"slug":12657,"type":15},"Deployment","deployment",{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},"Migration","migration",{"name":9,"slug":8,"type":15},"2026-04-06T18:50:36.677615",{"slug":12665,"name":12665,"fn":12666,"description":12667,"org":12668,"tags":12669,"stars":23,"repoUrl":24,"updatedAt":12678},"package-usage","audit Pulumi package usage across stacks","Track which stacks across a Pulumi organization use a specific package and at what versions. Use for cross-stack audits, identifying outdated or unmaintained package versions across many stacks, finding affected stacks before publishing breaking changes to a component package, or planning coordinated upgrade rollouts. Do NOT use for upgrading a cloud provider package (pulumi-aws, pulumi-azure-native, pulumi-gcp, pulumi-kubernetes, etc.) in a single project — use skill `provider-upgrade` instead. Do NOT use for general infrastructure creation, resource provisioning, or how-to questions about a package.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12670,12673,12674,12677],{"name":12671,"slug":12672,"type":15},"Audit","audit",{"name":21,"slug":22,"type":15},{"name":12675,"slug":12676,"type":15},"Operations","operations",{"name":9,"slug":8,"type":15},"2026-07-24T05:37:48.019964",{"slug":12680,"name":12680,"fn":12681,"description":12682,"org":12683,"tags":12684,"stars":23,"repoUrl":24,"updatedAt":12691},"provider-upgrade","upgrade and reconcile Pulumi providers","Upgrade any Pulumi provider to a newer version and reconcile the resulting diff. Use when users want to upgrade or update a provider (including editing package.json, requirements.txt, pyproject.toml, go.mod, or Pulumi.yaml to bump a provider SDK), check for breaking changes before or during an upgrade, fix resources that broke after a provider upgrade, or resolve unexpected replacements, creates, or deletes in a post-upgrade preview. Applies to all providers (aws, azure-native, gcp, kubernetes, aws-native, cloudflare, datadog, etc.) — not just Tier 1. Do NOT use for querying which stacks use what package versions; use skill `package-usage` for cross-stack audits. Do NOT use for general infrastructure tasks.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12685,12688,12689,12690],{"name":12686,"slug":12687,"type":15},"DevOps","devops",{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},"2026-06-04T07:58:58.874758",{"slug":12693,"name":12693,"fn":12694,"description":12695,"org":12696,"tags":12697,"stars":23,"repoUrl":24,"updatedAt":12705},"pulumi-arm-to-pulumi","migrate Azure ARM to Pulumi","Convert or migrate Azure ARM (Azure Resource Manager) templates, Bicep templates, or code to Pulumi, including importing existing Azure resources. This skill MUST be loaded whenever a user requests migration, conversion, or import of ARM templates, Bicep templates, ARM code, Bicep code, or Azure resources to Pulumi.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12698,12701,12702,12703,12704],{"name":12699,"slug":12700,"type":15},"Azure","azure",{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:50:35.384851",{"slug":12573,"name":12573,"fn":12707,"description":12708,"org":12709,"tags":12710,"stars":23,"repoUrl":24,"updatedAt":12719},"run Pulumi programs via Automation API","Load this skill when a user asks how to run Pulumi programmatically, embed Pulumi in an application, orchestrate multiple stacks in code, build a self-service infrastructure portal, replace pulumi CLI shell scripts with code, or use the Pulumi Automation API (LocalWorkspace, createOrSelectStack, inline programs). Also load for questions about multi-stack sequencing, parallel deployments, or passing outputs between stacks via code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12711,12714,12717,12718],{"name":12712,"slug":12713,"type":15},"API Development","api-development",{"name":12715,"slug":12716,"type":15},"Automation","automation",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-06-04T07:59:00.113998",{"slug":81,"name":81,"fn":12721,"description":12722,"org":12723,"tags":12724,"stars":23,"repoUrl":24,"updatedAt":12729},"apply Pulumi best practices for infrastructure","Load when the user is writing, reviewing, or debugging Pulumi TypeScript\u002FPython programs; asks about Output\u003CT> or apply() usage; wants to create ComponentResource classes; needs to refactor resources without destroying them (aliases); is setting up secrets or config; or is configuring a pulumi preview\u002Fup CI workflow. Also load for questions about resource dependency order, parent\u002Fchild resource relationships, or pulumi.interpolate.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12725,12726,12727,12728],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1514,"slug":1511,"type":15},{"name":219,"slug":216,"type":15},"2026-06-03T07:52:43.916562",{"slug":12731,"name":12731,"fn":12732,"description":12733,"org":12734,"tags":12735,"stars":23,"repoUrl":24,"updatedAt":12741},"pulumi-cdk-to-pulumi","migrate AWS CDK to Pulumi","Load this skill when a user wants to migrate, convert, port, translate, or move an AWS CDK application (including CDK stacks, constructs, or CloudFormation-synthesized templates) to Pulumi. Phrases such as \"convert CDK to Pulumi\", \"migrate CDK app\", \"port CDK stacks\", \"replace CDK with Pulumi\", \"stop using CDK\". Do NOT load for general CDK questions, CDK-only help, or CDK vs Pulumi comparisons where no migration is requested.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12736,12737,12738,12739,12740],{"name":12653,"slug":12654,"type":15},{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},"2026-04-06T18:50:39.23999",{"items":12743,"total":588},[12744,12752,12759,12766,12774,12781,12788,12796,12803,12816,12830,12840],{"slug":12647,"name":12647,"fn":12648,"description":12649,"org":12745,"tags":12746,"stars":23,"repoUrl":24,"updatedAt":12663},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12747,12748,12749,12750,12751],{"name":12653,"slug":12654,"type":15},{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},{"slug":12665,"name":12665,"fn":12666,"description":12667,"org":12753,"tags":12754,"stars":23,"repoUrl":24,"updatedAt":12678},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12755,12756,12757,12758],{"name":12671,"slug":12672,"type":15},{"name":21,"slug":22,"type":15},{"name":12675,"slug":12676,"type":15},{"name":9,"slug":8,"type":15},{"slug":12680,"name":12680,"fn":12681,"description":12682,"org":12760,"tags":12761,"stars":23,"repoUrl":24,"updatedAt":12691},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12762,12763,12764,12765],{"name":12686,"slug":12687,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},{"slug":12693,"name":12693,"fn":12694,"description":12695,"org":12767,"tags":12768,"stars":23,"repoUrl":24,"updatedAt":12705},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12769,12770,12771,12772,12773],{"name":12699,"slug":12700,"type":15},{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},{"slug":12573,"name":12573,"fn":12707,"description":12708,"org":12775,"tags":12776,"stars":23,"repoUrl":24,"updatedAt":12719},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12777,12778,12779,12780],{"name":12712,"slug":12713,"type":15},{"name":12715,"slug":12716,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":81,"name":81,"fn":12721,"description":12722,"org":12782,"tags":12783,"stars":23,"repoUrl":24,"updatedAt":12729},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12784,12785,12786,12787],{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":1514,"slug":1511,"type":15},{"name":219,"slug":216,"type":15},{"slug":12731,"name":12731,"fn":12732,"description":12733,"org":12789,"tags":12790,"stars":23,"repoUrl":24,"updatedAt":12741},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12791,12792,12793,12794,12795],{"name":12653,"slug":12654,"type":15},{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},{"slug":4,"name":4,"fn":5,"description":6,"org":12797,"tags":12798,"stars":23,"repoUrl":24,"updatedAt":25},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12799,12800,12801,12802],{"name":13,"slug":14,"type":15},{"name":18,"slug":19,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"slug":12804,"name":12804,"fn":12805,"description":12806,"org":12807,"tags":12808,"stars":23,"repoUrl":24,"updatedAt":12815},"pulumi-debug-failed-operation","debug failed Pulumi operations","Debug a Pulumi update or preview that failed: read the failure Pulumi already\nrecorded, find what caused it, and fix it. Load this skill when the user asks\nto debug, diagnose, or fix a failed update or preview, or points at a failing\n`pulumi up` or `pulumi preview`. Don't load it for authoring new\ninfrastructure, migrations, or provider upgrades; those have their own skills.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12809,12812,12813,12814],{"name":12810,"slug":12811,"type":15},"Debugging","debugging",{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-07-08T05:47:02.688144",{"slug":12583,"name":12583,"fn":12817,"description":12818,"org":12819,"tags":12820,"stars":23,"repoUrl":24,"updatedAt":12829},"manage secrets and configuration with Pulumi ESC","Guidance for working with Pulumi ESC (Environments, Secrets, and Configuration). Use when users ask about managing secrets, configuration, environments, short-term credentials, configuring OIDC for AWS, Azure, GCP, integrating with secret stores (AWS Secrets Manager, Azure Key Vault, HashiCorp Vault, 1Password), or using ESC with Pulumi stacks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12821,12824,12825,12826],{"name":12822,"slug":12823,"type":15},"Configuration","configuration",{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},{"name":12827,"slug":12828,"type":15},"Security","security","2026-07-24T05:37:47.044405",{"slug":12831,"name":12831,"fn":12832,"description":12833,"org":12834,"tags":12835,"stars":23,"repoUrl":24,"updatedAt":12839},"pulumi-overview","manage cloud infrastructure with Pulumi","Use this skill for any task that creates, modifies, inspects, or destroys cloud infrastructure or SaaS configuration, from one-off CLI operations to full multi-resource projects, across providers in the Pulumi ecosystem. A typical project spans many providers (AWS or Azure or GCP, Kubernetes, Cloudflare, Auth0, Datadog, Vercel, and others), and Pulumi drives them through one CLI, one state model, and one credential layer. Trigger even when the user does not name Pulumi; phrasings like \"deploy this app,\" \"provision a database,\" \"stand up a VPC,\" \"configure Auth0,\" \"set up Datadog monitoring,\" or \"tear down staging\" qualify. Also trigger for tasks that migrate, port, or convert existing infrastructure code (Terraform, CloudFormation, CDK, Bicep, ARM) to Pulumi. Do not trigger for application runtime code that reads or writes data via cloud SDKs; that is application code, not infrastructure.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12836,12837,12838],{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":9,"slug":8,"type":15},"2026-06-03T07:52:39.333565",{"slug":12841,"name":12841,"fn":12842,"description":12843,"org":12844,"tags":12845,"stars":23,"repoUrl":24,"updatedAt":12853},"pulumi-terraform-to-pulumi","migrate Terraform to Pulumi","Migrate Terraform\u002FOpenTofu projects to Pulumi, including translating HCL source code and\u002For importing Terraform state into a Pulumi stack. Use when a user wants to convert Terraform to Pulumi, migrate from HCL, or import tfstate into Pulumi. Do NOT trigger for general Terraform-vs-Pulumi comparisons or questions about using both tools side-by-side.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[12846,12847,12848,12849,12850],{"name":12656,"slug":12657,"type":15},{"name":21,"slug":22,"type":15},{"name":12660,"slug":12661,"type":15},{"name":9,"slug":8,"type":15},{"name":12851,"slug":12852,"type":15},"Terraform","terraform","2026-04-06T18:50:37.954346"]