aws-sdk-cloudtrail 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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