github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/external-go-import-aliases/go/example/component.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/pkg/errors"
    11  	awsec2 "github.com/pulumi/pulumi-aws/sdk/v4/go/aws/ec2"
    12  	"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/s3"
    13  	accesscontextmanager "github.com/pulumi/pulumi-google-native/sdk/go/google/accesscontextmanager/v1"
    14  	dns "github.com/pulumi/pulumi-google-native/sdk/go/google/dns/v1"
    15  	gcpiamv1 "github.com/pulumi/pulumi-google-native/sdk/go/google/iam/v1"
    16  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    17  )
    18  
    19  type Component struct {
    20  	pulumi.CustomResourceState
    21  
    22  	ResourceLocalAlias                awsec2.InstanceOutput               `pulumi:"resourceLocalAlias"`
    23  	ResourceLocalInsteadOfRemoteAlias gcpiamv1.KeyOutput                  `pulumi:"resourceLocalInsteadOfRemoteAlias"`
    24  	ResourceNoAlias                   s3.BucketOutput                     `pulumi:"resourceNoAlias"`
    25  	ResourceRemoteAlias               dns.PolicyOutput                    `pulumi:"resourceRemoteAlias"`
    26  	TypeLocalAlias                    awsec2.InstanceLaunchTemplateOutput `pulumi:"typeLocalAlias"`
    27  	TypeLocalInsteadOfRemoteAlias     gcpiamv1.AuditConfigResponseOutput  `pulumi:"typeLocalInsteadOfRemoteAlias"`
    28  	TypeNoAlias                       s3.BucketWebsiteOutput              `pulumi:"typeNoAlias"`
    29  	TypeRemoteAlias                   dns.DnsKeySpecResponseOutput        `pulumi:"typeRemoteAlias"`
    30  }
    31  
    32  // NewComponent registers a new resource with the given unique name, arguments, and options.
    33  func NewComponent(ctx *pulumi.Context,
    34  	name string, args *ComponentArgs, opts ...pulumi.ResourceOption) (*Component, error) {
    35  	if args == nil {
    36  		return nil, errors.New("missing one or more required arguments")
    37  	}
    38  
    39  	if args.ResourceLocalAlias == nil {
    40  		return nil, errors.New("invalid value for required argument 'ResourceLocalAlias'")
    41  	}
    42  	if args.ResourceLocalInsteadOfRemoteAlias == nil {
    43  		return nil, errors.New("invalid value for required argument 'ResourceLocalInsteadOfRemoteAlias'")
    44  	}
    45  	if args.ResourceNoAlias == nil {
    46  		return nil, errors.New("invalid value for required argument 'ResourceNoAlias'")
    47  	}
    48  	if args.ResourceRemoteAlias == nil {
    49  		return nil, errors.New("invalid value for required argument 'ResourceRemoteAlias'")
    50  	}
    51  	if args.TypeLocalAlias == nil {
    52  		return nil, errors.New("invalid value for required argument 'TypeLocalAlias'")
    53  	}
    54  	if args.TypeLocalInsteadOfRemoteAlias == nil {
    55  		return nil, errors.New("invalid value for required argument 'TypeLocalInsteadOfRemoteAlias'")
    56  	}
    57  	if args.TypeNoAlias == nil {
    58  		return nil, errors.New("invalid value for required argument 'TypeNoAlias'")
    59  	}
    60  	if args.TypeRemoteAlias == nil {
    61  		return nil, errors.New("invalid value for required argument 'TypeRemoteAlias'")
    62  	}
    63  	var resource Component
    64  	err := ctx.RegisterResource("example::Component", name, args, &resource, opts...)
    65  	if err != nil {
    66  		return nil, err
    67  	}
    68  	return &resource, nil
    69  }
    70  
    71  // GetComponent gets an existing Component resource's state with the given name, ID, and optional
    72  // state properties that are used to uniquely qualify the lookup (nil if not required).
    73  func GetComponent(ctx *pulumi.Context,
    74  	name string, id pulumi.IDInput, state *ComponentState, opts ...pulumi.ResourceOption) (*Component, error) {
    75  	var resource Component
    76  	err := ctx.ReadResource("example::Component", name, id, state, &resource, opts...)
    77  	if err != nil {
    78  		return nil, err
    79  	}
    80  	return &resource, nil
    81  }
    82  
    83  // Input properties used for looking up and filtering Component resources.
    84  type componentState struct {
    85  }
    86  
    87  type ComponentState struct {
    88  }
    89  
    90  func (ComponentState) ElementType() reflect.Type {
    91  	return reflect.TypeOf((*componentState)(nil)).Elem()
    92  }
    93  
    94  type componentArgs struct {
    95  	ResourceLocalAlias                *awsec2.Instance                                                    `pulumi:"resourceLocalAlias"`
    96  	ResourceLocalInsteadOfRemoteAlias *gcpiamv1.Key                                                       `pulumi:"resourceLocalInsteadOfRemoteAlias"`
    97  	ResourceNoAlias                   *s3.Bucket                                                          `pulumi:"resourceNoAlias"`
    98  	ResourceRemoteAlias               *dns.Policy                                                         `pulumi:"resourceRemoteAlias"`
    99  	TypeLocalAlias                    awsec2.InstanceLaunchTemplate                                       `pulumi:"typeLocalAlias"`
   100  	TypeLocalInsteadOfRemoteAlias     gcpiamv1.AuditConfig                                                `pulumi:"typeLocalInsteadOfRemoteAlias"`
   101  	TypeNoAlias                       s3.BucketWebsite                                                    `pulumi:"typeNoAlias"`
   102  	TypeRemoteAlias                   dns.DnsKeySpec                                                      `pulumi:"typeRemoteAlias"`
   103  	TypeRemoteEnum                    *accesscontextmanager.DevicePolicyAllowedDeviceManagementLevelsItem `pulumi:"typeRemoteEnum"`
   104  }
   105  
   106  // The set of arguments for constructing a Component resource.
   107  type ComponentArgs struct {
   108  	ResourceLocalAlias                awsec2.InstanceInput
   109  	ResourceLocalInsteadOfRemoteAlias gcpiamv1.KeyInput
   110  	ResourceNoAlias                   s3.BucketInput
   111  	ResourceRemoteAlias               dns.PolicyInput
   112  	TypeLocalAlias                    awsec2.InstanceLaunchTemplateInput
   113  	TypeLocalInsteadOfRemoteAlias     gcpiamv1.AuditConfigInput
   114  	TypeNoAlias                       s3.BucketWebsiteInput
   115  	TypeRemoteAlias                   dns.DnsKeySpecInput
   116  	TypeRemoteEnum                    accesscontextmanager.DevicePolicyAllowedDeviceManagementLevelsItemPtrInput
   117  }
   118  
   119  func (ComponentArgs) ElementType() reflect.Type {
   120  	return reflect.TypeOf((*componentArgs)(nil)).Elem()
   121  }
   122  
   123  type ComponentInput interface {
   124  	pulumi.Input
   125  
   126  	ToComponentOutput() ComponentOutput
   127  	ToComponentOutputWithContext(ctx context.Context) ComponentOutput
   128  }
   129  
   130  func (*Component) ElementType() reflect.Type {
   131  	return reflect.TypeOf((**Component)(nil)).Elem()
   132  }
   133  
   134  func (i *Component) ToComponentOutput() ComponentOutput {
   135  	return i.ToComponentOutputWithContext(context.Background())
   136  }
   137  
   138  func (i *Component) ToComponentOutputWithContext(ctx context.Context) ComponentOutput {
   139  	return pulumi.ToOutputWithContext(ctx, i).(ComponentOutput)
   140  }
   141  
   142  // ComponentArrayInput is an input type that accepts ComponentArray and ComponentArrayOutput values.
   143  // You can construct a concrete instance of `ComponentArrayInput` via:
   144  //
   145  //	ComponentArray{ ComponentArgs{...} }
   146  type ComponentArrayInput interface {
   147  	pulumi.Input
   148  
   149  	ToComponentArrayOutput() ComponentArrayOutput
   150  	ToComponentArrayOutputWithContext(context.Context) ComponentArrayOutput
   151  }
   152  
   153  type ComponentArray []ComponentInput
   154  
   155  func (ComponentArray) ElementType() reflect.Type {
   156  	return reflect.TypeOf((*[]*Component)(nil)).Elem()
   157  }
   158  
   159  func (i ComponentArray) ToComponentArrayOutput() ComponentArrayOutput {
   160  	return i.ToComponentArrayOutputWithContext(context.Background())
   161  }
   162  
   163  func (i ComponentArray) ToComponentArrayOutputWithContext(ctx context.Context) ComponentArrayOutput {
   164  	return pulumi.ToOutputWithContext(ctx, i).(ComponentArrayOutput)
   165  }
   166  
   167  // ComponentMapInput is an input type that accepts ComponentMap and ComponentMapOutput values.
   168  // You can construct a concrete instance of `ComponentMapInput` via:
   169  //
   170  //	ComponentMap{ "key": ComponentArgs{...} }
   171  type ComponentMapInput interface {
   172  	pulumi.Input
   173  
   174  	ToComponentMapOutput() ComponentMapOutput
   175  	ToComponentMapOutputWithContext(context.Context) ComponentMapOutput
   176  }
   177  
   178  type ComponentMap map[string]ComponentInput
   179  
   180  func (ComponentMap) ElementType() reflect.Type {
   181  	return reflect.TypeOf((*map[string]*Component)(nil)).Elem()
   182  }
   183  
   184  func (i ComponentMap) ToComponentMapOutput() ComponentMapOutput {
   185  	return i.ToComponentMapOutputWithContext(context.Background())
   186  }
   187  
   188  func (i ComponentMap) ToComponentMapOutputWithContext(ctx context.Context) ComponentMapOutput {
   189  	return pulumi.ToOutputWithContext(ctx, i).(ComponentMapOutput)
   190  }
   191  
   192  type ComponentOutput struct{ *pulumi.OutputState }
   193  
   194  func (ComponentOutput) ElementType() reflect.Type {
   195  	return reflect.TypeOf((**Component)(nil)).Elem()
   196  }
   197  
   198  func (o ComponentOutput) ToComponentOutput() ComponentOutput {
   199  	return o
   200  }
   201  
   202  func (o ComponentOutput) ToComponentOutputWithContext(ctx context.Context) ComponentOutput {
   203  	return o
   204  }
   205  
   206  func (o ComponentOutput) ResourceLocalAlias() awsec2.InstanceOutput {
   207  	return o.ApplyT(func(v *Component) awsec2.InstanceOutput { return v.ResourceLocalAlias }).(awsec2.InstanceOutput)
   208  }
   209  
   210  func (o ComponentOutput) ResourceLocalInsteadOfRemoteAlias() gcpiamv1.KeyOutput {
   211  	return o.ApplyT(func(v *Component) gcpiamv1.KeyOutput { return v.ResourceLocalInsteadOfRemoteAlias }).(gcpiamv1.KeyOutput)
   212  }
   213  
   214  func (o ComponentOutput) ResourceNoAlias() s3.BucketOutput {
   215  	return o.ApplyT(func(v *Component) s3.BucketOutput { return v.ResourceNoAlias }).(s3.BucketOutput)
   216  }
   217  
   218  func (o ComponentOutput) ResourceRemoteAlias() dns.PolicyOutput {
   219  	return o.ApplyT(func(v *Component) dns.PolicyOutput { return v.ResourceRemoteAlias }).(dns.PolicyOutput)
   220  }
   221  
   222  func (o ComponentOutput) TypeLocalAlias() awsec2.InstanceLaunchTemplateOutput {
   223  	return o.ApplyT(func(v *Component) awsec2.InstanceLaunchTemplateOutput { return v.TypeLocalAlias }).(awsec2.InstanceLaunchTemplateOutput)
   224  }
   225  
   226  func (o ComponentOutput) TypeLocalInsteadOfRemoteAlias() gcpiamv1.AuditConfigResponseOutput {
   227  	return o.ApplyT(func(v *Component) gcpiamv1.AuditConfigResponseOutput { return v.TypeLocalInsteadOfRemoteAlias }).(gcpiamv1.AuditConfigResponseOutput)
   228  }
   229  
   230  func (o ComponentOutput) TypeNoAlias() s3.BucketWebsiteOutput {
   231  	return o.ApplyT(func(v *Component) s3.BucketWebsiteOutput { return v.TypeNoAlias }).(s3.BucketWebsiteOutput)
   232  }
   233  
   234  func (o ComponentOutput) TypeRemoteAlias() dns.DnsKeySpecResponseOutput {
   235  	return o.ApplyT(func(v *Component) dns.DnsKeySpecResponseOutput { return v.TypeRemoteAlias }).(dns.DnsKeySpecResponseOutput)
   236  }
   237  
   238  type ComponentArrayOutput struct{ *pulumi.OutputState }
   239  
   240  func (ComponentArrayOutput) ElementType() reflect.Type {
   241  	return reflect.TypeOf((*[]*Component)(nil)).Elem()
   242  }
   243  
   244  func (o ComponentArrayOutput) ToComponentArrayOutput() ComponentArrayOutput {
   245  	return o
   246  }
   247  
   248  func (o ComponentArrayOutput) ToComponentArrayOutputWithContext(ctx context.Context) ComponentArrayOutput {
   249  	return o
   250  }
   251  
   252  func (o ComponentArrayOutput) Index(i pulumi.IntInput) ComponentOutput {
   253  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Component {
   254  		return vs[0].([]*Component)[vs[1].(int)]
   255  	}).(ComponentOutput)
   256  }
   257  
   258  type ComponentMapOutput struct{ *pulumi.OutputState }
   259  
   260  func (ComponentMapOutput) ElementType() reflect.Type {
   261  	return reflect.TypeOf((*map[string]*Component)(nil)).Elem()
   262  }
   263  
   264  func (o ComponentMapOutput) ToComponentMapOutput() ComponentMapOutput {
   265  	return o
   266  }
   267  
   268  func (o ComponentMapOutput) ToComponentMapOutputWithContext(ctx context.Context) ComponentMapOutput {
   269  	return o
   270  }
   271  
   272  func (o ComponentMapOutput) MapIndex(k pulumi.StringInput) ComponentOutput {
   273  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Component {
   274  		return vs[0].(map[string]*Component)[vs[1].(string)]
   275  	}).(ComponentOutput)
   276  }
   277  
   278  func init() {
   279  	pulumi.RegisterInputType(reflect.TypeOf((*ComponentInput)(nil)).Elem(), &Component{})
   280  	pulumi.RegisterInputType(reflect.TypeOf((*ComponentArrayInput)(nil)).Elem(), ComponentArray{})
   281  	pulumi.RegisterInputType(reflect.TypeOf((*ComponentMapInput)(nil)).Elem(), ComponentMap{})
   282  	pulumi.RegisterOutputType(ComponentOutput{})
   283  	pulumi.RegisterOutputType(ComponentArrayOutput{})
   284  	pulumi.RegisterOutputType(ComponentMapOutput{})
   285  }