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  }