aws-sdk-kinesisanalytics 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
@@ -0,0 +1,23 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module KinesisAnalytics
10
+ module Errors
11
+
12
+ extend Aws::Errors::DynamicErrors
13
+
14
+ # Raised when calling #load or #data on a resource class that can not be
15
+ # loaded. This can happen when:
16
+ #
17
+ # * A resource class has identifiers, but no data attributes.
18
+ # * Resource data is only available when making an API call that
19
+ # enumerates all resources of that type.
20
+ class ResourceNotLoadable < RuntimeError; end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,25 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module KinesisAnalytics
10
+ class Resource
11
+
12
+ # @param options ({})
13
+ # @option options [Client] :client
14
+ def initialize(options = {})
15
+ @client = options[:client] || Client.new(options)
16
+ end
17
+
18
+ # @return [Client]
19
+ def client
20
+ @client
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,2215 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ module Aws
9
+ module KinesisAnalytics
10
+ module Types
11
+
12
+ # @note When making an API call, pass AddApplicationInputRequest
13
+ # data as a hash:
14
+ #
15
+ # {
16
+ # application_name: "ApplicationName", # required
17
+ # current_application_version_id: 1, # required
18
+ # input: { # required
19
+ # name_prefix: "InAppStreamName", # required
20
+ # kinesis_streams_input: {
21
+ # resource_arn: "ResourceARN", # required
22
+ # role_arn: "RoleARN", # required
23
+ # },
24
+ # kinesis_firehose_input: {
25
+ # resource_arn: "ResourceARN", # required
26
+ # role_arn: "RoleARN", # required
27
+ # },
28
+ # input_parallelism: {
29
+ # count: 1,
30
+ # },
31
+ # input_schema: { # required
32
+ # record_format: { # required
33
+ # record_format_type: "JSON", # required, accepts JSON, CSV
34
+ # mapping_parameters: {
35
+ # json_mapping_parameters: {
36
+ # record_row_path: "RecordRowPath", # required
37
+ # },
38
+ # csv_mapping_parameters: {
39
+ # record_row_delimiter: "RecordRowDelimiter", # required
40
+ # record_column_delimiter: "RecordColumnDelimiter", # required
41
+ # },
42
+ # },
43
+ # },
44
+ # record_encoding: "RecordEncoding",
45
+ # record_columns: [ # required
46
+ # {
47
+ # name: "RecordColumnName", # required
48
+ # mapping: "RecordColumnMapping",
49
+ # sql_type: "RecordColumnSqlType", # required
50
+ # },
51
+ # ],
52
+ # },
53
+ # },
54
+ # }
55
+ # @!attribute [rw] application_name
56
+ # Name of your existing Amazon Kinesis Analytics application to which
57
+ # you want to add the streaming source.
58
+ # @return [String]
59
+ #
60
+ # @!attribute [rw] current_application_version_id
61
+ # Current version of your Amazon Kinesis Analytics application. You
62
+ # can use the DescribeApplication operation to find the current
63
+ # application version.
64
+ # @return [Integer]
65
+ #
66
+ # @!attribute [rw] input
67
+ # When you configure the application input, you specify the streaming
68
+ # source, the in-application stream name that is created, and the
69
+ # mapping between the two. For more information, see [Configuring
70
+ # Application Input][1].
71
+ #
72
+ #
73
+ #
74
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
75
+ # @return [Types::Input]
76
+ class AddApplicationInputRequest < Struct.new(
77
+ :application_name,
78
+ :current_application_version_id,
79
+ :input)
80
+ include Aws::Structure
81
+ end
82
+
83
+ class AddApplicationInputResponse < Aws::EmptyStructure; end
84
+
85
+ # @note When making an API call, pass AddApplicationOutputRequest
86
+ # data as a hash:
87
+ #
88
+ # {
89
+ # application_name: "ApplicationName", # required
90
+ # current_application_version_id: 1, # required
91
+ # output: { # required
92
+ # name: "InAppStreamName", # required
93
+ # kinesis_streams_output: {
94
+ # resource_arn: "ResourceARN", # required
95
+ # role_arn: "RoleARN", # required
96
+ # },
97
+ # kinesis_firehose_output: {
98
+ # resource_arn: "ResourceARN", # required
99
+ # role_arn: "RoleARN", # required
100
+ # },
101
+ # destination_schema: { # required
102
+ # record_format_type: "JSON", # accepts JSON, CSV
103
+ # },
104
+ # },
105
+ # }
106
+ # @!attribute [rw] application_name
107
+ # Name of the application to which you want to add the output
108
+ # configuration.
109
+ # @return [String]
110
+ #
111
+ # @!attribute [rw] current_application_version_id
112
+ # Version of the application to which you want add the output
113
+ # configuration. You can use the DescribeApplication operation to get
114
+ # the current application version. If the version specified is not the
115
+ # current version, the `ConcurrentModificationException` is returned.
116
+ # @return [Integer]
117
+ #
118
+ # @!attribute [rw] output
119
+ # An array of objects, each describing one output configuration. In
120
+ # the output configuration, you specify the name of an in-application
121
+ # stream, a destination (that is, an Amazon Kinesis stream or an
122
+ # Amazon Kinesis Firehose delivery stream), and record the formation
123
+ # to use when writing to the destination.
124
+ # @return [Types::Output]
125
+ class AddApplicationOutputRequest < Struct.new(
126
+ :application_name,
127
+ :current_application_version_id,
128
+ :output)
129
+ include Aws::Structure
130
+ end
131
+
132
+ class AddApplicationOutputResponse < Aws::EmptyStructure; end
133
+
134
+ # @note When making an API call, pass AddApplicationReferenceDataSourceRequest
135
+ # data as a hash:
136
+ #
137
+ # {
138
+ # application_name: "ApplicationName", # required
139
+ # current_application_version_id: 1, # required
140
+ # reference_data_source: { # required
141
+ # table_name: "InAppTableName", # required
142
+ # s3_reference_data_source: {
143
+ # bucket_arn: "BucketARN", # required
144
+ # file_key: "FileKey", # required
145
+ # reference_role_arn: "RoleARN", # required
146
+ # },
147
+ # reference_schema: { # required
148
+ # record_format: { # required
149
+ # record_format_type: "JSON", # required, accepts JSON, CSV
150
+ # mapping_parameters: {
151
+ # json_mapping_parameters: {
152
+ # record_row_path: "RecordRowPath", # required
153
+ # },
154
+ # csv_mapping_parameters: {
155
+ # record_row_delimiter: "RecordRowDelimiter", # required
156
+ # record_column_delimiter: "RecordColumnDelimiter", # required
157
+ # },
158
+ # },
159
+ # },
160
+ # record_encoding: "RecordEncoding",
161
+ # record_columns: [ # required
162
+ # {
163
+ # name: "RecordColumnName", # required
164
+ # mapping: "RecordColumnMapping",
165
+ # sql_type: "RecordColumnSqlType", # required
166
+ # },
167
+ # ],
168
+ # },
169
+ # },
170
+ # }
171
+ # @!attribute [rw] application_name
172
+ # Name of an existing application.
173
+ # @return [String]
174
+ #
175
+ # @!attribute [rw] current_application_version_id
176
+ # Version of the application for which you are adding the reference
177
+ # data source. You can use the DescribeApplication operation to get
178
+ # the current application version. If the version specified is not the
179
+ # current version, the `ConcurrentModificationException` is returned.
180
+ # @return [Integer]
181
+ #
182
+ # @!attribute [rw] reference_data_source
183
+ # The reference data source can be an object in your Amazon S3 bucket.
184
+ # Amazon Kinesis Analytics reads the object and copies the data into
185
+ # the in-application table that is created. You provide an S3 bucket,
186
+ # object key name, and the resulting in-application table that is
187
+ # created. You must also provide an IAM role with the necessary
188
+ # permissions that Amazon Kinesis Analytics can assume to read the
189
+ # object from your S3 bucket on your behalf.
190
+ # @return [Types::ReferenceDataSource]
191
+ class AddApplicationReferenceDataSourceRequest < Struct.new(
192
+ :application_name,
193
+ :current_application_version_id,
194
+ :reference_data_source)
195
+ include Aws::Structure
196
+ end
197
+
198
+ class AddApplicationReferenceDataSourceResponse < Aws::EmptyStructure; end
199
+
200
+ # Provides a description of the application, including the application
201
+ # Amazon Resource Name (ARN), status, latest version, and input and
202
+ # output configuration.
203
+ # @!attribute [rw] application_name
204
+ # Name of the application.
205
+ # @return [String]
206
+ #
207
+ # @!attribute [rw] application_description
208
+ # Description of the application.
209
+ # @return [String]
210
+ #
211
+ # @!attribute [rw] application_arn
212
+ # ARN of the application.
213
+ # @return [String]
214
+ #
215
+ # @!attribute [rw] application_status
216
+ # Status of the application.
217
+ # @return [String]
218
+ #
219
+ # @!attribute [rw] create_timestamp
220
+ # Timestamp when the application version was created.
221
+ # @return [Time]
222
+ #
223
+ # @!attribute [rw] last_update_timestamp
224
+ # Timestamp when the application was last updated.
225
+ # @return [Time]
226
+ #
227
+ # @!attribute [rw] input_descriptions
228
+ # Describes the application input configuration. For more information,
229
+ # see [Configuring Application Input][1].
230
+ #
231
+ #
232
+ #
233
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
234
+ # @return [Array<Types::InputDescription>]
235
+ #
236
+ # @!attribute [rw] output_descriptions
237
+ # Describes the application output configuration. For more
238
+ # information, see [Configuring Application Output][1].
239
+ #
240
+ #
241
+ #
242
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html
243
+ # @return [Array<Types::OutputDescription>]
244
+ #
245
+ # @!attribute [rw] reference_data_source_descriptions
246
+ # Describes reference data sources configured for the application. For
247
+ # more information, see [Configuring Application Input][1].
248
+ #
249
+ #
250
+ #
251
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
252
+ # @return [Array<Types::ReferenceDataSourceDescription>]
253
+ #
254
+ # @!attribute [rw] application_code
255
+ # Returns the application code that you provided to perform data
256
+ # analysis on any of the in-application streams in your application.
257
+ # @return [String]
258
+ #
259
+ # @!attribute [rw] application_version_id
260
+ # Provides the current application version.
261
+ # @return [Integer]
262
+ class ApplicationDetail < Struct.new(
263
+ :application_name,
264
+ :application_description,
265
+ :application_arn,
266
+ :application_status,
267
+ :create_timestamp,
268
+ :last_update_timestamp,
269
+ :input_descriptions,
270
+ :output_descriptions,
271
+ :reference_data_source_descriptions,
272
+ :application_code,
273
+ :application_version_id)
274
+ include Aws::Structure
275
+ end
276
+
277
+ # Provides application summary information, including the application
278
+ # Amazon Resource Name (ARN), name, and status.
279
+ # @!attribute [rw] application_name
280
+ # Name of the application.
281
+ # @return [String]
282
+ #
283
+ # @!attribute [rw] application_arn
284
+ # ARN of the application.
285
+ # @return [String]
286
+ #
287
+ # @!attribute [rw] application_status
288
+ # Status of the application.
289
+ # @return [String]
290
+ class ApplicationSummary < Struct.new(
291
+ :application_name,
292
+ :application_arn,
293
+ :application_status)
294
+ include Aws::Structure
295
+ end
296
+
297
+ # Describes updates to apply to an existing Kinesis Analytics
298
+ # application.
299
+ # @note When making an API call, pass ApplicationUpdate
300
+ # data as a hash:
301
+ #
302
+ # {
303
+ # input_updates: [
304
+ # {
305
+ # input_id: "Id", # required
306
+ # name_prefix_update: "InAppStreamName",
307
+ # kinesis_streams_input_update: {
308
+ # resource_arn_update: "ResourceARN",
309
+ # role_arn_update: "RoleARN",
310
+ # },
311
+ # kinesis_firehose_input_update: {
312
+ # resource_arn_update: "ResourceARN",
313
+ # role_arn_update: "RoleARN",
314
+ # },
315
+ # input_schema_update: {
316
+ # record_format_update: {
317
+ # record_format_type: "JSON", # required, accepts JSON, CSV
318
+ # mapping_parameters: {
319
+ # json_mapping_parameters: {
320
+ # record_row_path: "RecordRowPath", # required
321
+ # },
322
+ # csv_mapping_parameters: {
323
+ # record_row_delimiter: "RecordRowDelimiter", # required
324
+ # record_column_delimiter: "RecordColumnDelimiter", # required
325
+ # },
326
+ # },
327
+ # },
328
+ # record_encoding_update: "RecordEncoding",
329
+ # record_column_updates: [
330
+ # {
331
+ # name: "RecordColumnName", # required
332
+ # mapping: "RecordColumnMapping",
333
+ # sql_type: "RecordColumnSqlType", # required
334
+ # },
335
+ # ],
336
+ # },
337
+ # input_parallelism_update: {
338
+ # count_update: 1,
339
+ # },
340
+ # },
341
+ # ],
342
+ # application_code_update: "ApplicationCode",
343
+ # output_updates: [
344
+ # {
345
+ # output_id: "Id", # required
346
+ # name_update: "InAppStreamName",
347
+ # kinesis_streams_output_update: {
348
+ # resource_arn_update: "ResourceARN",
349
+ # role_arn_update: "RoleARN",
350
+ # },
351
+ # kinesis_firehose_output_update: {
352
+ # resource_arn_update: "ResourceARN",
353
+ # role_arn_update: "RoleARN",
354
+ # },
355
+ # destination_schema_update: {
356
+ # record_format_type: "JSON", # accepts JSON, CSV
357
+ # },
358
+ # },
359
+ # ],
360
+ # reference_data_source_updates: [
361
+ # {
362
+ # reference_id: "Id", # required
363
+ # table_name_update: "InAppTableName",
364
+ # s3_reference_data_source_update: {
365
+ # bucket_arn_update: "BucketARN",
366
+ # file_key_update: "FileKey",
367
+ # reference_role_arn_update: "RoleARN",
368
+ # },
369
+ # reference_schema_update: {
370
+ # record_format: { # required
371
+ # record_format_type: "JSON", # required, accepts JSON, CSV
372
+ # mapping_parameters: {
373
+ # json_mapping_parameters: {
374
+ # record_row_path: "RecordRowPath", # required
375
+ # },
376
+ # csv_mapping_parameters: {
377
+ # record_row_delimiter: "RecordRowDelimiter", # required
378
+ # record_column_delimiter: "RecordColumnDelimiter", # required
379
+ # },
380
+ # },
381
+ # },
382
+ # record_encoding: "RecordEncoding",
383
+ # record_columns: [ # required
384
+ # {
385
+ # name: "RecordColumnName", # required
386
+ # mapping: "RecordColumnMapping",
387
+ # sql_type: "RecordColumnSqlType", # required
388
+ # },
389
+ # ],
390
+ # },
391
+ # },
392
+ # ],
393
+ # }
394
+ # @!attribute [rw] input_updates
395
+ # Describes application input configuration updates.
396
+ # @return [Array<Types::InputUpdate>]
397
+ #
398
+ # @!attribute [rw] application_code_update
399
+ # Describes application code updates.
400
+ # @return [String]
401
+ #
402
+ # @!attribute [rw] output_updates
403
+ # Describes application output configuration updates.
404
+ # @return [Array<Types::OutputUpdate>]
405
+ #
406
+ # @!attribute [rw] reference_data_source_updates
407
+ # Describes application reference data source updates.
408
+ # @return [Array<Types::ReferenceDataSourceUpdate>]
409
+ class ApplicationUpdate < Struct.new(
410
+ :input_updates,
411
+ :application_code_update,
412
+ :output_updates,
413
+ :reference_data_source_updates)
414
+ include Aws::Structure
415
+ end
416
+
417
+ # Provides additional mapping information when the record format uses
418
+ # delimiters, such as CSV. For example, the following sample records use
419
+ # CSV format, where the records use the *'\\n'* as the row delimiter
420
+ # and a comma (",") as the column delimiter:
421
+ #
422
+ # `"name1", "address1" `
423
+ #
424
+ # `"name2, "address2"`
425
+ # @note When making an API call, pass CSVMappingParameters
426
+ # data as a hash:
427
+ #
428
+ # {
429
+ # record_row_delimiter: "RecordRowDelimiter", # required
430
+ # record_column_delimiter: "RecordColumnDelimiter", # required
431
+ # }
432
+ # @!attribute [rw] record_row_delimiter
433
+ # Row delimiter. For example, in a CSV format, *'\\n'* is the
434
+ # typical row delimiter.
435
+ # @return [String]
436
+ #
437
+ # @!attribute [rw] record_column_delimiter
438
+ # Column delimiter. For example, in a CSV format, a comma (",") is
439
+ # the typical column delimiter.
440
+ # @return [String]
441
+ class CSVMappingParameters < Struct.new(
442
+ :record_row_delimiter,
443
+ :record_column_delimiter)
444
+ include Aws::Structure
445
+ end
446
+
447
+ # TBD
448
+ # @note When making an API call, pass CreateApplicationRequest
449
+ # data as a hash:
450
+ #
451
+ # {
452
+ # application_name: "ApplicationName", # required
453
+ # application_description: "ApplicationDescription",
454
+ # inputs: [
455
+ # {
456
+ # name_prefix: "InAppStreamName", # required
457
+ # kinesis_streams_input: {
458
+ # resource_arn: "ResourceARN", # required
459
+ # role_arn: "RoleARN", # required
460
+ # },
461
+ # kinesis_firehose_input: {
462
+ # resource_arn: "ResourceARN", # required
463
+ # role_arn: "RoleARN", # required
464
+ # },
465
+ # input_parallelism: {
466
+ # count: 1,
467
+ # },
468
+ # input_schema: { # required
469
+ # record_format: { # required
470
+ # record_format_type: "JSON", # required, accepts JSON, CSV
471
+ # mapping_parameters: {
472
+ # json_mapping_parameters: {
473
+ # record_row_path: "RecordRowPath", # required
474
+ # },
475
+ # csv_mapping_parameters: {
476
+ # record_row_delimiter: "RecordRowDelimiter", # required
477
+ # record_column_delimiter: "RecordColumnDelimiter", # required
478
+ # },
479
+ # },
480
+ # },
481
+ # record_encoding: "RecordEncoding",
482
+ # record_columns: [ # required
483
+ # {
484
+ # name: "RecordColumnName", # required
485
+ # mapping: "RecordColumnMapping",
486
+ # sql_type: "RecordColumnSqlType", # required
487
+ # },
488
+ # ],
489
+ # },
490
+ # },
491
+ # ],
492
+ # outputs: [
493
+ # {
494
+ # name: "InAppStreamName", # required
495
+ # kinesis_streams_output: {
496
+ # resource_arn: "ResourceARN", # required
497
+ # role_arn: "RoleARN", # required
498
+ # },
499
+ # kinesis_firehose_output: {
500
+ # resource_arn: "ResourceARN", # required
501
+ # role_arn: "RoleARN", # required
502
+ # },
503
+ # destination_schema: { # required
504
+ # record_format_type: "JSON", # accepts JSON, CSV
505
+ # },
506
+ # },
507
+ # ],
508
+ # application_code: "ApplicationCode",
509
+ # }
510
+ # @!attribute [rw] application_name
511
+ # Name of your Amazon Kinesis Analytics application (for example,
512
+ # `sample-app`).
513
+ # @return [String]
514
+ #
515
+ # @!attribute [rw] application_description
516
+ # Summary description of the application.
517
+ # @return [String]
518
+ #
519
+ # @!attribute [rw] inputs
520
+ # Use this parameter to configure the application input.
521
+ #
522
+ # You can configure your application to receive input from a single
523
+ # streaming source. In this configuration, you map this streaming
524
+ # source to an in-application stream that is created. Your application
525
+ # code can then query the in-application stream like a table (you can
526
+ # think of it as a constantly updating table).
527
+ #
528
+ # For the streaming source, you provide its Amazon Resource Name (ARN)
529
+ # and format of data on the stream (for example, JSON, CSV, etc). You
530
+ # also must provide an IAM role that Amazon Kinesis Analytics can
531
+ # assume to read this stream on your behalf.
532
+ #
533
+ # To create the in-application stream, you need to specify a schema to
534
+ # transform your data into a schematized version used in SQL. In the
535
+ # schema, you provide the necessary mapping of the data elements in
536
+ # the streaming source to record columns in the in-app stream.
537
+ # @return [Array<Types::Input>]
538
+ #
539
+ # @!attribute [rw] outputs
540
+ # You can configure application output to write data from any of the
541
+ # in-application streams to up to five destinations.
542
+ #
543
+ # These destinations can be Amazon Kinesis streams, Amazon Kinesis
544
+ # Firehose delivery streams, or both.
545
+ #
546
+ # In the configuration, you specify the in-application stream name,
547
+ # the destination stream Amazon Resource Name (ARN), and the format to
548
+ # use when writing data. You must also provide an IAM role that Amazon
549
+ # Kinesis Analytics can assume to write to the destination stream on
550
+ # your behalf.
551
+ #
552
+ # In the output configuration, you also provide the output stream
553
+ # Amazon Resource Name (ARN) and the format of data in the stream (for
554
+ # example, JSON, CSV). You also must provide an IAM role that Amazon
555
+ # Kinesis Analytics can assume to write to this stream on your behalf.
556
+ # @return [Array<Types::Output>]
557
+ #
558
+ # @!attribute [rw] application_code
559
+ # One or more SQL statements that read input data, transform it, and
560
+ # generate output. For example, you can write a SQL statement that
561
+ # reads input data and generates a running average of the number of
562
+ # advertisement clicks by vendor.
563
+ #
564
+ # You can also provide a series of SQL statements, where output of one
565
+ # statement can be used as the input for the next statement.
566
+ #
567
+ # Note that the application code must create the streams with names
568
+ # specified in the `Outputs`. For example, if your `Outputs` defines
569
+ # output streams named `ExampleOutputStream1` and
570
+ # `ExampleOutputStream2`, then your application code must create these
571
+ # streams.
572
+ # @return [String]
573
+ class CreateApplicationRequest < Struct.new(
574
+ :application_name,
575
+ :application_description,
576
+ :inputs,
577
+ :outputs,
578
+ :application_code)
579
+ include Aws::Structure
580
+ end
581
+
582
+ # TBD
583
+ # @!attribute [rw] application_summary
584
+ # In response to your `CreateApplication` request, Amazon Kinesis
585
+ # Analytics returns a response with a summary of the application it
586
+ # created, including the application Amazon Resource Name (ARN), name,
587
+ # and status.
588
+ # @return [Types::ApplicationSummary]
589
+ class CreateApplicationResponse < Struct.new(
590
+ :application_summary)
591
+ include Aws::Structure
592
+ end
593
+
594
+ # @note When making an API call, pass DeleteApplicationOutputRequest
595
+ # data as a hash:
596
+ #
597
+ # {
598
+ # application_name: "ApplicationName", # required
599
+ # current_application_version_id: 1, # required
600
+ # output_id: "Id", # required
601
+ # }
602
+ # @!attribute [rw] application_name
603
+ # Amazon Kinesis Analytics application name.
604
+ # @return [String]
605
+ #
606
+ # @!attribute [rw] current_application_version_id
607
+ # Amazon Kinesis Analytics application version. You can use the
608
+ # DescribeApplication operation to get the current application
609
+ # version. If the version specified is not the current version, the
610
+ # `ConcurrentModificationException` is returned.
611
+ # @return [Integer]
612
+ #
613
+ # @!attribute [rw] output_id
614
+ # The ID of the configuration to delete. Each output configuration
615
+ # that is added to the application, either when the application is
616
+ # created or later using the AddApplicationOutput operation, has a
617
+ # unique ID. You need to provide the ID to uniquely identify the
618
+ # output configuration that you want to delete from the application
619
+ # configuration. You can use the DescribeApplication operation to get
620
+ # the specific `OutputId`.
621
+ # @return [String]
622
+ class DeleteApplicationOutputRequest < Struct.new(
623
+ :application_name,
624
+ :current_application_version_id,
625
+ :output_id)
626
+ include Aws::Structure
627
+ end
628
+
629
+ class DeleteApplicationOutputResponse < Aws::EmptyStructure; end
630
+
631
+ # @note When making an API call, pass DeleteApplicationReferenceDataSourceRequest
632
+ # data as a hash:
633
+ #
634
+ # {
635
+ # application_name: "ApplicationName", # required
636
+ # current_application_version_id: 1, # required
637
+ # reference_id: "Id", # required
638
+ # }
639
+ # @!attribute [rw] application_name
640
+ # Name of an existing application.
641
+ # @return [String]
642
+ #
643
+ # @!attribute [rw] current_application_version_id
644
+ # Version of the application. You can use the DescribeApplication
645
+ # operation to get the current application version. If the version
646
+ # specified is not the current version, the
647
+ # `ConcurrentModificationException` is returned.
648
+ # @return [Integer]
649
+ #
650
+ # @!attribute [rw] reference_id
651
+ # ID of the reference data source. When you add a reference data
652
+ # source to your application using the
653
+ # AddApplicationReferenceDataSource, Amazon Kinesis Analytics assigns
654
+ # an ID. You can use the DescribeApplication operation to get the
655
+ # reference ID.
656
+ # @return [String]
657
+ class DeleteApplicationReferenceDataSourceRequest < Struct.new(
658
+ :application_name,
659
+ :current_application_version_id,
660
+ :reference_id)
661
+ include Aws::Structure
662
+ end
663
+
664
+ class DeleteApplicationReferenceDataSourceResponse < Aws::EmptyStructure; end
665
+
666
+ # @note When making an API call, pass DeleteApplicationRequest
667
+ # data as a hash:
668
+ #
669
+ # {
670
+ # application_name: "ApplicationName", # required
671
+ # create_timestamp: Time.now, # required
672
+ # }
673
+ # @!attribute [rw] application_name
674
+ # Name of the Amazon Kinesis Analytics application to delete.
675
+ # @return [String]
676
+ #
677
+ # @!attribute [rw] create_timestamp
678
+ # You can use the `DescribeApplication` operation to get this value.
679
+ # @return [Time]
680
+ class DeleteApplicationRequest < Struct.new(
681
+ :application_name,
682
+ :create_timestamp)
683
+ include Aws::Structure
684
+ end
685
+
686
+ class DeleteApplicationResponse < Aws::EmptyStructure; end
687
+
688
+ # @note When making an API call, pass DescribeApplicationRequest
689
+ # data as a hash:
690
+ #
691
+ # {
692
+ # application_name: "ApplicationName", # required
693
+ # }
694
+ # @!attribute [rw] application_name
695
+ # Name of the application.
696
+ # @return [String]
697
+ class DescribeApplicationRequest < Struct.new(
698
+ :application_name)
699
+ include Aws::Structure
700
+ end
701
+
702
+ # @!attribute [rw] application_detail
703
+ # Provides a description of the application, such as the application
704
+ # Amazon Resource Name (ARN), status, latest version, and input and
705
+ # output configuration details.
706
+ # @return [Types::ApplicationDetail]
707
+ class DescribeApplicationResponse < Struct.new(
708
+ :application_detail)
709
+ include Aws::Structure
710
+ end
711
+
712
+ # Describes the data format when records are written to the destination.
713
+ # For more information, see [Configuring Application Output][1].
714
+ #
715
+ #
716
+ #
717
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html
718
+ # @note When making an API call, pass DestinationSchema
719
+ # data as a hash:
720
+ #
721
+ # {
722
+ # record_format_type: "JSON", # accepts JSON, CSV
723
+ # }
724
+ # @!attribute [rw] record_format_type
725
+ # Specifies the format of the records on the output stream.
726
+ # @return [String]
727
+ class DestinationSchema < Struct.new(
728
+ :record_format_type)
729
+ include Aws::Structure
730
+ end
731
+
732
+ # @note When making an API call, pass DiscoverInputSchemaRequest
733
+ # data as a hash:
734
+ #
735
+ # {
736
+ # resource_arn: "ResourceARN", # required
737
+ # role_arn: "RoleARN", # required
738
+ # input_starting_position_configuration: { # required
739
+ # input_starting_position: "NOW", # accepts NOW, TRIM_HORIZON, LAST_STOPPED_POINT
740
+ # },
741
+ # }
742
+ # @!attribute [rw] resource_arn
743
+ # Amazon Resource Name (ARN) of the streaming source.
744
+ # @return [String]
745
+ #
746
+ # @!attribute [rw] role_arn
747
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
748
+ # access the stream on your behalf.
749
+ # @return [String]
750
+ #
751
+ # @!attribute [rw] input_starting_position_configuration
752
+ # Point at which you want Amazon Kinesis Analytics to start reading
753
+ # records from the specified streaming source discovery purposes.
754
+ # @return [Types::InputStartingPositionConfiguration]
755
+ class DiscoverInputSchemaRequest < Struct.new(
756
+ :resource_arn,
757
+ :role_arn,
758
+ :input_starting_position_configuration)
759
+ include Aws::Structure
760
+ end
761
+
762
+ # @!attribute [rw] input_schema
763
+ # Schema inferred from the streaming source. It identifies the format
764
+ # of the data in the streaming source and how each data element maps
765
+ # to corresponding columns in the in-application stream that you can
766
+ # create.
767
+ # @return [Types::SourceSchema]
768
+ #
769
+ # @!attribute [rw] parsed_input_records
770
+ # An array of elements, where each element corresponds to a row in a
771
+ # stream record (a stream record can have more than one row).
772
+ # @return [Array<Array<String>>]
773
+ #
774
+ # @!attribute [rw] raw_input_records
775
+ # Raw stream data that was sampled to infer the schema.
776
+ # @return [Array<String>]
777
+ class DiscoverInputSchemaResponse < Struct.new(
778
+ :input_schema,
779
+ :parsed_input_records,
780
+ :raw_input_records)
781
+ include Aws::Structure
782
+ end
783
+
784
+ # When you configure the application input, you specify the streaming
785
+ # source, the in-application stream name that is created, and the
786
+ # mapping between the two. For more information, see [Configuring
787
+ # Application Input][1].
788
+ #
789
+ #
790
+ #
791
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
792
+ # @note When making an API call, pass Input
793
+ # data as a hash:
794
+ #
795
+ # {
796
+ # name_prefix: "InAppStreamName", # required
797
+ # kinesis_streams_input: {
798
+ # resource_arn: "ResourceARN", # required
799
+ # role_arn: "RoleARN", # required
800
+ # },
801
+ # kinesis_firehose_input: {
802
+ # resource_arn: "ResourceARN", # required
803
+ # role_arn: "RoleARN", # required
804
+ # },
805
+ # input_parallelism: {
806
+ # count: 1,
807
+ # },
808
+ # input_schema: { # required
809
+ # record_format: { # required
810
+ # record_format_type: "JSON", # required, accepts JSON, CSV
811
+ # mapping_parameters: {
812
+ # json_mapping_parameters: {
813
+ # record_row_path: "RecordRowPath", # required
814
+ # },
815
+ # csv_mapping_parameters: {
816
+ # record_row_delimiter: "RecordRowDelimiter", # required
817
+ # record_column_delimiter: "RecordColumnDelimiter", # required
818
+ # },
819
+ # },
820
+ # },
821
+ # record_encoding: "RecordEncoding",
822
+ # record_columns: [ # required
823
+ # {
824
+ # name: "RecordColumnName", # required
825
+ # mapping: "RecordColumnMapping",
826
+ # sql_type: "RecordColumnSqlType", # required
827
+ # },
828
+ # ],
829
+ # },
830
+ # }
831
+ # @!attribute [rw] name_prefix
832
+ # Name prefix to use when creating in-application stream. Suppose you
833
+ # specify a prefix "MyInApplicationStream". Kinesis Analytics will
834
+ # then create one or more (as per the `InputParallelism` count you
835
+ # specified) in-application streams with names
836
+ # "MyInApplicationStream\_001", "MyInApplicationStream\_002" and
837
+ # so on.
838
+ # @return [String]
839
+ #
840
+ # @!attribute [rw] kinesis_streams_input
841
+ # If the streaming source is an Amazon Kinesis stream, identifies the
842
+ # stream's Amazon Resource Name (ARN) and an IAM role that enables
843
+ # Amazon Kinesis Analytics to access the stream on your behalf.
844
+ # @return [Types::KinesisStreamsInput]
845
+ #
846
+ # @!attribute [rw] kinesis_firehose_input
847
+ # If the streaming source is an Amazon Kinesis Firehose delivery
848
+ # stream, identifies the Firehose delivery stream's ARN and an IAM
849
+ # role that enables Amazon Kinesis Analytics to access the stream on
850
+ # your behalf.
851
+ # @return [Types::KinesisFirehoseInput]
852
+ #
853
+ # @!attribute [rw] input_parallelism
854
+ # Describes the number of in-application streams to create.
855
+ #
856
+ # Data from your source will be routed to these in-application input
857
+ # streams.
858
+ #
859
+ # (see [Configuring Application Input][1].
860
+ #
861
+ #
862
+ #
863
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
864
+ # @return [Types::InputParallelism]
865
+ #
866
+ # @!attribute [rw] input_schema
867
+ # Describes the format of the data in the streaming source, and how
868
+ # each data element maps to corresponding columns in the
869
+ # in-application stream that is being created.
870
+ #
871
+ # Also used to describe the format of the reference data source.
872
+ # @return [Types::SourceSchema]
873
+ class Input < Struct.new(
874
+ :name_prefix,
875
+ :kinesis_streams_input,
876
+ :kinesis_firehose_input,
877
+ :input_parallelism,
878
+ :input_schema)
879
+ include Aws::Structure
880
+ end
881
+
882
+ # When you start your application, you provide this configuration, which
883
+ # identifies the input source and the point in the input source at which
884
+ # you want the application to start processing records.
885
+ # @note When making an API call, pass InputConfiguration
886
+ # data as a hash:
887
+ #
888
+ # {
889
+ # id: "Id", # required
890
+ # input_starting_position_configuration: { # required
891
+ # input_starting_position: "NOW", # accepts NOW, TRIM_HORIZON, LAST_STOPPED_POINT
892
+ # },
893
+ # }
894
+ # @!attribute [rw] id
895
+ # Input source ID. You can get this ID by calling the
896
+ # DescribeApplication operation.
897
+ # @return [String]
898
+ #
899
+ # @!attribute [rw] input_starting_position_configuration
900
+ # Point at which you want the application to start processing records
901
+ # from the streaming source.
902
+ # @return [Types::InputStartingPositionConfiguration]
903
+ class InputConfiguration < Struct.new(
904
+ :id,
905
+ :input_starting_position_configuration)
906
+ include Aws::Structure
907
+ end
908
+
909
+ # Describes the application input configuration. For more information,
910
+ # see [Configuring Application Input][1].
911
+ #
912
+ #
913
+ #
914
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
915
+ # @!attribute [rw] input_id
916
+ # Input ID associated with the application input. This is the ID that
917
+ # Amazon Kinesis Analytics assigns to each input configuration you add
918
+ # to your application.
919
+ # @return [String]
920
+ #
921
+ # @!attribute [rw] name_prefix
922
+ # In-application name prefix.
923
+ # @return [String]
924
+ #
925
+ # @!attribute [rw] in_app_stream_names
926
+ # Returns the in-application stream names that are mapped to the
927
+ # stream source.
928
+ # @return [Array<String>]
929
+ #
930
+ # @!attribute [rw] kinesis_streams_input_description
931
+ # If an Amazon Kinesis stream is configured as streaming source,
932
+ # provides Amazon Kinesis stream's ARN and an IAM role that enables
933
+ # Amazon Kinesis Analytics to access the stream on your behalf.
934
+ # @return [Types::KinesisStreamsInputDescription]
935
+ #
936
+ # @!attribute [rw] kinesis_firehose_input_description
937
+ # If an Amazon Kinesis Firehose delivery stream is configured as a
938
+ # streaming source, provides the Firehose delivery stream's Amazon
939
+ # Resource Name (ARN) and an IAM role that enables Amazon Kinesis
940
+ # Analytics to access the stream on your behalf.
941
+ # @return [Types::KinesisFirehoseInputDescription]
942
+ #
943
+ # @!attribute [rw] input_schema
944
+ # Describes the format of the data in the streaming source, and how
945
+ # each data element maps to corresponding columns created in the
946
+ # in-application stream.
947
+ # @return [Types::SourceSchema]
948
+ #
949
+ # @!attribute [rw] input_parallelism
950
+ # Describes the configured parallelism (number of in-application
951
+ # streams mapped to the streaming source).
952
+ # @return [Types::InputParallelism]
953
+ #
954
+ # @!attribute [rw] input_starting_position_configuration
955
+ # Point at which the application is configured to read from the input
956
+ # stream.
957
+ # @return [Types::InputStartingPositionConfiguration]
958
+ class InputDescription < Struct.new(
959
+ :input_id,
960
+ :name_prefix,
961
+ :in_app_stream_names,
962
+ :kinesis_streams_input_description,
963
+ :kinesis_firehose_input_description,
964
+ :input_schema,
965
+ :input_parallelism,
966
+ :input_starting_position_configuration)
967
+ include Aws::Structure
968
+ end
969
+
970
+ # Describes the number of in-application streams to create for a given
971
+ # streaming source. For information about parallellism, see [Configuring
972
+ # Application Input][1].
973
+ #
974
+ #
975
+ #
976
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-input.html
977
+ # @note When making an API call, pass InputParallelism
978
+ # data as a hash:
979
+ #
980
+ # {
981
+ # count: 1,
982
+ # }
983
+ # @!attribute [rw] count
984
+ # Number of in-application streams to create. For more information,
985
+ # see [Limits][1].
986
+ #
987
+ #
988
+ #
989
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/limits.html
990
+ # @return [Integer]
991
+ class InputParallelism < Struct.new(
992
+ :count)
993
+ include Aws::Structure
994
+ end
995
+
996
+ # Provides updates to the parallelism count.
997
+ # @note When making an API call, pass InputParallelismUpdate
998
+ # data as a hash:
999
+ #
1000
+ # {
1001
+ # count_update: 1,
1002
+ # }
1003
+ # @!attribute [rw] count_update
1004
+ # Number of in-application streams to create for the specified
1005
+ # streaming source.
1006
+ # @return [Integer]
1007
+ class InputParallelismUpdate < Struct.new(
1008
+ :count_update)
1009
+ include Aws::Structure
1010
+ end
1011
+
1012
+ # Describes updates for the application's input schema.
1013
+ # @note When making an API call, pass InputSchemaUpdate
1014
+ # data as a hash:
1015
+ #
1016
+ # {
1017
+ # record_format_update: {
1018
+ # record_format_type: "JSON", # required, accepts JSON, CSV
1019
+ # mapping_parameters: {
1020
+ # json_mapping_parameters: {
1021
+ # record_row_path: "RecordRowPath", # required
1022
+ # },
1023
+ # csv_mapping_parameters: {
1024
+ # record_row_delimiter: "RecordRowDelimiter", # required
1025
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1026
+ # },
1027
+ # },
1028
+ # },
1029
+ # record_encoding_update: "RecordEncoding",
1030
+ # record_column_updates: [
1031
+ # {
1032
+ # name: "RecordColumnName", # required
1033
+ # mapping: "RecordColumnMapping",
1034
+ # sql_type: "RecordColumnSqlType", # required
1035
+ # },
1036
+ # ],
1037
+ # }
1038
+ # @!attribute [rw] record_format_update
1039
+ # Specifies the format of the records on the streaming source.
1040
+ # @return [Types::RecordFormat]
1041
+ #
1042
+ # @!attribute [rw] record_encoding_update
1043
+ # Specifies the encoding of the records in the streaming source. For
1044
+ # example, UTF-8.
1045
+ # @return [String]
1046
+ #
1047
+ # @!attribute [rw] record_column_updates
1048
+ # A list of `RecordColumn` objects. Each object describes the mapping
1049
+ # of the streaming source element to the corresponding column in the
1050
+ # in-application stream.
1051
+ # @return [Array<Types::RecordColumn>]
1052
+ class InputSchemaUpdate < Struct.new(
1053
+ :record_format_update,
1054
+ :record_encoding_update,
1055
+ :record_column_updates)
1056
+ include Aws::Structure
1057
+ end
1058
+
1059
+ # Describes the point at which the application reads from the streaming
1060
+ # source.
1061
+ # @note When making an API call, pass InputStartingPositionConfiguration
1062
+ # data as a hash:
1063
+ #
1064
+ # {
1065
+ # input_starting_position: "NOW", # accepts NOW, TRIM_HORIZON, LAST_STOPPED_POINT
1066
+ # }
1067
+ # @!attribute [rw] input_starting_position
1068
+ # The starting position on the stream.
1069
+ #
1070
+ # * `LATEST` - Start reading just after the most recent record in the
1071
+ # stream.
1072
+ #
1073
+ # * `TRIM_HORIZON` - Start reading at the last untrimmed record in the
1074
+ # stream, which is the oldest record available in the stream. This
1075
+ # option is not available for an Amazon Kinesis Firehose delivery
1076
+ # stream.
1077
+ #
1078
+ # * `LAST_STOPPED_POINT` - Resume reading from where the application
1079
+ # last stopped reading.
1080
+ # @return [String]
1081
+ class InputStartingPositionConfiguration < Struct.new(
1082
+ :input_starting_position)
1083
+ include Aws::Structure
1084
+ end
1085
+
1086
+ # Describes updates to a specific input configuration (identified by the
1087
+ # `InputId` of an application).
1088
+ # @note When making an API call, pass InputUpdate
1089
+ # data as a hash:
1090
+ #
1091
+ # {
1092
+ # input_id: "Id", # required
1093
+ # name_prefix_update: "InAppStreamName",
1094
+ # kinesis_streams_input_update: {
1095
+ # resource_arn_update: "ResourceARN",
1096
+ # role_arn_update: "RoleARN",
1097
+ # },
1098
+ # kinesis_firehose_input_update: {
1099
+ # resource_arn_update: "ResourceARN",
1100
+ # role_arn_update: "RoleARN",
1101
+ # },
1102
+ # input_schema_update: {
1103
+ # record_format_update: {
1104
+ # record_format_type: "JSON", # required, accepts JSON, CSV
1105
+ # mapping_parameters: {
1106
+ # json_mapping_parameters: {
1107
+ # record_row_path: "RecordRowPath", # required
1108
+ # },
1109
+ # csv_mapping_parameters: {
1110
+ # record_row_delimiter: "RecordRowDelimiter", # required
1111
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1112
+ # },
1113
+ # },
1114
+ # },
1115
+ # record_encoding_update: "RecordEncoding",
1116
+ # record_column_updates: [
1117
+ # {
1118
+ # name: "RecordColumnName", # required
1119
+ # mapping: "RecordColumnMapping",
1120
+ # sql_type: "RecordColumnSqlType", # required
1121
+ # },
1122
+ # ],
1123
+ # },
1124
+ # input_parallelism_update: {
1125
+ # count_update: 1,
1126
+ # },
1127
+ # }
1128
+ # @!attribute [rw] input_id
1129
+ # Input ID of the application input to be updated.
1130
+ # @return [String]
1131
+ #
1132
+ # @!attribute [rw] name_prefix_update
1133
+ # Name prefix for in-application stream(s) that Kinesis Analytics
1134
+ # creates for the specific streaming source.
1135
+ # @return [String]
1136
+ #
1137
+ # @!attribute [rw] kinesis_streams_input_update
1138
+ # If a Amazon Kinesis stream is the streaming source to be updated,
1139
+ # provides an updated stream ARN and IAM role ARN.
1140
+ # @return [Types::KinesisStreamsInputUpdate]
1141
+ #
1142
+ # @!attribute [rw] kinesis_firehose_input_update
1143
+ # If an Amazon Kinesis Firehose delivery stream is the streaming
1144
+ # source to be updated, provides an updated stream Amazon Resource
1145
+ # Name (ARN) and IAM role ARN.
1146
+ # @return [Types::KinesisFirehoseInputUpdate]
1147
+ #
1148
+ # @!attribute [rw] input_schema_update
1149
+ # Describes the data format on the streaming source, and how record
1150
+ # elements on the streaming source map to columns of the
1151
+ # in-application stream that is created.
1152
+ # @return [Types::InputSchemaUpdate]
1153
+ #
1154
+ # @!attribute [rw] input_parallelism_update
1155
+ # Describes the parallelism updates (the number in-application streams
1156
+ # Kinesis Analytics creates for the specific streaming source).
1157
+ # @return [Types::InputParallelismUpdate]
1158
+ class InputUpdate < Struct.new(
1159
+ :input_id,
1160
+ :name_prefix_update,
1161
+ :kinesis_streams_input_update,
1162
+ :kinesis_firehose_input_update,
1163
+ :input_schema_update,
1164
+ :input_parallelism_update)
1165
+ include Aws::Structure
1166
+ end
1167
+
1168
+ # Provides additional mapping information when JSON is the record format
1169
+ # on the streaming source.
1170
+ # @note When making an API call, pass JSONMappingParameters
1171
+ # data as a hash:
1172
+ #
1173
+ # {
1174
+ # record_row_path: "RecordRowPath", # required
1175
+ # }
1176
+ # @!attribute [rw] record_row_path
1177
+ # Path to the top-level parent that contains the records.
1178
+ #
1179
+ # For example, consider the following JSON record:
1180
+ #
1181
+ # In the `RecordRowPath`, `"$"` refers to the root and path
1182
+ # `"$.vehicle.Model"` refers to the specific `"Model"` key in the
1183
+ # JSON.
1184
+ # @return [String]
1185
+ class JSONMappingParameters < Struct.new(
1186
+ :record_row_path)
1187
+ include Aws::Structure
1188
+ end
1189
+
1190
+ # Identifies an Amazon Kinesis Firehose delivery stream as the streaming
1191
+ # source. You provide the Firehose delivery stream's Amazon Resource
1192
+ # Name (ARN) and an IAM role ARN that enables Amazon Kinesis Analytics
1193
+ # to access the stream on your behalf.
1194
+ # @note When making an API call, pass KinesisFirehoseInput
1195
+ # data as a hash:
1196
+ #
1197
+ # {
1198
+ # resource_arn: "ResourceARN", # required
1199
+ # role_arn: "RoleARN", # required
1200
+ # }
1201
+ # @!attribute [rw] resource_arn
1202
+ # ARN of the input Firehose delivery stream.
1203
+ # @return [String]
1204
+ #
1205
+ # @!attribute [rw] role_arn
1206
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1207
+ # access the stream on your behalf. You need to make sure the role has
1208
+ # necessary permissions to access the stream.
1209
+ # @return [String]
1210
+ class KinesisFirehoseInput < Struct.new(
1211
+ :resource_arn,
1212
+ :role_arn)
1213
+ include Aws::Structure
1214
+ end
1215
+
1216
+ # Describes the Amazon Kinesis Firehose delivery stream that is
1217
+ # configured as the streaming source in the application input
1218
+ # configuration.
1219
+ # @!attribute [rw] resource_arn
1220
+ # Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery
1221
+ # stream.
1222
+ # @return [String]
1223
+ #
1224
+ # @!attribute [rw] role_arn
1225
+ # ARN of the IAM role that Amazon Kinesis Analytics assumes to access
1226
+ # the stream.
1227
+ # @return [String]
1228
+ class KinesisFirehoseInputDescription < Struct.new(
1229
+ :resource_arn,
1230
+ :role_arn)
1231
+ include Aws::Structure
1232
+ end
1233
+
1234
+ # When updating application input configuration, provides information
1235
+ # about an Amazon Kinesis Firehose delivery stream as the streaming
1236
+ # source.
1237
+ # @note When making an API call, pass KinesisFirehoseInputUpdate
1238
+ # data as a hash:
1239
+ #
1240
+ # {
1241
+ # resource_arn_update: "ResourceARN",
1242
+ # role_arn_update: "RoleARN",
1243
+ # }
1244
+ # @!attribute [rw] resource_arn_update
1245
+ # ARN of the input Amazon Kinesis Firehose delivery stream to read.
1246
+ # @return [String]
1247
+ #
1248
+ # @!attribute [rw] role_arn_update
1249
+ # Amazon Resource Name (ARN) of the IAM role that Amazon Kinesis
1250
+ # Analytics can assume to access the stream on your behalf. You need
1251
+ # to grant necessary permissions to this role.
1252
+ # @return [String]
1253
+ class KinesisFirehoseInputUpdate < Struct.new(
1254
+ :resource_arn_update,
1255
+ :role_arn_update)
1256
+ include Aws::Structure
1257
+ end
1258
+
1259
+ # When configuring application output, identifies an Amazon Kinesis
1260
+ # Firehose delivery stream as the destination. You provide the stream
1261
+ # Amazon Resource Name (ARN) and an IAM role that enables Amazon Kinesis
1262
+ # Analytics to write to the stream on your behalf.
1263
+ # @note When making an API call, pass KinesisFirehoseOutput
1264
+ # data as a hash:
1265
+ #
1266
+ # {
1267
+ # resource_arn: "ResourceARN", # required
1268
+ # role_arn: "RoleARN", # required
1269
+ # }
1270
+ # @!attribute [rw] resource_arn
1271
+ # ARN of the destination Amazon Kinesis Firehose delivery stream to
1272
+ # write to.
1273
+ # @return [String]
1274
+ #
1275
+ # @!attribute [rw] role_arn
1276
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1277
+ # write to the destination stream on your behalf. You need to grant
1278
+ # the necessary permissions to this role.
1279
+ # @return [String]
1280
+ class KinesisFirehoseOutput < Struct.new(
1281
+ :resource_arn,
1282
+ :role_arn)
1283
+ include Aws::Structure
1284
+ end
1285
+
1286
+ # For an application output, describes the Amazon Kinesis Firehose
1287
+ # delivery stream configured as its destination.
1288
+ # @!attribute [rw] resource_arn
1289
+ # Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery
1290
+ # stream.
1291
+ # @return [String]
1292
+ #
1293
+ # @!attribute [rw] role_arn
1294
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1295
+ # access the stream.
1296
+ # @return [String]
1297
+ class KinesisFirehoseOutputDescription < Struct.new(
1298
+ :resource_arn,
1299
+ :role_arn)
1300
+ include Aws::Structure
1301
+ end
1302
+
1303
+ # When updating an output configuration using the UpdateApplication
1304
+ # operation, provides information about an Amazon Kinesis Firehose
1305
+ # delivery stream configured as the destination.
1306
+ # @note When making an API call, pass KinesisFirehoseOutputUpdate
1307
+ # data as a hash:
1308
+ #
1309
+ # {
1310
+ # resource_arn_update: "ResourceARN",
1311
+ # role_arn_update: "RoleARN",
1312
+ # }
1313
+ # @!attribute [rw] resource_arn_update
1314
+ # Amazon Resource Name (ARN) of the Amazon Kinesis Firehose delivery
1315
+ # stream to write to.
1316
+ # @return [String]
1317
+ #
1318
+ # @!attribute [rw] role_arn_update
1319
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1320
+ # access the stream on your behalf. You need to grant necessary
1321
+ # permissions to this role.
1322
+ # @return [String]
1323
+ class KinesisFirehoseOutputUpdate < Struct.new(
1324
+ :resource_arn_update,
1325
+ :role_arn_update)
1326
+ include Aws::Structure
1327
+ end
1328
+
1329
+ # Identifies an Amazon Kinesis stream as the streaming source. You
1330
+ # provide the stream's ARN and an IAM role ARN that enables Amazon
1331
+ # Kinesis Analytics to access the stream on your behalf.
1332
+ # @note When making an API call, pass KinesisStreamsInput
1333
+ # data as a hash:
1334
+ #
1335
+ # {
1336
+ # resource_arn: "ResourceARN", # required
1337
+ # role_arn: "RoleARN", # required
1338
+ # }
1339
+ # @!attribute [rw] resource_arn
1340
+ # ARN of the input Amazon Kinesis stream to read.
1341
+ # @return [String]
1342
+ #
1343
+ # @!attribute [rw] role_arn
1344
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1345
+ # access the stream on your behalf. You need to grant the necessary
1346
+ # permissions to this role.
1347
+ # @return [String]
1348
+ class KinesisStreamsInput < Struct.new(
1349
+ :resource_arn,
1350
+ :role_arn)
1351
+ include Aws::Structure
1352
+ end
1353
+
1354
+ # Describes the Amazon Kinesis stream that is configured as the
1355
+ # streaming source in the application input configuration.
1356
+ # @!attribute [rw] resource_arn
1357
+ # Amazon Resource Name (ARN) of the Amazon Kinesis stream.
1358
+ # @return [String]
1359
+ #
1360
+ # @!attribute [rw] role_arn
1361
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1362
+ # access the stream.
1363
+ # @return [String]
1364
+ class KinesisStreamsInputDescription < Struct.new(
1365
+ :resource_arn,
1366
+ :role_arn)
1367
+ include Aws::Structure
1368
+ end
1369
+
1370
+ # When updating application input configuration, provides information
1371
+ # about an Amazon Kinesis stream as the streaming source.
1372
+ # @note When making an API call, pass KinesisStreamsInputUpdate
1373
+ # data as a hash:
1374
+ #
1375
+ # {
1376
+ # resource_arn_update: "ResourceARN",
1377
+ # role_arn_update: "RoleARN",
1378
+ # }
1379
+ # @!attribute [rw] resource_arn_update
1380
+ # Amazon Resource Name (ARN) of the input Amazon Kinesis stream to
1381
+ # read.
1382
+ # @return [String]
1383
+ #
1384
+ # @!attribute [rw] role_arn_update
1385
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1386
+ # access the stream on your behalf. You need to grant the necessary
1387
+ # permissions to this role.
1388
+ # @return [String]
1389
+ class KinesisStreamsInputUpdate < Struct.new(
1390
+ :resource_arn_update,
1391
+ :role_arn_update)
1392
+ include Aws::Structure
1393
+ end
1394
+
1395
+ # When configuring application output, identifies a Amazon Kinesis
1396
+ # stream as the destination. You provide the stream Amazon Resource Name
1397
+ # (ARN) and also an IAM role ARN that Amazon Kinesis Analytics can use
1398
+ # to write to the stream on your behalf.
1399
+ # @note When making an API call, pass KinesisStreamsOutput
1400
+ # data as a hash:
1401
+ #
1402
+ # {
1403
+ # resource_arn: "ResourceARN", # required
1404
+ # role_arn: "RoleARN", # required
1405
+ # }
1406
+ # @!attribute [rw] resource_arn
1407
+ # ARN of the destination Amazon Kinesis stream to write to.
1408
+ # @return [String]
1409
+ #
1410
+ # @!attribute [rw] role_arn
1411
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1412
+ # write to the destination stream on your behalf. You need to grant
1413
+ # the necessary permissions to this role.
1414
+ # @return [String]
1415
+ class KinesisStreamsOutput < Struct.new(
1416
+ :resource_arn,
1417
+ :role_arn)
1418
+ include Aws::Structure
1419
+ end
1420
+
1421
+ # For an application output, describes the Amazon Kinesis stream
1422
+ # configured as its destination.
1423
+ # @!attribute [rw] resource_arn
1424
+ # Amazon Resource Name (ARN) of the Amazon Kinesis stream.
1425
+ # @return [String]
1426
+ #
1427
+ # @!attribute [rw] role_arn
1428
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1429
+ # access the stream.
1430
+ # @return [String]
1431
+ class KinesisStreamsOutputDescription < Struct.new(
1432
+ :resource_arn,
1433
+ :role_arn)
1434
+ include Aws::Structure
1435
+ end
1436
+
1437
+ # When updating an output configuration using the UpdateApplication
1438
+ # operation, provides information about an Amazon Kinesis stream
1439
+ # configured as the destination.
1440
+ # @note When making an API call, pass KinesisStreamsOutputUpdate
1441
+ # data as a hash:
1442
+ #
1443
+ # {
1444
+ # resource_arn_update: "ResourceARN",
1445
+ # role_arn_update: "RoleARN",
1446
+ # }
1447
+ # @!attribute [rw] resource_arn_update
1448
+ # Amazon Resource Name (ARN) of the Amazon Kinesis stream where you
1449
+ # want to write the output.
1450
+ # @return [String]
1451
+ #
1452
+ # @!attribute [rw] role_arn_update
1453
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to
1454
+ # access the stream on your behalf. You need to grant the necessary
1455
+ # permissions to this role.
1456
+ # @return [String]
1457
+ class KinesisStreamsOutputUpdate < Struct.new(
1458
+ :resource_arn_update,
1459
+ :role_arn_update)
1460
+ include Aws::Structure
1461
+ end
1462
+
1463
+ # @note When making an API call, pass ListApplicationsRequest
1464
+ # data as a hash:
1465
+ #
1466
+ # {
1467
+ # limit: 1,
1468
+ # exclusive_start_application_name: "ApplicationName",
1469
+ # }
1470
+ # @!attribute [rw] limit
1471
+ # Maximum number of applications to list.
1472
+ # @return [Integer]
1473
+ #
1474
+ # @!attribute [rw] exclusive_start_application_name
1475
+ # Name of the application to start the list with. When using
1476
+ # pagination to retrieve the list, you don't need to specify this
1477
+ # parameter in the first request. However, in subsequent requests, you
1478
+ # add the last application name from the previous response to get the
1479
+ # next page of applications.
1480
+ # @return [String]
1481
+ class ListApplicationsRequest < Struct.new(
1482
+ :limit,
1483
+ :exclusive_start_application_name)
1484
+ include Aws::Structure
1485
+ end
1486
+
1487
+ # @!attribute [rw] application_summaries
1488
+ # List of `ApplicationSummary` objects.
1489
+ # @return [Array<Types::ApplicationSummary>]
1490
+ #
1491
+ # @!attribute [rw] has_more_applications
1492
+ # Returns true if there are more applications to retrieve.
1493
+ # @return [Boolean]
1494
+ class ListApplicationsResponse < Struct.new(
1495
+ :application_summaries,
1496
+ :has_more_applications)
1497
+ include Aws::Structure
1498
+ end
1499
+
1500
+ # When configuring application input at the time of creating or updating
1501
+ # an application, provides additional mapping information specific to
1502
+ # the record format (such as JSON, CSV, or record fields delimited by
1503
+ # some delimiter) on the streaming source.
1504
+ # @note When making an API call, pass MappingParameters
1505
+ # data as a hash:
1506
+ #
1507
+ # {
1508
+ # json_mapping_parameters: {
1509
+ # record_row_path: "RecordRowPath", # required
1510
+ # },
1511
+ # csv_mapping_parameters: {
1512
+ # record_row_delimiter: "RecordRowDelimiter", # required
1513
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1514
+ # },
1515
+ # }
1516
+ # @!attribute [rw] json_mapping_parameters
1517
+ # Provides additional mapping information when JSON is the record
1518
+ # format on the streaming source.
1519
+ # @return [Types::JSONMappingParameters]
1520
+ #
1521
+ # @!attribute [rw] csv_mapping_parameters
1522
+ # Provides additional mapping information when the record format uses
1523
+ # delimiters (for example, CSV).
1524
+ # @return [Types::CSVMappingParameters]
1525
+ class MappingParameters < Struct.new(
1526
+ :json_mapping_parameters,
1527
+ :csv_mapping_parameters)
1528
+ include Aws::Structure
1529
+ end
1530
+
1531
+ # Describes application output configuration in which you identify an
1532
+ # in-application stream and a destination where you want the
1533
+ # in-application stream data to be written. The destination can be an
1534
+ # Amazon Kinesis stream or an Amazon Kinesis Firehose delivery stream.
1535
+ #
1536
+ #
1537
+ #
1538
+ # You can configure your application to write output to up to five
1539
+ # destinations.
1540
+ # @note When making an API call, pass Output
1541
+ # data as a hash:
1542
+ #
1543
+ # {
1544
+ # name: "InAppStreamName", # required
1545
+ # kinesis_streams_output: {
1546
+ # resource_arn: "ResourceARN", # required
1547
+ # role_arn: "RoleARN", # required
1548
+ # },
1549
+ # kinesis_firehose_output: {
1550
+ # resource_arn: "ResourceARN", # required
1551
+ # role_arn: "RoleARN", # required
1552
+ # },
1553
+ # destination_schema: { # required
1554
+ # record_format_type: "JSON", # accepts JSON, CSV
1555
+ # },
1556
+ # }
1557
+ # @!attribute [rw] name
1558
+ # Name of the in-application stream.
1559
+ # @return [String]
1560
+ #
1561
+ # @!attribute [rw] kinesis_streams_output
1562
+ # Identifies an Amazon Kinesis stream as the destination.
1563
+ # @return [Types::KinesisStreamsOutput]
1564
+ #
1565
+ # @!attribute [rw] kinesis_firehose_output
1566
+ # Identifies an Amazon Kinesis Firehose delivery stream as the
1567
+ # destination.
1568
+ # @return [Types::KinesisFirehoseOutput]
1569
+ #
1570
+ # @!attribute [rw] destination_schema
1571
+ # Describes the data format when records are written to the
1572
+ # destination. For more information, see [Configuring Application
1573
+ # Output][1].
1574
+ #
1575
+ #
1576
+ #
1577
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html
1578
+ # @return [Types::DestinationSchema]
1579
+ class Output < Struct.new(
1580
+ :name,
1581
+ :kinesis_streams_output,
1582
+ :kinesis_firehose_output,
1583
+ :destination_schema)
1584
+ include Aws::Structure
1585
+ end
1586
+
1587
+ # Describes the application output configuration, which includes the
1588
+ # in-application stream name and the destination where the stream data
1589
+ # is written. The destination can be an Amazon Kinesis stream or an
1590
+ # Amazon Kinesis Firehose delivery stream.
1591
+ # @!attribute [rw] output_id
1592
+ # A unique identifier for the output configuration.
1593
+ # @return [String]
1594
+ #
1595
+ # @!attribute [rw] name
1596
+ # Name of the in-application stream configured as output.
1597
+ # @return [String]
1598
+ #
1599
+ # @!attribute [rw] kinesis_streams_output_description
1600
+ # Describes Amazon Kinesis stream configured as the destination where
1601
+ # output is written.
1602
+ # @return [Types::KinesisStreamsOutputDescription]
1603
+ #
1604
+ # @!attribute [rw] kinesis_firehose_output_description
1605
+ # Describes the Amazon Kinesis Firehose delivery stream configured as
1606
+ # the destination where output is written.
1607
+ # @return [Types::KinesisFirehoseOutputDescription]
1608
+ #
1609
+ # @!attribute [rw] destination_schema
1610
+ # Data format used for writing data to the destination.
1611
+ # @return [Types::DestinationSchema]
1612
+ class OutputDescription < Struct.new(
1613
+ :output_id,
1614
+ :name,
1615
+ :kinesis_streams_output_description,
1616
+ :kinesis_firehose_output_description,
1617
+ :destination_schema)
1618
+ include Aws::Structure
1619
+ end
1620
+
1621
+ # Describes updates to the output configuration identified by the
1622
+ # `OutputId`.
1623
+ # @note When making an API call, pass OutputUpdate
1624
+ # data as a hash:
1625
+ #
1626
+ # {
1627
+ # output_id: "Id", # required
1628
+ # name_update: "InAppStreamName",
1629
+ # kinesis_streams_output_update: {
1630
+ # resource_arn_update: "ResourceARN",
1631
+ # role_arn_update: "RoleARN",
1632
+ # },
1633
+ # kinesis_firehose_output_update: {
1634
+ # resource_arn_update: "ResourceARN",
1635
+ # role_arn_update: "RoleARN",
1636
+ # },
1637
+ # destination_schema_update: {
1638
+ # record_format_type: "JSON", # accepts JSON, CSV
1639
+ # },
1640
+ # }
1641
+ # @!attribute [rw] output_id
1642
+ # Identifies the specific output configuration that you want to
1643
+ # update.
1644
+ # @return [String]
1645
+ #
1646
+ # @!attribute [rw] name_update
1647
+ # If you want to specify a different in-application stream for this
1648
+ # output configuration, use this field to specify the new
1649
+ # in-application stream name.
1650
+ # @return [String]
1651
+ #
1652
+ # @!attribute [rw] kinesis_streams_output_update
1653
+ # Describes an Amazon Kinesis stream as the destination for the
1654
+ # output.
1655
+ # @return [Types::KinesisStreamsOutputUpdate]
1656
+ #
1657
+ # @!attribute [rw] kinesis_firehose_output_update
1658
+ # Describes a Amazon Kinesis Firehose delivery stream as the
1659
+ # destination for the output.
1660
+ # @return [Types::KinesisFirehoseOutputUpdate]
1661
+ #
1662
+ # @!attribute [rw] destination_schema_update
1663
+ # Describes the data format when records are written to the
1664
+ # destination. For more information, see [Configuring Application
1665
+ # Output][1].
1666
+ #
1667
+ #
1668
+ #
1669
+ # [1]: http://docs.aws.amazon.com/kinesisanalytics/latest/dev/how-it-works-output.html
1670
+ # @return [Types::DestinationSchema]
1671
+ class OutputUpdate < Struct.new(
1672
+ :output_id,
1673
+ :name_update,
1674
+ :kinesis_streams_output_update,
1675
+ :kinesis_firehose_output_update,
1676
+ :destination_schema_update)
1677
+ include Aws::Structure
1678
+ end
1679
+
1680
+ # Describes the mapping of each data element in the streaming source to
1681
+ # the corresponding column in the in-application stream.
1682
+ #
1683
+ # Also used to describe the format of the reference data source.
1684
+ # @note When making an API call, pass RecordColumn
1685
+ # data as a hash:
1686
+ #
1687
+ # {
1688
+ # name: "RecordColumnName", # required
1689
+ # mapping: "RecordColumnMapping",
1690
+ # sql_type: "RecordColumnSqlType", # required
1691
+ # }
1692
+ # @!attribute [rw] name
1693
+ # Name of the column created in the in-application input stream or
1694
+ # reference table.
1695
+ # @return [String]
1696
+ #
1697
+ # @!attribute [rw] mapping
1698
+ # Reference to the data element in the streaming input of the
1699
+ # reference data source.
1700
+ # @return [String]
1701
+ #
1702
+ # @!attribute [rw] sql_type
1703
+ # Type of column created in the in-application input stream or
1704
+ # reference table.
1705
+ # @return [String]
1706
+ class RecordColumn < Struct.new(
1707
+ :name,
1708
+ :mapping,
1709
+ :sql_type)
1710
+ include Aws::Structure
1711
+ end
1712
+
1713
+ # Describes the record format and relevant mapping information that
1714
+ # should be applied to schematize the records on the stream.
1715
+ # @note When making an API call, pass RecordFormat
1716
+ # data as a hash:
1717
+ #
1718
+ # {
1719
+ # record_format_type: "JSON", # required, accepts JSON, CSV
1720
+ # mapping_parameters: {
1721
+ # json_mapping_parameters: {
1722
+ # record_row_path: "RecordRowPath", # required
1723
+ # },
1724
+ # csv_mapping_parameters: {
1725
+ # record_row_delimiter: "RecordRowDelimiter", # required
1726
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1727
+ # },
1728
+ # },
1729
+ # }
1730
+ # @!attribute [rw] record_format_type
1731
+ # The type of record format.
1732
+ # @return [String]
1733
+ #
1734
+ # @!attribute [rw] mapping_parameters
1735
+ # When configuring application input at the time of creating or
1736
+ # updating an application, provides additional mapping information
1737
+ # specific to the record format (such as JSON, CSV, or record fields
1738
+ # delimited by some delimiter) on the streaming source.
1739
+ # @return [Types::MappingParameters]
1740
+ class RecordFormat < Struct.new(
1741
+ :record_format_type,
1742
+ :mapping_parameters)
1743
+ include Aws::Structure
1744
+ end
1745
+
1746
+ # Describes the reference data source by providing the source
1747
+ # information (S3 bucket name and object key name), the resulting
1748
+ # in-application table name that is created, and the necessary schema to
1749
+ # map the data elements in the Amazon S3 object to the in-application
1750
+ # table.
1751
+ # @note When making an API call, pass ReferenceDataSource
1752
+ # data as a hash:
1753
+ #
1754
+ # {
1755
+ # table_name: "InAppTableName", # required
1756
+ # s3_reference_data_source: {
1757
+ # bucket_arn: "BucketARN", # required
1758
+ # file_key: "FileKey", # required
1759
+ # reference_role_arn: "RoleARN", # required
1760
+ # },
1761
+ # reference_schema: { # required
1762
+ # record_format: { # required
1763
+ # record_format_type: "JSON", # required, accepts JSON, CSV
1764
+ # mapping_parameters: {
1765
+ # json_mapping_parameters: {
1766
+ # record_row_path: "RecordRowPath", # required
1767
+ # },
1768
+ # csv_mapping_parameters: {
1769
+ # record_row_delimiter: "RecordRowDelimiter", # required
1770
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1771
+ # },
1772
+ # },
1773
+ # },
1774
+ # record_encoding: "RecordEncoding",
1775
+ # record_columns: [ # required
1776
+ # {
1777
+ # name: "RecordColumnName", # required
1778
+ # mapping: "RecordColumnMapping",
1779
+ # sql_type: "RecordColumnSqlType", # required
1780
+ # },
1781
+ # ],
1782
+ # },
1783
+ # }
1784
+ # @!attribute [rw] table_name
1785
+ # Name of the in-application table to create.
1786
+ # @return [String]
1787
+ #
1788
+ # @!attribute [rw] s3_reference_data_source
1789
+ # Identifies the S3 bucket and object that contains the reference
1790
+ # data. Also identifies the IAM role Amazon Kinesis Analytics can
1791
+ # assume to read this object on your behalf.
1792
+ #
1793
+ # An Amazon Kinesis Analytics application loads reference data only
1794
+ # once. If the data changes, you call the UpdateApplication operation
1795
+ # to trigger reloading of data into your application.
1796
+ # @return [Types::S3ReferenceDataSource]
1797
+ #
1798
+ # @!attribute [rw] reference_schema
1799
+ # Describes the format of the data in the streaming source, and how
1800
+ # each data element maps to corresponding columns created in the
1801
+ # in-application stream.
1802
+ # @return [Types::SourceSchema]
1803
+ class ReferenceDataSource < Struct.new(
1804
+ :table_name,
1805
+ :s3_reference_data_source,
1806
+ :reference_schema)
1807
+ include Aws::Structure
1808
+ end
1809
+
1810
+ # Describes the reference data source configured for an application.
1811
+ # @!attribute [rw] reference_id
1812
+ # ID of the reference data source. This is the ID that Amazon Kinesis
1813
+ # Analytics assigns when you add the reference data source to your
1814
+ # application using the AddApplicationReferenceDataSource operation.
1815
+ # @return [String]
1816
+ #
1817
+ # @!attribute [rw] table_name
1818
+ # The in-application table name created by the specific reference data
1819
+ # source configuration.
1820
+ # @return [String]
1821
+ #
1822
+ # @!attribute [rw] s3_reference_data_source_description
1823
+ # Provides the S3 bucket name, the object key name that contains the
1824
+ # reference data. It also provides the Amazon Resource Name (ARN) of
1825
+ # the IAM role that Amazon Kinesis Analytics can assume to read the
1826
+ # Amazon S3 object and populate the in-application reference table.
1827
+ # @return [Types::S3ReferenceDataSourceDescription]
1828
+ #
1829
+ # @!attribute [rw] reference_schema
1830
+ # Describes the format of the data in the streaming source, and how
1831
+ # each data element maps to corresponding columns created in the
1832
+ # in-application stream.
1833
+ # @return [Types::SourceSchema]
1834
+ class ReferenceDataSourceDescription < Struct.new(
1835
+ :reference_id,
1836
+ :table_name,
1837
+ :s3_reference_data_source_description,
1838
+ :reference_schema)
1839
+ include Aws::Structure
1840
+ end
1841
+
1842
+ # When you update a reference data source configuration for an
1843
+ # application, this object provides all the updated values (such as the
1844
+ # source bucket name and object key name), the in-application table name
1845
+ # that is created, and updated mapping information that maps the data in
1846
+ # the Amazon S3 object to the in-application reference table that is
1847
+ # created.
1848
+ # @note When making an API call, pass ReferenceDataSourceUpdate
1849
+ # data as a hash:
1850
+ #
1851
+ # {
1852
+ # reference_id: "Id", # required
1853
+ # table_name_update: "InAppTableName",
1854
+ # s3_reference_data_source_update: {
1855
+ # bucket_arn_update: "BucketARN",
1856
+ # file_key_update: "FileKey",
1857
+ # reference_role_arn_update: "RoleARN",
1858
+ # },
1859
+ # reference_schema_update: {
1860
+ # record_format: { # required
1861
+ # record_format_type: "JSON", # required, accepts JSON, CSV
1862
+ # mapping_parameters: {
1863
+ # json_mapping_parameters: {
1864
+ # record_row_path: "RecordRowPath", # required
1865
+ # },
1866
+ # csv_mapping_parameters: {
1867
+ # record_row_delimiter: "RecordRowDelimiter", # required
1868
+ # record_column_delimiter: "RecordColumnDelimiter", # required
1869
+ # },
1870
+ # },
1871
+ # },
1872
+ # record_encoding: "RecordEncoding",
1873
+ # record_columns: [ # required
1874
+ # {
1875
+ # name: "RecordColumnName", # required
1876
+ # mapping: "RecordColumnMapping",
1877
+ # sql_type: "RecordColumnSqlType", # required
1878
+ # },
1879
+ # ],
1880
+ # },
1881
+ # }
1882
+ # @!attribute [rw] reference_id
1883
+ # ID of the reference data source being updated. You can use the
1884
+ # DescribeApplication operation to get this value.
1885
+ # @return [String]
1886
+ #
1887
+ # @!attribute [rw] table_name_update
1888
+ # In-application table name that is created by this update.
1889
+ # @return [String]
1890
+ #
1891
+ # @!attribute [rw] s3_reference_data_source_update
1892
+ # Describes the S3 bucket name, object key name, and IAM role that
1893
+ # Amazon Kinesis Analytics can assume to read the Amazon S3 object on
1894
+ # your behalf and populate the in-application reference table.
1895
+ # @return [Types::S3ReferenceDataSourceUpdate]
1896
+ #
1897
+ # @!attribute [rw] reference_schema_update
1898
+ # Describes the format of the data in the streaming source, and how
1899
+ # each data element maps to corresponding columns created in the
1900
+ # in-application stream.
1901
+ # @return [Types::SourceSchema]
1902
+ class ReferenceDataSourceUpdate < Struct.new(
1903
+ :reference_id,
1904
+ :table_name_update,
1905
+ :s3_reference_data_source_update,
1906
+ :reference_schema_update)
1907
+ include Aws::Structure
1908
+ end
1909
+
1910
+ # Identifies the S3 bucket and object that contains the reference data.
1911
+ # Also identifies the IAM role Amazon Kinesis Analytics can assume to
1912
+ # read this object on your behalf.
1913
+ #
1914
+ # An Amazon Kinesis Analytics application loads reference data only
1915
+ # once. If the data changes, you call the UpdateApplication operation to
1916
+ # trigger reloading of data into your application.
1917
+ # @note When making an API call, pass S3ReferenceDataSource
1918
+ # data as a hash:
1919
+ #
1920
+ # {
1921
+ # bucket_arn: "BucketARN", # required
1922
+ # file_key: "FileKey", # required
1923
+ # reference_role_arn: "RoleARN", # required
1924
+ # }
1925
+ # @!attribute [rw] bucket_arn
1926
+ # Amazon Resource Name (ARN) of the S3 bucket.
1927
+ # @return [String]
1928
+ #
1929
+ # @!attribute [rw] file_key
1930
+ # Object key name containing reference data.
1931
+ # @return [String]
1932
+ #
1933
+ # @!attribute [rw] reference_role_arn
1934
+ # ARN of the IAM role that the service can assume to read data on your
1935
+ # behalf. This role must have permission for the `s3:GetObject` action
1936
+ # on the object and trust policy that allows Amazon Kinesis Analytics
1937
+ # service principal to assume this role.
1938
+ # @return [String]
1939
+ class S3ReferenceDataSource < Struct.new(
1940
+ :bucket_arn,
1941
+ :file_key,
1942
+ :reference_role_arn)
1943
+ include Aws::Structure
1944
+ end
1945
+
1946
+ # Provides the bucket name and object key name that stores the reference
1947
+ # data.
1948
+ # @!attribute [rw] bucket_arn
1949
+ # Amazon Resource Name (ARN) of the S3 bucket.
1950
+ # @return [String]
1951
+ #
1952
+ # @!attribute [rw] file_key
1953
+ # Amazon S3 object key name.
1954
+ # @return [String]
1955
+ #
1956
+ # @!attribute [rw] reference_role_arn
1957
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to read
1958
+ # the Amazon S3 object on your behalf to populate the in-application
1959
+ # reference table.
1960
+ # @return [String]
1961
+ class S3ReferenceDataSourceDescription < Struct.new(
1962
+ :bucket_arn,
1963
+ :file_key,
1964
+ :reference_role_arn)
1965
+ include Aws::Structure
1966
+ end
1967
+
1968
+ # Describes the S3 bucket name, object key name, and IAM role that
1969
+ # Amazon Kinesis Analytics can assume to read the Amazon S3 object on
1970
+ # your behalf and populate the in-application reference table.
1971
+ # @note When making an API call, pass S3ReferenceDataSourceUpdate
1972
+ # data as a hash:
1973
+ #
1974
+ # {
1975
+ # bucket_arn_update: "BucketARN",
1976
+ # file_key_update: "FileKey",
1977
+ # reference_role_arn_update: "RoleARN",
1978
+ # }
1979
+ # @!attribute [rw] bucket_arn_update
1980
+ # Amazon Resource Name (ARN) of the S3 bucket.
1981
+ # @return [String]
1982
+ #
1983
+ # @!attribute [rw] file_key_update
1984
+ # Object key name.
1985
+ # @return [String]
1986
+ #
1987
+ # @!attribute [rw] reference_role_arn_update
1988
+ # ARN of the IAM role that Amazon Kinesis Analytics can assume to read
1989
+ # the Amazon S3 object and populate the in-application.
1990
+ # @return [String]
1991
+ class S3ReferenceDataSourceUpdate < Struct.new(
1992
+ :bucket_arn_update,
1993
+ :file_key_update,
1994
+ :reference_role_arn_update)
1995
+ include Aws::Structure
1996
+ end
1997
+
1998
+ # Describes the format of the data in the streaming source, and how each
1999
+ # data element maps to corresponding columns created in the
2000
+ # in-application stream.
2001
+ # @note When making an API call, pass SourceSchema
2002
+ # data as a hash:
2003
+ #
2004
+ # {
2005
+ # record_format: { # required
2006
+ # record_format_type: "JSON", # required, accepts JSON, CSV
2007
+ # mapping_parameters: {
2008
+ # json_mapping_parameters: {
2009
+ # record_row_path: "RecordRowPath", # required
2010
+ # },
2011
+ # csv_mapping_parameters: {
2012
+ # record_row_delimiter: "RecordRowDelimiter", # required
2013
+ # record_column_delimiter: "RecordColumnDelimiter", # required
2014
+ # },
2015
+ # },
2016
+ # },
2017
+ # record_encoding: "RecordEncoding",
2018
+ # record_columns: [ # required
2019
+ # {
2020
+ # name: "RecordColumnName", # required
2021
+ # mapping: "RecordColumnMapping",
2022
+ # sql_type: "RecordColumnSqlType", # required
2023
+ # },
2024
+ # ],
2025
+ # }
2026
+ # @!attribute [rw] record_format
2027
+ # Specifies the format of the records on the streaming source.
2028
+ # @return [Types::RecordFormat]
2029
+ #
2030
+ # @!attribute [rw] record_encoding
2031
+ # Specifies the encoding of the records in the streaming source. For
2032
+ # example, UTF-8.
2033
+ # @return [String]
2034
+ #
2035
+ # @!attribute [rw] record_columns
2036
+ # A list of `RecordColumn` objects.
2037
+ # @return [Array<Types::RecordColumn>]
2038
+ class SourceSchema < Struct.new(
2039
+ :record_format,
2040
+ :record_encoding,
2041
+ :record_columns)
2042
+ include Aws::Structure
2043
+ end
2044
+
2045
+ # @note When making an API call, pass StartApplicationRequest
2046
+ # data as a hash:
2047
+ #
2048
+ # {
2049
+ # application_name: "ApplicationName", # required
2050
+ # input_configurations: [ # required
2051
+ # {
2052
+ # id: "Id", # required
2053
+ # input_starting_position_configuration: { # required
2054
+ # input_starting_position: "NOW", # accepts NOW, TRIM_HORIZON, LAST_STOPPED_POINT
2055
+ # },
2056
+ # },
2057
+ # ],
2058
+ # }
2059
+ # @!attribute [rw] application_name
2060
+ # Name of the application.
2061
+ # @return [String]
2062
+ #
2063
+ # @!attribute [rw] input_configurations
2064
+ # Identifies the specific input, by ID, that the application starts
2065
+ # consuming. Amazon Kinesis Analytics starts reading the streaming
2066
+ # source associated with the input. You can also specify where in the
2067
+ # streaming source you want Amazon Kinesis Analytics to start reading.
2068
+ # @return [Array<Types::InputConfiguration>]
2069
+ class StartApplicationRequest < Struct.new(
2070
+ :application_name,
2071
+ :input_configurations)
2072
+ include Aws::Structure
2073
+ end
2074
+
2075
+ class StartApplicationResponse < Aws::EmptyStructure; end
2076
+
2077
+ # @note When making an API call, pass StopApplicationRequest
2078
+ # data as a hash:
2079
+ #
2080
+ # {
2081
+ # application_name: "ApplicationName", # required
2082
+ # }
2083
+ # @!attribute [rw] application_name
2084
+ # Name of the running application to stop.
2085
+ # @return [String]
2086
+ class StopApplicationRequest < Struct.new(
2087
+ :application_name)
2088
+ include Aws::Structure
2089
+ end
2090
+
2091
+ class StopApplicationResponse < Aws::EmptyStructure; end
2092
+
2093
+ # @note When making an API call, pass UpdateApplicationRequest
2094
+ # data as a hash:
2095
+ #
2096
+ # {
2097
+ # application_name: "ApplicationName", # required
2098
+ # current_application_version_id: 1, # required
2099
+ # application_update: { # required
2100
+ # input_updates: [
2101
+ # {
2102
+ # input_id: "Id", # required
2103
+ # name_prefix_update: "InAppStreamName",
2104
+ # kinesis_streams_input_update: {
2105
+ # resource_arn_update: "ResourceARN",
2106
+ # role_arn_update: "RoleARN",
2107
+ # },
2108
+ # kinesis_firehose_input_update: {
2109
+ # resource_arn_update: "ResourceARN",
2110
+ # role_arn_update: "RoleARN",
2111
+ # },
2112
+ # input_schema_update: {
2113
+ # record_format_update: {
2114
+ # record_format_type: "JSON", # required, accepts JSON, CSV
2115
+ # mapping_parameters: {
2116
+ # json_mapping_parameters: {
2117
+ # record_row_path: "RecordRowPath", # required
2118
+ # },
2119
+ # csv_mapping_parameters: {
2120
+ # record_row_delimiter: "RecordRowDelimiter", # required
2121
+ # record_column_delimiter: "RecordColumnDelimiter", # required
2122
+ # },
2123
+ # },
2124
+ # },
2125
+ # record_encoding_update: "RecordEncoding",
2126
+ # record_column_updates: [
2127
+ # {
2128
+ # name: "RecordColumnName", # required
2129
+ # mapping: "RecordColumnMapping",
2130
+ # sql_type: "RecordColumnSqlType", # required
2131
+ # },
2132
+ # ],
2133
+ # },
2134
+ # input_parallelism_update: {
2135
+ # count_update: 1,
2136
+ # },
2137
+ # },
2138
+ # ],
2139
+ # application_code_update: "ApplicationCode",
2140
+ # output_updates: [
2141
+ # {
2142
+ # output_id: "Id", # required
2143
+ # name_update: "InAppStreamName",
2144
+ # kinesis_streams_output_update: {
2145
+ # resource_arn_update: "ResourceARN",
2146
+ # role_arn_update: "RoleARN",
2147
+ # },
2148
+ # kinesis_firehose_output_update: {
2149
+ # resource_arn_update: "ResourceARN",
2150
+ # role_arn_update: "RoleARN",
2151
+ # },
2152
+ # destination_schema_update: {
2153
+ # record_format_type: "JSON", # accepts JSON, CSV
2154
+ # },
2155
+ # },
2156
+ # ],
2157
+ # reference_data_source_updates: [
2158
+ # {
2159
+ # reference_id: "Id", # required
2160
+ # table_name_update: "InAppTableName",
2161
+ # s3_reference_data_source_update: {
2162
+ # bucket_arn_update: "BucketARN",
2163
+ # file_key_update: "FileKey",
2164
+ # reference_role_arn_update: "RoleARN",
2165
+ # },
2166
+ # reference_schema_update: {
2167
+ # record_format: { # required
2168
+ # record_format_type: "JSON", # required, accepts JSON, CSV
2169
+ # mapping_parameters: {
2170
+ # json_mapping_parameters: {
2171
+ # record_row_path: "RecordRowPath", # required
2172
+ # },
2173
+ # csv_mapping_parameters: {
2174
+ # record_row_delimiter: "RecordRowDelimiter", # required
2175
+ # record_column_delimiter: "RecordColumnDelimiter", # required
2176
+ # },
2177
+ # },
2178
+ # },
2179
+ # record_encoding: "RecordEncoding",
2180
+ # record_columns: [ # required
2181
+ # {
2182
+ # name: "RecordColumnName", # required
2183
+ # mapping: "RecordColumnMapping",
2184
+ # sql_type: "RecordColumnSqlType", # required
2185
+ # },
2186
+ # ],
2187
+ # },
2188
+ # },
2189
+ # ],
2190
+ # },
2191
+ # }
2192
+ # @!attribute [rw] application_name
2193
+ # Name of the Kinesis Analytics application to update.
2194
+ # @return [String]
2195
+ #
2196
+ # @!attribute [rw] current_application_version_id
2197
+ # The current application version ID. You can use the
2198
+ # DescribeApplication operation to get this value.
2199
+ # @return [Integer]
2200
+ #
2201
+ # @!attribute [rw] application_update
2202
+ # Describes application updates.
2203
+ # @return [Types::ApplicationUpdate]
2204
+ class UpdateApplicationRequest < Struct.new(
2205
+ :application_name,
2206
+ :current_application_version_id,
2207
+ :application_update)
2208
+ include Aws::Structure
2209
+ end
2210
+
2211
+ class UpdateApplicationResponse < Aws::EmptyStructure; end
2212
+
2213
+ end
2214
+ end
2215
+ end