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 }