pulumi/tests/testdata/codegen/external-resource-schema/go/example
Zaid Ajaj ebf838e02e
[go] Allow output-versioned invokes to resolve and maintain secrets (#17132)
Partially addressing #12710

### Description

This PR extends Go SDK-gen, specifically for output-versioned invokes
such that they no longer rely on the plain invokes for their function
body.

We do this by implementing and using a sdk function `InvokePackageRaw`
which is similar to `InvokePackage` except that it doesn't fail on
secrets and actually returns a boolean indicating whether the invoke
response contained any secrets. This way, the generated output-versioned
invokes can immediately wrap the response as a secret if necessary and
more importantly, not failing immediately if the response contained
secrets.

The sdk-gen test `output-funcs` actually do a runtime test for the newly
generated function body and it passes. ~~However, I don't think it
covers the _if secret then wrap as secret_ path~~ but maybe that's
acceptable because it's a simple one liner
```go
// <invoke function body ommited here>
if secret {
  return pulumi.ToSecret(output).(FuncResultOutput), nil
}
```
Follow-up PRs with less priority:
 - [x] A proper test for invokes with secrets in their response
 - [ ] A conformance test
- [ ] Doing the same for _generic_ output-versioned invokes to let them
maintain secretness

### EDIT
Updated the test in output-funcs such that it now returns a response for
an invoke containing secrets
2024-09-09 12:57:43 +00:00
..
internal Move codegen testdata (#15549) 2024-03-06 20:36:50 +00:00
argFunction.go [go] Allow output-versioned invokes to resolve and maintain secrets (#17132) 2024-09-09 12:57:43 +00:00
cat.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00
component.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00
doc.go Move codegen testdata (#15549) 2024-03-06 20:36:50 +00:00
init.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00
provider.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00
pulumi-plugin.json Move codegen testdata (#15549) 2024-03-06 20:36:50 +00:00
pulumiTypes.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00
workload.go [docs] Emit example constructor syntax for resources in typescript, python, go and csharp (#15624) 2024-03-21 13:41:07 +00:00