mirror of https://github.com/pulumi/pulumi.git
48 lines
1.1 KiB
TypeScript
48 lines
1.1 KiB
TypeScript
// Copyright 2016-2020, Pulumi Corporation. All rights reserved.
|
|
|
|
import * as pulumi from "@pulumi/pulumi";
|
|
|
|
class MyResource extends pulumi.dynamic.Resource {
|
|
constructor(name: string, props: pulumi.Inputs, opts?: pulumi.CustomResourceOptions) {
|
|
super({
|
|
create: async (inputs: any) => {
|
|
return {
|
|
id: "0",
|
|
outs: inputs,
|
|
}
|
|
},
|
|
}, name, props, opts);
|
|
}
|
|
}
|
|
|
|
class GetResource extends pulumi.Resource {
|
|
foo: pulumi.Output<string>;
|
|
bar: pulumi.Output<string>;
|
|
|
|
constructor(urn: pulumi.URN) {
|
|
const props = {
|
|
foo: undefined,
|
|
bar: undefined,
|
|
};
|
|
super("unused:unused:unused", "unused", true, props, { urn });
|
|
}
|
|
}
|
|
|
|
const a = new MyResource("a", {
|
|
foo: "foo",
|
|
bar: pulumi.secret("my-$ecret"),
|
|
});
|
|
|
|
const getFoo = a.urn.apply(urn => {
|
|
const r = new GetResource(urn);
|
|
return r.foo
|
|
});
|
|
|
|
const getBar = a.urn.apply(urn => {
|
|
const r = new GetResource(urn);
|
|
return r.bar
|
|
});
|
|
|
|
|
|
export const foo = getFoo;
|
|
export const secret = getBar; |