// Copyright 2016-2018, Pulumi Corporation. All rights reserved. import * as pulumi from "@pulumi/pulumi"; class DynamicProvider extends pulumi.ProviderResource { constructor(name: string, opts?: pulumi.ResourceOptions) { super("pulumi-nodejs", name, {}, opts); } } class Provider implements pulumi.dynamic.ResourceProvider { public static instance = new Provider(); public create: (inputs: any) => Promise; constructor() { this.create = async (inputs: any) => { return { id: "0", outs: undefined, }; }; } } class Resource extends pulumi.dynamic.Resource { constructor(name: string, provider?: pulumi.ProviderResource) { super(Provider.instance, name, {}, { provider: provider}); } } // Create a resource using the default dynamic provider instance. let a = new Resource("a"); // Create an explicit instance of the dynamic provider. let p = new DynamicProvider("p"); // Create a resource using the explicit dynamic provider instance. let b = new Resource("b", p);