2022-09-26 16:57:05 +00:00
|
|
|
// Code generated by test DO NOT EDIT.
|
|
|
|
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
|
|
|
|
|
|
|
|
package mypkg
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"reflect"
|
|
|
|
|
2022-11-01 09:02:01 +00:00
|
|
|
"errors"
|
2022-09-26 16:57:05 +00:00
|
|
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
|
2023-08-28 16:42:37 +00:00
|
|
|
"github.com/pulumi/pulumi/sdk/v3/go/pulumix"
|
2023-06-14 16:34:49 +00:00
|
|
|
"secrets/mypkg/internal"
|
2022-09-26 16:57:05 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
type Resource struct {
|
|
|
|
pulumi.CustomResourceState
|
|
|
|
|
|
|
|
Config ConfigOutput `pulumi:"config"`
|
|
|
|
ConfigArray ConfigArrayOutput `pulumi:"configArray"`
|
|
|
|
ConfigMap ConfigMapOutput `pulumi:"configMap"`
|
|
|
|
Foo pulumi.StringOutput `pulumi:"foo"`
|
|
|
|
FooArray pulumi.StringArrayOutput `pulumi:"fooArray"`
|
|
|
|
FooMap pulumi.StringMapOutput `pulumi:"fooMap"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// NewResource registers a new resource with the given unique name, arguments, and options.
|
|
|
|
func NewResource(ctx *pulumi.Context,
|
|
|
|
name string, args *ResourceArgs, opts ...pulumi.ResourceOption) (*Resource, error) {
|
|
|
|
if args == nil {
|
|
|
|
return nil, errors.New("missing one or more required arguments")
|
|
|
|
}
|
|
|
|
|
|
|
|
if args.Config == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'Config'")
|
|
|
|
}
|
|
|
|
if args.ConfigArray == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'ConfigArray'")
|
|
|
|
}
|
|
|
|
if args.ConfigMap == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'ConfigMap'")
|
|
|
|
}
|
|
|
|
if args.Foo == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'Foo'")
|
|
|
|
}
|
|
|
|
if args.FooArray == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'FooArray'")
|
|
|
|
}
|
|
|
|
if args.FooMap == nil {
|
|
|
|
return nil, errors.New("invalid value for required argument 'FooMap'")
|
|
|
|
}
|
|
|
|
if args.Config != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.Config = pulumi.ToSecret(args.Config).(ConfigInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
if args.ConfigArray != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.ConfigArray = pulumi.ToSecret(args.ConfigArray).(ConfigArrayInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
if args.ConfigMap != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.ConfigMap = pulumi.ToSecret(args.ConfigMap).(ConfigMapInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
if args.Foo != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.Foo = pulumi.ToSecret(args.Foo).(pulumi.StringInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
if args.FooArray != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.FooArray = pulumi.ToSecret(args.FooArray).(pulumi.StringArrayInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
if args.FooMap != nil {
|
fix(sdkgen/go): illegal cast in resource constructors when secret-wrapping input arguments
Codegen for wrapping input properties as secrets performed an incorrect cast, as
seen in Pulumi's AWS classic SDK.
Using the sample program and the resource constructor described in #11664 as our
test case, from `pulumi-aws/sdk/v5/go/aws/secretmanager/secretVersion.go`:
```go
func NewSecretVersion(ctx *pulumi.Context,
name string, args *SecretVersionArgs, opts ...pulumi.ResourceOption) (*SecretVersion, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.SecretId == nil {
return nil, errors.New("invalid value for required argument 'SecretId'")
}
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrOutput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrOutput)
}
```
`args.SecretBinary` is of type `pulumi.StringPtrInput` and `pulumi.ToSecret`
returns `pulumi.Output` returns its input as an Output-wrapped value marked
secret.
As `StringPtrInput` is an interface accepting multiple input types, the return
value would be either `pulumi.StringOutput` `pulumi.StringPtrOutput`. These are
both concrete types, and casting to the incorrect one would panic.
Fortunately we can cast back to the arg's type, as verified by building the new
codegen and testing the Pulumi program in #11664. This should handle regular
inputs and plain inputs.
The new codegen below converts an input type `T` to `pulumi.Output`, then casts
back to `T`.
```go
func NewSecretVersion(ctx *pulumi.Context,
// ...
if args.SecretBinary != nil {
82: args.SecretBinary = pulumi.ToSecret(args.SecretBinary).(pulumi.StringPtrInput)
}
if args.SecretString != nil {
85: args.SecretString = pulumi.ToSecret(args.SecretString).(pulumi.StringPtrInput)
}
```
2022-12-16 23:39:54 +00:00
|
|
|
args.FooMap = pulumi.ToSecret(args.FooMap).(pulumi.StringMapInput)
|
2022-09-26 16:57:05 +00:00
|
|
|
}
|
|
|
|
secrets := pulumi.AdditionalSecretOutputs([]string{
|
|
|
|
"config",
|
|
|
|
"configArray",
|
|
|
|
"configMap",
|
|
|
|
"foo",
|
|
|
|
"fooArray",
|
|
|
|
"fooMap",
|
|
|
|
})
|
|
|
|
opts = append(opts, secrets)
|
2023-06-14 16:34:49 +00:00
|
|
|
opts = internal.PkgResourceDefaultOpts(opts)
|
2022-09-26 16:57:05 +00:00
|
|
|
var resource Resource
|
|
|
|
err := ctx.RegisterResource("mypkg::Resource", name, args, &resource, opts...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &resource, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetResource gets an existing Resource resource's state with the given name, ID, and optional
|
|
|
|
// state properties that are used to uniquely qualify the lookup (nil if not required).
|
|
|
|
func GetResource(ctx *pulumi.Context,
|
|
|
|
name string, id pulumi.IDInput, state *ResourceState, opts ...pulumi.ResourceOption) (*Resource, error) {
|
|
|
|
var resource Resource
|
|
|
|
err := ctx.ReadResource("mypkg::Resource", name, id, state, &resource, opts...)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return &resource, nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Input properties used for looking up and filtering Resource resources.
|
|
|
|
type resourceState struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
type ResourceState struct {
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ResourceState) ElementType() reflect.Type {
|
|
|
|
return reflect.TypeOf((*resourceState)(nil)).Elem()
|
|
|
|
}
|
|
|
|
|
|
|
|
type resourceArgs struct {
|
|
|
|
Config Config `pulumi:"config"`
|
|
|
|
ConfigArray []Config `pulumi:"configArray"`
|
|
|
|
ConfigMap map[string]Config `pulumi:"configMap"`
|
|
|
|
Foo string `pulumi:"foo"`
|
|
|
|
FooArray []string `pulumi:"fooArray"`
|
|
|
|
FooMap map[string]string `pulumi:"fooMap"`
|
|
|
|
}
|
|
|
|
|
|
|
|
// The set of arguments for constructing a Resource resource.
|
|
|
|
type ResourceArgs struct {
|
|
|
|
Config ConfigInput
|
|
|
|
ConfigArray ConfigArrayInput
|
|
|
|
ConfigMap ConfigMapInput
|
|
|
|
Foo pulumi.StringInput
|
|
|
|
FooArray pulumi.StringArrayInput
|
|
|
|
FooMap pulumi.StringMapInput
|
|
|
|
}
|
|
|
|
|
|
|
|
func (ResourceArgs) ElementType() reflect.Type {
|
|
|
|
return reflect.TypeOf((*resourceArgs)(nil)).Elem()
|
|
|
|
}
|
|
|
|
|
|
|
|
type ResourceInput interface {
|
|
|
|
pulumi.Input
|
|
|
|
|
|
|
|
ToResourceOutput() ResourceOutput
|
|
|
|
ToResourceOutputWithContext(ctx context.Context) ResourceOutput
|
|
|
|
}
|
|
|
|
|
|
|
|
func (*Resource) ElementType() reflect.Type {
|
|
|
|
return reflect.TypeOf((**Resource)(nil)).Elem()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *Resource) ToResourceOutput() ResourceOutput {
|
|
|
|
return i.ToResourceOutputWithContext(context.Background())
|
|
|
|
}
|
|
|
|
|
|
|
|
func (i *Resource) ToResourceOutputWithContext(ctx context.Context) ResourceOutput {
|
|
|
|
return pulumi.ToOutputWithContext(ctx, i).(ResourceOutput)
|
|
|
|
}
|
|
|
|
|
2023-08-28 16:42:37 +00:00
|
|
|
func (i *Resource) ToOutput(ctx context.Context) pulumix.Output[*Resource] {
|
|
|
|
return pulumix.Output[*Resource]{
|
|
|
|
OutputState: i.ToResourceOutputWithContext(ctx).OutputState,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-09-26 16:57:05 +00:00
|
|
|
type ResourceOutput struct{ *pulumi.OutputState }
|
|
|
|
|
|
|
|
func (ResourceOutput) ElementType() reflect.Type {
|
|
|
|
return reflect.TypeOf((**Resource)(nil)).Elem()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) ToResourceOutput() ResourceOutput {
|
|
|
|
return o
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) ToResourceOutputWithContext(ctx context.Context) ResourceOutput {
|
|
|
|
return o
|
|
|
|
}
|
|
|
|
|
2023-08-28 16:42:37 +00:00
|
|
|
func (o ResourceOutput) ToOutput(ctx context.Context) pulumix.Output[*Resource] {
|
|
|
|
return pulumix.Output[*Resource]{
|
|
|
|
OutputState: o.OutputState,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-09-26 16:57:05 +00:00
|
|
|
func (o ResourceOutput) Config() ConfigOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) ConfigOutput { return v.Config }).(ConfigOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) ConfigArray() ConfigArrayOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) ConfigArrayOutput { return v.ConfigArray }).(ConfigArrayOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) ConfigMap() ConfigMapOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) ConfigMapOutput { return v.ConfigMap }).(ConfigMapOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) Foo() pulumi.StringOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) pulumi.StringOutput { return v.Foo }).(pulumi.StringOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) FooArray() pulumi.StringArrayOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) pulumi.StringArrayOutput { return v.FooArray }).(pulumi.StringArrayOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func (o ResourceOutput) FooMap() pulumi.StringMapOutput {
|
|
|
|
return o.ApplyT(func(v *Resource) pulumi.StringMapOutput { return v.FooMap }).(pulumi.StringMapOutput)
|
|
|
|
}
|
|
|
|
|
|
|
|
func init() {
|
|
|
|
pulumi.RegisterInputType(reflect.TypeOf((*ResourceInput)(nil)).Elem(), &Resource{})
|
|
|
|
pulumi.RegisterOutputType(ResourceOutput{})
|
|
|
|
}
|