// *** WARNING: this file was generated by test. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** package example import ( "context" "reflect" "github.com/pkg/errors" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) // test new feature with resoruces type Foo struct { pulumi.CustomResourceState // A test for plain types DefaultKubeClientSettings KubeClientSettingsPtrOutput `pulumi:"defaultKubeClientSettings"` } // NewFoo registers a new resource with the given unique name, arguments, and options. func NewFoo(ctx *pulumi.Context, name string, args *FooArgs, opts ...pulumi.ResourceOption) (*Foo, error) { if args == nil { return nil, errors.New("missing one or more required arguments") } if args.BackupKubeClientSettings == nil { return nil, errors.New("invalid value for required argument 'BackupKubeClientSettings'") } backupKubeClientSettingsApplier := func(v KubeClientSettings) *KubeClientSettings { return v.Defaults() } args.BackupKubeClientSettings = args.BackupKubeClientSettings.ToKubeClientSettingsOutput().ApplyT(backupKubeClientSettingsApplier).(KubeClientSettingsPtrOutput).Elem() kubeClientSettingsApplier := func(v KubeClientSettings) *KubeClientSettings { return v.Defaults() } if args.KubeClientSettings != nil { args.KubeClientSettings = args.KubeClientSettings.ToKubeClientSettingsPtrOutput().Elem().ApplyT(kubeClientSettingsApplier).(KubeClientSettingsPtrOutput) } settingsApplier := func(v LayeredType) *LayeredType { return v.Defaults() } if args.Settings != nil { args.Settings = args.Settings.ToLayeredTypePtrOutput().Elem().ApplyT(settingsApplier).(LayeredTypePtrOutput) } var resource Foo err := ctx.RegisterResource("example:index:Foo", name, args, &resource, opts...) if err != nil { return nil, err } return &resource, nil } // GetFoo gets an existing Foo 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 GetFoo(ctx *pulumi.Context, name string, id pulumi.IDInput, state *FooState, opts ...pulumi.ResourceOption) (*Foo, error) { var resource Foo err := ctx.ReadResource("example:index:Foo", name, id, state, &resource, opts...) if err != nil { return nil, err } return &resource, nil } // Input properties used for looking up and filtering Foo resources. type fooState struct { } type FooState struct { } func (FooState) ElementType() reflect.Type { return reflect.TypeOf((*fooState)(nil)).Elem() } type fooArgs struct { Argument *string `pulumi:"argument"` // Options for tuning the Kubernetes client used by a Provider. BackupKubeClientSettings KubeClientSettings `pulumi:"backupKubeClientSettings"` // Options for tuning the Kubernetes client used by a Provider. KubeClientSettings *KubeClientSettings `pulumi:"kubeClientSettings"` // describing things Settings *LayeredType `pulumi:"settings"` } // The set of arguments for constructing a Foo resource. type FooArgs struct { Argument *string // Options for tuning the Kubernetes client used by a Provider. BackupKubeClientSettings KubeClientSettingsInput // Options for tuning the Kubernetes client used by a Provider. KubeClientSettings KubeClientSettingsPtrInput // describing things Settings LayeredTypePtrInput } func (FooArgs) ElementType() reflect.Type { return reflect.TypeOf((*fooArgs)(nil)).Elem() } type FooInput interface { pulumi.Input ToFooOutput() FooOutput ToFooOutputWithContext(ctx context.Context) FooOutput } func (*Foo) ElementType() reflect.Type { return reflect.TypeOf((**Foo)(nil)).Elem() } func (i *Foo) ToFooOutput() FooOutput { return i.ToFooOutputWithContext(context.Background()) } func (i *Foo) ToFooOutputWithContext(ctx context.Context) FooOutput { return pulumi.ToOutputWithContext(ctx, i).(FooOutput) } type FooOutput struct{ *pulumi.OutputState } func (FooOutput) ElementType() reflect.Type { return reflect.TypeOf((**Foo)(nil)).Elem() } func (o FooOutput) ToFooOutput() FooOutput { return o } func (o FooOutput) ToFooOutputWithContext(ctx context.Context) FooOutput { return o } func init() { pulumi.RegisterInputType(reflect.TypeOf((*FooInput)(nil)).Elem(), &Foo{}) pulumi.RegisterOutputType(FooOutput{}) }