github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/replace-on-change/go/example/cat.go (about)

     1  // Code generated by test DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package example
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    11  )
    12  
    13  type Cat struct {
    14  	pulumi.CustomResourceState
    15  
    16  	Foes    ToyMapOutput           `pulumi:"foes"`
    17  	Friends ToyArrayOutput         `pulumi:"friends"`
    18  	Name    pulumi.StringPtrOutput `pulumi:"name"`
    19  	Other   GodOutput              `pulumi:"other"`
    20  	Toy     ToyPtrOutput           `pulumi:"toy"`
    21  }
    22  
    23  // NewCat registers a new resource with the given unique name, arguments, and options.
    24  func NewCat(ctx *pulumi.Context,
    25  	name string, args *CatArgs, opts ...pulumi.ResourceOption) (*Cat, error) {
    26  	if args == nil {
    27  		args = &CatArgs{}
    28  	}
    29  
    30  	secrets := pulumi.AdditionalSecretOutputs([]string{
    31  		"name",
    32  	})
    33  	opts = append(opts, secrets)
    34  	replaceOnChanges := pulumi.ReplaceOnChanges([]string{
    35  		"foes.*.associated.color",
    36  		"foes.*.color",
    37  		"friends[*].associated.color",
    38  		"friends[*].color",
    39  		"name",
    40  		"toy.color",
    41  	})
    42  	opts = append(opts, replaceOnChanges)
    43  	var resource Cat
    44  	err := ctx.RegisterResource("example::Cat", name, args, &resource, opts...)
    45  	if err != nil {
    46  		return nil, err
    47  	}
    48  	return &resource, nil
    49  }
    50  
    51  // GetCat gets an existing Cat resource's state with the given name, ID, and optional
    52  // state properties that are used to uniquely qualify the lookup (nil if not required).
    53  func GetCat(ctx *pulumi.Context,
    54  	name string, id pulumi.IDInput, state *CatState, opts ...pulumi.ResourceOption) (*Cat, error) {
    55  	var resource Cat
    56  	err := ctx.ReadResource("example::Cat", name, id, state, &resource, opts...)
    57  	if err != nil {
    58  		return nil, err
    59  	}
    60  	return &resource, nil
    61  }
    62  
    63  // Input properties used for looking up and filtering Cat resources.
    64  type catState struct {
    65  }
    66  
    67  type CatState struct {
    68  }
    69  
    70  func (CatState) ElementType() reflect.Type {
    71  	return reflect.TypeOf((*catState)(nil)).Elem()
    72  }
    73  
    74  type catArgs struct {
    75  }
    76  
    77  // The set of arguments for constructing a Cat resource.
    78  type CatArgs struct {
    79  }
    80  
    81  func (CatArgs) ElementType() reflect.Type {
    82  	return reflect.TypeOf((*catArgs)(nil)).Elem()
    83  }
    84  
    85  type CatInput interface {
    86  	pulumi.Input
    87  
    88  	ToCatOutput() CatOutput
    89  	ToCatOutputWithContext(ctx context.Context) CatOutput
    90  }
    91  
    92  func (*Cat) ElementType() reflect.Type {
    93  	return reflect.TypeOf((**Cat)(nil)).Elem()
    94  }
    95  
    96  func (i *Cat) ToCatOutput() CatOutput {
    97  	return i.ToCatOutputWithContext(context.Background())
    98  }
    99  
   100  func (i *Cat) ToCatOutputWithContext(ctx context.Context) CatOutput {
   101  	return pulumi.ToOutputWithContext(ctx, i).(CatOutput)
   102  }
   103  
   104  // CatArrayInput is an input type that accepts CatArray and CatArrayOutput values.
   105  // You can construct a concrete instance of `CatArrayInput` via:
   106  //
   107  //	CatArray{ CatArgs{...} }
   108  type CatArrayInput interface {
   109  	pulumi.Input
   110  
   111  	ToCatArrayOutput() CatArrayOutput
   112  	ToCatArrayOutputWithContext(context.Context) CatArrayOutput
   113  }
   114  
   115  type CatArray []CatInput
   116  
   117  func (CatArray) ElementType() reflect.Type {
   118  	return reflect.TypeOf((*[]*Cat)(nil)).Elem()
   119  }
   120  
   121  func (i CatArray) ToCatArrayOutput() CatArrayOutput {
   122  	return i.ToCatArrayOutputWithContext(context.Background())
   123  }
   124  
   125  func (i CatArray) ToCatArrayOutputWithContext(ctx context.Context) CatArrayOutput {
   126  	return pulumi.ToOutputWithContext(ctx, i).(CatArrayOutput)
   127  }
   128  
   129  // CatMapInput is an input type that accepts CatMap and CatMapOutput values.
   130  // You can construct a concrete instance of `CatMapInput` via:
   131  //
   132  //	CatMap{ "key": CatArgs{...} }
   133  type CatMapInput interface {
   134  	pulumi.Input
   135  
   136  	ToCatMapOutput() CatMapOutput
   137  	ToCatMapOutputWithContext(context.Context) CatMapOutput
   138  }
   139  
   140  type CatMap map[string]CatInput
   141  
   142  func (CatMap) ElementType() reflect.Type {
   143  	return reflect.TypeOf((*map[string]*Cat)(nil)).Elem()
   144  }
   145  
   146  func (i CatMap) ToCatMapOutput() CatMapOutput {
   147  	return i.ToCatMapOutputWithContext(context.Background())
   148  }
   149  
   150  func (i CatMap) ToCatMapOutputWithContext(ctx context.Context) CatMapOutput {
   151  	return pulumi.ToOutputWithContext(ctx, i).(CatMapOutput)
   152  }
   153  
   154  type CatOutput struct{ *pulumi.OutputState }
   155  
   156  func (CatOutput) ElementType() reflect.Type {
   157  	return reflect.TypeOf((**Cat)(nil)).Elem()
   158  }
   159  
   160  func (o CatOutput) ToCatOutput() CatOutput {
   161  	return o
   162  }
   163  
   164  func (o CatOutput) ToCatOutputWithContext(ctx context.Context) CatOutput {
   165  	return o
   166  }
   167  
   168  func (o CatOutput) Foes() ToyMapOutput {
   169  	return o.ApplyT(func(v *Cat) ToyMapOutput { return v.Foes }).(ToyMapOutput)
   170  }
   171  
   172  func (o CatOutput) Friends() ToyArrayOutput {
   173  	return o.ApplyT(func(v *Cat) ToyArrayOutput { return v.Friends }).(ToyArrayOutput)
   174  }
   175  
   176  func (o CatOutput) Name() pulumi.StringPtrOutput {
   177  	return o.ApplyT(func(v *Cat) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput)
   178  }
   179  
   180  func (o CatOutput) Other() GodOutput {
   181  	return o.ApplyT(func(v *Cat) GodOutput { return v.Other }).(GodOutput)
   182  }
   183  
   184  func (o CatOutput) Toy() ToyPtrOutput {
   185  	return o.ApplyT(func(v *Cat) ToyPtrOutput { return v.Toy }).(ToyPtrOutput)
   186  }
   187  
   188  type CatArrayOutput struct{ *pulumi.OutputState }
   189  
   190  func (CatArrayOutput) ElementType() reflect.Type {
   191  	return reflect.TypeOf((*[]*Cat)(nil)).Elem()
   192  }
   193  
   194  func (o CatArrayOutput) ToCatArrayOutput() CatArrayOutput {
   195  	return o
   196  }
   197  
   198  func (o CatArrayOutput) ToCatArrayOutputWithContext(ctx context.Context) CatArrayOutput {
   199  	return o
   200  }
   201  
   202  func (o CatArrayOutput) Index(i pulumi.IntInput) CatOutput {
   203  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cat {
   204  		return vs[0].([]*Cat)[vs[1].(int)]
   205  	}).(CatOutput)
   206  }
   207  
   208  type CatMapOutput struct{ *pulumi.OutputState }
   209  
   210  func (CatMapOutput) ElementType() reflect.Type {
   211  	return reflect.TypeOf((*map[string]*Cat)(nil)).Elem()
   212  }
   213  
   214  func (o CatMapOutput) ToCatMapOutput() CatMapOutput {
   215  	return o
   216  }
   217  
   218  func (o CatMapOutput) ToCatMapOutputWithContext(ctx context.Context) CatMapOutput {
   219  	return o
   220  }
   221  
   222  func (o CatMapOutput) MapIndex(k pulumi.StringInput) CatOutput {
   223  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cat {
   224  		return vs[0].(map[string]*Cat)[vs[1].(string)]
   225  	}).(CatOutput)
   226  }
   227  
   228  func init() {
   229  	pulumi.RegisterOutputType(CatOutput{})
   230  	pulumi.RegisterOutputType(CatArrayOutput{})
   231  	pulumi.RegisterOutputType(CatMapOutput{})
   232  }