aws-sdk-cloudtrail 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 CloudTrail
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 CloudTrail
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,1431 @@
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 CloudTrail
10
+ module Types
11
+
12
+ # Specifies the tags to add to a trail.
13
+ # @note When making an API call, pass AddTagsRequest
14
+ # data as a hash:
15
+ #
16
+ # {
17
+ # resource_id: "String", # required
18
+ # tags_list: [
19
+ # {
20
+ # key: "String", # required
21
+ # value: "String",
22
+ # },
23
+ # ],
24
+ # }
25
+ # @!attribute [rw] resource_id
26
+ # Specifies the ARN of the trail to which one or more tags will be
27
+ # added. The format of a trail ARN is:
28
+ #
29
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
30
+ # @return [String]
31
+ #
32
+ # @!attribute [rw] tags_list
33
+ # Contains a list of CloudTrail tags, up to a limit of 50
34
+ # @return [Array<Types::Tag>]
35
+ class AddTagsRequest < Struct.new(
36
+ :resource_id,
37
+ :tags_list)
38
+ include Aws::Structure
39
+ end
40
+
41
+ # Returns the objects or data listed below if successful. Otherwise,
42
+ # returns an error.
43
+ class AddTagsResponse < Aws::EmptyStructure; end
44
+
45
+ # Specifies the settings for each trail.
46
+ # @note When making an API call, pass CreateTrailRequest
47
+ # data as a hash:
48
+ #
49
+ # {
50
+ # name: "String", # required
51
+ # s3_bucket_name: "String", # required
52
+ # s3_key_prefix: "String",
53
+ # sns_topic_name: "String",
54
+ # include_global_service_events: false,
55
+ # is_multi_region_trail: false,
56
+ # enable_log_file_validation: false,
57
+ # cloud_watch_logs_log_group_arn: "String",
58
+ # cloud_watch_logs_role_arn: "String",
59
+ # kms_key_id: "String",
60
+ # }
61
+ # @!attribute [rw] name
62
+ # Specifies the name of the trail. The name must meet the following
63
+ # requirements:
64
+ #
65
+ # * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.),
66
+ # underscores (\_), or dashes (-)
67
+ #
68
+ # * Start with a letter or number, and end with a letter or number
69
+ #
70
+ # * Be between 3 and 128 characters
71
+ #
72
+ # * Have no adjacent periods, underscores or dashes. Names like
73
+ # `my-_namespace` and `my--namespace` are invalid.
74
+ #
75
+ # * Not be in IP address format (for example, 192.168.5.4)
76
+ # @return [String]
77
+ #
78
+ # @!attribute [rw] s3_bucket_name
79
+ # Specifies the name of the Amazon S3 bucket designated for publishing
80
+ # log files. See [Amazon S3 Bucket Naming Requirements][1].
81
+ #
82
+ #
83
+ #
84
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html
85
+ # @return [String]
86
+ #
87
+ # @!attribute [rw] s3_key_prefix
88
+ # Specifies the Amazon S3 key prefix that comes after the name of the
89
+ # bucket you have designated for log file delivery. For more
90
+ # information, see [Finding Your CloudTrail Log Files][1]. The maximum
91
+ # length is 200 characters.
92
+ #
93
+ #
94
+ #
95
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html
96
+ # @return [String]
97
+ #
98
+ # @!attribute [rw] sns_topic_name
99
+ # Specifies the name of the Amazon SNS topic defined for notification
100
+ # of log file delivery. The maximum length is 256 characters.
101
+ # @return [String]
102
+ #
103
+ # @!attribute [rw] include_global_service_events
104
+ # Specifies whether the trail is publishing events from global
105
+ # services such as IAM to the log files.
106
+ # @return [Boolean]
107
+ #
108
+ # @!attribute [rw] is_multi_region_trail
109
+ # Specifies whether the trail is created in the current region or in
110
+ # all regions. The default is false.
111
+ # @return [Boolean]
112
+ #
113
+ # @!attribute [rw] enable_log_file_validation
114
+ # Specifies whether log file integrity validation is enabled. The
115
+ # default is false.
116
+ #
117
+ # <note markdown="1"> When you disable log file integrity validation, the chain of digest
118
+ # files is broken after one hour. CloudTrail will not create digest
119
+ # files for log files that were delivered during a period in which log
120
+ # file integrity validation was disabled. For example, if you enable
121
+ # log file integrity validation at noon on January 1, disable it at
122
+ # noon on January 2, and re-enable it at noon on January 10, digest
123
+ # files will not be created for the log files delivered from noon on
124
+ # January 2 to noon on January 10. The same applies whenever you stop
125
+ # CloudTrail logging or delete a trail.
126
+ #
127
+ # </note>
128
+ # @return [Boolean]
129
+ #
130
+ # @!attribute [rw] cloud_watch_logs_log_group_arn
131
+ # Specifies a log group name using an Amazon Resource Name (ARN), a
132
+ # unique identifier that represents the log group to which CloudTrail
133
+ # logs will be delivered. Not required unless you specify
134
+ # CloudWatchLogsRoleArn.
135
+ # @return [String]
136
+ #
137
+ # @!attribute [rw] cloud_watch_logs_role_arn
138
+ # Specifies the role for the CloudWatch Logs endpoint to assume to
139
+ # write to a user's log group.
140
+ # @return [String]
141
+ #
142
+ # @!attribute [rw] kms_key_id
143
+ # Specifies the KMS key ID to use to encrypt the logs delivered by
144
+ # CloudTrail. The value can be a an alias name prefixed by "alias/",
145
+ # a fully specified ARN to an alias, a fully specified ARN to a key,
146
+ # or a globally unique identifier.
147
+ #
148
+ # Examples:
149
+ #
150
+ # * alias/MyAliasName
151
+ #
152
+ # * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
153
+ #
154
+ # * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
155
+ #
156
+ # * 12345678-1234-1234-1234-123456789012
157
+ # @return [String]
158
+ class CreateTrailRequest < Struct.new(
159
+ :name,
160
+ :s3_bucket_name,
161
+ :s3_key_prefix,
162
+ :sns_topic_name,
163
+ :include_global_service_events,
164
+ :is_multi_region_trail,
165
+ :enable_log_file_validation,
166
+ :cloud_watch_logs_log_group_arn,
167
+ :cloud_watch_logs_role_arn,
168
+ :kms_key_id)
169
+ include Aws::Structure
170
+ end
171
+
172
+ # Returns the objects or data listed below if successful. Otherwise,
173
+ # returns an error.
174
+ # @!attribute [rw] name
175
+ # Specifies the name of the trail.
176
+ # @return [String]
177
+ #
178
+ # @!attribute [rw] s3_bucket_name
179
+ # Specifies the name of the Amazon S3 bucket designated for publishing
180
+ # log files.
181
+ # @return [String]
182
+ #
183
+ # @!attribute [rw] s3_key_prefix
184
+ # Specifies the Amazon S3 key prefix that comes after the name of the
185
+ # bucket you have designated for log file delivery. For more
186
+ # information, see [Finding Your CloudTrail Log Files][1].
187
+ #
188
+ #
189
+ #
190
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html
191
+ # @return [String]
192
+ #
193
+ # @!attribute [rw] sns_topic_name
194
+ # This field is deprecated. Use SnsTopicARN.
195
+ # @return [String]
196
+ #
197
+ # @!attribute [rw] sns_topic_arn
198
+ # Specifies the ARN of the Amazon SNS topic that CloudTrail uses to
199
+ # send notifications when log files are delivered. The format of a
200
+ # topic ARN is:
201
+ #
202
+ # `arn:aws:sns:us-east-1:123456789012:MyTopic`
203
+ # @return [String]
204
+ #
205
+ # @!attribute [rw] include_global_service_events
206
+ # Specifies whether the trail is publishing events from global
207
+ # services such as IAM to the log files.
208
+ # @return [Boolean]
209
+ #
210
+ # @!attribute [rw] is_multi_region_trail
211
+ # Specifies whether the trail exists in one region or in all regions.
212
+ # @return [Boolean]
213
+ #
214
+ # @!attribute [rw] trail_arn
215
+ # Specifies the ARN of the trail that was created. The format of a
216
+ # trail ARN is:
217
+ #
218
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
219
+ # @return [String]
220
+ #
221
+ # @!attribute [rw] log_file_validation_enabled
222
+ # Specifies whether log file integrity validation is enabled.
223
+ # @return [Boolean]
224
+ #
225
+ # @!attribute [rw] cloud_watch_logs_log_group_arn
226
+ # Specifies the Amazon Resource Name (ARN) of the log group to which
227
+ # CloudTrail logs will be delivered.
228
+ # @return [String]
229
+ #
230
+ # @!attribute [rw] cloud_watch_logs_role_arn
231
+ # Specifies the role for the CloudWatch Logs endpoint to assume to
232
+ # write to a user's log group.
233
+ # @return [String]
234
+ #
235
+ # @!attribute [rw] kms_key_id
236
+ # Specifies the KMS key ID that encrypts the logs delivered by
237
+ # CloudTrail. The value is a fully specified ARN to a KMS key in the
238
+ # format:
239
+ #
240
+ # `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012`
241
+ # @return [String]
242
+ class CreateTrailResponse < Struct.new(
243
+ :name,
244
+ :s3_bucket_name,
245
+ :s3_key_prefix,
246
+ :sns_topic_name,
247
+ :sns_topic_arn,
248
+ :include_global_service_events,
249
+ :is_multi_region_trail,
250
+ :trail_arn,
251
+ :log_file_validation_enabled,
252
+ :cloud_watch_logs_log_group_arn,
253
+ :cloud_watch_logs_role_arn,
254
+ :kms_key_id)
255
+ include Aws::Structure
256
+ end
257
+
258
+ # The Amazon S3 objects that you specify in your event selectors for
259
+ # your trail to log data events. Data events are object level API
260
+ # operations that access S3 objects, such as `GetObject`,
261
+ # `DeleteObject`, and `PutObject`. You can specify up to 50 S3 buckets
262
+ # and object prefixes for an event selector.
263
+ #
264
+ # Example
265
+ #
266
+ # 1. You create an event selector for a trail and specify an S3 bucket
267
+ # and an empty prefix, such as `arn:aws:s3:::bucket-1/`.
268
+ #
269
+ # 2. You upload an image file to `bucket-1`.
270
+ #
271
+ # 3. The `PutObject` API operation occurs on an object in the S3 bucket
272
+ # that you specified in the event selector. The trail processes and
273
+ # logs the event.
274
+ #
275
+ # 4. You upload another image file to a different S3 bucket named
276
+ # `arn:aws:s3:::bucket-2`.
277
+ #
278
+ # 5. The event occurs on an object in an S3 bucket that you didn't
279
+ # specify in the event selector. The trail doesn’t log the event.
280
+ # @note When making an API call, pass DataResource
281
+ # data as a hash:
282
+ #
283
+ # {
284
+ # type: "String",
285
+ # values: ["String"],
286
+ # }
287
+ # @!attribute [rw] type
288
+ # The resource type in which you want to log data events. You can
289
+ # specify only the following value: `AWS::S3::Object`.
290
+ # @return [String]
291
+ #
292
+ # @!attribute [rw] values
293
+ # A list of ARN-like strings for the specified S3 objects.
294
+ #
295
+ # To log data events for all objects in an S3 bucket, specify the
296
+ # bucket and an empty object prefix such as `arn:aws:s3:::bucket-1/`.
297
+ # The trail logs data events for all objects in this S3 bucket.
298
+ #
299
+ # To log data events for specific objects, specify the S3 bucket and
300
+ # object prefix such as `arn:aws:s3:::bucket-1/example-images`. The
301
+ # trail logs data events for objects in this S3 bucket that match the
302
+ # prefix.
303
+ # @return [Array<String>]
304
+ class DataResource < Struct.new(
305
+ :type,
306
+ :values)
307
+ include Aws::Structure
308
+ end
309
+
310
+ # The request that specifies the name of a trail to delete.
311
+ # @note When making an API call, pass DeleteTrailRequest
312
+ # data as a hash:
313
+ #
314
+ # {
315
+ # name: "String", # required
316
+ # }
317
+ # @!attribute [rw] name
318
+ # Specifies the name or the CloudTrail ARN of the trail to be deleted.
319
+ # The format of a trail ARN is:
320
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
321
+ # @return [String]
322
+ class DeleteTrailRequest < Struct.new(
323
+ :name)
324
+ include Aws::Structure
325
+ end
326
+
327
+ # Returns the objects or data listed below if successful. Otherwise,
328
+ # returns an error.
329
+ class DeleteTrailResponse < Aws::EmptyStructure; end
330
+
331
+ # Returns information about the trail.
332
+ # @note When making an API call, pass DescribeTrailsRequest
333
+ # data as a hash:
334
+ #
335
+ # {
336
+ # trail_name_list: ["String"],
337
+ # include_shadow_trails: false,
338
+ # }
339
+ # @!attribute [rw] trail_name_list
340
+ # Specifies a list of trail names, trail ARNs, or both, of the trails
341
+ # to describe. The format of a trail ARN is:
342
+ #
343
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
344
+ #
345
+ # If an empty list is specified, information for the trail in the
346
+ # current region is returned.
347
+ #
348
+ # * If an empty list is specified and `IncludeShadowTrails` is false,
349
+ # then information for all trails in the current region is returned.
350
+ #
351
+ # * If an empty list is specified and IncludeShadowTrails is null or
352
+ # true, then information for all trails in the current region and
353
+ # any associated shadow trails in other regions is returned.
354
+ #
355
+ # <note markdown="1"> If one or more trail names are specified, information is returned
356
+ # only if the names match the names of trails belonging only to the
357
+ # current region. To return information about a trail in another
358
+ # region, you must specify its trail ARN.
359
+ #
360
+ # </note>
361
+ # @return [Array<String>]
362
+ #
363
+ # @!attribute [rw] include_shadow_trails
364
+ # Specifies whether to include shadow trails in the response. A shadow
365
+ # trail is the replication in a region of a trail that was created in
366
+ # a different region. The default is true.
367
+ # @return [Boolean]
368
+ class DescribeTrailsRequest < Struct.new(
369
+ :trail_name_list,
370
+ :include_shadow_trails)
371
+ include Aws::Structure
372
+ end
373
+
374
+ # Returns the objects or data listed below if successful. Otherwise,
375
+ # returns an error.
376
+ # @!attribute [rw] trail_list
377
+ # The list of trail objects.
378
+ # @return [Array<Types::Trail>]
379
+ class DescribeTrailsResponse < Struct.new(
380
+ :trail_list)
381
+ include Aws::Structure
382
+ end
383
+
384
+ # Contains information about an event that was returned by a lookup
385
+ # request. The result includes a representation of a CloudTrail event.
386
+ # @!attribute [rw] event_id
387
+ # The CloudTrail ID of the event returned.
388
+ # @return [String]
389
+ #
390
+ # @!attribute [rw] event_name
391
+ # The name of the event returned.
392
+ # @return [String]
393
+ #
394
+ # @!attribute [rw] event_time
395
+ # The date and time of the event returned.
396
+ # @return [Time]
397
+ #
398
+ # @!attribute [rw] event_source
399
+ # The AWS service that the request was made to.
400
+ # @return [String]
401
+ #
402
+ # @!attribute [rw] username
403
+ # A user name or role name of the requester that called the API in the
404
+ # event returned.
405
+ # @return [String]
406
+ #
407
+ # @!attribute [rw] resources
408
+ # A list of resources referenced by the event returned.
409
+ # @return [Array<Types::Resource>]
410
+ #
411
+ # @!attribute [rw] cloud_trail_event
412
+ # A JSON string that contains a representation of the event returned.
413
+ # @return [String]
414
+ class Event < Struct.new(
415
+ :event_id,
416
+ :event_name,
417
+ :event_time,
418
+ :event_source,
419
+ :username,
420
+ :resources,
421
+ :cloud_trail_event)
422
+ include Aws::Structure
423
+ end
424
+
425
+ # Use event selectors to specify the types of events that you want your
426
+ # trail to log. When an event occurs in your account, CloudTrail
427
+ # evaluates the event selector for all trails. For each trail, if the
428
+ # event matches any event selector, the trail processes and logs the
429
+ # event. If the event doesn't match any event selector, the trail
430
+ # doesn't log the event.
431
+ #
432
+ # You can configure up to five event selectors for a trail.
433
+ # @note When making an API call, pass EventSelector
434
+ # data as a hash:
435
+ #
436
+ # {
437
+ # read_write_type: "ReadOnly", # accepts ReadOnly, WriteOnly, All
438
+ # include_management_events: false,
439
+ # data_resources: [
440
+ # {
441
+ # type: "String",
442
+ # values: ["String"],
443
+ # },
444
+ # ],
445
+ # }
446
+ # @!attribute [rw] read_write_type
447
+ # Specify if you want your trail to log read-only events, write-only
448
+ # events, or all. For example, the EC2 `GetConsoleOutput` is a
449
+ # read-only API operation and `RunInstances` is a write-only API
450
+ # operation.
451
+ #
452
+ # By default, the value is `All`.
453
+ # @return [String]
454
+ #
455
+ # @!attribute [rw] include_management_events
456
+ # Specify if you want your event selector to include management events
457
+ # for your trail.
458
+ #
459
+ # For more information, see [Management Events][1] in the *AWS
460
+ # CloudTrail User Guide*.
461
+ #
462
+ # By default, the value is `true`.
463
+ #
464
+ #
465
+ #
466
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-event-selectors-for-a-trail.html#event-selector-for-management-events
467
+ # @return [Boolean]
468
+ #
469
+ # @!attribute [rw] data_resources
470
+ # CloudTrail supports logging only data events for S3 objects. You can
471
+ # specify up to 50 S3 buckets and object prefixes for an event
472
+ # selector.
473
+ #
474
+ # For more information, see [Data Events][1] in the *AWS CloudTrail
475
+ # User Guide*.
476
+ #
477
+ #
478
+ #
479
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create-event-selectors-for-a-trail.html#data-events-resources
480
+ # @return [Array<Types::DataResource>]
481
+ class EventSelector < Struct.new(
482
+ :read_write_type,
483
+ :include_management_events,
484
+ :data_resources)
485
+ include Aws::Structure
486
+ end
487
+
488
+ # @note When making an API call, pass GetEventSelectorsRequest
489
+ # data as a hash:
490
+ #
491
+ # {
492
+ # trail_name: "String",
493
+ # }
494
+ # @!attribute [rw] trail_name
495
+ # Specifies the name of the trail or trail ARN. If you specify a trail
496
+ # name, the string must meet the following requirements:
497
+ #
498
+ # * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.),
499
+ # underscores (\_), or dashes (-)
500
+ #
501
+ # * Start with a letter or number, and end with a letter or number
502
+ #
503
+ # * Be between 3 and 128 characters
504
+ #
505
+ # * Have no adjacent periods, underscores or dashes. Names like
506
+ # `my-_namespace` and `my--namespace` are invalid.
507
+ #
508
+ # * Not be in IP address format (for example, 192.168.5.4)
509
+ #
510
+ # If you specify a trail ARN, it must be in the format:
511
+ #
512
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
513
+ # @return [String]
514
+ class GetEventSelectorsRequest < Struct.new(
515
+ :trail_name)
516
+ include Aws::Structure
517
+ end
518
+
519
+ # @!attribute [rw] trail_arn
520
+ # The specified trail ARN that has the event selectors.
521
+ # @return [String]
522
+ #
523
+ # @!attribute [rw] event_selectors
524
+ # The event selectors that are configured for the trail.
525
+ # @return [Array<Types::EventSelector>]
526
+ class GetEventSelectorsResponse < Struct.new(
527
+ :trail_arn,
528
+ :event_selectors)
529
+ include Aws::Structure
530
+ end
531
+
532
+ # The name of a trail about which you want the current status.
533
+ # @note When making an API call, pass GetTrailStatusRequest
534
+ # data as a hash:
535
+ #
536
+ # {
537
+ # name: "String", # required
538
+ # }
539
+ # @!attribute [rw] name
540
+ # Specifies the name or the CloudTrail ARN of the trail for which you
541
+ # are requesting status. To get the status of a shadow trail (a
542
+ # replication of the trail in another region), you must specify its
543
+ # ARN. The format of a trail ARN is:
544
+ #
545
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
546
+ # @return [String]
547
+ class GetTrailStatusRequest < Struct.new(
548
+ :name)
549
+ include Aws::Structure
550
+ end
551
+
552
+ # Returns the objects or data listed below if successful. Otherwise,
553
+ # returns an error.
554
+ # @!attribute [rw] is_logging
555
+ # Whether the CloudTrail is currently logging AWS API calls.
556
+ # @return [Boolean]
557
+ #
558
+ # @!attribute [rw] latest_delivery_error
559
+ # Displays any Amazon S3 error that CloudTrail encountered when
560
+ # attempting to deliver log files to the designated bucket. For more
561
+ # information see the topic [Error Responses][1] in the Amazon S3 API
562
+ # Reference.
563
+ #
564
+ # <note markdown="1"> This error occurs only when there is a problem with the destination
565
+ # S3 bucket and will not occur for timeouts. To resolve the issue,
566
+ # create a new bucket and call `UpdateTrail` to specify the new
567
+ # bucket, or fix the existing objects so that CloudTrail can again
568
+ # write to the bucket.
569
+ #
570
+ # </note>
571
+ #
572
+ #
573
+ #
574
+ # [1]: http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
575
+ # @return [String]
576
+ #
577
+ # @!attribute [rw] latest_notification_error
578
+ # Displays any Amazon SNS error that CloudTrail encountered when
579
+ # attempting to send a notification. For more information about Amazon
580
+ # SNS errors, see the [Amazon SNS Developer Guide][1].
581
+ #
582
+ #
583
+ #
584
+ # [1]: http://docs.aws.amazon.com/sns/latest/dg/welcome.html
585
+ # @return [String]
586
+ #
587
+ # @!attribute [rw] latest_delivery_time
588
+ # Specifies the date and time that CloudTrail last delivered log files
589
+ # to an account's Amazon S3 bucket.
590
+ # @return [Time]
591
+ #
592
+ # @!attribute [rw] latest_notification_time
593
+ # Specifies the date and time of the most recent Amazon SNS
594
+ # notification that CloudTrail has written a new log file to an
595
+ # account's Amazon S3 bucket.
596
+ # @return [Time]
597
+ #
598
+ # @!attribute [rw] start_logging_time
599
+ # Specifies the most recent date and time when CloudTrail started
600
+ # recording API calls for an AWS account.
601
+ # @return [Time]
602
+ #
603
+ # @!attribute [rw] stop_logging_time
604
+ # Specifies the most recent date and time when CloudTrail stopped
605
+ # recording API calls for an AWS account.
606
+ # @return [Time]
607
+ #
608
+ # @!attribute [rw] latest_cloud_watch_logs_delivery_error
609
+ # Displays any CloudWatch Logs error that CloudTrail encountered when
610
+ # attempting to deliver logs to CloudWatch Logs.
611
+ # @return [String]
612
+ #
613
+ # @!attribute [rw] latest_cloud_watch_logs_delivery_time
614
+ # Displays the most recent date and time when CloudTrail delivered
615
+ # logs to CloudWatch Logs.
616
+ # @return [Time]
617
+ #
618
+ # @!attribute [rw] latest_digest_delivery_time
619
+ # Specifies the date and time that CloudTrail last delivered a digest
620
+ # file to an account's Amazon S3 bucket.
621
+ # @return [Time]
622
+ #
623
+ # @!attribute [rw] latest_digest_delivery_error
624
+ # Displays any Amazon S3 error that CloudTrail encountered when
625
+ # attempting to deliver a digest file to the designated bucket. For
626
+ # more information see the topic [Error Responses][1] in the Amazon S3
627
+ # API Reference.
628
+ #
629
+ # <note markdown="1"> This error occurs only when there is a problem with the destination
630
+ # S3 bucket and will not occur for timeouts. To resolve the issue,
631
+ # create a new bucket and call `UpdateTrail` to specify the new
632
+ # bucket, or fix the existing objects so that CloudTrail can again
633
+ # write to the bucket.
634
+ #
635
+ # </note>
636
+ #
637
+ #
638
+ #
639
+ # [1]: http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
640
+ # @return [String]
641
+ #
642
+ # @!attribute [rw] latest_delivery_attempt_time
643
+ # This field is deprecated.
644
+ # @return [String]
645
+ #
646
+ # @!attribute [rw] latest_notification_attempt_time
647
+ # This field is deprecated.
648
+ # @return [String]
649
+ #
650
+ # @!attribute [rw] latest_notification_attempt_succeeded
651
+ # This field is deprecated.
652
+ # @return [String]
653
+ #
654
+ # @!attribute [rw] latest_delivery_attempt_succeeded
655
+ # This field is deprecated.
656
+ # @return [String]
657
+ #
658
+ # @!attribute [rw] time_logging_started
659
+ # This field is deprecated.
660
+ # @return [String]
661
+ #
662
+ # @!attribute [rw] time_logging_stopped
663
+ # This field is deprecated.
664
+ # @return [String]
665
+ class GetTrailStatusResponse < Struct.new(
666
+ :is_logging,
667
+ :latest_delivery_error,
668
+ :latest_notification_error,
669
+ :latest_delivery_time,
670
+ :latest_notification_time,
671
+ :start_logging_time,
672
+ :stop_logging_time,
673
+ :latest_cloud_watch_logs_delivery_error,
674
+ :latest_cloud_watch_logs_delivery_time,
675
+ :latest_digest_delivery_time,
676
+ :latest_digest_delivery_error,
677
+ :latest_delivery_attempt_time,
678
+ :latest_notification_attempt_time,
679
+ :latest_notification_attempt_succeeded,
680
+ :latest_delivery_attempt_succeeded,
681
+ :time_logging_started,
682
+ :time_logging_stopped)
683
+ include Aws::Structure
684
+ end
685
+
686
+ # Requests the public keys for a specified time range.
687
+ # @note When making an API call, pass ListPublicKeysRequest
688
+ # data as a hash:
689
+ #
690
+ # {
691
+ # start_time: Time.now,
692
+ # end_time: Time.now,
693
+ # next_token: "String",
694
+ # }
695
+ # @!attribute [rw] start_time
696
+ # Optionally specifies, in UTC, the start of the time range to look up
697
+ # public keys for CloudTrail digest files. If not specified, the
698
+ # current time is used, and the current public key is returned.
699
+ # @return [Time]
700
+ #
701
+ # @!attribute [rw] end_time
702
+ # Optionally specifies, in UTC, the end of the time range to look up
703
+ # public keys for CloudTrail digest files. If not specified, the
704
+ # current time is used.
705
+ # @return [Time]
706
+ #
707
+ # @!attribute [rw] next_token
708
+ # Reserved for future use.
709
+ # @return [String]
710
+ class ListPublicKeysRequest < Struct.new(
711
+ :start_time,
712
+ :end_time,
713
+ :next_token)
714
+ include Aws::Structure
715
+ end
716
+
717
+ # Returns the objects or data listed below if successful. Otherwise,
718
+ # returns an error.
719
+ # @!attribute [rw] public_key_list
720
+ # Contains an array of PublicKey objects.
721
+ #
722
+ # <note markdown="1"> The returned public keys may have validity time ranges that overlap.
723
+ #
724
+ # </note>
725
+ # @return [Array<Types::PublicKey>]
726
+ #
727
+ # @!attribute [rw] next_token
728
+ # Reserved for future use.
729
+ # @return [String]
730
+ class ListPublicKeysResponse < Struct.new(
731
+ :public_key_list,
732
+ :next_token)
733
+ include Aws::Structure
734
+ end
735
+
736
+ # Specifies a list of trail tags to return.
737
+ # @note When making an API call, pass ListTagsRequest
738
+ # data as a hash:
739
+ #
740
+ # {
741
+ # resource_id_list: ["String"], # required
742
+ # next_token: "String",
743
+ # }
744
+ # @!attribute [rw] resource_id_list
745
+ # Specifies a list of trail ARNs whose tags will be listed. The list
746
+ # has a limit of 20 ARNs. The format of a trail ARN is:
747
+ #
748
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
749
+ # @return [Array<String>]
750
+ #
751
+ # @!attribute [rw] next_token
752
+ # Reserved for future use.
753
+ # @return [String]
754
+ class ListTagsRequest < Struct.new(
755
+ :resource_id_list,
756
+ :next_token)
757
+ include Aws::Structure
758
+ end
759
+
760
+ # Returns the objects or data listed below if successful. Otherwise,
761
+ # returns an error.
762
+ # @!attribute [rw] resource_tag_list
763
+ # A list of resource tags.
764
+ # @return [Array<Types::ResourceTag>]
765
+ #
766
+ # @!attribute [rw] next_token
767
+ # Reserved for future use.
768
+ # @return [String]
769
+ class ListTagsResponse < Struct.new(
770
+ :resource_tag_list,
771
+ :next_token)
772
+ include Aws::Structure
773
+ end
774
+
775
+ # Specifies an attribute and value that filter the events returned.
776
+ # @note When making an API call, pass LookupAttribute
777
+ # data as a hash:
778
+ #
779
+ # {
780
+ # attribute_key: "EventId", # required, accepts EventId, EventName, Username, ResourceType, ResourceName, EventSource
781
+ # attribute_value: "String", # required
782
+ # }
783
+ # @!attribute [rw] attribute_key
784
+ # Specifies an attribute on which to filter the events returned.
785
+ # @return [String]
786
+ #
787
+ # @!attribute [rw] attribute_value
788
+ # Specifies a value for the specified AttributeKey.
789
+ # @return [String]
790
+ class LookupAttribute < Struct.new(
791
+ :attribute_key,
792
+ :attribute_value)
793
+ include Aws::Structure
794
+ end
795
+
796
+ # Contains a request for LookupEvents.
797
+ # @note When making an API call, pass LookupEventsRequest
798
+ # data as a hash:
799
+ #
800
+ # {
801
+ # lookup_attributes: [
802
+ # {
803
+ # attribute_key: "EventId", # required, accepts EventId, EventName, Username, ResourceType, ResourceName, EventSource
804
+ # attribute_value: "String", # required
805
+ # },
806
+ # ],
807
+ # start_time: Time.now,
808
+ # end_time: Time.now,
809
+ # max_results: 1,
810
+ # next_token: "NextToken",
811
+ # }
812
+ # @!attribute [rw] lookup_attributes
813
+ # Contains a list of lookup attributes. Currently the list can contain
814
+ # only one item.
815
+ # @return [Array<Types::LookupAttribute>]
816
+ #
817
+ # @!attribute [rw] start_time
818
+ # Specifies that only events that occur after or at the specified time
819
+ # are returned. If the specified start time is after the specified end
820
+ # time, an error is returned.
821
+ # @return [Time]
822
+ #
823
+ # @!attribute [rw] end_time
824
+ # Specifies that only events that occur before or at the specified
825
+ # time are returned. If the specified end time is before the specified
826
+ # start time, an error is returned.
827
+ # @return [Time]
828
+ #
829
+ # @!attribute [rw] max_results
830
+ # The number of events to return. Possible values are 1 through 50.
831
+ # The default is 10.
832
+ # @return [Integer]
833
+ #
834
+ # @!attribute [rw] next_token
835
+ # The token to use to get the next page of results after a previous
836
+ # API call. This token must be passed in with the same parameters that
837
+ # were specified in the the original call. For example, if the
838
+ # original call specified an AttributeKey of 'Username' with a value
839
+ # of 'root', the call with NextToken should include those same
840
+ # parameters.
841
+ # @return [String]
842
+ class LookupEventsRequest < Struct.new(
843
+ :lookup_attributes,
844
+ :start_time,
845
+ :end_time,
846
+ :max_results,
847
+ :next_token)
848
+ include Aws::Structure
849
+ end
850
+
851
+ # Contains a response to a LookupEvents action.
852
+ # @!attribute [rw] events
853
+ # A list of events returned based on the lookup attributes specified
854
+ # and the CloudTrail event. The events list is sorted by time. The
855
+ # most recent event is listed first.
856
+ # @return [Array<Types::Event>]
857
+ #
858
+ # @!attribute [rw] next_token
859
+ # The token to use to get the next page of results after a previous
860
+ # API call. If the token does not appear, there are no more results to
861
+ # return. The token must be passed in with the same parameters as the
862
+ # previous call. For example, if the original call specified an
863
+ # AttributeKey of 'Username' with a value of 'root', the call with
864
+ # NextToken should include those same parameters.
865
+ # @return [String]
866
+ class LookupEventsResponse < Struct.new(
867
+ :events,
868
+ :next_token)
869
+ include Aws::Structure
870
+ end
871
+
872
+ # Contains information about a returned public key.
873
+ # @!attribute [rw] value
874
+ # The DER encoded public key value in PKCS#1 format.
875
+ # @return [String]
876
+ #
877
+ # @!attribute [rw] validity_start_time
878
+ # The starting time of validity of the public key.
879
+ # @return [Time]
880
+ #
881
+ # @!attribute [rw] validity_end_time
882
+ # The ending time of validity of the public key.
883
+ # @return [Time]
884
+ #
885
+ # @!attribute [rw] fingerprint
886
+ # The fingerprint of the public key.
887
+ # @return [String]
888
+ class PublicKey < Struct.new(
889
+ :value,
890
+ :validity_start_time,
891
+ :validity_end_time,
892
+ :fingerprint)
893
+ include Aws::Structure
894
+ end
895
+
896
+ # @note When making an API call, pass PutEventSelectorsRequest
897
+ # data as a hash:
898
+ #
899
+ # {
900
+ # trail_name: "String",
901
+ # event_selectors: [
902
+ # {
903
+ # read_write_type: "ReadOnly", # accepts ReadOnly, WriteOnly, All
904
+ # include_management_events: false,
905
+ # data_resources: [
906
+ # {
907
+ # type: "String",
908
+ # values: ["String"],
909
+ # },
910
+ # ],
911
+ # },
912
+ # ],
913
+ # }
914
+ # @!attribute [rw] trail_name
915
+ # Specifies the name of the trail or trail ARN. If you specify a trail
916
+ # name, the string must meet the following requirements:
917
+ #
918
+ # * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.),
919
+ # underscores (\_), or dashes (-)
920
+ #
921
+ # * Start with a letter or number, and end with a letter or number
922
+ #
923
+ # * Be between 3 and 128 characters
924
+ #
925
+ # * Have no adjacent periods, underscores or dashes. Names like
926
+ # `my-_namespace` and `my--namespace` are invalid.
927
+ #
928
+ # * Not be in IP address format (for example, 192.168.5.4)
929
+ #
930
+ # If you specify a trail ARN, it must be in the format:
931
+ #
932
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
933
+ # @return [String]
934
+ #
935
+ # @!attribute [rw] event_selectors
936
+ # Specifies the settings for your event selectors. You can configure
937
+ # up to five event selectors for a trail.
938
+ # @return [Array<Types::EventSelector>]
939
+ class PutEventSelectorsRequest < Struct.new(
940
+ :trail_name,
941
+ :event_selectors)
942
+ include Aws::Structure
943
+ end
944
+
945
+ # @!attribute [rw] trail_arn
946
+ # Specifies the ARN of the trail that was updated with event
947
+ # selectors. The format of a trail ARN is:
948
+ #
949
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
950
+ # @return [String]
951
+ #
952
+ # @!attribute [rw] event_selectors
953
+ # Specifies the event selectors configured for your trail.
954
+ # @return [Array<Types::EventSelector>]
955
+ class PutEventSelectorsResponse < Struct.new(
956
+ :trail_arn,
957
+ :event_selectors)
958
+ include Aws::Structure
959
+ end
960
+
961
+ # Specifies the tags to remove from a trail.
962
+ # @note When making an API call, pass RemoveTagsRequest
963
+ # data as a hash:
964
+ #
965
+ # {
966
+ # resource_id: "String", # required
967
+ # tags_list: [
968
+ # {
969
+ # key: "String", # required
970
+ # value: "String",
971
+ # },
972
+ # ],
973
+ # }
974
+ # @!attribute [rw] resource_id
975
+ # Specifies the ARN of the trail from which tags should be removed.
976
+ # The format of a trail ARN is:
977
+ #
978
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
979
+ # @return [String]
980
+ #
981
+ # @!attribute [rw] tags_list
982
+ # Specifies a list of tags to be removed.
983
+ # @return [Array<Types::Tag>]
984
+ class RemoveTagsRequest < Struct.new(
985
+ :resource_id,
986
+ :tags_list)
987
+ include Aws::Structure
988
+ end
989
+
990
+ # Returns the objects or data listed below if successful. Otherwise,
991
+ # returns an error.
992
+ class RemoveTagsResponse < Aws::EmptyStructure; end
993
+
994
+ # Specifies the type and name of a resource referenced by an event.
995
+ # @!attribute [rw] resource_type
996
+ # The type of a resource referenced by the event returned. When the
997
+ # resource type cannot be determined, null is returned. Some examples
998
+ # of resource types are: **Instance** for EC2, **Trail** for
999
+ # CloudTrail, **DBInstance** for RDS, and **AccessKey** for IAM. For a
1000
+ # list of resource types supported for event lookup, see [Resource
1001
+ # Types Supported for Event Lookup][1].
1002
+ #
1003
+ #
1004
+ #
1005
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/lookup_supported_resourcetypes.html
1006
+ # @return [String]
1007
+ #
1008
+ # @!attribute [rw] resource_name
1009
+ # The name of the resource referenced by the event returned. These are
1010
+ # user-created names whose values will depend on the environment. For
1011
+ # example, the resource name might be "auto-scaling-test-group" for
1012
+ # an Auto Scaling Group or "i-1234567" for an EC2 Instance.
1013
+ # @return [String]
1014
+ class Resource < Struct.new(
1015
+ :resource_type,
1016
+ :resource_name)
1017
+ include Aws::Structure
1018
+ end
1019
+
1020
+ # A resource tag.
1021
+ # @!attribute [rw] resource_id
1022
+ # Specifies the ARN of the resource.
1023
+ # @return [String]
1024
+ #
1025
+ # @!attribute [rw] tags_list
1026
+ # A list of tags.
1027
+ # @return [Array<Types::Tag>]
1028
+ class ResourceTag < Struct.new(
1029
+ :resource_id,
1030
+ :tags_list)
1031
+ include Aws::Structure
1032
+ end
1033
+
1034
+ # The request to CloudTrail to start logging AWS API calls for an
1035
+ # account.
1036
+ # @note When making an API call, pass StartLoggingRequest
1037
+ # data as a hash:
1038
+ #
1039
+ # {
1040
+ # name: "String", # required
1041
+ # }
1042
+ # @!attribute [rw] name
1043
+ # Specifies the name or the CloudTrail ARN of the trail for which
1044
+ # CloudTrail logs AWS API calls. The format of a trail ARN is:
1045
+ #
1046
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
1047
+ # @return [String]
1048
+ class StartLoggingRequest < Struct.new(
1049
+ :name)
1050
+ include Aws::Structure
1051
+ end
1052
+
1053
+ # Returns the objects or data listed below if successful. Otherwise,
1054
+ # returns an error.
1055
+ class StartLoggingResponse < Aws::EmptyStructure; end
1056
+
1057
+ # Passes the request to CloudTrail to stop logging AWS API calls for the
1058
+ # specified account.
1059
+ # @note When making an API call, pass StopLoggingRequest
1060
+ # data as a hash:
1061
+ #
1062
+ # {
1063
+ # name: "String", # required
1064
+ # }
1065
+ # @!attribute [rw] name
1066
+ # Specifies the name or the CloudTrail ARN of the trail for which
1067
+ # CloudTrail will stop logging AWS API calls. The format of a trail
1068
+ # ARN is:
1069
+ #
1070
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
1071
+ # @return [String]
1072
+ class StopLoggingRequest < Struct.new(
1073
+ :name)
1074
+ include Aws::Structure
1075
+ end
1076
+
1077
+ # Returns the objects or data listed below if successful. Otherwise,
1078
+ # returns an error.
1079
+ class StopLoggingResponse < Aws::EmptyStructure; end
1080
+
1081
+ # A custom key-value pair associated with a resource such as a
1082
+ # CloudTrail trail.
1083
+ # @note When making an API call, pass Tag
1084
+ # data as a hash:
1085
+ #
1086
+ # {
1087
+ # key: "String", # required
1088
+ # value: "String",
1089
+ # }
1090
+ # @!attribute [rw] key
1091
+ # The key in a key-value pair. The key must be must be no longer than
1092
+ # 128 Unicode characters. The key must be unique for the resource to
1093
+ # which it applies.
1094
+ # @return [String]
1095
+ #
1096
+ # @!attribute [rw] value
1097
+ # The value in a key-value pair of a tag. The value must be no longer
1098
+ # than 256 Unicode characters.
1099
+ # @return [String]
1100
+ class Tag < Struct.new(
1101
+ :key,
1102
+ :value)
1103
+ include Aws::Structure
1104
+ end
1105
+
1106
+ # The settings for a trail.
1107
+ # @!attribute [rw] name
1108
+ # Name of the trail set by calling CreateTrail. The maximum length is
1109
+ # 128 characters.
1110
+ # @return [String]
1111
+ #
1112
+ # @!attribute [rw] s3_bucket_name
1113
+ # Name of the Amazon S3 bucket into which CloudTrail delivers your
1114
+ # trail files. See [Amazon S3 Bucket Naming Requirements][1].
1115
+ #
1116
+ #
1117
+ #
1118
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html
1119
+ # @return [String]
1120
+ #
1121
+ # @!attribute [rw] s3_key_prefix
1122
+ # Specifies the Amazon S3 key prefix that comes after the name of the
1123
+ # bucket you have designated for log file delivery. For more
1124
+ # information, see [Finding Your CloudTrail Log Files][1].The maximum
1125
+ # length is 200 characters.
1126
+ #
1127
+ #
1128
+ #
1129
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html
1130
+ # @return [String]
1131
+ #
1132
+ # @!attribute [rw] sns_topic_name
1133
+ # This field is deprecated. Use SnsTopicARN.
1134
+ # @return [String]
1135
+ #
1136
+ # @!attribute [rw] sns_topic_arn
1137
+ # Specifies the ARN of the Amazon SNS topic that CloudTrail uses to
1138
+ # send notifications when log files are delivered. The format of a
1139
+ # topic ARN is:
1140
+ #
1141
+ # `arn:aws:sns:us-east-1:123456789012:MyTopic`
1142
+ # @return [String]
1143
+ #
1144
+ # @!attribute [rw] include_global_service_events
1145
+ # Set to **True** to include AWS API calls from AWS global services
1146
+ # such as IAM. Otherwise, **False**.
1147
+ # @return [Boolean]
1148
+ #
1149
+ # @!attribute [rw] is_multi_region_trail
1150
+ # Specifies whether the trail belongs only to one region or exists in
1151
+ # all regions.
1152
+ # @return [Boolean]
1153
+ #
1154
+ # @!attribute [rw] home_region
1155
+ # The region in which the trail was created.
1156
+ # @return [String]
1157
+ #
1158
+ # @!attribute [rw] trail_arn
1159
+ # Specifies the ARN of the trail. The format of a trail ARN is:
1160
+ #
1161
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
1162
+ # @return [String]
1163
+ #
1164
+ # @!attribute [rw] log_file_validation_enabled
1165
+ # Specifies whether log file validation is enabled.
1166
+ # @return [Boolean]
1167
+ #
1168
+ # @!attribute [rw] cloud_watch_logs_log_group_arn
1169
+ # Specifies an Amazon Resource Name (ARN), a unique identifier that
1170
+ # represents the log group to which CloudTrail logs will be delivered.
1171
+ # @return [String]
1172
+ #
1173
+ # @!attribute [rw] cloud_watch_logs_role_arn
1174
+ # Specifies the role for the CloudWatch Logs endpoint to assume to
1175
+ # write to a user's log group.
1176
+ # @return [String]
1177
+ #
1178
+ # @!attribute [rw] kms_key_id
1179
+ # Specifies the KMS key ID that encrypts the logs delivered by
1180
+ # CloudTrail. The value is a fully specified ARN to a KMS key in the
1181
+ # format:
1182
+ #
1183
+ # `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012`
1184
+ # @return [String]
1185
+ #
1186
+ # @!attribute [rw] has_custom_event_selectors
1187
+ # Specifies if the trail has custom event selectors.
1188
+ # @return [Boolean]
1189
+ class Trail < Struct.new(
1190
+ :name,
1191
+ :s3_bucket_name,
1192
+ :s3_key_prefix,
1193
+ :sns_topic_name,
1194
+ :sns_topic_arn,
1195
+ :include_global_service_events,
1196
+ :is_multi_region_trail,
1197
+ :home_region,
1198
+ :trail_arn,
1199
+ :log_file_validation_enabled,
1200
+ :cloud_watch_logs_log_group_arn,
1201
+ :cloud_watch_logs_role_arn,
1202
+ :kms_key_id,
1203
+ :has_custom_event_selectors)
1204
+ include Aws::Structure
1205
+ end
1206
+
1207
+ # Specifies settings to update for the trail.
1208
+ # @note When making an API call, pass UpdateTrailRequest
1209
+ # data as a hash:
1210
+ #
1211
+ # {
1212
+ # name: "String", # required
1213
+ # s3_bucket_name: "String",
1214
+ # s3_key_prefix: "String",
1215
+ # sns_topic_name: "String",
1216
+ # include_global_service_events: false,
1217
+ # is_multi_region_trail: false,
1218
+ # enable_log_file_validation: false,
1219
+ # cloud_watch_logs_log_group_arn: "String",
1220
+ # cloud_watch_logs_role_arn: "String",
1221
+ # kms_key_id: "String",
1222
+ # }
1223
+ # @!attribute [rw] name
1224
+ # Specifies the name of the trail or trail ARN. If `Name` is a trail
1225
+ # name, the string must meet the following requirements:
1226
+ #
1227
+ # * Contain only ASCII letters (a-z, A-Z), numbers (0-9), periods (.),
1228
+ # underscores (\_), or dashes (-)
1229
+ #
1230
+ # * Start with a letter or number, and end with a letter or number
1231
+ #
1232
+ # * Be between 3 and 128 characters
1233
+ #
1234
+ # * Have no adjacent periods, underscores or dashes. Names like
1235
+ # `my-_namespace` and `my--namespace` are invalid.
1236
+ #
1237
+ # * Not be in IP address format (for example, 192.168.5.4)
1238
+ #
1239
+ # If `Name` is a trail ARN, it must be in the format:
1240
+ #
1241
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
1242
+ # @return [String]
1243
+ #
1244
+ # @!attribute [rw] s3_bucket_name
1245
+ # Specifies the name of the Amazon S3 bucket designated for publishing
1246
+ # log files. See [Amazon S3 Bucket Naming Requirements][1].
1247
+ #
1248
+ #
1249
+ #
1250
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/create_trail_naming_policy.html
1251
+ # @return [String]
1252
+ #
1253
+ # @!attribute [rw] s3_key_prefix
1254
+ # Specifies the Amazon S3 key prefix that comes after the name of the
1255
+ # bucket you have designated for log file delivery. For more
1256
+ # information, see [Finding Your CloudTrail Log Files][1]. The maximum
1257
+ # length is 200 characters.
1258
+ #
1259
+ #
1260
+ #
1261
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html
1262
+ # @return [String]
1263
+ #
1264
+ # @!attribute [rw] sns_topic_name
1265
+ # Specifies the name of the Amazon SNS topic defined for notification
1266
+ # of log file delivery. The maximum length is 256 characters.
1267
+ # @return [String]
1268
+ #
1269
+ # @!attribute [rw] include_global_service_events
1270
+ # Specifies whether the trail is publishing events from global
1271
+ # services such as IAM to the log files.
1272
+ # @return [Boolean]
1273
+ #
1274
+ # @!attribute [rw] is_multi_region_trail
1275
+ # Specifies whether the trail applies only to the current region or to
1276
+ # all regions. The default is false. If the trail exists only in the
1277
+ # current region and this value is set to true, shadow trails
1278
+ # (replications of the trail) will be created in the other regions. If
1279
+ # the trail exists in all regions and this value is set to false, the
1280
+ # trail will remain in the region where it was created, and its shadow
1281
+ # trails in other regions will be deleted.
1282
+ # @return [Boolean]
1283
+ #
1284
+ # @!attribute [rw] enable_log_file_validation
1285
+ # Specifies whether log file validation is enabled. The default is
1286
+ # false.
1287
+ #
1288
+ # <note markdown="1"> When you disable log file integrity validation, the chain of digest
1289
+ # files is broken after one hour. CloudTrail will not create digest
1290
+ # files for log files that were delivered during a period in which log
1291
+ # file integrity validation was disabled. For example, if you enable
1292
+ # log file integrity validation at noon on January 1, disable it at
1293
+ # noon on January 2, and re-enable it at noon on January 10, digest
1294
+ # files will not be created for the log files delivered from noon on
1295
+ # January 2 to noon on January 10. The same applies whenever you stop
1296
+ # CloudTrail logging or delete a trail.
1297
+ #
1298
+ # </note>
1299
+ # @return [Boolean]
1300
+ #
1301
+ # @!attribute [rw] cloud_watch_logs_log_group_arn
1302
+ # Specifies a log group name using an Amazon Resource Name (ARN), a
1303
+ # unique identifier that represents the log group to which CloudTrail
1304
+ # logs will be delivered. Not required unless you specify
1305
+ # CloudWatchLogsRoleArn.
1306
+ # @return [String]
1307
+ #
1308
+ # @!attribute [rw] cloud_watch_logs_role_arn
1309
+ # Specifies the role for the CloudWatch Logs endpoint to assume to
1310
+ # write to a user's log group.
1311
+ # @return [String]
1312
+ #
1313
+ # @!attribute [rw] kms_key_id
1314
+ # Specifies the KMS key ID to use to encrypt the logs delivered by
1315
+ # CloudTrail. The value can be a an alias name prefixed by "alias/",
1316
+ # a fully specified ARN to an alias, a fully specified ARN to a key,
1317
+ # or a globally unique identifier.
1318
+ #
1319
+ # Examples:
1320
+ #
1321
+ # * alias/MyAliasName
1322
+ #
1323
+ # * arn:aws:kms:us-east-1:123456789012:alias/MyAliasName
1324
+ #
1325
+ # * arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012
1326
+ #
1327
+ # * 12345678-1234-1234-1234-123456789012
1328
+ # @return [String]
1329
+ class UpdateTrailRequest < Struct.new(
1330
+ :name,
1331
+ :s3_bucket_name,
1332
+ :s3_key_prefix,
1333
+ :sns_topic_name,
1334
+ :include_global_service_events,
1335
+ :is_multi_region_trail,
1336
+ :enable_log_file_validation,
1337
+ :cloud_watch_logs_log_group_arn,
1338
+ :cloud_watch_logs_role_arn,
1339
+ :kms_key_id)
1340
+ include Aws::Structure
1341
+ end
1342
+
1343
+ # Returns the objects or data listed below if successful. Otherwise,
1344
+ # returns an error.
1345
+ # @!attribute [rw] name
1346
+ # Specifies the name of the trail.
1347
+ # @return [String]
1348
+ #
1349
+ # @!attribute [rw] s3_bucket_name
1350
+ # Specifies the name of the Amazon S3 bucket designated for publishing
1351
+ # log files.
1352
+ # @return [String]
1353
+ #
1354
+ # @!attribute [rw] s3_key_prefix
1355
+ # Specifies the Amazon S3 key prefix that comes after the name of the
1356
+ # bucket you have designated for log file delivery. For more
1357
+ # information, see [Finding Your CloudTrail Log Files][1].
1358
+ #
1359
+ #
1360
+ #
1361
+ # [1]: http://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-find-log-files.html
1362
+ # @return [String]
1363
+ #
1364
+ # @!attribute [rw] sns_topic_name
1365
+ # This field is deprecated. Use SnsTopicARN.
1366
+ # @return [String]
1367
+ #
1368
+ # @!attribute [rw] sns_topic_arn
1369
+ # Specifies the ARN of the Amazon SNS topic that CloudTrail uses to
1370
+ # send notifications when log files are delivered. The format of a
1371
+ # topic ARN is:
1372
+ #
1373
+ # `arn:aws:sns:us-east-1:123456789012:MyTopic`
1374
+ # @return [String]
1375
+ #
1376
+ # @!attribute [rw] include_global_service_events
1377
+ # Specifies whether the trail is publishing events from global
1378
+ # services such as IAM to the log files.
1379
+ # @return [Boolean]
1380
+ #
1381
+ # @!attribute [rw] is_multi_region_trail
1382
+ # Specifies whether the trail exists in one region or in all regions.
1383
+ # @return [Boolean]
1384
+ #
1385
+ # @!attribute [rw] trail_arn
1386
+ # Specifies the ARN of the trail that was updated. The format of a
1387
+ # trail ARN is:
1388
+ #
1389
+ # `arn:aws:cloudtrail:us-east-1:123456789012:trail/MyTrail`
1390
+ # @return [String]
1391
+ #
1392
+ # @!attribute [rw] log_file_validation_enabled
1393
+ # Specifies whether log file integrity validation is enabled.
1394
+ # @return [Boolean]
1395
+ #
1396
+ # @!attribute [rw] cloud_watch_logs_log_group_arn
1397
+ # Specifies the Amazon Resource Name (ARN) of the log group to which
1398
+ # CloudTrail logs will be delivered.
1399
+ # @return [String]
1400
+ #
1401
+ # @!attribute [rw] cloud_watch_logs_role_arn
1402
+ # Specifies the role for the CloudWatch Logs endpoint to assume to
1403
+ # write to a user's log group.
1404
+ # @return [String]
1405
+ #
1406
+ # @!attribute [rw] kms_key_id
1407
+ # Specifies the KMS key ID that encrypts the logs delivered by
1408
+ # CloudTrail. The value is a fully specified ARN to a KMS key in the
1409
+ # format:
1410
+ #
1411
+ # `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012`
1412
+ # @return [String]
1413
+ class UpdateTrailResponse < Struct.new(
1414
+ :name,
1415
+ :s3_bucket_name,
1416
+ :s3_key_prefix,
1417
+ :sns_topic_name,
1418
+ :sns_topic_arn,
1419
+ :include_global_service_events,
1420
+ :is_multi_region_trail,
1421
+ :trail_arn,
1422
+ :log_file_validation_enabled,
1423
+ :cloud_watch_logs_log_group_arn,
1424
+ :cloud_watch_logs_role_arn,
1425
+ :kms_key_id)
1426
+ include Aws::Structure
1427
+ end
1428
+
1429
+ end
1430
+ end
1431
+ end