class Aws::KinesisAnalyticsV2::Types::CreateApplicationRequest

@note When making an API call, you may pass CreateApplicationRequest

data as a hash:

    {
      application_name: "ApplicationName", # required
      application_description: "ApplicationDescription",
      runtime_environment: "SQL-1_0", # required, accepts SQL-1_0, FLINK-1_6, FLINK-1_8, FLINK-1_11, ZEPPELIN-FLINK-1_0
      service_execution_role: "RoleARN", # required
      application_configuration: {
        sql_application_configuration: {
          inputs: [
            {
              name_prefix: "InAppStreamName", # required
              input_processing_configuration: {
                input_lambda_processor: { # required
                  resource_arn: "ResourceARN", # required
                },
              },
              kinesis_streams_input: {
                resource_arn: "ResourceARN", # required
              },
              kinesis_firehose_input: {
                resource_arn: "ResourceARN", # required
              },
              input_parallelism: {
                count: 1,
              },
              input_schema: { # required
                record_format: { # required
                  record_format_type: "JSON", # required, accepts JSON, CSV
                  mapping_parameters: {
                    json_mapping_parameters: {
                      record_row_path: "RecordRowPath", # required
                    },
                    csv_mapping_parameters: {
                      record_row_delimiter: "RecordRowDelimiter", # required
                      record_column_delimiter: "RecordColumnDelimiter", # required
                    },
                  },
                },
                record_encoding: "RecordEncoding",
                record_columns: [ # required
                  {
                    name: "RecordColumnName", # required
                    mapping: "RecordColumnMapping",
                    sql_type: "RecordColumnSqlType", # required
                  },
                ],
              },
            },
          ],
          outputs: [
            {
              name: "InAppStreamName", # required
              kinesis_streams_output: {
                resource_arn: "ResourceARN", # required
              },
              kinesis_firehose_output: {
                resource_arn: "ResourceARN", # required
              },
              lambda_output: {
                resource_arn: "ResourceARN", # required
              },
              destination_schema: { # required
                record_format_type: "JSON", # required, accepts JSON, CSV
              },
            },
          ],
          reference_data_sources: [
            {
              table_name: "InAppTableName", # required
              s3_reference_data_source: {
                bucket_arn: "BucketARN",
                file_key: "FileKey",
              },
              reference_schema: { # required
                record_format: { # required
                  record_format_type: "JSON", # required, accepts JSON, CSV
                  mapping_parameters: {
                    json_mapping_parameters: {
                      record_row_path: "RecordRowPath", # required
                    },
                    csv_mapping_parameters: {
                      record_row_delimiter: "RecordRowDelimiter", # required
                      record_column_delimiter: "RecordColumnDelimiter", # required
                    },
                  },
                },
                record_encoding: "RecordEncoding",
                record_columns: [ # required
                  {
                    name: "RecordColumnName", # required
                    mapping: "RecordColumnMapping",
                    sql_type: "RecordColumnSqlType", # required
                  },
                ],
              },
            },
          ],
        },
        flink_application_configuration: {
          checkpoint_configuration: {
            configuration_type: "DEFAULT", # required, accepts DEFAULT, CUSTOM
            checkpointing_enabled: false,
            checkpoint_interval: 1,
            min_pause_between_checkpoints: 1,
          },
          monitoring_configuration: {
            configuration_type: "DEFAULT", # required, accepts DEFAULT, CUSTOM
            metrics_level: "APPLICATION", # accepts APPLICATION, TASK, OPERATOR, PARALLELISM
            log_level: "INFO", # accepts INFO, WARN, ERROR, DEBUG
          },
          parallelism_configuration: {
            configuration_type: "DEFAULT", # required, accepts DEFAULT, CUSTOM
            parallelism: 1,
            parallelism_per_kpu: 1,
            auto_scaling_enabled: false,
          },
        },
        environment_properties: {
          property_groups: [ # required
            {
              property_group_id: "Id", # required
              property_map: { # required
                "PropertyKey" => "PropertyValue",
              },
            },
          ],
        },
        application_code_configuration: {
          code_content: {
            text_content: "TextContent",
            zip_file_content: "data",
            s3_content_location: {
              bucket_arn: "BucketARN", # required
              file_key: "FileKey", # required
              object_version: "ObjectVersion",
            },
          },
          code_content_type: "PLAINTEXT", # required, accepts PLAINTEXT, ZIPFILE
        },
        application_snapshot_configuration: {
          snapshots_enabled: false, # required
        },
        vpc_configurations: [
          {
            subnet_ids: ["SubnetId"], # required
            security_group_ids: ["SecurityGroupId"], # required
          },
        ],
        zeppelin_application_configuration: {
          monitoring_configuration: {
            log_level: "INFO", # required, accepts INFO, WARN, ERROR, DEBUG
          },
          catalog_configuration: {
            glue_data_catalog_configuration: { # required
              database_arn: "DatabaseARN", # required
            },
          },
          deploy_as_application_configuration: {
            s3_content_location: { # required
              bucket_arn: "BucketARN", # required
              base_path: "BasePath",
            },
          },
          custom_artifacts_configuration: [
            {
              artifact_type: "UDF", # required, accepts UDF, DEPENDENCY_JAR
              s3_content_location: {
                bucket_arn: "BucketARN", # required
                file_key: "FileKey", # required
                object_version: "ObjectVersion",
              },
              maven_reference: {
                group_id: "MavenGroupId", # required
                artifact_id: "MavenArtifactId", # required
                version: "MavenVersion", # required
              },
            },
          ],
        },
      },
      cloud_watch_logging_options: [
        {
          log_stream_arn: "LogStreamARN", # required
        },
      ],
      tags: [
        {
          key: "TagKey", # required
          value: "TagValue",
        },
      ],
      application_mode: "STREAMING", # accepts STREAMING, INTERACTIVE
    }

@!attribute [rw] application_name

The name of your application (for example, `sample-app`).
@return [String]

@!attribute [rw] application_description

A summary description of the application.
@return [String]

@!attribute [rw] runtime_environment

The runtime environment for the application (`SQL-1_0`, `FLINK-1_6`,
`FLINK-1_8`, or `FLINK-1_11`).
@return [String]

@!attribute [rw] service_execution_role

The IAM role used by the application to access Kinesis data streams,
Kinesis Data Firehose delivery streams, Amazon S3 objects, and other
external resources.
@return [String]

@!attribute [rw] application_configuration

Use this parameter to configure the application.
@return [Types::ApplicationConfiguration]

@!attribute [rw] cloud_watch_logging_options

Use this parameter to configure an Amazon CloudWatch log stream to
monitor application configuration errors.
@return [Array<Types::CloudWatchLoggingOption>]

@!attribute [rw] tags

A list of one or more tags to assign to the application. A tag is a
key-value pair that identifies an application. Note that the maximum
number of application tags includes system tags. The maximum number
of user-defined application tags is 50. For more information, see
[Using Tagging][1].

[1]: https://docs.aws.amazon.com/kinesisanalytics/latest/java/how-tagging.html
@return [Array<Types::Tag>]

@!attribute [rw] application_mode

Use the `STREAMING` mode to create a Kinesis Data Analytics Studio
notebook. To create a Kinesis Data Analytics Studio notebook, use
the `INTERACTIVE` mode.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/kinesisanalyticsv2-2018-05-23/CreateApplicationRequest AWS API Documentation

Constants

SENSITIVE