github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/external-resource-schema/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 Name pulumi.StringPtrOutput `pulumi:"name"` 17 } 18 19 // NewCat registers a new resource with the given unique name, arguments, and options. 20 func NewCat(ctx *pulumi.Context, 21 name string, args *CatArgs, opts ...pulumi.ResourceOption) (*Cat, error) { 22 if args == nil { 23 args = &CatArgs{} 24 } 25 26 var resource Cat 27 err := ctx.RegisterResource("example::Cat", name, args, &resource, opts...) 28 if err != nil { 29 return nil, err 30 } 31 return &resource, nil 32 } 33 34 // GetCat gets an existing Cat resource's state with the given name, ID, and optional 35 // state properties that are used to uniquely qualify the lookup (nil if not required). 36 func GetCat(ctx *pulumi.Context, 37 name string, id pulumi.IDInput, state *CatState, opts ...pulumi.ResourceOption) (*Cat, error) { 38 var resource Cat 39 err := ctx.ReadResource("example::Cat", name, id, state, &resource, opts...) 40 if err != nil { 41 return nil, err 42 } 43 return &resource, nil 44 } 45 46 // Input properties used for looking up and filtering Cat resources. 47 type catState struct { 48 } 49 50 type CatState struct { 51 } 52 53 func (CatState) ElementType() reflect.Type { 54 return reflect.TypeOf((*catState)(nil)).Elem() 55 } 56 57 type catArgs struct { 58 Age *int `pulumi:"age"` 59 Pet *Pet `pulumi:"pet"` 60 } 61 62 // The set of arguments for constructing a Cat resource. 63 type CatArgs struct { 64 Age pulumi.IntPtrInput 65 Pet PetPtrInput 66 } 67 68 func (CatArgs) ElementType() reflect.Type { 69 return reflect.TypeOf((*catArgs)(nil)).Elem() 70 } 71 72 type CatInput interface { 73 pulumi.Input 74 75 ToCatOutput() CatOutput 76 ToCatOutputWithContext(ctx context.Context) CatOutput 77 } 78 79 func (*Cat) ElementType() reflect.Type { 80 return reflect.TypeOf((**Cat)(nil)).Elem() 81 } 82 83 func (i *Cat) ToCatOutput() CatOutput { 84 return i.ToCatOutputWithContext(context.Background()) 85 } 86 87 func (i *Cat) ToCatOutputWithContext(ctx context.Context) CatOutput { 88 return pulumi.ToOutputWithContext(ctx, i).(CatOutput) 89 } 90 91 // CatArrayInput is an input type that accepts CatArray and CatArrayOutput values. 92 // You can construct a concrete instance of `CatArrayInput` via: 93 // 94 // CatArray{ CatArgs{...} } 95 type CatArrayInput interface { 96 pulumi.Input 97 98 ToCatArrayOutput() CatArrayOutput 99 ToCatArrayOutputWithContext(context.Context) CatArrayOutput 100 } 101 102 type CatArray []CatInput 103 104 func (CatArray) ElementType() reflect.Type { 105 return reflect.TypeOf((*[]*Cat)(nil)).Elem() 106 } 107 108 func (i CatArray) ToCatArrayOutput() CatArrayOutput { 109 return i.ToCatArrayOutputWithContext(context.Background()) 110 } 111 112 func (i CatArray) ToCatArrayOutputWithContext(ctx context.Context) CatArrayOutput { 113 return pulumi.ToOutputWithContext(ctx, i).(CatArrayOutput) 114 } 115 116 // CatMapInput is an input type that accepts CatMap and CatMapOutput values. 117 // You can construct a concrete instance of `CatMapInput` via: 118 // 119 // CatMap{ "key": CatArgs{...} } 120 type CatMapInput interface { 121 pulumi.Input 122 123 ToCatMapOutput() CatMapOutput 124 ToCatMapOutputWithContext(context.Context) CatMapOutput 125 } 126 127 type CatMap map[string]CatInput 128 129 func (CatMap) ElementType() reflect.Type { 130 return reflect.TypeOf((*map[string]*Cat)(nil)).Elem() 131 } 132 133 func (i CatMap) ToCatMapOutput() CatMapOutput { 134 return i.ToCatMapOutputWithContext(context.Background()) 135 } 136 137 func (i CatMap) ToCatMapOutputWithContext(ctx context.Context) CatMapOutput { 138 return pulumi.ToOutputWithContext(ctx, i).(CatMapOutput) 139 } 140 141 type CatOutput struct{ *pulumi.OutputState } 142 143 func (CatOutput) ElementType() reflect.Type { 144 return reflect.TypeOf((**Cat)(nil)).Elem() 145 } 146 147 func (o CatOutput) ToCatOutput() CatOutput { 148 return o 149 } 150 151 func (o CatOutput) ToCatOutputWithContext(ctx context.Context) CatOutput { 152 return o 153 } 154 155 func (o CatOutput) Name() pulumi.StringPtrOutput { 156 return o.ApplyT(func(v *Cat) pulumi.StringPtrOutput { return v.Name }).(pulumi.StringPtrOutput) 157 } 158 159 type CatArrayOutput struct{ *pulumi.OutputState } 160 161 func (CatArrayOutput) ElementType() reflect.Type { 162 return reflect.TypeOf((*[]*Cat)(nil)).Elem() 163 } 164 165 func (o CatArrayOutput) ToCatArrayOutput() CatArrayOutput { 166 return o 167 } 168 169 func (o CatArrayOutput) ToCatArrayOutputWithContext(ctx context.Context) CatArrayOutput { 170 return o 171 } 172 173 func (o CatArrayOutput) Index(i pulumi.IntInput) CatOutput { 174 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Cat { 175 return vs[0].([]*Cat)[vs[1].(int)] 176 }).(CatOutput) 177 } 178 179 type CatMapOutput struct{ *pulumi.OutputState } 180 181 func (CatMapOutput) ElementType() reflect.Type { 182 return reflect.TypeOf((*map[string]*Cat)(nil)).Elem() 183 } 184 185 func (o CatMapOutput) ToCatMapOutput() CatMapOutput { 186 return o 187 } 188 189 func (o CatMapOutput) ToCatMapOutputWithContext(ctx context.Context) CatMapOutput { 190 return o 191 } 192 193 func (o CatMapOutput) MapIndex(k pulumi.StringInput) CatOutput { 194 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Cat { 195 return vs[0].(map[string]*Cat)[vs[1].(string)] 196 }).(CatOutput) 197 } 198 199 func init() { 200 pulumi.RegisterInputType(reflect.TypeOf((*CatInput)(nil)).Elem(), &Cat{}) 201 pulumi.RegisterInputType(reflect.TypeOf((*CatArrayInput)(nil)).Elem(), CatArray{}) 202 pulumi.RegisterInputType(reflect.TypeOf((*CatMapInput)(nil)).Elem(), CatMap{}) 203 pulumi.RegisterOutputType(CatOutput{}) 204 pulumi.RegisterOutputType(CatArrayOutput{}) 205 pulumi.RegisterOutputType(CatMapOutput{}) 206 }