github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/kinesisanalyticsv2/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 kinesisanalyticsv2
     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 a Kinesis Analytics v2 Application.
    16  // This resource can be used to manage both Kinesis Data Analytics for SQL applications and Kinesis Data Analytics for Apache Flink applications.
    17  //
    18  // > **Note:** Kinesis Data Analytics for SQL applications created using this resource cannot currently be viewed in the AWS Console. To manage Kinesis Data Analytics for SQL applications that can also be viewed in the AWS Console, use the `kinesis.AnalyticsApplication` resource.
    19  //
    20  // ## Example Usage
    21  //
    22  // ### Apache Flink Application
    23  //
    24  // <!--Start PulumiCodeChooser -->
    25  // ```go
    26  // package main
    27  //
    28  // import (
    29  //
    30  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesisanalyticsv2"
    31  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
    32  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    33  //
    34  // )
    35  //
    36  //	func main() {
    37  //		pulumi.Run(func(ctx *pulumi.Context) error {
    38  //			example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
    39  //				Bucket: pulumi.String("example-flink-application"),
    40  //			})
    41  //			if err != nil {
    42  //				return err
    43  //			}
    44  //			exampleBucketObjectv2, err := s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
    45  //				Bucket: example.ID(),
    46  //				Key:    pulumi.String("example-flink-application"),
    47  //				Source: pulumi.NewFileAsset("flink-app.jar"),
    48  //			})
    49  //			if err != nil {
    50  //				return err
    51  //			}
    52  //			_, err = kinesisanalyticsv2.NewApplication(ctx, "example", &kinesisanalyticsv2.ApplicationArgs{
    53  //				Name:                 pulumi.String("example-flink-application"),
    54  //				RuntimeEnvironment:   pulumi.String("FLINK-1_8"),
    55  //				ServiceExecutionRole: pulumi.Any(exampleAwsIamRole.Arn),
    56  //				ApplicationConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationArgs{
    57  //					ApplicationCodeConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs{
    58  //						CodeContent: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs{
    59  //							S3ContentLocation: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs{
    60  //								BucketArn: example.Arn,
    61  //								FileKey:   exampleBucketObjectv2.Key,
    62  //							},
    63  //						},
    64  //						CodeContentType: pulumi.String("ZIPFILE"),
    65  //					},
    66  //					EnvironmentProperties: &kinesisanalyticsv2.ApplicationApplicationConfigurationEnvironmentPropertiesArgs{
    67  //						PropertyGroups: kinesisanalyticsv2.ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArray{
    68  //							&kinesisanalyticsv2.ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs{
    69  //								PropertyGroupId: pulumi.String("PROPERTY-GROUP-1"),
    70  //								PropertyMap: pulumi.StringMap{
    71  //									"Key1": pulumi.String("Value1"),
    72  //								},
    73  //							},
    74  //							&kinesisanalyticsv2.ApplicationApplicationConfigurationEnvironmentPropertiesPropertyGroupArgs{
    75  //								PropertyGroupId: pulumi.String("PROPERTY-GROUP-2"),
    76  //								PropertyMap: pulumi.StringMap{
    77  //									"KeyA": pulumi.String("ValueA"),
    78  //									"KeyB": pulumi.String("ValueB"),
    79  //								},
    80  //							},
    81  //						},
    82  //					},
    83  //					FlinkApplicationConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationFlinkApplicationConfigurationArgs{
    84  //						CheckpointConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationFlinkApplicationConfigurationCheckpointConfigurationArgs{
    85  //							ConfigurationType: pulumi.String("DEFAULT"),
    86  //						},
    87  //						MonitoringConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationFlinkApplicationConfigurationMonitoringConfigurationArgs{
    88  //							ConfigurationType: pulumi.String("CUSTOM"),
    89  //							LogLevel:          pulumi.String("DEBUG"),
    90  //							MetricsLevel:      pulumi.String("TASK"),
    91  //						},
    92  //						ParallelismConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationFlinkApplicationConfigurationParallelismConfigurationArgs{
    93  //							AutoScalingEnabled: pulumi.Bool(true),
    94  //							ConfigurationType:  pulumi.String("CUSTOM"),
    95  //							Parallelism:        pulumi.Int(10),
    96  //							ParallelismPerKpu:  pulumi.Int(4),
    97  //						},
    98  //					},
    99  //				},
   100  //				Tags: pulumi.StringMap{
   101  //					"Environment": pulumi.String("test"),
   102  //				},
   103  //			})
   104  //			if err != nil {
   105  //				return err
   106  //			}
   107  //			return nil
   108  //		})
   109  //	}
   110  //
   111  // ```
   112  // <!--End PulumiCodeChooser -->
   113  //
   114  // ### SQL Application
   115  //
   116  // <!--Start PulumiCodeChooser -->
   117  // ```go
   118  // package main
   119  //
   120  // import (
   121  //
   122  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
   123  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesisanalyticsv2"
   124  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   125  //
   126  // )
   127  //
   128  //	func main() {
   129  //		pulumi.Run(func(ctx *pulumi.Context) error {
   130  //			example, err := cloudwatch.NewLogGroup(ctx, "example", &cloudwatch.LogGroupArgs{
   131  //				Name: pulumi.String("example-sql-application"),
   132  //			})
   133  //			if err != nil {
   134  //				return err
   135  //			}
   136  //			exampleLogStream, err := cloudwatch.NewLogStream(ctx, "example", &cloudwatch.LogStreamArgs{
   137  //				Name:         pulumi.String("example-sql-application"),
   138  //				LogGroupName: example.Name,
   139  //			})
   140  //			if err != nil {
   141  //				return err
   142  //			}
   143  //			_, err = kinesisanalyticsv2.NewApplication(ctx, "example", &kinesisanalyticsv2.ApplicationArgs{
   144  //				Name:                 pulumi.String("example-sql-application"),
   145  //				RuntimeEnvironment:   pulumi.String("SQL-1_0"),
   146  //				ServiceExecutionRole: pulumi.Any(exampleAwsIamRole.Arn),
   147  //				ApplicationConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationArgs{
   148  //					ApplicationCodeConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs{
   149  //						CodeContent: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs{
   150  //							TextContent: pulumi.String("SELECT 1;\n"),
   151  //						},
   152  //						CodeContentType: pulumi.String("PLAINTEXT"),
   153  //					},
   154  //					SqlApplicationConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationArgs{
   155  //						Input: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputTypeArgs{
   156  //							NamePrefix: pulumi.String("PREFIX_1"),
   157  //							InputParallelism: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputParallelismArgs{
   158  //								Count: pulumi.Int(3),
   159  //							},
   160  //							InputSchema: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaArgs{
   161  //								RecordColumns: kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArray{
   162  //									&kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs{
   163  //										Name:    pulumi.String("COLUMN_1"),
   164  //										SqlType: pulumi.String("VARCHAR(8)"),
   165  //										Mapping: pulumi.String("MAPPING-1"),
   166  //									},
   167  //									&kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordColumnArgs{
   168  //										Name:    pulumi.String("COLUMN_2"),
   169  //										SqlType: pulumi.String("DOUBLE"),
   170  //									},
   171  //								},
   172  //								RecordEncoding: pulumi.String("UTF-8"),
   173  //								RecordFormat: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatArgs{
   174  //									RecordFormatType: pulumi.String("CSV"),
   175  //									MappingParameters: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersArgs{
   176  //										CsvMappingParameters: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputInputSchemaRecordFormatMappingParametersCsvMappingParametersArgs{
   177  //											RecordColumnDelimiter: pulumi.String(","),
   178  //											RecordRowDelimiter:    pulumi.String("\n"),
   179  //										},
   180  //									},
   181  //								},
   182  //							},
   183  //							KinesisStreamsInput: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationInputKinesisStreamsInputArgs{
   184  //								ResourceArn: pulumi.Any(exampleAwsKinesisStream.Arn),
   185  //							},
   186  //						},
   187  //						Outputs: kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputTypeArray{
   188  //							&kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputTypeArgs{
   189  //								Name: pulumi.String("OUTPUT_1"),
   190  //								DestinationSchema: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs{
   191  //									RecordFormatType: pulumi.String("JSON"),
   192  //								},
   193  //								LambdaOutput: kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputLambdaOutputArgs{
   194  //									ResourceArn: pulumi.Any(exampleAwsLambdaFunction.Arn),
   195  //								},
   196  //							},
   197  //							&kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputTypeArgs{
   198  //								Name: pulumi.String("OUTPUT_2"),
   199  //								DestinationSchema: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputDestinationSchemaArgs{
   200  //									RecordFormatType: pulumi.String("CSV"),
   201  //								},
   202  //								KinesisFirehoseOutput: kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationOutputKinesisFirehoseOutputArgs{
   203  //									ResourceArn: pulumi.Any(exampleAwsKinesisFirehoseDeliveryStream.Arn),
   204  //								},
   205  //							},
   206  //						},
   207  //						ReferenceDataSource: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceArgs{
   208  //							TableName: pulumi.String("TABLE-1"),
   209  //							ReferenceSchema: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaArgs{
   210  //								RecordColumns: kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumnArray{
   211  //									&kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordColumnArgs{
   212  //										Name:    pulumi.String("COLUMN_1"),
   213  //										SqlType: pulumi.String("INTEGER"),
   214  //									},
   215  //								},
   216  //								RecordFormat: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatArgs{
   217  //									RecordFormatType: pulumi.String("JSON"),
   218  //									MappingParameters: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersArgs{
   219  //										JsonMappingParameters: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceReferenceSchemaRecordFormatMappingParametersJsonMappingParametersArgs{
   220  //											RecordRowPath: pulumi.String("$"),
   221  //										},
   222  //									},
   223  //								},
   224  //							},
   225  //							S3ReferenceDataSource: &kinesisanalyticsv2.ApplicationApplicationConfigurationSqlApplicationConfigurationReferenceDataSourceS3ReferenceDataSourceArgs{
   226  //								BucketArn: pulumi.Any(exampleAwsS3Bucket.Arn),
   227  //								FileKey:   pulumi.String("KEY-1"),
   228  //							},
   229  //						},
   230  //					},
   231  //				},
   232  //				CloudwatchLoggingOptions: &kinesisanalyticsv2.ApplicationCloudwatchLoggingOptionsArgs{
   233  //					LogStreamArn: exampleLogStream.Arn,
   234  //				},
   235  //			})
   236  //			if err != nil {
   237  //				return err
   238  //			}
   239  //			return nil
   240  //		})
   241  //	}
   242  //
   243  // ```
   244  // <!--End PulumiCodeChooser -->
   245  //
   246  // ### VPC Configuration
   247  //
   248  // <!--Start PulumiCodeChooser -->
   249  // ```go
   250  // package main
   251  //
   252  // import (
   253  //
   254  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesisanalyticsv2"
   255  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3"
   256  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   257  //
   258  // )
   259  //
   260  //	func main() {
   261  //		pulumi.Run(func(ctx *pulumi.Context) error {
   262  //			example, err := s3.NewBucketV2(ctx, "example", &s3.BucketV2Args{
   263  //				Bucket: pulumi.String("example-flink-application"),
   264  //			})
   265  //			if err != nil {
   266  //				return err
   267  //			}
   268  //			exampleBucketObjectv2, err := s3.NewBucketObjectv2(ctx, "example", &s3.BucketObjectv2Args{
   269  //				Bucket: example.ID(),
   270  //				Key:    pulumi.String("example-flink-application"),
   271  //				Source: pulumi.NewFileAsset("flink-app.jar"),
   272  //			})
   273  //			if err != nil {
   274  //				return err
   275  //			}
   276  //			_, err = kinesisanalyticsv2.NewApplication(ctx, "example", &kinesisanalyticsv2.ApplicationArgs{
   277  //				Name:                 pulumi.String("example-flink-application"),
   278  //				RuntimeEnvironment:   pulumi.String("FLINK-1_8"),
   279  //				ServiceExecutionRole: pulumi.Any(exampleAwsIamRole.Arn),
   280  //				ApplicationConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationArgs{
   281  //					ApplicationCodeConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationArgs{
   282  //						CodeContent: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentArgs{
   283  //							S3ContentLocation: &kinesisanalyticsv2.ApplicationApplicationConfigurationApplicationCodeConfigurationCodeContentS3ContentLocationArgs{
   284  //								BucketArn: example.Arn,
   285  //								FileKey:   exampleBucketObjectv2.Key,
   286  //							},
   287  //						},
   288  //						CodeContentType: pulumi.String("ZIPFILE"),
   289  //					},
   290  //					VpcConfiguration: &kinesisanalyticsv2.ApplicationApplicationConfigurationVpcConfigurationArgs{
   291  //						SecurityGroupIds: pulumi.StringArray{
   292  //							exampleAwsSecurityGroup[0].Id,
   293  //							exampleAwsSecurityGroup[1].Id,
   294  //						},
   295  //						SubnetIds: pulumi.StringArray{
   296  //							exampleAwsSubnet.Id,
   297  //						},
   298  //					},
   299  //				},
   300  //			})
   301  //			if err != nil {
   302  //				return err
   303  //			}
   304  //			return nil
   305  //		})
   306  //	}
   307  //
   308  // ```
   309  // <!--End PulumiCodeChooser -->
   310  //
   311  // ## Import
   312  //
   313  // Using `pulumi import`, import `aws_kinesisanalyticsv2_application` using the application ARN. For example:
   314  //
   315  // ```sh
   316  // $ pulumi import aws:kinesisanalyticsv2/application:Application example arn:aws:kinesisanalytics:us-west-2:123456789012:application/example-sql-application
   317  // ```
   318  type Application struct {
   319  	pulumi.CustomResourceState
   320  
   321  	// The application's configuration
   322  	ApplicationConfiguration ApplicationApplicationConfigurationOutput `pulumi:"applicationConfiguration"`
   323  	// The ARN of the application.
   324  	Arn pulumi.StringOutput `pulumi:"arn"`
   325  	// A CloudWatch log stream to monitor application configuration errors.
   326  	CloudwatchLoggingOptions ApplicationCloudwatchLoggingOptionsPtrOutput `pulumi:"cloudwatchLoggingOptions"`
   327  	// The current timestamp when the application was created.
   328  	CreateTimestamp pulumi.StringOutput `pulumi:"createTimestamp"`
   329  	// A summary description of the application.
   330  	Description pulumi.StringPtrOutput `pulumi:"description"`
   331  	// Whether to force stop an unresponsive Flink-based application.
   332  	ForceStop pulumi.BoolPtrOutput `pulumi:"forceStop"`
   333  	// The current timestamp when the application was last updated.
   334  	LastUpdateTimestamp pulumi.StringOutput `pulumi:"lastUpdateTimestamp"`
   335  	// The name of the application.
   336  	Name pulumi.StringOutput `pulumi:"name"`
   337  	// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   338  	RuntimeEnvironment pulumi.StringOutput `pulumi:"runtimeEnvironment"`
   339  	// The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   340  	ServiceExecutionRole pulumi.StringOutput `pulumi:"serviceExecutionRole"`
   341  	// Whether to start or stop the application.
   342  	StartApplication pulumi.BoolPtrOutput `pulumi:"startApplication"`
   343  	// The status of the application.
   344  	Status pulumi.StringOutput `pulumi:"status"`
   345  	// A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   346  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   347  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   348  	//
   349  	// Deprecated: Please use `tags` instead.
   350  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   351  	// The current application version. Kinesis Data Analytics updates the `versionId` each time the application is updated.
   352  	VersionId pulumi.IntOutput `pulumi:"versionId"`
   353  }
   354  
   355  // NewApplication registers a new resource with the given unique name, arguments, and options.
   356  func NewApplication(ctx *pulumi.Context,
   357  	name string, args *ApplicationArgs, opts ...pulumi.ResourceOption) (*Application, error) {
   358  	if args == nil {
   359  		return nil, errors.New("missing one or more required arguments")
   360  	}
   361  
   362  	if args.RuntimeEnvironment == nil {
   363  		return nil, errors.New("invalid value for required argument 'RuntimeEnvironment'")
   364  	}
   365  	if args.ServiceExecutionRole == nil {
   366  		return nil, errors.New("invalid value for required argument 'ServiceExecutionRole'")
   367  	}
   368  	opts = internal.PkgResourceDefaultOpts(opts)
   369  	var resource Application
   370  	err := ctx.RegisterResource("aws:kinesisanalyticsv2/application:Application", name, args, &resource, opts...)
   371  	if err != nil {
   372  		return nil, err
   373  	}
   374  	return &resource, nil
   375  }
   376  
   377  // GetApplication gets an existing Application resource's state with the given name, ID, and optional
   378  // state properties that are used to uniquely qualify the lookup (nil if not required).
   379  func GetApplication(ctx *pulumi.Context,
   380  	name string, id pulumi.IDInput, state *ApplicationState, opts ...pulumi.ResourceOption) (*Application, error) {
   381  	var resource Application
   382  	err := ctx.ReadResource("aws:kinesisanalyticsv2/application:Application", name, id, state, &resource, opts...)
   383  	if err != nil {
   384  		return nil, err
   385  	}
   386  	return &resource, nil
   387  }
   388  
   389  // Input properties used for looking up and filtering Application resources.
   390  type applicationState struct {
   391  	// The application's configuration
   392  	ApplicationConfiguration *ApplicationApplicationConfiguration `pulumi:"applicationConfiguration"`
   393  	// The ARN of the application.
   394  	Arn *string `pulumi:"arn"`
   395  	// A CloudWatch log stream to monitor application configuration errors.
   396  	CloudwatchLoggingOptions *ApplicationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"`
   397  	// The current timestamp when the application was created.
   398  	CreateTimestamp *string `pulumi:"createTimestamp"`
   399  	// A summary description of the application.
   400  	Description *string `pulumi:"description"`
   401  	// Whether to force stop an unresponsive Flink-based application.
   402  	ForceStop *bool `pulumi:"forceStop"`
   403  	// The current timestamp when the application was last updated.
   404  	LastUpdateTimestamp *string `pulumi:"lastUpdateTimestamp"`
   405  	// The name of the application.
   406  	Name *string `pulumi:"name"`
   407  	// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   408  	RuntimeEnvironment *string `pulumi:"runtimeEnvironment"`
   409  	// The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   410  	ServiceExecutionRole *string `pulumi:"serviceExecutionRole"`
   411  	// Whether to start or stop the application.
   412  	StartApplication *bool `pulumi:"startApplication"`
   413  	// The status of the application.
   414  	Status *string `pulumi:"status"`
   415  	// A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   416  	Tags map[string]string `pulumi:"tags"`
   417  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   418  	//
   419  	// Deprecated: Please use `tags` instead.
   420  	TagsAll map[string]string `pulumi:"tagsAll"`
   421  	// The current application version. Kinesis Data Analytics updates the `versionId` each time the application is updated.
   422  	VersionId *int `pulumi:"versionId"`
   423  }
   424  
   425  type ApplicationState struct {
   426  	// The application's configuration
   427  	ApplicationConfiguration ApplicationApplicationConfigurationPtrInput
   428  	// The ARN of the application.
   429  	Arn pulumi.StringPtrInput
   430  	// A CloudWatch log stream to monitor application configuration errors.
   431  	CloudwatchLoggingOptions ApplicationCloudwatchLoggingOptionsPtrInput
   432  	// The current timestamp when the application was created.
   433  	CreateTimestamp pulumi.StringPtrInput
   434  	// A summary description of the application.
   435  	Description pulumi.StringPtrInput
   436  	// Whether to force stop an unresponsive Flink-based application.
   437  	ForceStop pulumi.BoolPtrInput
   438  	// The current timestamp when the application was last updated.
   439  	LastUpdateTimestamp pulumi.StringPtrInput
   440  	// The name of the application.
   441  	Name pulumi.StringPtrInput
   442  	// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   443  	RuntimeEnvironment pulumi.StringPtrInput
   444  	// The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   445  	ServiceExecutionRole pulumi.StringPtrInput
   446  	// Whether to start or stop the application.
   447  	StartApplication pulumi.BoolPtrInput
   448  	// The status of the application.
   449  	Status pulumi.StringPtrInput
   450  	// A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   451  	Tags pulumi.StringMapInput
   452  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   453  	//
   454  	// Deprecated: Please use `tags` instead.
   455  	TagsAll pulumi.StringMapInput
   456  	// The current application version. Kinesis Data Analytics updates the `versionId` each time the application is updated.
   457  	VersionId pulumi.IntPtrInput
   458  }
   459  
   460  func (ApplicationState) ElementType() reflect.Type {
   461  	return reflect.TypeOf((*applicationState)(nil)).Elem()
   462  }
   463  
   464  type applicationArgs struct {
   465  	// The application's configuration
   466  	ApplicationConfiguration *ApplicationApplicationConfiguration `pulumi:"applicationConfiguration"`
   467  	// A CloudWatch log stream to monitor application configuration errors.
   468  	CloudwatchLoggingOptions *ApplicationCloudwatchLoggingOptions `pulumi:"cloudwatchLoggingOptions"`
   469  	// A summary description of the application.
   470  	Description *string `pulumi:"description"`
   471  	// Whether to force stop an unresponsive Flink-based application.
   472  	ForceStop *bool `pulumi:"forceStop"`
   473  	// The name of the application.
   474  	Name *string `pulumi:"name"`
   475  	// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   476  	RuntimeEnvironment string `pulumi:"runtimeEnvironment"`
   477  	// The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   478  	ServiceExecutionRole string `pulumi:"serviceExecutionRole"`
   479  	// Whether to start or stop the application.
   480  	StartApplication *bool `pulumi:"startApplication"`
   481  	// A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   482  	Tags map[string]string `pulumi:"tags"`
   483  }
   484  
   485  // The set of arguments for constructing a Application resource.
   486  type ApplicationArgs struct {
   487  	// The application's configuration
   488  	ApplicationConfiguration ApplicationApplicationConfigurationPtrInput
   489  	// A CloudWatch log stream to monitor application configuration errors.
   490  	CloudwatchLoggingOptions ApplicationCloudwatchLoggingOptionsPtrInput
   491  	// A summary description of the application.
   492  	Description pulumi.StringPtrInput
   493  	// Whether to force stop an unresponsive Flink-based application.
   494  	ForceStop pulumi.BoolPtrInput
   495  	// The name of the application.
   496  	Name pulumi.StringPtrInput
   497  	// The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   498  	RuntimeEnvironment pulumi.StringInput
   499  	// The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   500  	ServiceExecutionRole pulumi.StringInput
   501  	// Whether to start or stop the application.
   502  	StartApplication pulumi.BoolPtrInput
   503  	// A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   504  	Tags pulumi.StringMapInput
   505  }
   506  
   507  func (ApplicationArgs) ElementType() reflect.Type {
   508  	return reflect.TypeOf((*applicationArgs)(nil)).Elem()
   509  }
   510  
   511  type ApplicationInput interface {
   512  	pulumi.Input
   513  
   514  	ToApplicationOutput() ApplicationOutput
   515  	ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput
   516  }
   517  
   518  func (*Application) ElementType() reflect.Type {
   519  	return reflect.TypeOf((**Application)(nil)).Elem()
   520  }
   521  
   522  func (i *Application) ToApplicationOutput() ApplicationOutput {
   523  	return i.ToApplicationOutputWithContext(context.Background())
   524  }
   525  
   526  func (i *Application) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput {
   527  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationOutput)
   528  }
   529  
   530  // ApplicationArrayInput is an input type that accepts ApplicationArray and ApplicationArrayOutput values.
   531  // You can construct a concrete instance of `ApplicationArrayInput` via:
   532  //
   533  //	ApplicationArray{ ApplicationArgs{...} }
   534  type ApplicationArrayInput interface {
   535  	pulumi.Input
   536  
   537  	ToApplicationArrayOutput() ApplicationArrayOutput
   538  	ToApplicationArrayOutputWithContext(context.Context) ApplicationArrayOutput
   539  }
   540  
   541  type ApplicationArray []ApplicationInput
   542  
   543  func (ApplicationArray) ElementType() reflect.Type {
   544  	return reflect.TypeOf((*[]*Application)(nil)).Elem()
   545  }
   546  
   547  func (i ApplicationArray) ToApplicationArrayOutput() ApplicationArrayOutput {
   548  	return i.ToApplicationArrayOutputWithContext(context.Background())
   549  }
   550  
   551  func (i ApplicationArray) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput {
   552  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationArrayOutput)
   553  }
   554  
   555  // ApplicationMapInput is an input type that accepts ApplicationMap and ApplicationMapOutput values.
   556  // You can construct a concrete instance of `ApplicationMapInput` via:
   557  //
   558  //	ApplicationMap{ "key": ApplicationArgs{...} }
   559  type ApplicationMapInput interface {
   560  	pulumi.Input
   561  
   562  	ToApplicationMapOutput() ApplicationMapOutput
   563  	ToApplicationMapOutputWithContext(context.Context) ApplicationMapOutput
   564  }
   565  
   566  type ApplicationMap map[string]ApplicationInput
   567  
   568  func (ApplicationMap) ElementType() reflect.Type {
   569  	return reflect.TypeOf((*map[string]*Application)(nil)).Elem()
   570  }
   571  
   572  func (i ApplicationMap) ToApplicationMapOutput() ApplicationMapOutput {
   573  	return i.ToApplicationMapOutputWithContext(context.Background())
   574  }
   575  
   576  func (i ApplicationMap) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput {
   577  	return pulumi.ToOutputWithContext(ctx, i).(ApplicationMapOutput)
   578  }
   579  
   580  type ApplicationOutput struct{ *pulumi.OutputState }
   581  
   582  func (ApplicationOutput) ElementType() reflect.Type {
   583  	return reflect.TypeOf((**Application)(nil)).Elem()
   584  }
   585  
   586  func (o ApplicationOutput) ToApplicationOutput() ApplicationOutput {
   587  	return o
   588  }
   589  
   590  func (o ApplicationOutput) ToApplicationOutputWithContext(ctx context.Context) ApplicationOutput {
   591  	return o
   592  }
   593  
   594  // The application's configuration
   595  func (o ApplicationOutput) ApplicationConfiguration() ApplicationApplicationConfigurationOutput {
   596  	return o.ApplyT(func(v *Application) ApplicationApplicationConfigurationOutput { return v.ApplicationConfiguration }).(ApplicationApplicationConfigurationOutput)
   597  }
   598  
   599  // The ARN of the application.
   600  func (o ApplicationOutput) Arn() pulumi.StringOutput {
   601  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   602  }
   603  
   604  // A CloudWatch log stream to monitor application configuration errors.
   605  func (o ApplicationOutput) CloudwatchLoggingOptions() ApplicationCloudwatchLoggingOptionsPtrOutput {
   606  	return o.ApplyT(func(v *Application) ApplicationCloudwatchLoggingOptionsPtrOutput { return v.CloudwatchLoggingOptions }).(ApplicationCloudwatchLoggingOptionsPtrOutput)
   607  }
   608  
   609  // The current timestamp when the application was created.
   610  func (o ApplicationOutput) CreateTimestamp() pulumi.StringOutput {
   611  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.CreateTimestamp }).(pulumi.StringOutput)
   612  }
   613  
   614  // A summary description of the application.
   615  func (o ApplicationOutput) Description() pulumi.StringPtrOutput {
   616  	return o.ApplyT(func(v *Application) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   617  }
   618  
   619  // Whether to force stop an unresponsive Flink-based application.
   620  func (o ApplicationOutput) ForceStop() pulumi.BoolPtrOutput {
   621  	return o.ApplyT(func(v *Application) pulumi.BoolPtrOutput { return v.ForceStop }).(pulumi.BoolPtrOutput)
   622  }
   623  
   624  // The current timestamp when the application was last updated.
   625  func (o ApplicationOutput) LastUpdateTimestamp() pulumi.StringOutput {
   626  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.LastUpdateTimestamp }).(pulumi.StringOutput)
   627  }
   628  
   629  // The name of the application.
   630  func (o ApplicationOutput) Name() pulumi.StringOutput {
   631  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   632  }
   633  
   634  // The runtime environment for the application. Valid values: `SQL-1_0`, `FLINK-1_6`, `FLINK-1_8`, `FLINK-1_11`, `FLINK-1_13`, `FLINK-1_15`, `FLINK-1_18`.
   635  func (o ApplicationOutput) RuntimeEnvironment() pulumi.StringOutput {
   636  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.RuntimeEnvironment }).(pulumi.StringOutput)
   637  }
   638  
   639  // The ARN of the IAM role used by the application to access Kinesis data streams, Kinesis Data Firehose delivery streams, Amazon S3 objects, and other external resources.
   640  func (o ApplicationOutput) ServiceExecutionRole() pulumi.StringOutput {
   641  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.ServiceExecutionRole }).(pulumi.StringOutput)
   642  }
   643  
   644  // Whether to start or stop the application.
   645  func (o ApplicationOutput) StartApplication() pulumi.BoolPtrOutput {
   646  	return o.ApplyT(func(v *Application) pulumi.BoolPtrOutput { return v.StartApplication }).(pulumi.BoolPtrOutput)
   647  }
   648  
   649  // The status of the application.
   650  func (o ApplicationOutput) Status() pulumi.StringOutput {
   651  	return o.ApplyT(func(v *Application) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput)
   652  }
   653  
   654  // A map of tags to assign to the application. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level
   655  func (o ApplicationOutput) Tags() pulumi.StringMapOutput {
   656  	return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   657  }
   658  
   659  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   660  //
   661  // Deprecated: Please use `tags` instead.
   662  func (o ApplicationOutput) TagsAll() pulumi.StringMapOutput {
   663  	return o.ApplyT(func(v *Application) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   664  }
   665  
   666  // The current application version. Kinesis Data Analytics updates the `versionId` each time the application is updated.
   667  func (o ApplicationOutput) VersionId() pulumi.IntOutput {
   668  	return o.ApplyT(func(v *Application) pulumi.IntOutput { return v.VersionId }).(pulumi.IntOutput)
   669  }
   670  
   671  type ApplicationArrayOutput struct{ *pulumi.OutputState }
   672  
   673  func (ApplicationArrayOutput) ElementType() reflect.Type {
   674  	return reflect.TypeOf((*[]*Application)(nil)).Elem()
   675  }
   676  
   677  func (o ApplicationArrayOutput) ToApplicationArrayOutput() ApplicationArrayOutput {
   678  	return o
   679  }
   680  
   681  func (o ApplicationArrayOutput) ToApplicationArrayOutputWithContext(ctx context.Context) ApplicationArrayOutput {
   682  	return o
   683  }
   684  
   685  func (o ApplicationArrayOutput) Index(i pulumi.IntInput) ApplicationOutput {
   686  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Application {
   687  		return vs[0].([]*Application)[vs[1].(int)]
   688  	}).(ApplicationOutput)
   689  }
   690  
   691  type ApplicationMapOutput struct{ *pulumi.OutputState }
   692  
   693  func (ApplicationMapOutput) ElementType() reflect.Type {
   694  	return reflect.TypeOf((*map[string]*Application)(nil)).Elem()
   695  }
   696  
   697  func (o ApplicationMapOutput) ToApplicationMapOutput() ApplicationMapOutput {
   698  	return o
   699  }
   700  
   701  func (o ApplicationMapOutput) ToApplicationMapOutputWithContext(ctx context.Context) ApplicationMapOutput {
   702  	return o
   703  }
   704  
   705  func (o ApplicationMapOutput) MapIndex(k pulumi.StringInput) ApplicationOutput {
   706  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Application {
   707  		return vs[0].(map[string]*Application)[vs[1].(string)]
   708  	}).(ApplicationOutput)
   709  }
   710  
   711  func init() {
   712  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationInput)(nil)).Elem(), &Application{})
   713  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationArrayInput)(nil)).Elem(), ApplicationArray{})
   714  	pulumi.RegisterInputType(reflect.TypeOf((*ApplicationMapInput)(nil)).Elem(), ApplicationMap{})
   715  	pulumi.RegisterOutputType(ApplicationOutput{})
   716  	pulumi.RegisterOutputType(ApplicationArrayOutput{})
   717  	pulumi.RegisterOutputType(ApplicationMapOutput{})
   718  }