pulumi/sdk/go
Pat Gavlin 664ed0ec39
[sdk/go] Fix copyInputTo for enums. (#8590)
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.
2021-12-15 10:54:11 -08:00
..
auto .NET & python SDKs parity for bad pulumi versions (#8297) 2021-10-27 20:54:23 -07:00
common Use `pulumi-plugin.json` rather than `pulumiplugin.json` (#8593) 2021-12-15 10:41:44 -08:00
pulumi [sdk/go] Fix copyInputTo for enums. (#8590) 2021-12-15 10:54:11 -08:00
pulumi-language-go Use `pulumi-plugin.json` rather than `pulumiplugin.json` (#8593) 2021-12-15 10:41:44 -08:00
Makefile [automation-api] Exclude tests from test_fast. (#7986) 2021-09-16 17:33:33 -07:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

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.