mirror of https://github.com/pulumi/pulumi.git
![]() Rather than setting the destination to a value of one of the `pulumi.` primitive types, set the destination to a value of the appropriate args type. For example, consider the following definitions: ``` type StringEnumInput interface { Input ToStringEnumOutput() StringEnumOutput ToStringEnumOutputWithContext(context.Context) StringEnumOutput } ... type StringEnum string ... type StringEnumInputArgs struct { Value StringEnumInput `pulumi:"value"` } func init() { RegisterInputType(reflect.TypeOf((*StringEnumInput)(nil)).Elem(), StringEnum("")) } ``` The original code would have attempted to set `StringEnumInputArgs.Value` to a value of type `pulumi.String`, but `pulumi.String` does not implement `StringEnumInput`. The fixed code creates a value of type `StringEnum`, sets its value to whatever is present in the object to deserialize, and then sets `StringEnumInputArgs.Value` to the deserialized value. |
||
---|---|---|
.. | ||
auto | ||
common | ||
pulumi | ||
pulumi-language-go | ||
Makefile | ||
README.md |
README.md
Pulumi Golang SDK
This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:
pulumi/
contains the client language bindings Pulumi program's code directly against;pulumi-language-go/
contains the language host plugin that the Pulumi engine uses to orchestrate updates.
To author a Pulumi program in Go, simply say so in your Pulumi.yaml
name: <my-project>
runtime: go
and ensure you have pulumi-language-go
on your path (it is distributed in the Pulumi download automatically).
By default, the language plugin will use your project's name, <my-project>
, as the executable that it loads. This too
must be on your path for the language provider to load it when you run pulumi preview
or pulumi up
.