github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/emrserverless/application.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package emrserverless
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Manages an EMR Serverless Application.
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Basic Usage
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emrserverless"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := emrserverless.NewApplication(ctx, "example", &emrserverless.ApplicationArgs{
    35  //				Name:         pulumi.String("example"),
    36  //				ReleaseLabel: pulumi.String("emr-6.6.0"),
    37  //				Type:         pulumi.String("hive"),
    38  //			})
    39  //			if err != nil {
    40  //				return err
    41  //			}
    42  //			return nil
    43  //		})
    44  //	}
    45  //
    46  // ```
    47  // <!--End PulumiCodeChooser -->
    48  //
    49  // ### Initial Capacity Usage
    50  //
    51  // <!--Start PulumiCodeChooser -->
    52  // ```go
    53  // package main
    54  //
    55  // import (
    56  //
    57  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emrserverless"
    58  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    59  //
    60  // )
    61  //
    62  //	func main() {
    63  //		pulumi.Run(func(ctx *pulumi.Context) error {
    64  //			_, err := emrserverless.NewApplication(ctx, "example", &emrserverless.ApplicationArgs{
    65  //				Name:         pulumi.String("example"),
    66  //				ReleaseLabel: pulumi.String("emr-6.6.0"),
    67  //				Type:         pulumi.String("hive"),
    68  //				InitialCapacities: emrserverless.ApplicationInitialCapacityArray{
    69  //					&emrserverless.ApplicationInitialCapacityArgs{
    70  //						InitialCapacityType: pulumi.String("HiveDriver"),
    71  //						InitialCapacityConfig: &emrserverless.ApplicationInitialCapacityInitialCapacityConfigArgs{
    72  //							WorkerCount: pulumi.Int(1),
    73  //							WorkerConfiguration: &emrserverless.ApplicationInitialCapacityInitialCapacityConfigWorkerConfigurationArgs{
    74  //								Cpu:    pulumi.String("2 vCPU"),
    75  //								Memory: pulumi.String("10 GB"),
    76  //							},
    77  //						},
    78  //					},
    79  //				},
    80  //			})
    81  //			if err != nil {
    82  //				return err
    83  //			}
    84  //			return nil
    85  //		})
    86  //	}
    87  //
    88  // ```
    89  // <!--End PulumiCodeChooser -->
    90  //
    91  // ### Maximum Capacity Usage
    92  //
    93  // <!--Start PulumiCodeChooser -->
    94  // ```go
    95  // package main
    96  //
    97  // import (
    98  //
    99  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/emrserverless"
   100  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   101  //
   102  // )
   103  //
   104  //	func main() {
   105  //		pulumi.Run(func(ctx *pulumi.Context) error {
   106  //			_, err := emrserverless.NewApplication(ctx, "example", &emrserverless.ApplicationArgs{
   107  //				Name:         pulumi.String("example"),
   108  //				ReleaseLabel: pulumi.String("emr-6.6.0"),
   109  //				Type:         pulumi.String("hive"),
   110  //				MaximumCapacity: &emrserverless.ApplicationMaximumCapacityArgs{
   111  //					Cpu:    pulumi.String("2 vCPU"),
   112  //					Memory: pulumi.String("10 GB"),
   113  //				},
   114  //			})
   115  //			if err != nil {
   116  //				return err
   117  //			}
   118  //			return nil
   119  //		})
   120  //	}
   121  //
   122  // ```
   123  // <!--End PulumiCodeChooser -->
   124  //
   125  // ## Import
   126  //
   127  // Using `pulumi import`, import EMR Severless applications using the `id`. For example:
   128  //
   129  // ```sh
   130  // $ pulumi import aws:emrserverless/application:Application example id
   131  // ```
   132  type Application struct {
   133  	pulumi.CustomResourceState
   134  
   135  	// The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   136  	Architecture pulumi.StringPtrOutput `pulumi:"architecture"`
   137  	// ARN of the cluster.
   138  	Arn pulumi.StringOutput `pulumi:"arn"`
   139  	// The configuration for an application to automatically start on job submission.
   140  	AutoStartConfiguration ApplicationAutoStartConfigurationOutput `pulumi:"autoStartConfiguration"`
   141  	// The configuration for an application to automatically stop after a certain amount of time being idle.
   142  	AutoStopConfiguration ApplicationAutoStopConfigurationOutput `pulumi:"autoStopConfiguration"`
   143  	// The image configuration applied to all worker types.
   144  	ImageConfiguration ApplicationImageConfigurationOutput `pulumi:"imageConfiguration"`
   145  	// The capacity to initialize when the application is created.
   146  	InitialCapacities ApplicationInitialCapacityArrayOutput `pulumi:"initialCapacities"`
   147  	// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   148  	MaximumCapacity ApplicationMaximumCapacityOutput `pulumi:"maximumCapacity"`
   149  	// The name of the application.
   150  	Name pulumi.StringOutput `pulumi:"name"`
   151  	// The network configuration for customer VPC connectivity.
   152  	NetworkConfiguration ApplicationNetworkConfigurationPtrOutput `pulumi:"networkConfiguration"`
   153  	// The EMR release version associated with the application.
   154  	ReleaseLabel pulumi.StringOutput `pulumi:"releaseLabel"`
   155  	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   156  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   157  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   158  	//
   159  	// Deprecated: Please use `tags` instead.
   160  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   161  	// The type of application you want to start, such as `spark` or `hive`.
   162  	Type pulumi.StringOutput `pulumi:"type"`
   163  }
   164  
   165  // NewApplication registers a new resource with the given unique name, arguments, and options.
   166  func NewApplication(ctx *pulumi.Context,
   167  	name string, args *ApplicationArgs, opts ...pulumi.ResourceOption) (*Application, error) {
   168  	if args == nil {
   169  		return nil, errors.New("missing one or more required arguments")
   170  	}
   171  
   172  	if args.ReleaseLabel == nil {
   173  		return nil, errors.New("invalid value for required argument 'ReleaseLabel'")
   174  	}
   175  	if args.Type == nil {
   176  		return nil, errors.New("invalid value for required argument 'Type'")
   177  	}
   178  	opts = internal.PkgResourceDefaultOpts(opts)
   179  	var resource Application
   180  	err := ctx.RegisterResource("aws:emrserverless/application:Application", name, args, &resource, opts...)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return &resource, nil
   185  }
   186  
   187  // GetApplication gets an existing Application resource's state with the given name, ID, and optional
   188  // state properties that are used to uniquely qualify the lookup (nil if not required).
   189  func GetApplication(ctx *pulumi.Context,
   190  	name string, id pulumi.IDInput, state *ApplicationState, opts ...pulumi.ResourceOption) (*Application, error) {
   191  	var resource Application
   192  	err := ctx.ReadResource("aws:emrserverless/application:Application", name, id, state, &resource, opts...)
   193  	if err != nil {
   194  		return nil, err
   195  	}
   196  	return &resource, nil
   197  }
   198  
   199  // Input properties used for looking up and filtering Application resources.
   200  type applicationState struct {
   201  	// The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   202  	Architecture *string `pulumi:"architecture"`
   203  	// ARN of the cluster.
   204  	Arn *string `pulumi:"arn"`
   205  	// The configuration for an application to automatically start on job submission.
   206  	AutoStartConfiguration *ApplicationAutoStartConfiguration `pulumi:"autoStartConfiguration"`
   207  	// The configuration for an application to automatically stop after a certain amount of time being idle.
   208  	AutoStopConfiguration *ApplicationAutoStopConfiguration `pulumi:"autoStopConfiguration"`
   209  	// The image configuration applied to all worker types.
   210  	ImageConfiguration *ApplicationImageConfiguration `pulumi:"imageConfiguration"`
   211  	// The capacity to initialize when the application is created.
   212  	InitialCapacities []ApplicationInitialCapacity `pulumi:"initialCapacities"`
   213  	// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   214  	MaximumCapacity *ApplicationMaximumCapacity `pulumi:"maximumCapacity"`
   215  	// The name of the application.
   216  	Name *string `pulumi:"name"`
   217  	// The network configuration for customer VPC connectivity.
   218  	NetworkConfiguration *ApplicationNetworkConfiguration `pulumi:"networkConfiguration"`
   219  	// The EMR release version associated with the application.
   220  	ReleaseLabel *string `pulumi:"releaseLabel"`
   221  	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   222  	Tags map[string]string `pulumi:"tags"`
   223  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   224  	//
   225  	// Deprecated: Please use `tags` instead.
   226  	TagsAll map[string]string `pulumi:"tagsAll"`
   227  	// The type of application you want to start, such as `spark` or `hive`.
   228  	Type *string `pulumi:"type"`
   229  }
   230  
   231  type ApplicationState struct {
   232  	// The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   233  	Architecture pulumi.StringPtrInput
   234  	// ARN of the cluster.
   235  	Arn pulumi.StringPtrInput
   236  	// The configuration for an application to automatically start on job submission.
   237  	AutoStartConfiguration ApplicationAutoStartConfigurationPtrInput
   238  	// The configuration for an application to automatically stop after a certain amount of time being idle.
   239  	AutoStopConfiguration ApplicationAutoStopConfigurationPtrInput
   240  	// The image configuration applied to all worker types.
   241  	ImageConfiguration ApplicationImageConfigurationPtrInput
   242  	// The capacity to initialize when the application is created.
   243  	InitialCapacities ApplicationInitialCapacityArrayInput
   244  	// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   245  	MaximumCapacity ApplicationMaximumCapacityPtrInput
   246  	// The name of the application.
   247  	Name pulumi.StringPtrInput
   248  	// The network configuration for customer VPC connectivity.
   249  	NetworkConfiguration ApplicationNetworkConfigurationPtrInput
   250  	// The EMR release version associated with the application.
   251  	ReleaseLabel pulumi.StringPtrInput
   252  	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   253  	Tags pulumi.StringMapInput
   254  	// Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   255  	//
   256  	// Deprecated: Please use `tags` instead.
   257  	TagsAll pulumi.StringMapInput
   258  	// The type of application you want to start, such as `spark` or `hive`.
   259  	Type pulumi.StringPtrInput
   260  }
   261  
   262  func (ApplicationState) ElementType() reflect.Type {
   263  	return reflect.TypeOf((*applicationState)(nil)).Elem()
   264  }
   265  
   266  type applicationArgs struct {
   267  	// The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   268  	Architecture *string `pulumi:"architecture"`
   269  	// The configuration for an application to automatically start on job submission.
   270  	AutoStartConfiguration *ApplicationAutoStartConfiguration `pulumi:"autoStartConfiguration"`
   271  	// The configuration for an application to automatically stop after a certain amount of time being idle.
   272  	AutoStopConfiguration *ApplicationAutoStopConfiguration `pulumi:"autoStopConfiguration"`
   273  	// The image configuration applied to all worker types.
   274  	ImageConfiguration *ApplicationImageConfiguration `pulumi:"imageConfiguration"`
   275  	// The capacity to initialize when the application is created.
   276  	InitialCapacities []ApplicationInitialCapacity `pulumi:"initialCapacities"`
   277  	// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   278  	MaximumCapacity *ApplicationMaximumCapacity `pulumi:"maximumCapacity"`
   279  	// The name of the application.
   280  	Name *string `pulumi:"name"`
   281  	// The network configuration for customer VPC connectivity.
   282  	NetworkConfiguration *ApplicationNetworkConfiguration `pulumi:"networkConfiguration"`
   283  	// The EMR release version associated with the application.
   284  	ReleaseLabel string `pulumi:"releaseLabel"`
   285  	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   286  	Tags map[string]string `pulumi:"tags"`
   287  	// The type of application you want to start, such as `spark` or `hive`.
   288  	Type string `pulumi:"type"`
   289  }
   290  
   291  // The set of arguments for constructing a Application resource.
   292  type ApplicationArgs struct {
   293  	// The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   294  	Architecture pulumi.StringPtrInput
   295  	// The configuration for an application to automatically start on job submission.
   296  	AutoStartConfiguration ApplicationAutoStartConfigurationPtrInput
   297  	// The configuration for an application to automatically stop after a certain amount of time being idle.
   298  	AutoStopConfiguration ApplicationAutoStopConfigurationPtrInput
   299  	// The image configuration applied to all worker types.
   300  	ImageConfiguration ApplicationImageConfigurationPtrInput
   301  	// The capacity to initialize when the application is created.
   302  	InitialCapacities ApplicationInitialCapacityArrayInput
   303  	// The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   304  	MaximumCapacity ApplicationMaximumCapacityPtrInput
   305  	// The name of the application.
   306  	Name pulumi.StringPtrInput
   307  	// The network configuration for customer VPC connectivity.
   308  	NetworkConfiguration ApplicationNetworkConfigurationPtrInput
   309  	// The EMR release version associated with the application.
   310  	ReleaseLabel pulumi.StringInput
   311  	// Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   312  	Tags pulumi.StringMapInput
   313  	// The type of application you want to start, such as `spark` or `hive`.
   314  	Type pulumi.StringInput
   315  }
   316  
   317  func (ApplicationArgs) ElementType() reflect.Type {
   318  	return reflect.TypeOf((*applicationArgs)(nil)).Elem()
   319  }
   320  
   321  type ApplicationInput interface {
   322  	pulumi.Input
   323  
   324  	ToApplicationOutput() ApplicationOutput
   325  	ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput
   326  }
   327  
   328  func (*Application) ElementType() reflect.Type {
   329  	return reflect.TypeOf((**Application)(nil)).Elem()
   330  }
   331  
   332  func (i *Application) ToApplicationOutput() ApplicationOutput {
   333  	return i.ToApplicationOutputWithContext(context.Background())
   334  }
   335  
   336  func (i *Application) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput {
   337  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationOutput)
   338  }
   339  
   340  // ApplicationArrayInput is an input type that accepts ApplicationArray and ApplicationArrayOutput values.
   341  // You can construct a concrete instance of `ApplicationArrayInput` via:
   342  //
   343  //	ApplicationArray{ ApplicationArgs{...} }
   344  type ApplicationArrayInput interface {
   345  	pulumi.Input
   346  
   347  	ToApplicationArrayOutput() ApplicationArrayOutput
   348  	ToApplicationArrayOutputWithContext(context.Context) ApplicationArrayOutput
   349  }
   350  
   351  type ApplicationArray []ApplicationInput
   352  
   353  func (ApplicationArray) ElementType() reflect.Type {
   354  	return reflect.TypeOf((*[]*Application)(nil)).Elem()
   355  }
   356  
   357  func (i ApplicationArray) ToApplicationArrayOutput() ApplicationArrayOutput {
   358  	return i.ToApplicationArrayOutputWithContext(context.Background())
   359  }
   360  
   361  func (i ApplicationArray) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput {
   362  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationArrayOutput)
   363  }
   364  
   365  // ApplicationMapInput is an input type that accepts ApplicationMap and ApplicationMapOutput values.
   366  // You can construct a concrete instance of `ApplicationMapInput` via:
   367  //
   368  //	ApplicationMap{ "key": ApplicationArgs{...} }
   369  type ApplicationMapInput interface {
   370  	pulumi.Input
   371  
   372  	ToApplicationMapOutput() ApplicationMapOutput
   373  	ToApplicationMapOutputWithContext(context.Context) ApplicationMapOutput
   374  }
   375  
   376  type ApplicationMap map[string]ApplicationInput
   377  
   378  func (ApplicationMap) ElementType() reflect.Type {
   379  	return reflect.TypeOf((*map[string]*Application)(nil)).Elem()
   380  }
   381  
   382  func (i ApplicationMap) ToApplicationMapOutput() ApplicationMapOutput {
   383  	return i.ToApplicationMapOutputWithContext(context.Background())
   384  }
   385  
   386  func (i ApplicationMap) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput {
   387  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationMapOutput)
   388  }
   389  
   390  type ApplicationOutput struct{ *pulumi.OutputState }
   391  
   392  func (ApplicationOutput) ElementType() reflect.Type {
   393  	return reflect.TypeOf((**Application)(nil)).Elem()
   394  }
   395  
   396  func (o ApplicationOutput) ToApplicationOutput() ApplicationOutput {
   397  	return o
   398  }
   399  
   400  func (o ApplicationOutput) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput {
   401  	return o
   402  }
   403  
   404  // The CPU architecture of an application. Valid values are `ARM64` or `X86_64`. Default value is `X86_64`.
   405  func (o ApplicationOutput) Architecture() pulumi.StringPtrOutput {
   406  	return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.Architecture }).(pulumi.StringPtrOutput)
   407  }
   408  
   409  // ARN of the cluster.
   410  func (o ApplicationOutput) Arn() pulumi.StringOutput {
   411  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   412  }
   413  
   414  // The configuration for an application to automatically start on job submission.
   415  func (o ApplicationOutput) AutoStartConfiguration() ApplicationAutoStartConfigurationOutput {
   416  	return o.ApplyT(func(v *Application) ApplicationAutoStartConfigurationOutput { return v.AutoStartConfiguration }).(ApplicationAutoStartConfigurationOutput)
   417  }
   418  
   419  // The configuration for an application to automatically stop after a certain amount of time being idle.
   420  func (o ApplicationOutput) AutoStopConfiguration() ApplicationAutoStopConfigurationOutput {
   421  	return o.ApplyT(func(v *Application) ApplicationAutoStopConfigurationOutput { return v.AutoStopConfiguration }).(ApplicationAutoStopConfigurationOutput)
   422  }
   423  
   424  // The image configuration applied to all worker types.
   425  func (o ApplicationOutput) ImageConfiguration() ApplicationImageConfigurationOutput {
   426  	return o.ApplyT(func(v *Application) ApplicationImageConfigurationOutput { return v.ImageConfiguration }).(ApplicationImageConfigurationOutput)
   427  }
   428  
   429  // The capacity to initialize when the application is created.
   430  func (o ApplicationOutput) InitialCapacities() ApplicationInitialCapacityArrayOutput {
   431  	return o.ApplyT(func(v *Application) ApplicationInitialCapacityArrayOutput { return v.InitialCapacities }).(ApplicationInitialCapacityArrayOutput)
   432  }
   433  
   434  // The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.
   435  func (o ApplicationOutput) MaximumCapacity() ApplicationMaximumCapacityOutput {
   436  	return o.ApplyT(func(v *Application) ApplicationMaximumCapacityOutput { return v.MaximumCapacity }).(ApplicationMaximumCapacityOutput)
   437  }
   438  
   439  // The name of the application.
   440  func (o ApplicationOutput) Name() pulumi.StringOutput {
   441  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   442  }
   443  
   444  // The network configuration for customer VPC connectivity.
   445  func (o ApplicationOutput) NetworkConfiguration() ApplicationNetworkConfigurationPtrOutput {
   446  	return o.ApplyT(func(v *Application) ApplicationNetworkConfigurationPtrOutput { return v.NetworkConfiguration }).(ApplicationNetworkConfigurationPtrOutput)
   447  }
   448  
   449  // The EMR release version associated with the application.
   450  func (o ApplicationOutput) ReleaseLabel() pulumi.StringOutput {
   451  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.ReleaseLabel }).(pulumi.StringOutput)
   452  }
   453  
   454  // Key-value mapping of resource tags. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
   455  func (o ApplicationOutput) Tags() pulumi.StringMapOutput {
   456  	return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   457  }
   458  
   459  // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   460  //
   461  // Deprecated: Please use `tags` instead.
   462  func (o ApplicationOutput) TagsAll() pulumi.StringMapOutput {
   463  	return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   464  }
   465  
   466  // The type of application you want to start, such as `spark` or `hive`.
   467  func (o ApplicationOutput) Type() pulumi.StringOutput {
   468  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput)
   469  }
   470  
   471  type ApplicationArrayOutput struct{ *pulumi.OutputState }
   472  
   473  func (ApplicationArrayOutput) ElementType() reflect.Type {
   474  	return reflect.TypeOf((*[]*Application)(nil)).Elem()
   475  }
   476  
   477  func (o ApplicationArrayOutput) ToApplicationArrayOutput() ApplicationArrayOutput {
   478  	return o
   479  }
   480  
   481  func (o ApplicationArrayOutput) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput {
   482  	return o
   483  }
   484  
   485  func (o ApplicationArrayOutput) Index(i pulumi.IntInput) ApplicationOutput {
   486  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Application {
   487  		return vs[0].([]*Application)[vs[1].(int)]
   488  	}).(ApplicationOutput)
   489  }
   490  
   491  type ApplicationMapOutput struct{ *pulumi.OutputState }
   492  
   493  func (ApplicationMapOutput) ElementType() reflect.Type {
   494  	return reflect.TypeOf((*map[string]*Application)(nil)).Elem()
   495  }
   496  
   497  func (o ApplicationMapOutput) ToApplicationMapOutput() ApplicationMapOutput {
   498  	return o
   499  }
   500  
   501  func (o ApplicationMapOutput) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput {
   502  	return o
   503  }
   504  
   505  func (o ApplicationMapOutput) MapIndex(k pulumi.StringInput) ApplicationOutput {
   506  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Application {
   507  		return vs[0].(map[string]*Application)[vs[1].(string)]
   508  	}).(ApplicationOutput)
   509  }
   510  
   511  func init() {
   512  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInput)(nil)).Elem(), &Application{})
   513  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationArrayInput)(nil)).Elem(), ApplicationArray{})
   514  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationMapInput)(nil)).Elem(), ApplicationMap{})
   515  	pulumi.RegisterOutputType(ApplicationOutput{})
   516  	pulumi.RegisterOutputType(ApplicationArrayOutput{})
   517  	pulumi.RegisterOutputType(ApplicationMapOutput{})
   518  }