If you create a resource via new.. e.g. var inst1 = new gcp.sourceRepo you will find the attributes are Output<T> e.g. inst1.name is Output<String> you can then pass that as the input to the next resource you create.. You can customize it with apply. iirc the concept docs show this in action quite well... (cough it's heavily monad influence although I note they dont dare mention the word)