packages feed

amazonka-cloudtrail 0.3.6 → 1.0.0

raw patch · 19 files changed

+2160/−1394 lines, 19 filesdep +amazonka-cloudtraildep +amazonka-testdep +bytestringdep ~amazonka-coredep ~basePVP ok

version bump matches the API change (PVP)

Dependencies added: amazonka-cloudtrail, amazonka-test, bytestring, lens, tasty, tasty-hunit, text, time, unordered-containers

Dependency ranges changed: amazonka-core, base

API changes (from Hackage documentation)

- Network.AWS.CloudTrail.CreateTrail: ctCloudWatchLogsLogGroupArn :: Lens' CreateTrail (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctCloudWatchLogsRoleArn :: Lens' CreateTrail (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctSnsTopicName :: Lens' CreateTrail (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrCloudWatchLogsLogGroupArn :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrCloudWatchLogsRoleArn :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrIncludeGlobalServiceEvents :: Lens' CreateTrailResponse (Maybe Bool)
- Network.AWS.CloudTrail.CreateTrail: ctrName :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrS3BucketName :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrS3KeyPrefix :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: ctrSnsTopicName :: Lens' CreateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.CreateTrail: instance FromJSON CreateTrailResponse
- Network.AWS.CloudTrail.CreateTrail: instance Ord CreateTrail
- Network.AWS.CloudTrail.CreateTrail: instance Ord CreateTrailResponse
- Network.AWS.CloudTrail.DeleteTrail: instance IsString DeleteTrail
- Network.AWS.CloudTrail.DeleteTrail: instance Monoid DeleteTrail
- Network.AWS.CloudTrail.DeleteTrail: instance Ord DeleteTrail
- Network.AWS.CloudTrail.DeleteTrail: instance Ord DeleteTrailResponse
- Network.AWS.CloudTrail.DescribeTrails: dtrTrailList :: Lens' DescribeTrailsResponse [Trail]
- Network.AWS.CloudTrail.DescribeTrails: instance FromJSON DescribeTrailsResponse
- Network.AWS.CloudTrail.DescribeTrails: instance IsList DescribeTrails
- Network.AWS.CloudTrail.DescribeTrails: instance IsList DescribeTrailsResponse
- Network.AWS.CloudTrail.DescribeTrails: instance Monoid DescribeTrails
- Network.AWS.CloudTrail.DescribeTrails: instance Monoid DescribeTrailsResponse
- Network.AWS.CloudTrail.DescribeTrails: instance Ord DescribeTrails
- Network.AWS.CloudTrail.DescribeTrails: instance Semigroup DescribeTrails
- Network.AWS.CloudTrail.DescribeTrails: instance Semigroup DescribeTrailsResponse
- Network.AWS.CloudTrail.GetTrailStatus: gtsrIsLogging :: Lens' GetTrailStatusResponse (Maybe Bool)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestCloudWatchLogsDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestCloudWatchLogsDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestNotificationError :: Lens' GetTrailStatusResponse (Maybe Text)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrLatestNotificationTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrStartLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
- Network.AWS.CloudTrail.GetTrailStatus: gtsrStopLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
- Network.AWS.CloudTrail.GetTrailStatus: instance FromJSON GetTrailStatusResponse
- Network.AWS.CloudTrail.GetTrailStatus: instance IsString GetTrailStatus
- Network.AWS.CloudTrail.GetTrailStatus: instance Monoid GetTrailStatus
- Network.AWS.CloudTrail.GetTrailStatus: instance Ord GetTrailStatus
- Network.AWS.CloudTrail.GetTrailStatus: instance Ord GetTrailStatusResponse
- Network.AWS.CloudTrail.LookupEvents: instance FromJSON LookupEventsResponse
- Network.AWS.CloudTrail.LookupEvents: lerEvents :: Lens' LookupEventsResponse [Event]
- Network.AWS.CloudTrail.LookupEvents: lerNextToken :: Lens' LookupEventsResponse (Maybe Text)
- Network.AWS.CloudTrail.StartLogging: instance IsString StartLogging
- Network.AWS.CloudTrail.StartLogging: instance Monoid StartLogging
- Network.AWS.CloudTrail.StartLogging: instance Ord StartLogging
- Network.AWS.CloudTrail.StartLogging: instance Ord StartLoggingResponse
- Network.AWS.CloudTrail.StartLogging: sl1Name :: Lens' StartLogging Text
- Network.AWS.CloudTrail.StopLogging: instance IsString StopLogging
- Network.AWS.CloudTrail.StopLogging: instance Monoid StopLogging
- Network.AWS.CloudTrail.StopLogging: instance Ord StopLogging
- Network.AWS.CloudTrail.StopLogging: instance Ord StopLoggingResponse
- Network.AWS.CloudTrail.Types: data JSONError :: *
- Network.AWS.CloudTrail.Types: instance Constructor C1_0LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Constructor C1_1LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Constructor C1_2LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Constructor C1_3LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Constructor C1_4LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Datatype D1LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Enum LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Eq Event
- Network.AWS.CloudTrail.Types: instance Eq LookupAttribute
- Network.AWS.CloudTrail.Types: instance Eq LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Eq Resource
- Network.AWS.CloudTrail.Types: instance Eq Trail
- Network.AWS.CloudTrail.Types: instance FromJSON Event
- Network.AWS.CloudTrail.Types: instance FromJSON LookupAttribute
- Network.AWS.CloudTrail.Types: instance FromJSON LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance FromJSON Resource
- Network.AWS.CloudTrail.Types: instance FromJSON Trail
- Network.AWS.CloudTrail.Types: instance FromText LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Generic LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Hashable LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Ord LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Ord Resource
- Network.AWS.CloudTrail.Types: instance Ord Trail
- Network.AWS.CloudTrail.Types: instance Read Event
- Network.AWS.CloudTrail.Types: instance Read LookupAttribute
- Network.AWS.CloudTrail.Types: instance Read LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Read Resource
- Network.AWS.CloudTrail.Types: instance Read Trail
- Network.AWS.CloudTrail.Types: instance Show Event
- Network.AWS.CloudTrail.Types: instance Show LookupAttribute
- Network.AWS.CloudTrail.Types: instance Show LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance Show Resource
- Network.AWS.CloudTrail.Types: instance Show Trail
- Network.AWS.CloudTrail.Types: instance ToByteString LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance ToHeader LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance ToJSON Event
- Network.AWS.CloudTrail.Types: instance ToJSON LookupAttribute
- Network.AWS.CloudTrail.Types: instance ToJSON LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance ToJSON Resource
- Network.AWS.CloudTrail.Types: instance ToJSON Trail
- Network.AWS.CloudTrail.Types: instance ToQuery LookupAttributeKey
- Network.AWS.CloudTrail.Types: instance ToText LookupAttributeKey
- Network.AWS.CloudTrail.Types: tCloudWatchLogsLogGroupArn :: Lens' Trail (Maybe Text)
- Network.AWS.CloudTrail.Types: tCloudWatchLogsRoleArn :: Lens' Trail (Maybe Text)
- Network.AWS.CloudTrail.Types: tSnsTopicName :: Lens' Trail (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: instance FromJSON UpdateTrailResponse
- Network.AWS.CloudTrail.UpdateTrail: instance Ord UpdateTrail
- Network.AWS.CloudTrail.UpdateTrail: instance Ord UpdateTrailResponse
- Network.AWS.CloudTrail.UpdateTrail: utCloudWatchLogsLogGroupArn :: Lens' UpdateTrail (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utCloudWatchLogsRoleArn :: Lens' UpdateTrail (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utSnsTopicName :: Lens' UpdateTrail (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrCloudWatchLogsLogGroupArn :: Lens' UpdateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrCloudWatchLogsRoleArn :: Lens' UpdateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrIncludeGlobalServiceEvents :: Lens' UpdateTrailResponse (Maybe Bool)
- Network.AWS.CloudTrail.UpdateTrail: utrName :: Lens' UpdateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrS3BucketName :: Lens' UpdateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrS3KeyPrefix :: Lens' UpdateTrailResponse (Maybe Text)
- Network.AWS.CloudTrail.UpdateTrail: utrSnsTopicName :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail: EventId :: LookupAttributeKey
+ Network.AWS.CloudTrail: EventName :: LookupAttributeKey
+ Network.AWS.CloudTrail: ResourceName :: LookupAttributeKey
+ Network.AWS.CloudTrail: ResourceType :: LookupAttributeKey
+ Network.AWS.CloudTrail: Username :: LookupAttributeKey
+ Network.AWS.CloudTrail: _CloudWatchLogsDeliveryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InsufficientS3BucketPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InsufficientSNSTopicPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidCloudWatchLogsLogGroupARNException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidCloudWatchLogsRoleARNException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidLookupAttributesException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidMaxResultsException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidS3BucketNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidS3PrefixException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidSNSTopicNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _InvalidTrailNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _MaximumNumberOfTrailsExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _S3BucketDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _TrailAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: _TrailNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail: data CloudTrail
+ Network.AWS.CloudTrail: data Event
+ Network.AWS.CloudTrail: data LookupAttribute
+ Network.AWS.CloudTrail: data LookupAttributeKey
+ Network.AWS.CloudTrail: data Resource
+ Network.AWS.CloudTrail: data Trail
+ Network.AWS.CloudTrail: eCloudTrailEvent :: Lens' Event (Maybe Text)
+ Network.AWS.CloudTrail: eEventId :: Lens' Event (Maybe Text)
+ Network.AWS.CloudTrail: eEventName :: Lens' Event (Maybe Text)
+ Network.AWS.CloudTrail: eEventTime :: Lens' Event (Maybe UTCTime)
+ Network.AWS.CloudTrail: eResources :: Lens' Event [Resource]
+ Network.AWS.CloudTrail: eUsername :: Lens' Event (Maybe Text)
+ Network.AWS.CloudTrail: event :: Event
+ Network.AWS.CloudTrail: laAttributeKey :: Lens' LookupAttribute LookupAttributeKey
+ Network.AWS.CloudTrail: laAttributeValue :: Lens' LookupAttribute Text
+ Network.AWS.CloudTrail: lookupAttribute :: LookupAttributeKey -> Text -> LookupAttribute
+ Network.AWS.CloudTrail: rResourceName :: Lens' Resource (Maybe Text)
+ Network.AWS.CloudTrail: rResourceType :: Lens' Resource (Maybe Text)
+ Network.AWS.CloudTrail: resource :: Resource
+ Network.AWS.CloudTrail: tCloudWatchLogsLogGroupARN :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: tCloudWatchLogsRoleARN :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: tIncludeGlobalServiceEvents :: Lens' Trail (Maybe Bool)
+ Network.AWS.CloudTrail: tName :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: tS3BucketName :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: tS3KeyPrefix :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: tSNSTopicName :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail: trail :: Trail
+ Network.AWS.CloudTrail.CreateTrail: ctCloudWatchLogsLogGroupARN :: Lens' CreateTrail (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctCloudWatchLogsRoleARN :: Lens' CreateTrail (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctSNSTopicName :: Lens' CreateTrail (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsCloudWatchLogsLogGroupARN :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsCloudWatchLogsRoleARN :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsIncludeGlobalServiceEvents :: Lens' CreateTrailResponse (Maybe Bool)
+ Network.AWS.CloudTrail.CreateTrail: ctrsName :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsS3BucketName :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsS3KeyPrefix :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsSNSTopicName :: Lens' CreateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.CreateTrail: ctrsStatus :: Lens' CreateTrailResponse Int
+ Network.AWS.CloudTrail.CreateTrail: instance Constructor C1_0CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Constructor C1_0CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Data CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Data CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Datatype D1CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Datatype D1CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Generic CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Generic CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_0CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_0CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_1CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_1CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_2CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_2CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_3CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_3CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_4CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_4CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_5CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_5CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_6CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_6CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Selector S1_0_7CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: instance Typeable CreateTrail
+ Network.AWS.CloudTrail.CreateTrail: instance Typeable CreateTrailResponse
+ Network.AWS.CloudTrail.DeleteTrail: drsStatus :: Lens' DeleteTrailResponse Int
+ Network.AWS.CloudTrail.DeleteTrail: instance Constructor C1_0DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Data DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Data DeleteTrailResponse
+ Network.AWS.CloudTrail.DeleteTrail: instance Datatype D1DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Generic DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Selector S1_0_0DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Selector S1_0_0DeleteTrailResponse
+ Network.AWS.CloudTrail.DeleteTrail: instance Typeable DeleteTrail
+ Network.AWS.CloudTrail.DeleteTrail: instance Typeable DeleteTrailResponse
+ Network.AWS.CloudTrail.DescribeTrails: dtrsStatus :: Lens' DescribeTrailsResponse Int
+ Network.AWS.CloudTrail.DescribeTrails: dtrsTrailList :: Lens' DescribeTrailsResponse [Trail]
+ Network.AWS.CloudTrail.DescribeTrails: instance Constructor C1_0DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Constructor C1_0DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Data DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Data DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Datatype D1DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Datatype D1DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Generic DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Generic DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Selector S1_0_0DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Selector S1_0_0DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Selector S1_0_1DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: instance Typeable DescribeTrails
+ Network.AWS.CloudTrail.DescribeTrails: instance Typeable DescribeTrailsResponse
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsIsLogging :: Lens' GetTrailStatusResponse (Maybe Bool)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestCloudWatchLogsDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestCloudWatchLogsDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestNotificationError :: Lens' GetTrailStatusResponse (Maybe Text)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsLatestNotificationTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsStartLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsStatus :: Lens' GetTrailStatusResponse Int
+ Network.AWS.CloudTrail.GetTrailStatus: gtsrsStopLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)
+ Network.AWS.CloudTrail.GetTrailStatus: instance Constructor C1_0GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Constructor C1_0GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Data GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Data GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Datatype D1GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Datatype D1GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Generic GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Generic GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_0GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_0GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_1GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_2GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_3GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_4GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_5GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_6GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_7GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_8GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Selector S1_0_9GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: instance Typeable GetTrailStatus
+ Network.AWS.CloudTrail.GetTrailStatus: instance Typeable GetTrailStatusResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Constructor C1_0LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Constructor C1_0LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Data LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Data LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Datatype D1LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Datatype D1LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Generic LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Generic LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_0LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_0LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_1LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_1LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_2LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_2LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_3LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Selector S1_0_4LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Typeable LookupEvents
+ Network.AWS.CloudTrail.LookupEvents: instance Typeable LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: lersEvents :: Lens' LookupEventsResponse [Event]
+ Network.AWS.CloudTrail.LookupEvents: lersNextToken :: Lens' LookupEventsResponse (Maybe Text)
+ Network.AWS.CloudTrail.LookupEvents: lersStatus :: Lens' LookupEventsResponse Int
+ Network.AWS.CloudTrail.StartLogging: instance Constructor C1_0StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Data StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Data StartLoggingResponse
+ Network.AWS.CloudTrail.StartLogging: instance Datatype D1StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Generic StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Selector S1_0_0StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Selector S1_0_0StartLoggingResponse
+ Network.AWS.CloudTrail.StartLogging: instance Typeable StartLogging
+ Network.AWS.CloudTrail.StartLogging: instance Typeable StartLoggingResponse
+ Network.AWS.CloudTrail.StartLogging: sName :: Lens' StartLogging Text
+ Network.AWS.CloudTrail.StartLogging: srsStatus :: Lens' StartLoggingResponse Int
+ Network.AWS.CloudTrail.StopLogging: instance Constructor C1_0StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Data StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Data StopLoggingResponse
+ Network.AWS.CloudTrail.StopLogging: instance Datatype D1StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Generic StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Selector S1_0_0StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Selector S1_0_0StopLoggingResponse
+ Network.AWS.CloudTrail.StopLogging: instance Typeable StopLogging
+ Network.AWS.CloudTrail.StopLogging: instance Typeable StopLoggingResponse
+ Network.AWS.CloudTrail.StopLogging: slrsStatus :: Lens' StopLoggingResponse Int
+ Network.AWS.CloudTrail.Types: _CloudWatchLogsDeliveryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InsufficientS3BucketPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InsufficientSNSTopicPolicyException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidCloudWatchLogsLogGroupARNException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidCloudWatchLogsRoleARNException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidLookupAttributesException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidMaxResultsException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidS3BucketNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidS3PrefixException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidSNSTopicNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _InvalidTrailNameException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _MaximumNumberOfTrailsExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _S3BucketDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _TrailAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: _TrailNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
+ Network.AWS.CloudTrail.Types: tCloudWatchLogsLogGroupARN :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail.Types: tCloudWatchLogsRoleARN :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail.Types: tSNSTopicName :: Lens' Trail (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: instance Constructor C1_0UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Constructor C1_0UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Data UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Data UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Datatype D1UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Datatype D1UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Generic UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Generic UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_0UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_0UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_1UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_1UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_2UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_2UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_3UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_3UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_4UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_4UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_5UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_5UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_6UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_6UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Selector S1_0_7UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: instance Typeable UpdateTrail
+ Network.AWS.CloudTrail.UpdateTrail: instance Typeable UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: utCloudWatchLogsLogGroupARN :: Lens' UpdateTrail (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utCloudWatchLogsRoleARN :: Lens' UpdateTrail (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utSNSTopicName :: Lens' UpdateTrail (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsCloudWatchLogsLogGroupARN :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsCloudWatchLogsRoleARN :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsIncludeGlobalServiceEvents :: Lens' UpdateTrailResponse (Maybe Bool)
+ Network.AWS.CloudTrail.UpdateTrail: utrsName :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsS3BucketName :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsS3KeyPrefix :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsSNSTopicName :: Lens' UpdateTrailResponse (Maybe Text)
+ Network.AWS.CloudTrail.UpdateTrail: utrsStatus :: Lens' UpdateTrailResponse Int
- Network.AWS.CloudTrail.CreateTrail: createTrailResponse :: CreateTrailResponse
+ Network.AWS.CloudTrail.CreateTrail: createTrailResponse :: Int -> CreateTrailResponse
- Network.AWS.CloudTrail.DeleteTrail: deleteTrailResponse :: DeleteTrailResponse
+ Network.AWS.CloudTrail.DeleteTrail: deleteTrailResponse :: Int -> DeleteTrailResponse
- Network.AWS.CloudTrail.DescribeTrails: describeTrailsResponse :: DescribeTrailsResponse
+ Network.AWS.CloudTrail.DescribeTrails: describeTrailsResponse :: Int -> DescribeTrailsResponse
- Network.AWS.CloudTrail.GetTrailStatus: getTrailStatusResponse :: GetTrailStatusResponse
+ Network.AWS.CloudTrail.GetTrailStatus: getTrailStatusResponse :: Int -> GetTrailStatusResponse
- Network.AWS.CloudTrail.LookupEvents: lookupEventsResponse :: LookupEventsResponse
+ Network.AWS.CloudTrail.LookupEvents: lookupEventsResponse :: Int -> LookupEventsResponse
- Network.AWS.CloudTrail.StartLogging: startLoggingResponse :: StartLoggingResponse
+ Network.AWS.CloudTrail.StartLogging: startLoggingResponse :: Int -> StartLoggingResponse
- Network.AWS.CloudTrail.StopLogging: stopLoggingResponse :: StopLoggingResponse
+ Network.AWS.CloudTrail.StopLogging: stopLoggingResponse :: Int -> StopLoggingResponse
- Network.AWS.CloudTrail.UpdateTrail: updateTrailResponse :: UpdateTrailResponse
+ Network.AWS.CloudTrail.UpdateTrail: updateTrailResponse :: Int -> UpdateTrailResponse

Files

README.md view
@@ -1,22 +1,53 @@ # Amazon CloudTrail SDK -> _Warning:_ This is an experimental preview release which is still under heavy development and not intended for public consumption, _caveat emptor_!-+* [Version](#version) * [Description](#description) * [Contribute](#contribute) * [Licence](#licence) ++## Version++`1.0.0`++ ## Description -CloudTrail is a web service that records AWS API calls for your AWS account-and delivers log files to an Amazon S3 bucket. The recorded information-includes the identity of the user, the start time of the AWS API call, the-source IP address, the request parameters, and the response elements returned-by the service.+AWS CloudTrail +This is the CloudTrail API Reference. It provides descriptions of+actions, data types, common parameters, and common errors for+CloudTrail.++CloudTrail is a web service that records AWS API calls for your AWS+account and delivers log files to an Amazon S3 bucket. The recorded+information includes the identity of the user, the start time of the AWS+API call, the source IP address, the request parameters, and the+response elements returned by the service.++As an alternative to using the API, you can use one of the AWS SDKs,+which consist of libraries and sample code for various programming+languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs+provide a convenient way to create programmatic access to AWSCloudTrail.+For example, the SDKs take care of cryptographically signing requests,+managing errors, and retrying requests automatically. For information+about the AWS SDKs, including how to download and install them, see the+<http://aws.amazon.com/tools/ Tools for Amazon Web Services page>.++See the CloudTrail User Guide for information about the data that is+included with each AWS API call listed in the log files.+ Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-cloudtrail) and the [AWS API Reference](http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/Welcome.html). +The types from this library are intended to be used with [amazonka](http://hackage.haskell.org/package/amazonka),+which provides mechanisms for specifying AuthN/AuthZ information and sending requests.++Use of lenses is required for constructing and manipulating types.+This is due to the amount of nesting of AWS types and transparency regarding+de/serialisation into more palatable Haskell values.+The provided lenses should be compatible with any of the major lens libraries+[lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).  ## Contribute 
amazonka-cloudtrail.cabal view
@@ -1,29 +1,55 @@ name:                  amazonka-cloudtrail-version:               0.3.6+version:               1.0.0 synopsis:              Amazon CloudTrail SDK. homepage:              https://github.com/brendanhay/amazonka license:               OtherLicense license-file:          LICENSE author:                Brendan Hay maintainer:            Brendan Hay <brendan.g.hay@gmail.com>-copyright:             Copyright (c) 2013-2014 Brendan Hay+copyright:             Copyright (c) 2013-2015 Brendan Hay category:              Network, AWS, Cloud, Distributed Computing build-type:            Simple extra-source-files:    README.md cabal-version:         >= 1.10  description:-    CloudTrail is a web service that records AWS API calls for your AWS account-    and delivers log files to an Amazon S3 bucket. The recorded information-    includes the identity of the user, the start time of the AWS API call, the-    source IP address, the request parameters, and the response elements returned-    by the service.+    AWS CloudTrail +    This is the CloudTrail API Reference. It provides descriptions of+    actions, data types, common parameters, and common errors for+    CloudTrail.++    CloudTrail is a web service that records AWS API calls for your AWS+    account and delivers log files to an Amazon S3 bucket. The recorded+    information includes the identity of the user, the start time of the AWS+    API call, the source IP address, the request parameters, and the+    response elements returned by the service.++    As an alternative to using the API, you can use one of the AWS SDKs,+    which consist of libraries and sample code for various programming+    languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs+    provide a convenient way to create programmatic access to AWSCloudTrail.+    For example, the SDKs take care of cryptographically signing requests,+    managing errors, and retrying requests automatically. For information+    about the AWS SDKs, including how to download and install them, see the+    <http://aws.amazon.com/tools/ Tools for Amazon Web Services page>.++    See the CloudTrail User Guide for information about the data that is+    included with each AWS API call listed in the log files.     .-    /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/Welcome.html AWS API Reference>+    The types from this library are intended to be used with+    <http://hackage.haskell.org/package/amazonka amazonka>, which provides+    mechanisms for specifying AuthN/AuthZ information and sending requests.     .-    /Warning:/ This is an experimental preview release which is still under-    heavy development and not intended for public consumption, caveat emptor!+    Use of lenses is required for constructing and manipulating types.+    This is due to the amount of nesting of AWS types and transparency regarding+    de/serialisation into more palatable Haskell values.+    The provided lenses should be compatible with any of the major lens libraries+    such as <http://hackage.haskell.org/package/lens lens> or+    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.+    .+    See "Network.AWS.CloudTrail" and the <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/Welcome.html AWS API Reference>+    to get started.  source-repository head     type:     git@@ -46,9 +72,40 @@         , Network.AWS.CloudTrail.StopLogging         , Network.AWS.CloudTrail.Types         , Network.AWS.CloudTrail.UpdateTrail+        , Network.AWS.CloudTrail.Waiters      other-modules:+          Network.AWS.CloudTrail.Types.Product+        , Network.AWS.CloudTrail.Types.Sum      build-depends:-          amazonka-core == 0.3.6.*+          amazonka-core == 1.0.0.*         , base          >= 4.7     && < 5++test-suite amazonka-cloudtrail-test+    type:              exitcode-stdio-1.0+    default-language:  Haskell2010+    hs-source-dirs:    test+    main-is:           Main.hs++    ghc-options:       -Wall -threaded++    -- This is not comprehensive if modules have manually been added.+    -- It exists to ensure cabal 'somewhat' detects test module changes.+    other-modules:+          Test.AWS.CloudTrail+        , Test.AWS.Gen.CloudTrail+        , Test.AWS.CloudTrail.Internal++    build-depends:+          amazonka-core == 1.0.0+        , amazonka-test == 1.0.0+        , amazonka-cloudtrail == 1.0.0+        , base+        , bytestring+        , lens+        , tasty+        , tasty-hunit+        , text+        , time+        , unordered-containers
gen/Network/AWS/CloudTrail.hs view
@@ -1,38 +1,206 @@+{-# OPTIONS_GHC -fno-warn-unused-imports    #-}+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | CloudTrail is a web service that records AWS API calls for your AWS account--- and delivers log files to an Amazon S3 bucket. The recorded information--- includes the identity of the user, the start time of the AWS API call, the--- source IP address, the request parameters, and the response elements returned--- by the service.+-- AWS CloudTrail+--+-- This is the CloudTrail API Reference. It provides descriptions of+-- actions, data types, common parameters, and common errors for+-- CloudTrail.+--+-- CloudTrail is a web service that records AWS API calls for your AWS+-- account and delivers log files to an Amazon S3 bucket. The recorded+-- information includes the identity of the user, the start time of the AWS+-- API call, the source IP address, the request parameters, and the+-- response elements returned by the service.+--+-- As an alternative to using the API, you can use one of the AWS SDKs,+-- which consist of libraries and sample code for various programming+-- languages and platforms (Java, Ruby, .NET, iOS, Android, etc.). The SDKs+-- provide a convenient way to create programmatic access to AWSCloudTrail.+-- For example, the SDKs take care of cryptographically signing requests,+-- managing errors, and retrying requests automatically. For information+-- about the AWS SDKs, including how to download and install them, see the+-- <http://aws.amazon.com/tools/ Tools for Amazon Web Services page>.+--+-- See the CloudTrail User Guide for information about the data that is+-- included with each AWS API call listed in the log files.+--+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/Welcome.html AWS API Reference> module Network.AWS.CloudTrail-    ( module Network.AWS.CloudTrail.CreateTrail-    , module Network.AWS.CloudTrail.DeleteTrail+    (+    -- * Service+      CloudTrail++    -- * Errors+    -- $errors++    -- ** InvalidTimeRangeException+    , _InvalidTimeRangeException++    -- ** InsufficientS3BucketPolicyException+    , _InsufficientS3BucketPolicyException++    -- ** MaximumNumberOfTrailsExceededException+    , _MaximumNumberOfTrailsExceededException++    -- ** InsufficientSNSTopicPolicyException+    , _InsufficientSNSTopicPolicyException++    -- ** InvalidCloudWatchLogsRoleARNException+    , _InvalidCloudWatchLogsRoleARNException++    -- ** InvalidTrailNameException+    , _InvalidTrailNameException++    -- ** InvalidLookupAttributesException+    , _InvalidLookupAttributesException++    -- ** TrailNotFoundException+    , _TrailNotFoundException++    -- ** CloudWatchLogsDeliveryUnavailableException+    , _CloudWatchLogsDeliveryUnavailableException++    -- ** InvalidSNSTopicNameException+    , _InvalidSNSTopicNameException++    -- ** InvalidCloudWatchLogsLogGroupARNException+    , _InvalidCloudWatchLogsLogGroupARNException++    -- ** InvalidS3BucketNameException+    , _InvalidS3BucketNameException++    -- ** InvalidNextTokenException+    , _InvalidNextTokenException++    -- ** S3BucketDoesNotExistException+    , _S3BucketDoesNotExistException++    -- ** InvalidMaxResultsException+    , _InvalidMaxResultsException++    -- ** TrailAlreadyExistsException+    , _TrailAlreadyExistsException++    -- ** InvalidS3PrefixException+    , _InvalidS3PrefixException++    -- * Waiters+    -- $waiters++    -- * Operations+    -- $operations++    -- ** DescribeTrails     , module Network.AWS.CloudTrail.DescribeTrails-    , module Network.AWS.CloudTrail.GetTrailStatus++    -- ** LookupEvents     , module Network.AWS.CloudTrail.LookupEvents-    , module Network.AWS.CloudTrail.StartLogging++    -- ** StopLogging     , module Network.AWS.CloudTrail.StopLogging-    , module Network.AWS.CloudTrail.Types++    -- ** DeleteTrail+    , module Network.AWS.CloudTrail.DeleteTrail++    -- ** UpdateTrail     , module Network.AWS.CloudTrail.UpdateTrail++    -- ** CreateTrail+    , module Network.AWS.CloudTrail.CreateTrail++    -- ** GetTrailStatus+    , module Network.AWS.CloudTrail.GetTrailStatus++    -- ** StartLogging+    , module Network.AWS.CloudTrail.StartLogging++    -- * Types++    -- ** LookupAttributeKey+    , LookupAttributeKey (..)++    -- ** Event+    , Event+    , event+    , eUsername+    , eEventTime+    , eResources+    , eCloudTrailEvent+    , eEventName+    , eEventId++    -- ** LookupAttribute+    , LookupAttribute+    , lookupAttribute+    , laAttributeKey+    , laAttributeValue++    -- ** Resource+    , Resource+    , resource+    , rResourceType+    , rResourceName++    -- ** Trail+    , Trail+    , trail+    , tS3KeyPrefix+    , tSNSTopicName+    , tCloudWatchLogsLogGroupARN+    , tName+    , tIncludeGlobalServiceEvents+    , tCloudWatchLogsRoleARN+    , tS3BucketName     ) where -import Network.AWS.CloudTrail.CreateTrail-import Network.AWS.CloudTrail.DeleteTrail-import Network.AWS.CloudTrail.DescribeTrails-import Network.AWS.CloudTrail.GetTrailStatus-import Network.AWS.CloudTrail.LookupEvents-import Network.AWS.CloudTrail.StartLogging-import Network.AWS.CloudTrail.StopLogging-import Network.AWS.CloudTrail.Types-import Network.AWS.CloudTrail.UpdateTrail+import           Network.AWS.CloudTrail.CreateTrail+import           Network.AWS.CloudTrail.DeleteTrail+import           Network.AWS.CloudTrail.DescribeTrails+import           Network.AWS.CloudTrail.GetTrailStatus+import           Network.AWS.CloudTrail.LookupEvents+import           Network.AWS.CloudTrail.StartLogging+import           Network.AWS.CloudTrail.StopLogging+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.UpdateTrail+import           Network.AWS.CloudTrail.Waiters++{- $errors+Error matchers are designed for use with the functions provided by+<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.+This allows catching (and rethrowing) service specific errors returned+by 'CloudTrail'.+-}++{- $operations+Some AWS operations return results that are incomplete and require subsequent+requests in order to obtain the entire result set. The process of sending+subsequent requests to continue where a previous request left off is called+pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to+1000 objects at a time, and you must send subsequent requests with the+appropriate Marker in order to retrieve the next page of results.++Operations that have an 'AWSPager' instance can transparently perform subsequent+requests, correctly setting Markers and other request facets to iterate through+the entire result set of a truncated API operation. Operations which support+this have an additional note in the documentation.++Many operations have the ability to filter results on the server side. See the+individual operation parameters for details.+-}++{- $waiters+Waiters poll by repeatedly sending a request until some remote success condition+configured by the 'Wait' specification is fulfilled. The 'Wait' specification+determines how many attempts should be made, in addition to delay and retry strategies.+-}
gen/Network/AWS/CloudTrail/CreateTrail.hs view
@@ -1,260 +1,270 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.CreateTrail--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | From the command line, use 'create-subscription'.+-- From the command line, use 'create-subscription'. ----- Creates a trail that specifies the settings for delivery of log data to an--- Amazon S3 bucket.+-- Creates a trail that specifies the settings for delivery of log data to+-- an Amazon S3 bucket. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_CreateTrail.html AWS API Reference> for CreateTrail. module Network.AWS.CloudTrail.CreateTrail     (-    -- * Request-      CreateTrail-    -- ** Request constructor-    , createTrail-    -- ** Request lenses-    , ctCloudWatchLogsLogGroupArn-    , ctCloudWatchLogsRoleArn+    -- * Creating a Request+      createTrail+    , CreateTrail+    -- * Request Lenses+    , ctS3KeyPrefix+    , ctSNSTopicName+    , ctCloudWatchLogsLogGroupARN     , ctIncludeGlobalServiceEvents+    , ctCloudWatchLogsRoleARN     , ctName     , ctS3BucketName-    , ctS3KeyPrefix-    , ctSnsTopicName -    -- * Response-    , CreateTrailResponse-    -- ** Response constructor+    -- * Destructuring the Response     , createTrailResponse-    -- ** Response lenses-    , ctrCloudWatchLogsLogGroupArn-    , ctrCloudWatchLogsRoleArn-    , ctrIncludeGlobalServiceEvents-    , ctrName-    , ctrS3BucketName-    , ctrS3KeyPrefix-    , ctrSnsTopicName+    , CreateTrailResponse+    -- * Response Lenses+    , ctrsS3KeyPrefix+    , ctrsSNSTopicName+    , ctrsCloudWatchLogsLogGroupARN+    , ctrsName+    , ctrsIncludeGlobalServiceEvents+    , ctrsCloudWatchLogsRoleARN+    , ctrsS3BucketName+    , ctrsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts--data CreateTrail = CreateTrail-    { _ctCloudWatchLogsLogGroupArn  :: Maybe Text-    , _ctCloudWatchLogsRoleArn      :: Maybe Text-    , _ctIncludeGlobalServiceEvents :: Maybe Bool-    , _ctName                       :: Text-    , _ctS3BucketName               :: Text-    , _ctS3KeyPrefix                :: Maybe Text-    , _ctSnsTopicName               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'CreateTrail' constructor.+-- | Specifies the settings for each trail. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createTrail' smart constructor.+data CreateTrail = CreateTrail'+    { _ctS3KeyPrefix                :: !(Maybe Text)+    , _ctSNSTopicName               :: !(Maybe Text)+    , _ctCloudWatchLogsLogGroupARN  :: !(Maybe Text)+    , _ctIncludeGlobalServiceEvents :: !(Maybe Bool)+    , _ctCloudWatchLogsRoleARN      :: !(Maybe Text)+    , _ctName                       :: !Text+    , _ctS3BucketName               :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateTrail' with the minimum fields required to make a request. ----- * 'ctCloudWatchLogsLogGroupArn' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ctCloudWatchLogsRoleArn' @::@ 'Maybe' 'Text'+-- * 'ctS3KeyPrefix' ----- * 'ctIncludeGlobalServiceEvents' @::@ 'Maybe' 'Bool'+-- * 'ctSNSTopicName' ----- * 'ctName' @::@ 'Text'+-- * 'ctCloudWatchLogsLogGroupARN' ----- * 'ctS3BucketName' @::@ 'Text'+-- * 'ctIncludeGlobalServiceEvents' ----- * 'ctS3KeyPrefix' @::@ 'Maybe' 'Text'+-- * 'ctCloudWatchLogsRoleARN' ----- * 'ctSnsTopicName' @::@ 'Maybe' 'Text'+-- * 'ctName' ---createTrail :: Text -- ^ 'ctName'-            -> Text -- ^ 'ctS3BucketName'-            -> CreateTrail-createTrail p1 p2 = CreateTrail-    { _ctName                       = p1-    , _ctS3BucketName               = p2-    , _ctS3KeyPrefix                = Nothing-    , _ctSnsTopicName               = Nothing+-- * 'ctS3BucketName'+createTrail+    :: Text -- ^ 'ctName'+    -> Text -- ^ 'ctS3BucketName'+    -> CreateTrail+createTrail pName_ pS3BucketName_ =+    CreateTrail'+    { _ctS3KeyPrefix = Nothing+    , _ctSNSTopicName = Nothing+    , _ctCloudWatchLogsLogGroupARN = Nothing     , _ctIncludeGlobalServiceEvents = Nothing-    , _ctCloudWatchLogsLogGroupArn  = Nothing-    , _ctCloudWatchLogsRoleArn      = Nothing+    , _ctCloudWatchLogsRoleARN = Nothing+    , _ctName = pName_+    , _ctS3BucketName = pS3BucketName_     } --- | Specifies a log group name using an Amazon Resource Name (ARN), a unique--- identifier that represents the log group to which CloudTrail logs will be--- delivered. Not required unless you specify CloudWatchLogsRoleArn.-ctCloudWatchLogsLogGroupArn :: Lens' CreateTrail (Maybe Text)-ctCloudWatchLogsLogGroupArn =-    lens _ctCloudWatchLogsLogGroupArn-        (\s a -> s { _ctCloudWatchLogsLogGroupArn = a })+-- | Specifies the Amazon S3 key prefix that precedes the name of the bucket+-- you have designated for log file delivery.+ctS3KeyPrefix :: Lens' CreateTrail (Maybe Text)+ctS3KeyPrefix = lens _ctS3KeyPrefix (\ s a -> s{_ctS3KeyPrefix = a}); --- | Specifies the role for the CloudWatch Logs endpoint to assume to write to a--- user’s log group.-ctCloudWatchLogsRoleArn :: Lens' CreateTrail (Maybe Text)-ctCloudWatchLogsRoleArn =-    lens _ctCloudWatchLogsRoleArn (\s a -> s { _ctCloudWatchLogsRoleArn = a })+-- | Specifies the name of the Amazon SNS topic defined for notification of+-- log file delivery.+ctSNSTopicName :: Lens' CreateTrail (Maybe Text)+ctSNSTopicName = lens _ctSNSTopicName (\ s a -> s{_ctSNSTopicName = a}); --- | Specifies whether the trail is publishing events from global services such as--- IAM to the log files.+-- | Specifies a log group name using an Amazon Resource Name (ARN), a unique+-- identifier that represents the log group to which CloudTrail logs will+-- be delivered. Not required unless you specify CloudWatchLogsRoleArn.+ctCloudWatchLogsLogGroupARN :: Lens' CreateTrail (Maybe Text)+ctCloudWatchLogsLogGroupARN = lens _ctCloudWatchLogsLogGroupARN (\ s a -> s{_ctCloudWatchLogsLogGroupARN = a});++-- | Specifies whether the trail is publishing events from global services+-- such as IAM to the log files. ctIncludeGlobalServiceEvents :: Lens' CreateTrail (Maybe Bool)-ctIncludeGlobalServiceEvents =-    lens _ctIncludeGlobalServiceEvents-        (\s a -> s { _ctIncludeGlobalServiceEvents = a })+ctIncludeGlobalServiceEvents = lens _ctIncludeGlobalServiceEvents (\ s a -> s{_ctIncludeGlobalServiceEvents = a}); +-- | Specifies the role for the CloudWatch Logs endpoint to assume to write+-- to a user’s log group.+ctCloudWatchLogsRoleARN :: Lens' CreateTrail (Maybe Text)+ctCloudWatchLogsRoleARN = lens _ctCloudWatchLogsRoleARN (\ s a -> s{_ctCloudWatchLogsRoleARN = a});+ -- | Specifies the name of the trail. ctName :: Lens' CreateTrail Text-ctName = lens _ctName (\s a -> s { _ctName = a })+ctName = lens _ctName (\ s a -> s{_ctName = a});  -- | Specifies the name of the Amazon S3 bucket designated for publishing log -- files. ctS3BucketName :: Lens' CreateTrail Text-ctS3BucketName = lens _ctS3BucketName (\s a -> s { _ctS3BucketName = a })+ctS3BucketName = lens _ctS3BucketName (\ s a -> s{_ctS3BucketName = a}); --- | Specifies the Amazon S3 key prefix that precedes the name of the bucket you--- have designated for log file delivery.-ctS3KeyPrefix :: Lens' CreateTrail (Maybe Text)-ctS3KeyPrefix = lens _ctS3KeyPrefix (\s a -> s { _ctS3KeyPrefix = a })+instance AWSRequest CreateTrail where+        type Sv CreateTrail = CloudTrail+        type Rs CreateTrail = CreateTrailResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 CreateTrailResponse' <$>+                   (x .?> "S3KeyPrefix") <*> (x .?> "SnsTopicName") <*>+                     (x .?> "CloudWatchLogsLogGroupArn")+                     <*> (x .?> "Name")+                     <*> (x .?> "IncludeGlobalServiceEvents")+                     <*> (x .?> "CloudWatchLogsRoleArn")+                     <*> (x .?> "S3BucketName")+                     <*> (pure (fromEnum s))) --- | Specifies the name of the Amazon SNS topic defined for notification of log--- file delivery.-ctSnsTopicName :: Lens' CreateTrail (Maybe Text)-ctSnsTopicName = lens _ctSnsTopicName (\s a -> s { _ctSnsTopicName = a })+instance ToHeaders CreateTrail where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.CreateTrail"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) -data CreateTrailResponse = CreateTrailResponse-    { _ctrCloudWatchLogsLogGroupArn  :: Maybe Text-    , _ctrCloudWatchLogsRoleArn      :: Maybe Text-    , _ctrIncludeGlobalServiceEvents :: Maybe Bool-    , _ctrName                       :: Maybe Text-    , _ctrS3BucketName               :: Maybe Text-    , _ctrS3KeyPrefix                :: Maybe Text-    , _ctrSnsTopicName               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+instance ToJSON CreateTrail where+        toJSON CreateTrail'{..}+          = object+              ["S3KeyPrefix" .= _ctS3KeyPrefix,+               "SnsTopicName" .= _ctSNSTopicName,+               "CloudWatchLogsLogGroupArn" .=+                 _ctCloudWatchLogsLogGroupARN,+               "IncludeGlobalServiceEvents" .=+                 _ctIncludeGlobalServiceEvents,+               "CloudWatchLogsRoleArn" .= _ctCloudWatchLogsRoleARN,+               "Name" .= _ctName, "S3BucketName" .= _ctS3BucketName] --- | 'CreateTrailResponse' constructor.+instance ToPath CreateTrail where+        toPath = const "/"++instance ToQuery CreateTrail where+        toQuery = const mempty++-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'createTrailResponse' smart constructor.+data CreateTrailResponse = CreateTrailResponse'+    { _ctrsS3KeyPrefix                :: !(Maybe Text)+    , _ctrsSNSTopicName               :: !(Maybe Text)+    , _ctrsCloudWatchLogsLogGroupARN  :: !(Maybe Text)+    , _ctrsName                       :: !(Maybe Text)+    , _ctrsIncludeGlobalServiceEvents :: !(Maybe Bool)+    , _ctrsCloudWatchLogsRoleARN      :: !(Maybe Text)+    , _ctrsS3BucketName               :: !(Maybe Text)+    , _ctrsStatus                     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'CreateTrailResponse' with the minimum fields required to make a request. ----- * 'ctrCloudWatchLogsLogGroupArn' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'ctrCloudWatchLogsRoleArn' @::@ 'Maybe' 'Text'+-- * 'ctrsS3KeyPrefix' ----- * 'ctrIncludeGlobalServiceEvents' @::@ 'Maybe' 'Bool'+-- * 'ctrsSNSTopicName' ----- * 'ctrName' @::@ 'Maybe' 'Text'+-- * 'ctrsCloudWatchLogsLogGroupARN' ----- * 'ctrS3BucketName' @::@ 'Maybe' 'Text'+-- * 'ctrsName' ----- * 'ctrS3KeyPrefix' @::@ 'Maybe' 'Text'+-- * 'ctrsIncludeGlobalServiceEvents' ----- * 'ctrSnsTopicName' @::@ 'Maybe' 'Text'+-- * 'ctrsCloudWatchLogsRoleARN' ---createTrailResponse :: CreateTrailResponse-createTrailResponse = CreateTrailResponse-    { _ctrName                       = Nothing-    , _ctrS3BucketName               = Nothing-    , _ctrS3KeyPrefix                = Nothing-    , _ctrSnsTopicName               = Nothing-    , _ctrIncludeGlobalServiceEvents = Nothing-    , _ctrCloudWatchLogsLogGroupArn  = Nothing-    , _ctrCloudWatchLogsRoleArn      = Nothing+-- * 'ctrsS3BucketName'+--+-- * 'ctrsStatus'+createTrailResponse+    :: Int -- ^ 'ctrsStatus'+    -> CreateTrailResponse+createTrailResponse pStatus_ =+    CreateTrailResponse'+    { _ctrsS3KeyPrefix = Nothing+    , _ctrsSNSTopicName = Nothing+    , _ctrsCloudWatchLogsLogGroupARN = Nothing+    , _ctrsName = Nothing+    , _ctrsIncludeGlobalServiceEvents = Nothing+    , _ctrsCloudWatchLogsRoleARN = Nothing+    , _ctrsS3BucketName = Nothing+    , _ctrsStatus = pStatus_     } --- | Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail--- logs will be delivered.-ctrCloudWatchLogsLogGroupArn :: Lens' CreateTrailResponse (Maybe Text)-ctrCloudWatchLogsLogGroupArn =-    lens _ctrCloudWatchLogsLogGroupArn-        (\s a -> s { _ctrCloudWatchLogsLogGroupArn = a })+-- | Specifies the Amazon S3 key prefix that precedes the name of the bucket+-- you have designated for log file delivery.+ctrsS3KeyPrefix :: Lens' CreateTrailResponse (Maybe Text)+ctrsS3KeyPrefix = lens _ctrsS3KeyPrefix (\ s a -> s{_ctrsS3KeyPrefix = a}); --- | Specifies the role for the CloudWatch Logs endpoint to assume to write to a--- user’s log group.-ctrCloudWatchLogsRoleArn :: Lens' CreateTrailResponse (Maybe Text)-ctrCloudWatchLogsRoleArn =-    lens _ctrCloudWatchLogsRoleArn-        (\s a -> s { _ctrCloudWatchLogsRoleArn = a })+-- | Specifies the name of the Amazon SNS topic defined for notification of+-- log file delivery.+ctrsSNSTopicName :: Lens' CreateTrailResponse (Maybe Text)+ctrsSNSTopicName = lens _ctrsSNSTopicName (\ s a -> s{_ctrsSNSTopicName = a}); --- | Specifies whether the trail is publishing events from global services such as--- IAM to the log files.-ctrIncludeGlobalServiceEvents :: Lens' CreateTrailResponse (Maybe Bool)-ctrIncludeGlobalServiceEvents =-    lens _ctrIncludeGlobalServiceEvents-        (\s a -> s { _ctrIncludeGlobalServiceEvents = a })+-- | Specifies the Amazon Resource Name (ARN) of the log group to which+-- CloudTrail logs will be delivered.+ctrsCloudWatchLogsLogGroupARN :: Lens' CreateTrailResponse (Maybe Text)+ctrsCloudWatchLogsLogGroupARN = lens _ctrsCloudWatchLogsLogGroupARN (\ s a -> s{_ctrsCloudWatchLogsLogGroupARN = a});  -- | Specifies the name of the trail.-ctrName :: Lens' CreateTrailResponse (Maybe Text)-ctrName = lens _ctrName (\s a -> s { _ctrName = a })---- | Specifies the name of the Amazon S3 bucket designated for publishing log--- files.-ctrS3BucketName :: Lens' CreateTrailResponse (Maybe Text)-ctrS3BucketName = lens _ctrS3BucketName (\s a -> s { _ctrS3BucketName = a })---- | Specifies the Amazon S3 key prefix that precedes the name of the bucket you--- have designated for log file delivery.-ctrS3KeyPrefix :: Lens' CreateTrailResponse (Maybe Text)-ctrS3KeyPrefix = lens _ctrS3KeyPrefix (\s a -> s { _ctrS3KeyPrefix = a })---- | Specifies the name of the Amazon SNS topic defined for notification of log--- file delivery.-ctrSnsTopicName :: Lens' CreateTrailResponse (Maybe Text)-ctrSnsTopicName = lens _ctrSnsTopicName (\s a -> s { _ctrSnsTopicName = a })--instance ToPath CreateTrail where-    toPath = const "/"--instance ToQuery CreateTrail where-    toQuery = const mempty--instance ToHeaders CreateTrail+ctrsName :: Lens' CreateTrailResponse (Maybe Text)+ctrsName = lens _ctrsName (\ s a -> s{_ctrsName = a}); -instance ToJSON CreateTrail where-    toJSON CreateTrail{..} = object-        [ "Name"                       .= _ctName-        , "S3BucketName"               .= _ctS3BucketName-        , "S3KeyPrefix"                .= _ctS3KeyPrefix-        , "SnsTopicName"               .= _ctSnsTopicName-        , "IncludeGlobalServiceEvents" .= _ctIncludeGlobalServiceEvents-        , "CloudWatchLogsLogGroupArn"  .= _ctCloudWatchLogsLogGroupArn-        , "CloudWatchLogsRoleArn"      .= _ctCloudWatchLogsRoleArn-        ]+-- | Specifies whether the trail is publishing events from global services+-- such as IAM to the log files.+ctrsIncludeGlobalServiceEvents :: Lens' CreateTrailResponse (Maybe Bool)+ctrsIncludeGlobalServiceEvents = lens _ctrsIncludeGlobalServiceEvents (\ s a -> s{_ctrsIncludeGlobalServiceEvents = a}); -instance AWSRequest CreateTrail where-    type Sv CreateTrail = CloudTrail-    type Rs CreateTrail = CreateTrailResponse+-- | Specifies the role for the CloudWatch Logs endpoint to assume to write+-- to a user’s log group.+ctrsCloudWatchLogsRoleARN :: Lens' CreateTrailResponse (Maybe Text)+ctrsCloudWatchLogsRoleARN = lens _ctrsCloudWatchLogsRoleARN (\ s a -> s{_ctrsCloudWatchLogsRoleARN = a}); -    request  = post "CreateTrail"-    response = jsonResponse+-- | Specifies the name of the Amazon S3 bucket designated for publishing log+-- files.+ctrsS3BucketName :: Lens' CreateTrailResponse (Maybe Text)+ctrsS3BucketName = lens _ctrsS3BucketName (\ s a -> s{_ctrsS3BucketName = a}); -instance FromJSON CreateTrailResponse where-    parseJSON = withObject "CreateTrailResponse" $ \o -> CreateTrailResponse-        <$> o .:? "CloudWatchLogsLogGroupArn"-        <*> o .:? "CloudWatchLogsRoleArn"-        <*> o .:? "IncludeGlobalServiceEvents"-        <*> o .:? "Name"-        <*> o .:? "S3BucketName"-        <*> o .:? "S3KeyPrefix"-        <*> o .:? "SnsTopicName"+-- | The response status code.+ctrsStatus :: Lens' CreateTrailResponse Int+ctrsStatus = lens _ctrsStatus (\ s a -> s{_ctrsStatus = a});
gen/Network/AWS/CloudTrail/DeleteTrail.hs view
@@ -1,94 +1,120 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.DeleteTrail--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Deletes a trail.+-- Deletes a trail. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DeleteTrail.html AWS API Reference> for DeleteTrail. module Network.AWS.CloudTrail.DeleteTrail     (-    -- * Request-      DeleteTrail-    -- ** Request constructor-    , deleteTrail-    -- ** Request lenses+    -- * Creating a Request+      deleteTrail+    , DeleteTrail+    -- * Request Lenses     , dtName -    -- * Response-    , DeleteTrailResponse-    -- ** Response constructor+    -- * Destructuring the Response     , deleteTrailResponse+    , DeleteTrailResponse+    -- * Response Lenses+    , drsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype DeleteTrail = DeleteTrail+-- | The request that specifies the name of a trail to delete.+--+-- /See:/ 'deleteTrail' smart constructor.+newtype DeleteTrail = DeleteTrail'     { _dtName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'DeleteTrail' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'DeleteTrail' with the minimum fields required to make a request. ----- * 'dtName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---deleteTrail :: Text -- ^ 'dtName'-            -> DeleteTrail-deleteTrail p1 = DeleteTrail-    { _dtName = p1+-- * 'dtName'+deleteTrail+    :: Text -- ^ 'dtName'+    -> DeleteTrail+deleteTrail pName_ =+    DeleteTrail'+    { _dtName = pName_     }  -- | The name of a trail to be deleted. dtName :: Lens' DeleteTrail Text-dtName = lens _dtName (\s a -> s { _dtName = a })+dtName = lens _dtName (\ s a -> s{_dtName = a}); -data DeleteTrailResponse = DeleteTrailResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest DeleteTrail where+        type Sv DeleteTrail = CloudTrail+        type Rs DeleteTrail = DeleteTrailResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 DeleteTrailResponse' <$> (pure (fromEnum s))) --- | 'DeleteTrailResponse' constructor.-deleteTrailResponse :: DeleteTrailResponse-deleteTrailResponse = DeleteTrailResponse+instance ToHeaders DeleteTrail where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.DeleteTrail"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON DeleteTrail where+        toJSON DeleteTrail'{..} = object ["Name" .= _dtName]+ instance ToPath DeleteTrail where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DeleteTrail where-    toQuery = const mempty--instance ToHeaders DeleteTrail+        toQuery = const mempty -instance ToJSON DeleteTrail where-    toJSON DeleteTrail{..} = object-        [ "Name" .= _dtName-        ]+-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error.+--+-- /See:/ 'deleteTrailResponse' smart constructor.+newtype DeleteTrailResponse = DeleteTrailResponse'+    { _drsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DeleteTrail where-    type Sv DeleteTrail = CloudTrail-    type Rs DeleteTrail = DeleteTrailResponse+-- | Creates a value of 'DeleteTrailResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'drsStatus'+deleteTrailResponse+    :: Int -- ^ 'drsStatus'+    -> DeleteTrailResponse+deleteTrailResponse pStatus_ =+    DeleteTrailResponse'+    { _drsStatus = pStatus_+    } -    request  = post "DeleteTrail"-    response = nullResponse DeleteTrailResponse+-- | The response status code.+drsStatus :: Lens' DeleteTrailResponse Int+drsStatus = lens _drsStatus (\ s a -> s{_drsStatus = a});
gen/Network/AWS/CloudTrail/DescribeTrails.hs view
@@ -1,124 +1,132 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.DescribeTrails--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Retrieves settings for the trail associated with the current region for your--- account.+-- Retrieves settings for the trail associated with the current region for+-- your account. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DescribeTrails.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_DescribeTrails.html AWS API Reference> for DescribeTrails. module Network.AWS.CloudTrail.DescribeTrails     (-    -- * Request-      DescribeTrails-    -- ** Request constructor-    , describeTrails-    -- ** Request lenses+    -- * Creating a Request+      describeTrails+    , DescribeTrails+    -- * Request Lenses     , dtTrailNameList -    -- * Response-    , DescribeTrailsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , describeTrailsResponse-    -- ** Response lenses-    , dtrTrailList+    , DescribeTrailsResponse+    -- * Response Lenses+    , dtrsTrailList+    , dtrsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts--newtype DescribeTrails = DescribeTrails-    { _dtTrailNameList :: List "trailNameList" Text-    } deriving (Eq, Ord, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList DescribeTrails where-    type Item DescribeTrails = Text--    fromList = DescribeTrails . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _dtTrailNameList+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'DescribeTrails' constructor.+-- | Returns information about the trail. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'describeTrails' smart constructor.+newtype DescribeTrails = DescribeTrails'+    { _dtTrailNameList :: Maybe [Text]+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'DescribeTrails' with the minimum fields required to make a request. ----- * 'dtTrailNameList' @::@ ['Text']+-- Use one of the following lenses to modify other fields as desired: ---describeTrails :: DescribeTrails-describeTrails = DescribeTrails-    { _dtTrailNameList = mempty+-- * 'dtTrailNameList'+describeTrails+    :: DescribeTrails+describeTrails =+    DescribeTrails'+    { _dtTrailNameList = Nothing     }  -- | The trail returned. dtTrailNameList :: Lens' DescribeTrails [Text]-dtTrailNameList = lens _dtTrailNameList (\s a -> s { _dtTrailNameList = a }) . _List--newtype DescribeTrailsResponse = DescribeTrailsResponse-    { _dtrTrailList :: List "trailList" Trail-    } deriving (Eq, Read, Show, Monoid, Semigroup)--instance GHC.Exts.IsList DescribeTrailsResponse where-    type Item DescribeTrailsResponse = Trail+dtTrailNameList = lens _dtTrailNameList (\ s a -> s{_dtTrailNameList = a}) . _Default . _Coerce; -    fromList = DescribeTrailsResponse . GHC.Exts.fromList-    toList   = GHC.Exts.toList . _dtrTrailList+instance AWSRequest DescribeTrails where+        type Sv DescribeTrails = CloudTrail+        type Rs DescribeTrails = DescribeTrailsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 DescribeTrailsResponse' <$>+                   (x .?> "trailList" .!@ mempty) <*>+                     (pure (fromEnum s))) --- | 'DescribeTrailsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'dtrTrailList' @::@ ['Trail']----describeTrailsResponse :: DescribeTrailsResponse-describeTrailsResponse = DescribeTrailsResponse-    { _dtrTrailList = mempty-    }+instance ToHeaders DescribeTrails where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.DescribeTrails"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) --- | The list of trails.-dtrTrailList :: Lens' DescribeTrailsResponse [Trail]-dtrTrailList = lens _dtrTrailList (\s a -> s { _dtrTrailList = a }) . _List+instance ToJSON DescribeTrails where+        toJSON DescribeTrails'{..}+          = object ["trailNameList" .= _dtTrailNameList]  instance ToPath DescribeTrails where-    toPath = const "/"+        toPath = const "/"  instance ToQuery DescribeTrails where-    toQuery = const mempty--instance ToHeaders DescribeTrails+        toQuery = const mempty -instance ToJSON DescribeTrails where-    toJSON DescribeTrails{..} = object-        [ "trailNameList" .= _dtTrailNameList-        ]+-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error.+--+-- /See:/ 'describeTrailsResponse' smart constructor.+data DescribeTrailsResponse = DescribeTrailsResponse'+    { _dtrsTrailList :: !(Maybe [Trail])+    , _dtrsStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest DescribeTrails where-    type Sv DescribeTrails = CloudTrail-    type Rs DescribeTrails = DescribeTrailsResponse+-- | Creates a value of 'DescribeTrailsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'dtrsTrailList'+--+-- * 'dtrsStatus'+describeTrailsResponse+    :: Int -- ^ 'dtrsStatus'+    -> DescribeTrailsResponse+describeTrailsResponse pStatus_ =+    DescribeTrailsResponse'+    { _dtrsTrailList = Nothing+    , _dtrsStatus = pStatus_+    } -    request  = post "DescribeTrails"-    response = jsonResponse+-- | The list of trails.+dtrsTrailList :: Lens' DescribeTrailsResponse [Trail]+dtrsTrailList = lens _dtrsTrailList (\ s a -> s{_dtrsTrailList = a}) . _Default . _Coerce; -instance FromJSON DescribeTrailsResponse where-    parseJSON = withObject "DescribeTrailsResponse" $ \o -> DescribeTrailsResponse-        <$> o .:? "trailList" .!= mempty+-- | The response status code.+dtrsStatus :: Lens' DescribeTrailsResponse Int+dtrsStatus = lens _dtrsStatus (\ s a -> s{_dtrsStatus = a});
gen/Network/AWS/CloudTrail/GetTrailStatus.hs view
@@ -1,220 +1,228 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.GetTrailStatus--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Returns a JSON-formatted list of information about the specified trail.+-- Returns a JSON-formatted list of information about the specified trail. -- Fields include information on delivery errors, Amazon SNS and Amazon S3 -- errors, and start and stop logging times for each trail. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetTrailStatus.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_GetTrailStatus.html AWS API Reference> for GetTrailStatus. module Network.AWS.CloudTrail.GetTrailStatus     (-    -- * Request-      GetTrailStatus-    -- ** Request constructor-    , getTrailStatus-    -- ** Request lenses+    -- * Creating a Request+      getTrailStatus+    , GetTrailStatus+    -- * Request Lenses     , gtsName -    -- * Response-    , GetTrailStatusResponse-    -- ** Response constructor+    -- * Destructuring the Response     , getTrailStatusResponse-    -- ** Response lenses-    , gtsrIsLogging-    , gtsrLatestCloudWatchLogsDeliveryError-    , gtsrLatestCloudWatchLogsDeliveryTime-    , gtsrLatestDeliveryError-    , gtsrLatestDeliveryTime-    , gtsrLatestNotificationError-    , gtsrLatestNotificationTime-    , gtsrStartLoggingTime-    , gtsrStopLoggingTime+    , GetTrailStatusResponse+    -- * Response Lenses+    , gtsrsLatestDeliveryError+    , gtsrsStartLoggingTime+    , gtsrsLatestNotificationError+    , gtsrsIsLogging+    , gtsrsLatestDeliveryTime+    , gtsrsLatestCloudWatchLogsDeliveryTime+    , gtsrsLatestCloudWatchLogsDeliveryError+    , gtsrsLatestNotificationTime+    , gtsrsStopLoggingTime+    , gtsrsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype GetTrailStatus = GetTrailStatus+-- | The name of a trail about which you want the current status.+--+-- /See:/ 'getTrailStatus' smart constructor.+newtype GetTrailStatus = GetTrailStatus'     { _gtsName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'GetTrailStatus' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'GetTrailStatus' with the minimum fields required to make a request. ----- * 'gtsName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---getTrailStatus :: Text -- ^ 'gtsName'-               -> GetTrailStatus-getTrailStatus p1 = GetTrailStatus-    { _gtsName = p1+-- * 'gtsName'+getTrailStatus+    :: Text -- ^ 'gtsName'+    -> GetTrailStatus+getTrailStatus pName_ =+    GetTrailStatus'+    { _gtsName = pName_     }  -- | The name of the trail for which you are requesting the current status. gtsName :: Lens' GetTrailStatus Text-gtsName = lens _gtsName (\s a -> s { _gtsName = a })+gtsName = lens _gtsName (\ s a -> s{_gtsName = a}); -data GetTrailStatusResponse = GetTrailStatusResponse-    { _gtsrIsLogging                         :: Maybe Bool-    , _gtsrLatestCloudWatchLogsDeliveryError :: Maybe Text-    , _gtsrLatestCloudWatchLogsDeliveryTime  :: Maybe POSIX-    , _gtsrLatestDeliveryError               :: Maybe Text-    , _gtsrLatestDeliveryTime                :: Maybe POSIX-    , _gtsrLatestNotificationError           :: Maybe Text-    , _gtsrLatestNotificationTime            :: Maybe POSIX-    , _gtsrStartLoggingTime                  :: Maybe POSIX-    , _gtsrStopLoggingTime                   :: Maybe POSIX-    } deriving (Eq, Ord, Read, Show)+instance AWSRequest GetTrailStatus where+        type Sv GetTrailStatus = CloudTrail+        type Rs GetTrailStatus = GetTrailStatusResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 GetTrailStatusResponse' <$>+                   (x .?> "LatestDeliveryError") <*>+                     (x .?> "StartLoggingTime")+                     <*> (x .?> "LatestNotificationError")+                     <*> (x .?> "IsLogging")+                     <*> (x .?> "LatestDeliveryTime")+                     <*> (x .?> "LatestCloudWatchLogsDeliveryTime")+                     <*> (x .?> "LatestCloudWatchLogsDeliveryError")+                     <*> (x .?> "LatestNotificationTime")+                     <*> (x .?> "StopLoggingTime")+                     <*> (pure (fromEnum s))) --- | 'GetTrailStatusResponse' constructor.+instance ToHeaders GetTrailStatus where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.GetTrailStatus"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)])++instance ToJSON GetTrailStatus where+        toJSON GetTrailStatus'{..}+          = object ["Name" .= _gtsName]++instance ToPath GetTrailStatus where+        toPath = const "/"++instance ToQuery GetTrailStatus where+        toQuery = const mempty++-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'getTrailStatusResponse' smart constructor.+data GetTrailStatusResponse = GetTrailStatusResponse'+    { _gtsrsLatestDeliveryError               :: !(Maybe Text)+    , _gtsrsStartLoggingTime                  :: !(Maybe POSIX)+    , _gtsrsLatestNotificationError           :: !(Maybe Text)+    , _gtsrsIsLogging                         :: !(Maybe Bool)+    , _gtsrsLatestDeliveryTime                :: !(Maybe POSIX)+    , _gtsrsLatestCloudWatchLogsDeliveryTime  :: !(Maybe POSIX)+    , _gtsrsLatestCloudWatchLogsDeliveryError :: !(Maybe Text)+    , _gtsrsLatestNotificationTime            :: !(Maybe POSIX)+    , _gtsrsStopLoggingTime                   :: !(Maybe POSIX)+    , _gtsrsStatus                            :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'GetTrailStatusResponse' with the minimum fields required to make a request. ----- * 'gtsrIsLogging' @::@ 'Maybe' 'Bool'+-- Use one of the following lenses to modify other fields as desired: ----- * 'gtsrLatestCloudWatchLogsDeliveryError' @::@ 'Maybe' 'Text'+-- * 'gtsrsLatestDeliveryError' ----- * 'gtsrLatestCloudWatchLogsDeliveryTime' @::@ 'Maybe' 'UTCTime'+-- * 'gtsrsStartLoggingTime' ----- * 'gtsrLatestDeliveryError' @::@ 'Maybe' 'Text'+-- * 'gtsrsLatestNotificationError' ----- * 'gtsrLatestDeliveryTime' @::@ 'Maybe' 'UTCTime'+-- * 'gtsrsIsLogging' ----- * 'gtsrLatestNotificationError' @::@ 'Maybe' 'Text'+-- * 'gtsrsLatestDeliveryTime' ----- * 'gtsrLatestNotificationTime' @::@ 'Maybe' 'UTCTime'+-- * 'gtsrsLatestCloudWatchLogsDeliveryTime' ----- * 'gtsrStartLoggingTime' @::@ 'Maybe' 'UTCTime'+-- * 'gtsrsLatestCloudWatchLogsDeliveryError' ----- * 'gtsrStopLoggingTime' @::@ 'Maybe' 'UTCTime'+-- * 'gtsrsLatestNotificationTime' ---getTrailStatusResponse :: GetTrailStatusResponse-getTrailStatusResponse = GetTrailStatusResponse-    { _gtsrIsLogging                         = Nothing-    , _gtsrLatestDeliveryError               = Nothing-    , _gtsrLatestNotificationError           = Nothing-    , _gtsrLatestDeliveryTime                = Nothing-    , _gtsrLatestNotificationTime            = Nothing-    , _gtsrStartLoggingTime                  = Nothing-    , _gtsrStopLoggingTime                   = Nothing-    , _gtsrLatestCloudWatchLogsDeliveryError = Nothing-    , _gtsrLatestCloudWatchLogsDeliveryTime  = Nothing+-- * 'gtsrsStopLoggingTime'+--+-- * 'gtsrsStatus'+getTrailStatusResponse+    :: Int -- ^ 'gtsrsStatus'+    -> GetTrailStatusResponse+getTrailStatusResponse pStatus_ =+    GetTrailStatusResponse'+    { _gtsrsLatestDeliveryError = Nothing+    , _gtsrsStartLoggingTime = Nothing+    , _gtsrsLatestNotificationError = Nothing+    , _gtsrsIsLogging = Nothing+    , _gtsrsLatestDeliveryTime = Nothing+    , _gtsrsLatestCloudWatchLogsDeliveryTime = Nothing+    , _gtsrsLatestCloudWatchLogsDeliveryError = Nothing+    , _gtsrsLatestNotificationTime = Nothing+    , _gtsrsStopLoggingTime = Nothing+    , _gtsrsStatus = pStatus_     } --- | Whether the CloudTrail is currently logging AWS API calls.-gtsrIsLogging :: Lens' GetTrailStatusResponse (Maybe Bool)-gtsrIsLogging = lens _gtsrIsLogging (\s a -> s { _gtsrIsLogging = a })---- | Displays any CloudWatch Logs error that CloudTrail encountered when--- attempting to deliver logs to CloudWatch Logs.-gtsrLatestCloudWatchLogsDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)-gtsrLatestCloudWatchLogsDeliveryError =-    lens _gtsrLatestCloudWatchLogsDeliveryError-        (\s a -> s { _gtsrLatestCloudWatchLogsDeliveryError = a })---- | Displays the most recent date and time when CloudTrail delivered logs to--- CloudWatch Logs.-gtsrLatestCloudWatchLogsDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)-gtsrLatestCloudWatchLogsDeliveryTime =-    lens _gtsrLatestCloudWatchLogsDeliveryTime-        (\s a -> s { _gtsrLatestCloudWatchLogsDeliveryTime = a })-            . mapping _Time---- | Displays any Amazon S3 error that CloudTrail encountered when attempting to--- deliver log files to the designated bucket. For more information see the--- topic <http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html Error Responses> in the Amazon S3 API Reference.-gtsrLatestDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)-gtsrLatestDeliveryError =-    lens _gtsrLatestDeliveryError (\s a -> s { _gtsrLatestDeliveryError = a })---- | Specifies the date and time that CloudTrail last delivered log files to an--- account's Amazon S3 bucket.-gtsrLatestDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)-gtsrLatestDeliveryTime =-    lens _gtsrLatestDeliveryTime (\s a -> s { _gtsrLatestDeliveryTime = a })-        . mapping _Time---- | Displays any Amazon SNS error that CloudTrail encountered when attempting to--- send a notification. For more information about Amazon SNS errors, see the <http://docs.aws.amazon.com/sns/latest/dg/welcome.html Amazon SNS Developer Guide>.-gtsrLatestNotificationError :: Lens' GetTrailStatusResponse (Maybe Text)-gtsrLatestNotificationError =-    lens _gtsrLatestNotificationError-        (\s a -> s { _gtsrLatestNotificationError = a })---- | Specifies the date and time of the most recent Amazon SNS notification that--- CloudTrail has written a new log file to an account's Amazon S3 bucket.-gtsrLatestNotificationTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)-gtsrLatestNotificationTime =-    lens _gtsrLatestNotificationTime-        (\s a -> s { _gtsrLatestNotificationTime = a })-            . mapping _Time+-- | Displays any Amazon S3 error that CloudTrail encountered when attempting+-- to deliver log files to the designated bucket. For more information see+-- the topic+-- <http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html Error Responses>+-- in the Amazon S3 API Reference.+gtsrsLatestDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)+gtsrsLatestDeliveryError = lens _gtsrsLatestDeliveryError (\ s a -> s{_gtsrsLatestDeliveryError = a}); --- | Specifies the most recent date and time when CloudTrail started recording API--- calls for an AWS account.-gtsrStartLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)-gtsrStartLoggingTime =-    lens _gtsrStartLoggingTime (\s a -> s { _gtsrStartLoggingTime = a })-        . mapping _Time+-- | Specifies the most recent date and time when CloudTrail started+-- recording API calls for an AWS account.+gtsrsStartLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)+gtsrsStartLoggingTime = lens _gtsrsStartLoggingTime (\ s a -> s{_gtsrsStartLoggingTime = a}) . mapping _Time; --- | Specifies the most recent date and time when CloudTrail stopped recording API--- calls for an AWS account.-gtsrStopLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)-gtsrStopLoggingTime =-    lens _gtsrStopLoggingTime (\s a -> s { _gtsrStopLoggingTime = a })-        . mapping _Time+-- | Displays any Amazon SNS error that CloudTrail encountered when+-- attempting to send a notification. For more information about Amazon SNS+-- errors, see the+-- <http://docs.aws.amazon.com/sns/latest/dg/welcome.html Amazon SNS Developer Guide>.+gtsrsLatestNotificationError :: Lens' GetTrailStatusResponse (Maybe Text)+gtsrsLatestNotificationError = lens _gtsrsLatestNotificationError (\ s a -> s{_gtsrsLatestNotificationError = a}); -instance ToPath GetTrailStatus where-    toPath = const "/"+-- | Whether the CloudTrail is currently logging AWS API calls.+gtsrsIsLogging :: Lens' GetTrailStatusResponse (Maybe Bool)+gtsrsIsLogging = lens _gtsrsIsLogging (\ s a -> s{_gtsrsIsLogging = a}); -instance ToQuery GetTrailStatus where-    toQuery = const mempty+-- | Specifies the date and time that CloudTrail last delivered log files to+-- an account\'s Amazon S3 bucket.+gtsrsLatestDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)+gtsrsLatestDeliveryTime = lens _gtsrsLatestDeliveryTime (\ s a -> s{_gtsrsLatestDeliveryTime = a}) . mapping _Time; -instance ToHeaders GetTrailStatus+-- | Displays the most recent date and time when CloudTrail delivered logs to+-- CloudWatch Logs.+gtsrsLatestCloudWatchLogsDeliveryTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)+gtsrsLatestCloudWatchLogsDeliveryTime = lens _gtsrsLatestCloudWatchLogsDeliveryTime (\ s a -> s{_gtsrsLatestCloudWatchLogsDeliveryTime = a}) . mapping _Time; -instance ToJSON GetTrailStatus where-    toJSON GetTrailStatus{..} = object-        [ "Name" .= _gtsName-        ]+-- | Displays any CloudWatch Logs error that CloudTrail encountered when+-- attempting to deliver logs to CloudWatch Logs.+gtsrsLatestCloudWatchLogsDeliveryError :: Lens' GetTrailStatusResponse (Maybe Text)+gtsrsLatestCloudWatchLogsDeliveryError = lens _gtsrsLatestCloudWatchLogsDeliveryError (\ s a -> s{_gtsrsLatestCloudWatchLogsDeliveryError = a}); -instance AWSRequest GetTrailStatus where-    type Sv GetTrailStatus = CloudTrail-    type Rs GetTrailStatus = GetTrailStatusResponse+-- | Specifies the date and time of the most recent Amazon SNS notification+-- that CloudTrail has written a new log file to an account\'s Amazon S3+-- bucket.+gtsrsLatestNotificationTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)+gtsrsLatestNotificationTime = lens _gtsrsLatestNotificationTime (\ s a -> s{_gtsrsLatestNotificationTime = a}) . mapping _Time; -    request  = post "GetTrailStatus"-    response = jsonResponse+-- | Specifies the most recent date and time when CloudTrail stopped+-- recording API calls for an AWS account.+gtsrsStopLoggingTime :: Lens' GetTrailStatusResponse (Maybe UTCTime)+gtsrsStopLoggingTime = lens _gtsrsStopLoggingTime (\ s a -> s{_gtsrsStopLoggingTime = a}) . mapping _Time; -instance FromJSON GetTrailStatusResponse where-    parseJSON = withObject "GetTrailStatusResponse" $ \o -> GetTrailStatusResponse-        <$> o .:? "IsLogging"-        <*> o .:? "LatestCloudWatchLogsDeliveryError"-        <*> o .:? "LatestCloudWatchLogsDeliveryTime"-        <*> o .:? "LatestDeliveryError"-        <*> o .:? "LatestDeliveryTime"-        <*> o .:? "LatestNotificationError"-        <*> o .:? "LatestNotificationTime"-        <*> o .:? "StartLoggingTime"-        <*> o .:? "StopLoggingTime"+-- | The response status code.+gtsrsStatus :: Lens' GetTrailStatusResponse Int+gtsrsStatus = lens _gtsrsStatus (\ s a -> s{_gtsrsStatus = a});
gen/Network/AWS/CloudTrail/LookupEvents.hs view
@@ -1,192 +1,210 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.LookupEvents--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Looks up API activity events captured by CloudTrail that create, update, or--- delete resources in your account. Events for a region can be looked up for--- the times in which you had CloudTrail turned on in that region during the--- last seven days. Lookup supports five different attributes: time range--- (defined by a start time and end time), user name, event name, resource type,--- and resource name. All attributes are optional. The maximum number of--- attributes that can be specified in any one lookup request are time range and--- one other attribute. The default number of results returned is 10, with a--- maximum of 50 possible. The response includes a token that you can use to get--- the next page of results. The rate of lookup requests is limited to one per--- second per account.+-- Looks up API activity events captured by CloudTrail that create, update,+-- or delete resources in your account. Events for a region can be looked+-- up for the times in which you had CloudTrail turned on in that region+-- during the last seven days. Lookup supports five different attributes:+-- time range (defined by a start time and end time), user name, event+-- name, resource type, and resource name. All attributes are optional. The+-- maximum number of attributes that can be specified in any one lookup+-- request are time range and one other attribute. The default number of+-- results returned is 10, with a maximum of 50 possible. The response+-- includes a token that you can use to get the next page of results. The+-- rate of lookup requests is limited to one per second per account. ----- Events that occurred during the selected time range will not be available--- for lookup if CloudTrail logging was not enabled when the events occurred.+-- Events that occurred during the selected time range will not be+-- available for lookup if CloudTrail logging was not enabled when the+-- events occurred. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_LookupEvents.html AWS API Reference> for LookupEvents. module Network.AWS.CloudTrail.LookupEvents     (-    -- * Request-      LookupEvents-    -- ** Request constructor-    , lookupEvents-    -- ** Request lenses-    , leEndTime+    -- * Creating a Request+      lookupEvents+    , LookupEvents+    -- * Request Lenses+    , leStartTime     , leLookupAttributes-    , leMaxResults     , leNextToken-    , leStartTime+    , leEndTime+    , leMaxResults -    -- * Response-    , LookupEventsResponse-    -- ** Response constructor+    -- * Destructuring the Response     , lookupEventsResponse-    -- ** Response lenses-    , lerEvents-    , lerNextToken+    , LookupEventsResponse+    -- * Response Lenses+    , lersNextToken+    , lersEvents+    , lersStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts--data LookupEvents = LookupEvents-    { _leEndTime          :: Maybe POSIX-    , _leLookupAttributes :: List "LookupAttributes" LookupAttribute-    , _leMaxResults       :: Maybe Nat-    , _leNextToken        :: Maybe Text-    , _leStartTime        :: Maybe POSIX-    } deriving (Eq, Read, Show)+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'LookupEvents' constructor.+-- | Contains a request for LookupEvents. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'lookupEvents' smart constructor.+data LookupEvents = LookupEvents'+    { _leStartTime        :: !(Maybe POSIX)+    , _leLookupAttributes :: !(Maybe [LookupAttribute])+    , _leNextToken        :: !(Maybe Text)+    , _leEndTime          :: !(Maybe POSIX)+    , _leMaxResults       :: !(Maybe Nat)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupEvents' with the minimum fields required to make a request. ----- * 'leEndTime' @::@ 'Maybe' 'UTCTime'+-- Use one of the following lenses to modify other fields as desired: ----- * 'leLookupAttributes' @::@ ['LookupAttribute']+-- * 'leStartTime' ----- * 'leMaxResults' @::@ 'Maybe' 'Natural'+-- * 'leLookupAttributes' ----- * 'leNextToken' @::@ 'Maybe' 'Text'+-- * 'leNextToken' ----- * 'leStartTime' @::@ 'Maybe' 'UTCTime'+-- * 'leEndTime' ---lookupEvents :: LookupEvents-lookupEvents = LookupEvents-    { _leLookupAttributes = mempty-    , _leStartTime        = Nothing-    , _leEndTime          = Nothing-    , _leMaxResults       = Nothing-    , _leNextToken        = Nothing+-- * 'leMaxResults'+lookupEvents+    :: LookupEvents+lookupEvents =+    LookupEvents'+    { _leStartTime = Nothing+    , _leLookupAttributes = Nothing+    , _leNextToken = Nothing+    , _leEndTime = Nothing+    , _leMaxResults = Nothing     } --- | Specifies that only events that occur before or at the specified time are--- returned. If the specified end time is before the specified start time, an--- error is returned.-leEndTime :: Lens' LookupEvents (Maybe UTCTime)-leEndTime = lens _leEndTime (\s a -> s { _leEndTime = a }) . mapping _Time+-- | Specifies that only events that occur after or at the specified time are+-- returned. If the specified start time is after the specified end time,+-- an error is returned.+leStartTime :: Lens' LookupEvents (Maybe UTCTime)+leStartTime = lens _leStartTime (\ s a -> s{_leStartTime = a}) . mapping _Time; --- | Contains a list of lookup attributes. Currently the list can contain only one--- item.+-- | Contains a list of lookup attributes. Currently the list can contain+-- only one item. leLookupAttributes :: Lens' LookupEvents [LookupAttribute]-leLookupAttributes =-    lens _leLookupAttributes (\s a -> s { _leLookupAttributes = a })-        . _List---- | The number of events to return. Possible values are 1 through 50. The default--- is 10.-leMaxResults :: Lens' LookupEvents (Maybe Natural)-leMaxResults = lens _leMaxResults (\s a -> s { _leMaxResults = a }) . mapping _Nat+leLookupAttributes = lens _leLookupAttributes (\ s a -> s{_leLookupAttributes = a}) . _Default . _Coerce; --- | The token to use to get the next page of results after a previous API call.--- This token must be passed in with the same parameters that were specified in--- the the original call. For example, if the original call specified an--- AttributeKey of 'Username' with a value of 'root', the call with NextToken--- should include those same parameters.+-- | The token to use to get the next page of results after a previous API+-- call. This token must be passed in with the same parameters that were+-- specified in the the original call. For example, if the original call+-- specified an AttributeKey of \'Username\' with a value of \'root\', the+-- call with NextToken should include those same parameters. leNextToken :: Lens' LookupEvents (Maybe Text)-leNextToken = lens _leNextToken (\s a -> s { _leNextToken = a })+leNextToken = lens _leNextToken (\ s a -> s{_leNextToken = a}); --- | Specifies that only events that occur after or at the specified time are--- returned. If the specified start time is after the specified end time, an--- error is returned.-leStartTime :: Lens' LookupEvents (Maybe UTCTime)-leStartTime = lens _leStartTime (\s a -> s { _leStartTime = a }) . mapping _Time+-- | Specifies that only events that occur before or at the specified time+-- are returned. If the specified end time is before the specified start+-- time, an error is returned.+leEndTime :: Lens' LookupEvents (Maybe UTCTime)+leEndTime = lens _leEndTime (\ s a -> s{_leEndTime = a}) . mapping _Time; -data LookupEventsResponse = LookupEventsResponse-    { _lerEvents    :: List "Events" Event-    , _lerNextToken :: Maybe Text-    } deriving (Eq, Read, Show)+-- | The number of events to return. Possible values are 1 through 50. The+-- default is 10.+leMaxResults :: Lens' LookupEvents (Maybe Natural)+leMaxResults = lens _leMaxResults (\ s a -> s{_leMaxResults = a}) . mapping _Nat; --- | 'LookupEventsResponse' constructor.------ The fields accessible through corresponding lenses are:------ * 'lerEvents' @::@ ['Event']------ * 'lerNextToken' @::@ 'Maybe' 'Text'----lookupEventsResponse :: LookupEventsResponse-lookupEventsResponse = LookupEventsResponse-    { _lerEvents    = mempty-    , _lerNextToken = Nothing-    }+instance AWSRequest LookupEvents where+        type Sv LookupEvents = CloudTrail+        type Rs LookupEvents = LookupEventsResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 LookupEventsResponse' <$>+                   (x .?> "NextToken") <*> (x .?> "Events" .!@ mempty)+                     <*> (pure (fromEnum s))) --- | A list of events returned based on the lookup attributes specified and the--- CloudTrail event. The events list is sorted by time. The most recent event is--- listed first.-lerEvents :: Lens' LookupEventsResponse [Event]-lerEvents = lens _lerEvents (\s a -> s { _lerEvents = a }) . _List+instance ToHeaders LookupEvents where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.LookupEvents"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) --- | The token to use to get the next page of results after a previous API call.--- If the token does not appear, there are no more results to return. The token--- must be passed in with the same parameters as the previous call. For example,--- if the original call specified an AttributeKey of 'Username' with a value of--- 'root', the call with NextToken should include those same parameters.-lerNextToken :: Lens' LookupEventsResponse (Maybe Text)-lerNextToken = lens _lerNextToken (\s a -> s { _lerNextToken = a })+instance ToJSON LookupEvents where+        toJSON LookupEvents'{..}+          = object+              ["StartTime" .= _leStartTime,+               "LookupAttributes" .= _leLookupAttributes,+               "NextToken" .= _leNextToken, "EndTime" .= _leEndTime,+               "MaxResults" .= _leMaxResults]  instance ToPath LookupEvents where-    toPath = const "/"+        toPath = const "/"  instance ToQuery LookupEvents where-    toQuery = const mempty+        toQuery = const mempty -instance ToHeaders LookupEvents+-- | Contains a response to a LookupEvents action.+--+-- /See:/ 'lookupEventsResponse' smart constructor.+data LookupEventsResponse = LookupEventsResponse'+    { _lersNextToken :: !(Maybe Text)+    , _lersEvents    :: !(Maybe [Event])+    , _lersStatus    :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance ToJSON LookupEvents where-    toJSON LookupEvents{..} = object-        [ "LookupAttributes" .= _leLookupAttributes-        , "StartTime"        .= _leStartTime-        , "EndTime"          .= _leEndTime-        , "MaxResults"       .= _leMaxResults-        , "NextToken"        .= _leNextToken-        ]+-- | Creates a value of 'LookupEventsResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'lersNextToken'+--+-- * 'lersEvents'+--+-- * 'lersStatus'+lookupEventsResponse+    :: Int -- ^ 'lersStatus'+    -> LookupEventsResponse+lookupEventsResponse pStatus_ =+    LookupEventsResponse'+    { _lersNextToken = Nothing+    , _lersEvents = Nothing+    , _lersStatus = pStatus_+    } -instance AWSRequest LookupEvents where-    type Sv LookupEvents = CloudTrail-    type Rs LookupEvents = LookupEventsResponse+-- | The token to use to get the next page of results after a previous API+-- call. If the token does not appear, there are no more results to return.+-- The token must be passed in with the same parameters as the previous+-- call. For example, if the original call specified an AttributeKey of+-- \'Username\' with a value of \'root\', the call with NextToken should+-- include those same parameters.+lersNextToken :: Lens' LookupEventsResponse (Maybe Text)+lersNextToken = lens _lersNextToken (\ s a -> s{_lersNextToken = a}); -    request  = post "LookupEvents"-    response = jsonResponse+-- | A list of events returned based on the lookup attributes specified and+-- the CloudTrail event. The events list is sorted by time. The most recent+-- event is listed first.+lersEvents :: Lens' LookupEventsResponse [Event]+lersEvents = lens _lersEvents (\ s a -> s{_lersEvents = a}) . _Default . _Coerce; -instance FromJSON LookupEventsResponse where-    parseJSON = withObject "LookupEventsResponse" $ \o -> LookupEventsResponse-        <$> o .:? "Events" .!= mempty-        <*> o .:? "NextToken"+-- | The response status code.+lersStatus :: Lens' LookupEventsResponse Int+lersStatus = lens _lersStatus (\ s a -> s{_lersStatus = a});
gen/Network/AWS/CloudTrail/StartLogging.hs view
@@ -1,94 +1,120 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.StartLogging--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Starts the recording of AWS API calls and log file delivery for a trail.+-- Starts the recording of AWS API calls and log file delivery for a trail. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartLogging.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StartLogging.html AWS API Reference> for StartLogging. module Network.AWS.CloudTrail.StartLogging     (-    -- * Request-      StartLogging-    -- ** Request constructor-    , startLogging-    -- ** Request lenses-    , sl1Name+    -- * Creating a Request+      startLogging+    , StartLogging+    -- * Request Lenses+    , sName -    -- * Response-    , StartLoggingResponse-    -- ** Response constructor+    -- * Destructuring the Response     , startLoggingResponse+    , StartLoggingResponse+    -- * Response Lenses+    , srsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts--newtype StartLogging = StartLogging-    { _sl1Name :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'StartLogging' constructor.+-- | The request to CloudTrail to start logging AWS API calls for an account. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'startLogging' smart constructor.+newtype StartLogging = StartLogging'+    { _sName :: Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'StartLogging' with the minimum fields required to make a request. ----- * 'sl1Name' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---startLogging :: Text -- ^ 'sl1Name'-             -> StartLogging-startLogging p1 = StartLogging-    { _sl1Name = p1+-- * 'sName'+startLogging+    :: Text -- ^ 'sName'+    -> StartLogging+startLogging pName_ =+    StartLogging'+    { _sName = pName_     }  -- | The name of the trail for which CloudTrail logs AWS API calls.-sl1Name :: Lens' StartLogging Text-sl1Name = lens _sl1Name (\s a -> s { _sl1Name = a })+sName :: Lens' StartLogging Text+sName = lens _sName (\ s a -> s{_sName = a}); -data StartLoggingResponse = StartLoggingResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest StartLogging where+        type Sv StartLogging = CloudTrail+        type Rs StartLogging = StartLoggingResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 StartLoggingResponse' <$> (pure (fromEnum s))) --- | 'StartLoggingResponse' constructor.-startLoggingResponse :: StartLoggingResponse-startLoggingResponse = StartLoggingResponse+instance ToHeaders StartLogging where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StartLogging"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON StartLogging where+        toJSON StartLogging'{..} = object ["Name" .= _sName]+ instance ToPath StartLogging where-    toPath = const "/"+        toPath = const "/"  instance ToQuery StartLogging where-    toQuery = const mempty--instance ToHeaders StartLogging+        toQuery = const mempty -instance ToJSON StartLogging where-    toJSON StartLogging{..} = object-        [ "Name" .= _sl1Name-        ]+-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error.+--+-- /See:/ 'startLoggingResponse' smart constructor.+newtype StartLoggingResponse = StartLoggingResponse'+    { _srsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest StartLogging where-    type Sv StartLogging = CloudTrail-    type Rs StartLogging = StartLoggingResponse+-- | Creates a value of 'StartLoggingResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'srsStatus'+startLoggingResponse+    :: Int -- ^ 'srsStatus'+    -> StartLoggingResponse+startLoggingResponse pStatus_ =+    StartLoggingResponse'+    { _srsStatus = pStatus_+    } -    request  = post "StartLogging"-    response = nullResponse StartLoggingResponse+-- | The response status code.+srsStatus :: Lens' StartLoggingResponse Int+srsStatus = lens _srsStatus (\ s a -> s{_srsStatus = a});
gen/Network/AWS/CloudTrail/StopLogging.hs view
@@ -1,98 +1,125 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.StopLogging--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | Suspends the recording of AWS API calls and log file delivery for the+-- Suspends the recording of AWS API calls and log file delivery for the -- specified trail. Under most circumstances, there is no need to use this--- action. You can update a trail without stopping it first. This action is the--- only way to stop recording.+-- action. You can update a trail without stopping it first. This action is+-- the only way to stop recording. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_StopLogging.html AWS API Reference> for StopLogging. module Network.AWS.CloudTrail.StopLogging     (-    -- * Request-      StopLogging-    -- ** Request constructor-    , stopLogging-    -- ** Request lenses+    -- * Creating a Request+      stopLogging+    , StopLogging+    -- * Request Lenses     , slName -    -- * Response-    , StopLoggingResponse-    -- ** Response constructor+    -- * Destructuring the Response     , stopLoggingResponse+    , StopLoggingResponse+    -- * Response Lenses+    , slrsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response -newtype StopLogging = StopLogging+-- | Passes the request to CloudTrail to stop logging AWS API calls for the+-- specified account.+--+-- /See:/ 'stopLogging' smart constructor.+newtype StopLogging = StopLogging'     { _slName :: Text-    } deriving (Eq, Ord, Read, Show, Monoid, IsString)+    } deriving (Eq,Read,Show,Data,Typeable,Generic) --- | 'StopLogging' constructor.------ The fields accessible through corresponding lenses are:+-- | Creates a value of 'StopLogging' with the minimum fields required to make a request. ----- * 'slName' @::@ 'Text'+-- Use one of the following lenses to modify other fields as desired: ---stopLogging :: Text -- ^ 'slName'-            -> StopLogging-stopLogging p1 = StopLogging-    { _slName = p1+-- * 'slName'+stopLogging+    :: Text -- ^ 'slName'+    -> StopLogging+stopLogging pName_ =+    StopLogging'+    { _slName = pName_     } --- | Communicates to CloudTrail the name of the trail for which to stop logging--- AWS API calls.+-- | Communicates to CloudTrail the name of the trail for which to stop+-- logging AWS API calls. slName :: Lens' StopLogging Text-slName = lens _slName (\s a -> s { _slName = a })+slName = lens _slName (\ s a -> s{_slName = a}); -data StopLoggingResponse = StopLoggingResponse-    deriving (Eq, Ord, Read, Show, Generic)+instance AWSRequest StopLogging where+        type Sv StopLogging = CloudTrail+        type Rs StopLogging = StopLoggingResponse+        request = postJSON+        response+          = receiveEmpty+              (\ s h x ->+                 StopLoggingResponse' <$> (pure (fromEnum s))) --- | 'StopLoggingResponse' constructor.-stopLoggingResponse :: StopLoggingResponse-stopLoggingResponse = StopLoggingResponse+instance ToHeaders StopLogging where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.StopLogging"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) +instance ToJSON StopLogging where+        toJSON StopLogging'{..} = object ["Name" .= _slName]+ instance ToPath StopLogging where-    toPath = const "/"+        toPath = const "/"  instance ToQuery StopLogging where-    toQuery = const mempty--instance ToHeaders StopLogging+        toQuery = const mempty -instance ToJSON StopLogging where-    toJSON StopLogging{..} = object-        [ "Name" .= _slName-        ]+-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error.+--+-- /See:/ 'stopLoggingResponse' smart constructor.+newtype StopLoggingResponse = StopLoggingResponse'+    { _slrsStatus :: Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic) -instance AWSRequest StopLogging where-    type Sv StopLogging = CloudTrail-    type Rs StopLogging = StopLoggingResponse+-- | Creates a value of 'StopLoggingResponse' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'slrsStatus'+stopLoggingResponse+    :: Int -- ^ 'slrsStatus'+    -> StopLoggingResponse+stopLoggingResponse pStatus_ =+    StopLoggingResponse'+    { _slrsStatus = pStatus_+    } -    request  = post "StopLogging"-    response = nullResponse StopLoggingResponse+-- | The response status code.+slrsStatus :: Lens' StopLoggingResponse Int+slrsStatus = lens _slrsStatus (\ s a -> s{_slrsStatus = a});
gen/Network/AWS/CloudTrail/Types.hs view
@@ -1,55 +1,52 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}-{-# LANGUAGE ViewPatterns                #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-} -{-# OPTIONS_GHC -fno-warn-unused-imports #-}+-- Derived from AWS service descriptions, licensed under Apache 2.0. +-- | -- Module      : Network.AWS.CloudTrail.Types--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.- module Network.AWS.CloudTrail.Types     (     -- * Service       CloudTrail-    -- ** Error-    , JSONError +    -- * Errors+    , _InvalidTimeRangeException+    , _InsufficientS3BucketPolicyException+    , _MaximumNumberOfTrailsExceededException+    , _InsufficientSNSTopicPolicyException+    , _InvalidCloudWatchLogsRoleARNException+    , _InvalidTrailNameException+    , _InvalidLookupAttributesException+    , _TrailNotFoundException+    , _CloudWatchLogsDeliveryUnavailableException+    , _InvalidSNSTopicNameException+    , _InvalidCloudWatchLogsLogGroupARNException+    , _InvalidS3BucketNameException+    , _InvalidNextTokenException+    , _S3BucketDoesNotExistException+    , _InvalidMaxResultsException+    , _TrailAlreadyExistsException+    , _InvalidS3PrefixException++    -- * LookupAttributeKey+    , LookupAttributeKey (..)+     -- * Event     , Event     , event-    , eCloudTrailEvent-    , eEventId-    , eEventName+    , eUsername     , eEventTime     , eResources-    , eUsername--    -- * Trail-    , Trail-    , trail-    , tCloudWatchLogsLogGroupArn-    , tCloudWatchLogsRoleArn-    , tIncludeGlobalServiceEvents-    , tName-    , tS3BucketName-    , tS3KeyPrefix-    , tSnsTopicName+    , eCloudTrailEvent+    , eEventName+    , eEventId      -- * LookupAttribute     , LookupAttribute@@ -57,355 +54,151 @@     , laAttributeKey     , laAttributeValue -    -- * LookupAttributeKey-    , LookupAttributeKey (..)-     -- * Resource     , Resource     , resource-    , rResourceName     , rResourceType+    , rResourceName++    -- * Trail+    , Trail+    , trail+    , tS3KeyPrefix+    , tSNSTopicName+    , tCloudWatchLogsLogGroupARN+    , tName+    , tIncludeGlobalServiceEvents+    , tCloudWatchLogsRoleARN+    , tS3BucketName     ) where -import Network.AWS.Prelude-import Network.AWS.Signing-import qualified GHC.Exts+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.CloudTrail.Types.Sum+import           Network.AWS.Prelude+import           Network.AWS.Sign.V4 --- | Version @2013-11-01@ of the Amazon CloudTrail service.+-- | Version @2013-11-01@ of the Amazon CloudTrail SDK. data CloudTrail  instance AWSService CloudTrail where     type Sg CloudTrail = V4-    type Er CloudTrail = JSONError--    service = service'+    service = const svc       where-        service' :: Service CloudTrail-        service' = Service-            { _svcAbbrev       = "CloudTrail"-            , _svcPrefix       = "cloudtrail"-            , _svcVersion      = "2013-11-01"-            , _svcTargetPrefix = Just "com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101"-            , _svcJSONVersion  = Just "1.1"-            , _svcHandle       = handle-            , _svcRetry        = retry+        svc =+            Service+            { _svcAbbrev = "CloudTrail"+            , _svcPrefix = "cloudtrail"+            , _svcVersion = "2013-11-01"+            , _svcEndpoint = defaultEndpoint svc+            , _svcTimeout = Just 70+            , _svcStatus = statusSuccess+            , _svcError = parseJSONError+            , _svcRetry = retry             }--        handle :: Status-               -> Maybe (LazyByteString -> ServiceError JSONError)-        handle = jsonError statusSuccess service'--        retry :: Retry CloudTrail-        retry = Exponential-            { _retryBase     = 0.05-            , _retryGrowth   = 2+        retry =+            Exponential+            { _retryBase = 5.0e-2+            , _retryGrowth = 2             , _retryAttempts = 5-            , _retryCheck    = check+            , _retryCheck = check             }--        check :: Status-              -> JSONError-              -> Bool-        check (statusCode -> s) (awsErrorCode -> e)-            | s == 500  = True -- General Server Error-            | s == 509  = True -- Limit Exceeded-            | s == 503  = True -- Service Unavailable-            | otherwise = False--data Event = Event-    { _eCloudTrailEvent :: Maybe Text-    , _eEventId         :: Maybe Text-    , _eEventName       :: Maybe Text-    , _eEventTime       :: Maybe POSIX-    , _eResources       :: List "Resources" Resource-    , _eUsername        :: Maybe Text-    } deriving (Eq, Read, Show)---- | 'Event' constructor.------ The fields accessible through corresponding lenses are:------ * 'eCloudTrailEvent' @::@ 'Maybe' 'Text'------ * 'eEventId' @::@ 'Maybe' 'Text'------ * 'eEventName' @::@ 'Maybe' 'Text'------ * 'eEventTime' @::@ 'Maybe' 'UTCTime'------ * 'eResources' @::@ ['Resource']------ * 'eUsername' @::@ 'Maybe' 'Text'----event :: Event-event = Event-    { _eEventId         = Nothing-    , _eEventName       = Nothing-    , _eEventTime       = Nothing-    , _eUsername        = Nothing-    , _eResources       = mempty-    , _eCloudTrailEvent = Nothing-    }---- | A JSON string that contains a representation of the event returned.-eCloudTrailEvent :: Lens' Event (Maybe Text)-eCloudTrailEvent = lens _eCloudTrailEvent (\s a -> s { _eCloudTrailEvent = a })---- | The CloudTrail ID of the event returned.-eEventId :: Lens' Event (Maybe Text)-eEventId = lens _eEventId (\s a -> s { _eEventId = a })---- | The name of the event returned.-eEventName :: Lens' Event (Maybe Text)-eEventName = lens _eEventName (\s a -> s { _eEventName = a })---- | The date and time of the event returned.-eEventTime :: Lens' Event (Maybe UTCTime)-eEventTime = lens _eEventTime (\s a -> s { _eEventTime = a }) . mapping _Time---- | A list of resources referenced by the event returned.-eResources :: Lens' Event [Resource]-eResources = lens _eResources (\s a -> s { _eResources = a }) . _List---- | A user name or role name of the requester that called the API in the event--- returned.-eUsername :: Lens' Event (Maybe Text)-eUsername = lens _eUsername (\s a -> s { _eUsername = a })--instance FromJSON Event where-    parseJSON = withObject "Event" $ \o -> Event-        <$> o .:? "CloudTrailEvent"-        <*> o .:? "EventId"-        <*> o .:? "EventName"-        <*> o .:? "EventTime"-        <*> o .:? "Resources" .!= mempty-        <*> o .:? "Username"--instance ToJSON Event where-    toJSON Event{..} = object-        [ "EventId"         .= _eEventId-        , "EventName"       .= _eEventName-        , "EventTime"       .= _eEventTime-        , "Username"        .= _eUsername-        , "Resources"       .= _eResources-        , "CloudTrailEvent" .= _eCloudTrailEvent-        ]--data Trail = Trail-    { _tCloudWatchLogsLogGroupArn  :: Maybe Text-    , _tCloudWatchLogsRoleArn      :: Maybe Text-    , _tIncludeGlobalServiceEvents :: Maybe Bool-    , _tName                       :: Maybe Text-    , _tS3BucketName               :: Maybe Text-    , _tS3KeyPrefix                :: Maybe Text-    , _tSnsTopicName               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)---- | 'Trail' constructor.------ The fields accessible through corresponding lenses are:------ * 'tCloudWatchLogsLogGroupArn' @::@ 'Maybe' 'Text'------ * 'tCloudWatchLogsRoleArn' @::@ 'Maybe' 'Text'------ * 'tIncludeGlobalServiceEvents' @::@ 'Maybe' 'Bool'------ * 'tName' @::@ 'Maybe' 'Text'------ * 'tS3BucketName' @::@ 'Maybe' 'Text'------ * 'tS3KeyPrefix' @::@ 'Maybe' 'Text'------ * 'tSnsTopicName' @::@ 'Maybe' 'Text'----trail :: Trail-trail = Trail-    { _tName                       = Nothing-    , _tS3BucketName               = Nothing-    , _tS3KeyPrefix                = Nothing-    , _tSnsTopicName               = Nothing-    , _tIncludeGlobalServiceEvents = Nothing-    , _tCloudWatchLogsLogGroupArn  = Nothing-    , _tCloudWatchLogsRoleArn      = Nothing-    }---- | Specifies an Amazon Resource Name (ARN), a unique identifier that represents--- the log group to which CloudTrail logs will be delivered.-tCloudWatchLogsLogGroupArn :: Lens' Trail (Maybe Text)-tCloudWatchLogsLogGroupArn =-    lens _tCloudWatchLogsLogGroupArn-        (\s a -> s { _tCloudWatchLogsLogGroupArn = a })---- | Specifies the role for the CloudWatch Logs endpoint to assume to write to a--- user’s log group.-tCloudWatchLogsRoleArn :: Lens' Trail (Maybe Text)-tCloudWatchLogsRoleArn =-    lens _tCloudWatchLogsRoleArn (\s a -> s { _tCloudWatchLogsRoleArn = a })---- | Set to True to include AWS API calls from AWS global services such as IAM.--- Otherwise, False.-tIncludeGlobalServiceEvents :: Lens' Trail (Maybe Bool)-tIncludeGlobalServiceEvents =-    lens _tIncludeGlobalServiceEvents-        (\s a -> s { _tIncludeGlobalServiceEvents = a })---- | Name of the trail set by calling 'CreateTrail'.-tName :: Lens' Trail (Maybe Text)-tName = lens _tName (\s a -> s { _tName = a })---- | Name of the Amazon S3 bucket into which CloudTrail delivers your trail files.-tS3BucketName :: Lens' Trail (Maybe Text)-tS3BucketName = lens _tS3BucketName (\s a -> s { _tS3BucketName = a })---- | Value of the Amazon S3 prefix.-tS3KeyPrefix :: Lens' Trail (Maybe Text)-tS3KeyPrefix = lens _tS3KeyPrefix (\s a -> s { _tS3KeyPrefix = a })---- | Name of the existing Amazon SNS topic that CloudTrail uses to notify the--- account owner when new CloudTrail log files have been delivered.-tSnsTopicName :: Lens' Trail (Maybe Text)-tSnsTopicName = lens _tSnsTopicName (\s a -> s { _tSnsTopicName = a })--instance FromJSON Trail where-    parseJSON = withObject "Trail" $ \o -> Trail-        <$> o .:? "CloudWatchLogsLogGroupArn"-        <*> o .:? "CloudWatchLogsRoleArn"-        <*> o .:? "IncludeGlobalServiceEvents"-        <*> o .:? "Name"-        <*> o .:? "S3BucketName"-        <*> o .:? "S3KeyPrefix"-        <*> o .:? "SnsTopicName"--instance ToJSON Trail where-    toJSON Trail{..} = object-        [ "Name"                       .= _tName-        , "S3BucketName"               .= _tS3BucketName-        , "S3KeyPrefix"                .= _tS3KeyPrefix-        , "SnsTopicName"               .= _tSnsTopicName-        , "IncludeGlobalServiceEvents" .= _tIncludeGlobalServiceEvents-        , "CloudWatchLogsLogGroupArn"  .= _tCloudWatchLogsLogGroupArn-        , "CloudWatchLogsRoleArn"      .= _tCloudWatchLogsRoleArn-        ]--data LookupAttribute = LookupAttribute-    { _laAttributeKey   :: LookupAttributeKey-    , _laAttributeValue :: Text-    } deriving (Eq, Read, Show)---- | 'LookupAttribute' constructor.------ The fields accessible through corresponding lenses are:------ * 'laAttributeKey' @::@ 'LookupAttributeKey'------ * 'laAttributeValue' @::@ 'Text'----lookupAttribute :: LookupAttributeKey -- ^ 'laAttributeKey'-                -> Text -- ^ 'laAttributeValue'-                -> LookupAttribute-lookupAttribute p1 p2 = LookupAttribute-    { _laAttributeKey   = p1-    , _laAttributeValue = p2-    }+        check e+          | has (hasCode "ThrottlingException" . hasStatus 400) e =+              Just "throttling_exception"+          | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"+          | has (hasStatus 503) e = Just "service_unavailable"+          | has (hasStatus 500) e = Just "general_server_error"+          | has (hasStatus 509) e = Just "limit_exceeded"+          | otherwise = Nothing --- | Specifies an attribute on which to filter the events returned.-laAttributeKey :: Lens' LookupAttribute LookupAttributeKey-laAttributeKey = lens _laAttributeKey (\s a -> s { _laAttributeKey = a })+-- | Occurs if the timestamp values are invalid. Either the start time occurs+-- after the end time or the time range is outside the range of possible+-- values.+_InvalidTimeRangeException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidTimeRangeException =+    _ServiceError . hasStatus 400 . hasCode "InvalidTimeRange" --- | Specifies a value for the specified AttributeKey.-laAttributeValue :: Lens' LookupAttribute Text-laAttributeValue = lens _laAttributeValue (\s a -> s { _laAttributeValue = a })+-- | This exception is thrown when the policy on the S3 bucket is not+-- sufficient.+_InsufficientS3BucketPolicyException :: AsError a => Getting (First ServiceError) a ServiceError+_InsufficientS3BucketPolicyException =+    _ServiceError . hasStatus 403 . hasCode "InsufficientS3BucketPolicy" -instance FromJSON LookupAttribute where-    parseJSON = withObject "LookupAttribute" $ \o -> LookupAttribute-        <$> o .:  "AttributeKey"-        <*> o .:  "AttributeValue"+-- | This exception is thrown when the maximum number of trails is reached.+_MaximumNumberOfTrailsExceededException :: AsError a => Getting (First ServiceError) a ServiceError+_MaximumNumberOfTrailsExceededException =+    _ServiceError . hasStatus 403 . hasCode "MaximumNumberOfTrailsExceeded" -instance ToJSON LookupAttribute where-    toJSON LookupAttribute{..} = object-        [ "AttributeKey"   .= _laAttributeKey-        , "AttributeValue" .= _laAttributeValue-        ]+-- | This exception is thrown when the policy on the SNS topic is not+-- sufficient.+_InsufficientSNSTopicPolicyException :: AsError a => Getting (First ServiceError) a ServiceError+_InsufficientSNSTopicPolicyException =+    _ServiceError . hasStatus 403 . hasCode "InsufficientSnsTopicPolicy" -data LookupAttributeKey-    = EventId      -- ^ EventId-    | EventName    -- ^ EventName-    | ResourceName -- ^ ResourceName-    | ResourceType -- ^ ResourceType-    | Username     -- ^ Username-      deriving (Eq, Ord, Read, Show, Generic, Enum)+-- | This exception is thrown when the provided role is not valid.+_InvalidCloudWatchLogsRoleARNException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidCloudWatchLogsRoleARNException =+    _ServiceError . hasStatus 400 . hasCode "InvalidCloudWatchLogsRoleArn" -instance Hashable LookupAttributeKey+-- | This exception is thrown when the provided trail name is not valid.+_InvalidTrailNameException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidTrailNameException =+    _ServiceError . hasStatus 400 . hasCode "InvalidTrailName" -instance FromText LookupAttributeKey where-    parser = takeLowerText >>= \case-        "eventid"      -> pure EventId-        "eventname"    -> pure EventName-        "resourcename" -> pure ResourceName-        "resourcetype" -> pure ResourceType-        "username"     -> pure Username-        e              -> fail $-            "Failure parsing LookupAttributeKey from " ++ show e+-- | Occurs when an invalid lookup attribute is specified.+_InvalidLookupAttributesException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidLookupAttributesException =+    _ServiceError . hasStatus 400 . hasCode "InvalidLookupAttributes" -instance ToText LookupAttributeKey where-    toText = \case-        EventId      -> "EventId"-        EventName    -> "EventName"-        ResourceName -> "ResourceName"-        ResourceType -> "ResourceType"-        Username     -> "Username"+-- | This exception is thrown when the trail with the given name is not+-- found.+_TrailNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError+_TrailNotFoundException =+    _ServiceError . hasStatus 404 . hasCode "TrailNotFound" -instance ToByteString LookupAttributeKey-instance ToHeader     LookupAttributeKey-instance ToQuery      LookupAttributeKey+-- | Cannot set a CloudWatch Logs delivery for this region.+_CloudWatchLogsDeliveryUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError+_CloudWatchLogsDeliveryUnavailableException =+    _ServiceError . hasStatus 400 . hasCode "CloudWatchLogsDeliveryUnavailable" -instance FromJSON LookupAttributeKey where-    parseJSON = parseJSONText "LookupAttributeKey"+-- | This exception is thrown when the provided SNS topic name is not valid.+_InvalidSNSTopicNameException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidSNSTopicNameException =+    _ServiceError . hasStatus 400 . hasCode "InvalidSnsTopicName" -instance ToJSON LookupAttributeKey where-    toJSON = toJSONText+-- | This exception is thrown when the provided CloudWatch log group is not+-- valid.+_InvalidCloudWatchLogsLogGroupARNException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidCloudWatchLogsLogGroupARNException =+    _ServiceError . hasStatus 400 . hasCode "InvalidCloudWatchLogsLogGroupArn" -data Resource = Resource-    { _rResourceName :: Maybe Text-    , _rResourceType :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+-- | This exception is thrown when the provided S3 bucket name is not valid.+_InvalidS3BucketNameException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidS3BucketNameException =+    _ServiceError . hasStatus 400 . hasCode "InvalidS3BucketName" --- | 'Resource' constructor.------ The fields accessible through corresponding lenses are:------ * 'rResourceName' @::@ 'Maybe' 'Text'------ * 'rResourceType' @::@ 'Maybe' 'Text'----resource :: Resource-resource = Resource-    { _rResourceType = Nothing-    , _rResourceName = Nothing-    }+-- | Invalid token or token that was previously used in a request with+-- different parameters. This exception is thrown if the token is invalid.+_InvalidNextTokenException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidNextTokenException =+    _ServiceError . hasStatus 400 . hasCode "InvalidNextToken" --- | The name of the resource referenced by the event returned. These are--- user-created names whose values will depend on the environment. For example,--- the resource name might be "auto-scaling-test-group" for an Auto Scaling--- Group or "i-1234567" for an EC2 Instance.-rResourceName :: Lens' Resource (Maybe Text)-rResourceName = lens _rResourceName (\s a -> s { _rResourceName = a })+-- | This exception is thrown when the specified S3 bucket does not exist.+_S3BucketDoesNotExistException :: AsError a => Getting (First ServiceError) a ServiceError+_S3BucketDoesNotExistException =+    _ServiceError . hasStatus 404 . hasCode "S3BucketDoesNotExist" --- | The type of a resource referenced by the event returned. When the resource--- type cannot be determined, null is returned. Some examples of resource types--- are: Instance for EC2, Trail for CloudTrail, DBInstance for RDS, and AccessKey--- for IAM. For a list of resource types supported for event lookup, see <http://docs.aws.amazon.com/awscloudtrail/latest/userguide/lookup_supported_resourcetypes.html Resource Types Supported for Event Lookup>.-rResourceType :: Lens' Resource (Maybe Text)-rResourceType = lens _rResourceType (\s a -> s { _rResourceType = a })+-- | This exception is thrown if the limit specified is invalid.+_InvalidMaxResultsException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidMaxResultsException =+    _ServiceError . hasStatus 400 . hasCode "InvalidMaxResults" -instance FromJSON Resource where-    parseJSON = withObject "Resource" $ \o -> Resource-        <$> o .:? "ResourceName"-        <*> o .:? "ResourceType"+-- | This exception is thrown when the specified trail already exists.+_TrailAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError+_TrailAlreadyExistsException =+    _ServiceError . hasStatus 400 . hasCode "TrailAlreadyExists" -instance ToJSON Resource where-    toJSON Resource{..} = object-        [ "ResourceType" .= _rResourceType-        , "ResourceName" .= _rResourceName-        ]+-- | This exception is thrown when the provided S3 prefix is not valid.+_InvalidS3PrefixException :: AsError a => Getting (First ServiceError) a ServiceError+_InvalidS3PrefixException =+    _ServiceError . hasStatus 400 . hasCode "InvalidS3Prefix"
+ gen/Network/AWS/CloudTrail/Types/Product.hs view
@@ -0,0 +1,271 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudTrail.Types.Product+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudTrail.Types.Product where++import           Network.AWS.CloudTrail.Types.Sum+import           Network.AWS.Prelude++-- | Contains information about an event that was returned by a lookup+-- request. The result includes a representation of a CloudTrail event.+--+-- /See:/ 'event' smart constructor.+data Event = Event'+    { _eUsername        :: !(Maybe Text)+    , _eEventTime       :: !(Maybe POSIX)+    , _eResources       :: !(Maybe [Resource])+    , _eCloudTrailEvent :: !(Maybe Text)+    , _eEventName       :: !(Maybe Text)+    , _eEventId         :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Event' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'eUsername'+--+-- * 'eEventTime'+--+-- * 'eResources'+--+-- * 'eCloudTrailEvent'+--+-- * 'eEventName'+--+-- * 'eEventId'+event+    :: Event+event =+    Event'+    { _eUsername = Nothing+    , _eEventTime = Nothing+    , _eResources = Nothing+    , _eCloudTrailEvent = Nothing+    , _eEventName = Nothing+    , _eEventId = Nothing+    }++-- | A user name or role name of the requester that called the API in the+-- event returned.+eUsername :: Lens' Event (Maybe Text)+eUsername = lens _eUsername (\ s a -> s{_eUsername = a});++-- | The date and time of the event returned.+eEventTime :: Lens' Event (Maybe UTCTime)+eEventTime = lens _eEventTime (\ s a -> s{_eEventTime = a}) . mapping _Time;++-- | A list of resources referenced by the event returned.+eResources :: Lens' Event [Resource]+eResources = lens _eResources (\ s a -> s{_eResources = a}) . _Default . _Coerce;++-- | A JSON string that contains a representation of the event returned.+eCloudTrailEvent :: Lens' Event (Maybe Text)+eCloudTrailEvent = lens _eCloudTrailEvent (\ s a -> s{_eCloudTrailEvent = a});++-- | The name of the event returned.+eEventName :: Lens' Event (Maybe Text)+eEventName = lens _eEventName (\ s a -> s{_eEventName = a});++-- | The CloudTrail ID of the event returned.+eEventId :: Lens' Event (Maybe Text)+eEventId = lens _eEventId (\ s a -> s{_eEventId = a});++instance FromJSON Event where+        parseJSON+          = withObject "Event"+              (\ x ->+                 Event' <$>+                   (x .:? "Username") <*> (x .:? "EventTime") <*>+                     (x .:? "Resources" .!= mempty)+                     <*> (x .:? "CloudTrailEvent")+                     <*> (x .:? "EventName")+                     <*> (x .:? "EventId"))++-- | Specifies an attribute and value that filter the events returned.+--+-- /See:/ 'lookupAttribute' smart constructor.+data LookupAttribute = LookupAttribute'+    { _laAttributeKey   :: !LookupAttributeKey+    , _laAttributeValue :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'LookupAttribute' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'laAttributeKey'+--+-- * 'laAttributeValue'+lookupAttribute+    :: LookupAttributeKey -- ^ 'laAttributeKey'+    -> Text -- ^ 'laAttributeValue'+    -> LookupAttribute+lookupAttribute pAttributeKey_ pAttributeValue_ =+    LookupAttribute'+    { _laAttributeKey = pAttributeKey_+    , _laAttributeValue = pAttributeValue_+    }++-- | Specifies an attribute on which to filter the events returned.+laAttributeKey :: Lens' LookupAttribute LookupAttributeKey+laAttributeKey = lens _laAttributeKey (\ s a -> s{_laAttributeKey = a});++-- | Specifies a value for the specified AttributeKey.+laAttributeValue :: Lens' LookupAttribute Text+laAttributeValue = lens _laAttributeValue (\ s a -> s{_laAttributeValue = a});++instance ToJSON LookupAttribute where+        toJSON LookupAttribute'{..}+          = object+              ["AttributeKey" .= _laAttributeKey,+               "AttributeValue" .= _laAttributeValue]++-- | Specifies the type and name of a resource referenced by an event.+--+-- /See:/ 'resource' smart constructor.+data Resource = Resource'+    { _rResourceType :: !(Maybe Text)+    , _rResourceName :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Resource' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'rResourceType'+--+-- * 'rResourceName'+resource+    :: Resource+resource =+    Resource'+    { _rResourceType = Nothing+    , _rResourceName = Nothing+    }++-- | The type of a resource referenced by the event returned. When the+-- resource type cannot be determined, null is returned. Some examples of+-- resource types are: __Instance__ for EC2, __Trail__ for CloudTrail,+-- __DBInstance__ for RDS, and __AccessKey__ for IAM. For a list of+-- resource types supported for event lookup, see+-- <http://docs.aws.amazon.com/awscloudtrail/latest/userguide/lookup_supported_resourcetypes.html Resource Types Supported for Event Lookup>.+rResourceType :: Lens' Resource (Maybe Text)+rResourceType = lens _rResourceType (\ s a -> s{_rResourceType = a});++-- | The name of the resource referenced by the event returned. These are+-- user-created names whose values will depend on the environment. For+-- example, the resource name might be \"auto-scaling-test-group\" for an+-- Auto Scaling Group or \"i-1234567\" for an EC2 Instance.+rResourceName :: Lens' Resource (Maybe Text)+rResourceName = lens _rResourceName (\ s a -> s{_rResourceName = a});++instance FromJSON Resource where+        parseJSON+          = withObject "Resource"+              (\ x ->+                 Resource' <$>+                   (x .:? "ResourceType") <*> (x .:? "ResourceName"))++-- | The settings for a trail.+--+-- /See:/ 'trail' smart constructor.+data Trail = Trail'+    { _tS3KeyPrefix                :: !(Maybe Text)+    , _tSNSTopicName               :: !(Maybe Text)+    , _tCloudWatchLogsLogGroupARN  :: !(Maybe Text)+    , _tName                       :: !(Maybe Text)+    , _tIncludeGlobalServiceEvents :: !(Maybe Bool)+    , _tCloudWatchLogsRoleARN      :: !(Maybe Text)+    , _tS3BucketName               :: !(Maybe Text)+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'Trail' with the minimum fields required to make a request.+--+-- Use one of the following lenses to modify other fields as desired:+--+-- * 'tS3KeyPrefix'+--+-- * 'tSNSTopicName'+--+-- * 'tCloudWatchLogsLogGroupARN'+--+-- * 'tName'+--+-- * 'tIncludeGlobalServiceEvents'+--+-- * 'tCloudWatchLogsRoleARN'+--+-- * 'tS3BucketName'+trail+    :: Trail+trail =+    Trail'+    { _tS3KeyPrefix = Nothing+    , _tSNSTopicName = Nothing+    , _tCloudWatchLogsLogGroupARN = Nothing+    , _tName = Nothing+    , _tIncludeGlobalServiceEvents = Nothing+    , _tCloudWatchLogsRoleARN = Nothing+    , _tS3BucketName = Nothing+    }++-- | Value of the Amazon S3 prefix.+tS3KeyPrefix :: Lens' Trail (Maybe Text)+tS3KeyPrefix = lens _tS3KeyPrefix (\ s a -> s{_tS3KeyPrefix = a});++-- | Name of the existing Amazon SNS topic that CloudTrail uses to notify the+-- account owner when new CloudTrail log files have been delivered.+tSNSTopicName :: Lens' Trail (Maybe Text)+tSNSTopicName = lens _tSNSTopicName (\ s a -> s{_tSNSTopicName = a});++-- | Specifies an Amazon Resource Name (ARN), a unique identifier that+-- represents the log group to which CloudTrail logs will be delivered.+tCloudWatchLogsLogGroupARN :: Lens' Trail (Maybe Text)+tCloudWatchLogsLogGroupARN = lens _tCloudWatchLogsLogGroupARN (\ s a -> s{_tCloudWatchLogsLogGroupARN = a});++-- | Name of the trail set by calling CreateTrail.+tName :: Lens' Trail (Maybe Text)+tName = lens _tName (\ s a -> s{_tName = a});++-- | Set to __True__ to include AWS API calls from AWS global services such+-- as IAM. Otherwise, __False__.+tIncludeGlobalServiceEvents :: Lens' Trail (Maybe Bool)+tIncludeGlobalServiceEvents = lens _tIncludeGlobalServiceEvents (\ s a -> s{_tIncludeGlobalServiceEvents = a});++-- | Specifies the role for the CloudWatch Logs endpoint to assume to write+-- to a user’s log group.+tCloudWatchLogsRoleARN :: Lens' Trail (Maybe Text)+tCloudWatchLogsRoleARN = lens _tCloudWatchLogsRoleARN (\ s a -> s{_tCloudWatchLogsRoleARN = a});++-- | Name of the Amazon S3 bucket into which CloudTrail delivers your trail+-- files.+tS3BucketName :: Lens' Trail (Maybe Text)+tS3BucketName = lens _tS3BucketName (\ s a -> s{_tS3BucketName = a});++instance FromJSON Trail where+        parseJSON+          = withObject "Trail"+              (\ x ->+                 Trail' <$>+                   (x .:? "S3KeyPrefix") <*> (x .:? "SnsTopicName") <*>+                     (x .:? "CloudWatchLogsLogGroupArn")+                     <*> (x .:? "Name")+                     <*> (x .:? "IncludeGlobalServiceEvents")+                     <*> (x .:? "CloudWatchLogsRoleArn")+                     <*> (x .:? "S3BucketName"))
+ gen/Network/AWS/CloudTrail/Types/Sum.hs view
@@ -0,0 +1,54 @@+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE LambdaCase         #-}+{-# LANGUAGE OverloadedStrings  #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudTrail.Types.Sum+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudTrail.Types.Sum where++import           Network.AWS.Prelude++data LookupAttributeKey+    = EventId+    | EventName+    | ResourceName+    | ResourceType+    | Username+    deriving (Eq,Ord,Read,Show,Enum,Data,Typeable,Generic)++instance FromText LookupAttributeKey where+    parser = takeLowerText >>= \case+        "eventid" -> pure EventId+        "eventname" -> pure EventName+        "resourcename" -> pure ResourceName+        "resourcetype" -> pure ResourceType+        "username" -> pure Username+        e -> fromTextError $ "Failure parsing LookupAttributeKey from value: '" <> e+           <> "'. Accepted values: eventid, eventname, resourcename, resourcetype, username"++instance ToText LookupAttributeKey where+    toText = \case+        EventId -> "eventid"+        EventName -> "eventname"+        ResourceName -> "resourcename"+        ResourceType -> "resourcetype"+        Username -> "username"++instance Hashable     LookupAttributeKey+instance ToByteString LookupAttributeKey+instance ToQuery      LookupAttributeKey+instance ToHeader     LookupAttributeKey++instance ToJSON LookupAttributeKey where+    toJSON = toJSONText
gen/Network/AWS/CloudTrail/UpdateTrail.hs view
@@ -1,261 +1,272 @@-{-# LANGUAGE DataKinds                   #-}-{-# LANGUAGE DeriveGeneric               #-}-{-# LANGUAGE FlexibleInstances           #-}-{-# LANGUAGE GeneralizedNewtypeDeriving  #-}-{-# LANGUAGE LambdaCase                  #-}-{-# LANGUAGE NoImplicitPrelude           #-}-{-# LANGUAGE OverloadedStrings           #-}-{-# LANGUAGE RecordWildCards             #-}-{-# LANGUAGE TypeFamilies                #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric      #-}+{-# LANGUAGE OverloadedStrings  #-}+{-# LANGUAGE RecordWildCards    #-}+{-# LANGUAGE TypeFamilies       #-}  {-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-binds   #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-} +-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- | -- Module      : Network.AWS.CloudTrail.UpdateTrail--- Copyright   : (c) 2013-2014 Brendan Hay <brendan.g.hay@gmail.com>--- License     : This Source Code Form is subject to the terms of---               the Mozilla Public License, v. 2.0.---               A copy of the MPL can be found in the LICENSE file or---               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0. -- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>--- Stability   : experimental+-- Stability   : auto-generated -- Portability : non-portable (GHC extensions) ----- Derived from AWS service descriptions, licensed under Apache 2.0.---- | From the command line, use 'update-subscription'.+-- From the command line, use 'update-subscription'. ----- Updates the settings that specify delivery of log files. Changes to a trail--- do not require stopping the CloudTrail service. Use this action to designate--- an existing bucket for log delivery. If the existing bucket has previously--- been a target for CloudTrail log files, an IAM policy exists for the bucket.+-- Updates the settings that specify delivery of log files. Changes to a+-- trail do not require stopping the CloudTrail service. Use this action to+-- designate an existing bucket for log delivery. If the existing bucket+-- has previously been a target for CloudTrail log files, an IAM policy+-- exists for the bucket. ----- <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html>+-- /See:/ <http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_UpdateTrail.html AWS API Reference> for UpdateTrail. module Network.AWS.CloudTrail.UpdateTrail     (-    -- * Request-      UpdateTrail-    -- ** Request constructor-    , updateTrail-    -- ** Request lenses-    , utCloudWatchLogsLogGroupArn-    , utCloudWatchLogsRoleArn+    -- * Creating a Request+      updateTrail+    , UpdateTrail+    -- * Request Lenses+    , utS3KeyPrefix+    , utSNSTopicName+    , utCloudWatchLogsLogGroupARN     , utIncludeGlobalServiceEvents-    , utName+    , utCloudWatchLogsRoleARN     , utS3BucketName-    , utS3KeyPrefix-    , utSnsTopicName+    , utName -    -- * Response-    , UpdateTrailResponse-    -- ** Response constructor+    -- * Destructuring the Response     , updateTrailResponse-    -- ** Response lenses-    , utrCloudWatchLogsLogGroupArn-    , utrCloudWatchLogsRoleArn-    , utrIncludeGlobalServiceEvents-    , utrName-    , utrS3BucketName-    , utrS3KeyPrefix-    , utrSnsTopicName+    , UpdateTrailResponse+    -- * Response Lenses+    , utrsS3KeyPrefix+    , utrsSNSTopicName+    , utrsCloudWatchLogsLogGroupARN+    , utrsName+    , utrsIncludeGlobalServiceEvents+    , utrsCloudWatchLogsRoleARN+    , utrsS3BucketName+    , utrsStatus     ) where -import Network.AWS.Data (Object)-import Network.AWS.Prelude-import Network.AWS.Request.JSON-import Network.AWS.CloudTrail.Types-import qualified GHC.Exts--data UpdateTrail = UpdateTrail-    { _utCloudWatchLogsLogGroupArn  :: Maybe Text-    , _utCloudWatchLogsRoleArn      :: Maybe Text-    , _utIncludeGlobalServiceEvents :: Maybe Bool-    , _utName                       :: Text-    , _utS3BucketName               :: Maybe Text-    , _utS3KeyPrefix                :: Maybe Text-    , _utSnsTopicName               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+import           Network.AWS.CloudTrail.Types+import           Network.AWS.CloudTrail.Types.Product+import           Network.AWS.Prelude+import           Network.AWS.Request+import           Network.AWS.Response --- | 'UpdateTrail' constructor.+-- | Specifies settings to update for the trail. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateTrail' smart constructor.+data UpdateTrail = UpdateTrail'+    { _utS3KeyPrefix                :: !(Maybe Text)+    , _utSNSTopicName               :: !(Maybe Text)+    , _utCloudWatchLogsLogGroupARN  :: !(Maybe Text)+    , _utIncludeGlobalServiceEvents :: !(Maybe Bool)+    , _utCloudWatchLogsRoleARN      :: !(Maybe Text)+    , _utS3BucketName               :: !(Maybe Text)+    , _utName                       :: !Text+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateTrail' with the minimum fields required to make a request. ----- * 'utCloudWatchLogsLogGroupArn' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'utCloudWatchLogsRoleArn' @::@ 'Maybe' 'Text'+-- * 'utS3KeyPrefix' ----- * 'utIncludeGlobalServiceEvents' @::@ 'Maybe' 'Bool'+-- * 'utSNSTopicName' ----- * 'utName' @::@ 'Text'+-- * 'utCloudWatchLogsLogGroupARN' ----- * 'utS3BucketName' @::@ 'Maybe' 'Text'+-- * 'utIncludeGlobalServiceEvents' ----- * 'utS3KeyPrefix' @::@ 'Maybe' 'Text'+-- * 'utCloudWatchLogsRoleARN' ----- * 'utSnsTopicName' @::@ 'Maybe' 'Text'+-- * 'utS3BucketName' ---updateTrail :: Text -- ^ 'utName'-            -> UpdateTrail-updateTrail p1 = UpdateTrail-    { _utName                       = p1-    , _utS3BucketName               = Nothing-    , _utS3KeyPrefix                = Nothing-    , _utSnsTopicName               = Nothing+-- * 'utName'+updateTrail+    :: Text -- ^ 'utName'+    -> UpdateTrail+updateTrail pName_ =+    UpdateTrail'+    { _utS3KeyPrefix = Nothing+    , _utSNSTopicName = Nothing+    , _utCloudWatchLogsLogGroupARN = Nothing     , _utIncludeGlobalServiceEvents = Nothing-    , _utCloudWatchLogsLogGroupArn  = Nothing-    , _utCloudWatchLogsRoleArn      = Nothing+    , _utCloudWatchLogsRoleARN = Nothing+    , _utS3BucketName = Nothing+    , _utName = pName_     } --- | Specifies a log group name using an Amazon Resource Name (ARN), a unique--- identifier that represents the log group to which CloudTrail logs will be--- delivered. Not required unless you specify CloudWatchLogsRoleArn.-utCloudWatchLogsLogGroupArn :: Lens' UpdateTrail (Maybe Text)-utCloudWatchLogsLogGroupArn =-    lens _utCloudWatchLogsLogGroupArn-        (\s a -> s { _utCloudWatchLogsLogGroupArn = a })+-- | Specifies the Amazon S3 key prefix that precedes the name of the bucket+-- you have designated for log file delivery.+utS3KeyPrefix :: Lens' UpdateTrail (Maybe Text)+utS3KeyPrefix = lens _utS3KeyPrefix (\ s a -> s{_utS3KeyPrefix = a}); --- | Specifies the role for the CloudWatch Logs endpoint to assume to write to a--- user’s log group.-utCloudWatchLogsRoleArn :: Lens' UpdateTrail (Maybe Text)-utCloudWatchLogsRoleArn =-    lens _utCloudWatchLogsRoleArn (\s a -> s { _utCloudWatchLogsRoleArn = a })+-- | Specifies the name of the Amazon SNS topic defined for notification of+-- log file delivery.+utSNSTopicName :: Lens' UpdateTrail (Maybe Text)+utSNSTopicName = lens _utSNSTopicName (\ s a -> s{_utSNSTopicName = a}); --- | Specifies whether the trail is publishing events from global services such as--- IAM to the log files.+-- | Specifies a log group name using an Amazon Resource Name (ARN), a unique+-- identifier that represents the log group to which CloudTrail logs will+-- be delivered. Not required unless you specify CloudWatchLogsRoleArn.+utCloudWatchLogsLogGroupARN :: Lens' UpdateTrail (Maybe Text)+utCloudWatchLogsLogGroupARN = lens _utCloudWatchLogsLogGroupARN (\ s a -> s{_utCloudWatchLogsLogGroupARN = a});++-- | Specifies whether the trail is publishing events from global services+-- such as IAM to the log files. utIncludeGlobalServiceEvents :: Lens' UpdateTrail (Maybe Bool)-utIncludeGlobalServiceEvents =-    lens _utIncludeGlobalServiceEvents-        (\s a -> s { _utIncludeGlobalServiceEvents = a })+utIncludeGlobalServiceEvents = lens _utIncludeGlobalServiceEvents (\ s a -> s{_utIncludeGlobalServiceEvents = a}); --- | Specifies the name of the trail.-utName :: Lens' UpdateTrail Text-utName = lens _utName (\s a -> s { _utName = a })+-- | Specifies the role for the CloudWatch Logs endpoint to assume to write+-- to a user’s log group.+utCloudWatchLogsRoleARN :: Lens' UpdateTrail (Maybe Text)+utCloudWatchLogsRoleARN = lens _utCloudWatchLogsRoleARN (\ s a -> s{_utCloudWatchLogsRoleARN = a});  -- | Specifies the name of the Amazon S3 bucket designated for publishing log -- files. utS3BucketName :: Lens' UpdateTrail (Maybe Text)-utS3BucketName = lens _utS3BucketName (\s a -> s { _utS3BucketName = a })+utS3BucketName = lens _utS3BucketName (\ s a -> s{_utS3BucketName = a}); --- | Specifies the Amazon S3 key prefix that precedes the name of the bucket you--- have designated for log file delivery.-utS3KeyPrefix :: Lens' UpdateTrail (Maybe Text)-utS3KeyPrefix = lens _utS3KeyPrefix (\s a -> s { _utS3KeyPrefix = a })+-- | Specifies the name of the trail.+utName :: Lens' UpdateTrail Text+utName = lens _utName (\ s a -> s{_utName = a}); --- | Specifies the name of the Amazon SNS topic defined for notification of log--- file delivery.-utSnsTopicName :: Lens' UpdateTrail (Maybe Text)-utSnsTopicName = lens _utSnsTopicName (\s a -> s { _utSnsTopicName = a })+instance AWSRequest UpdateTrail where+        type Sv UpdateTrail = CloudTrail+        type Rs UpdateTrail = UpdateTrailResponse+        request = postJSON+        response+          = receiveJSON+              (\ s h x ->+                 UpdateTrailResponse' <$>+                   (x .?> "S3KeyPrefix") <*> (x .?> "SnsTopicName") <*>+                     (x .?> "CloudWatchLogsLogGroupArn")+                     <*> (x .?> "Name")+                     <*> (x .?> "IncludeGlobalServiceEvents")+                     <*> (x .?> "CloudWatchLogsRoleArn")+                     <*> (x .?> "S3BucketName")+                     <*> (pure (fromEnum s))) -data UpdateTrailResponse = UpdateTrailResponse-    { _utrCloudWatchLogsLogGroupArn  :: Maybe Text-    , _utrCloudWatchLogsRoleArn      :: Maybe Text-    , _utrIncludeGlobalServiceEvents :: Maybe Bool-    , _utrName                       :: Maybe Text-    , _utrS3BucketName               :: Maybe Text-    , _utrS3KeyPrefix                :: Maybe Text-    , _utrSnsTopicName               :: Maybe Text-    } deriving (Eq, Ord, Read, Show)+instance ToHeaders UpdateTrail where+        toHeaders+          = const+              (mconcat+                 ["X-Amz-Target" =#+                    ("com.amazonaws.cloudtrail.v20131101.CloudTrail_20131101.UpdateTrail"+                       :: ByteString),+                  "Content-Type" =#+                    ("application/x-amz-json-1.1" :: ByteString)]) --- | 'UpdateTrailResponse' constructor.+instance ToJSON UpdateTrail where+        toJSON UpdateTrail'{..}+          = object+              ["S3KeyPrefix" .= _utS3KeyPrefix,+               "SnsTopicName" .= _utSNSTopicName,+               "CloudWatchLogsLogGroupArn" .=+                 _utCloudWatchLogsLogGroupARN,+               "IncludeGlobalServiceEvents" .=+                 _utIncludeGlobalServiceEvents,+               "CloudWatchLogsRoleArn" .= _utCloudWatchLogsRoleARN,+               "S3BucketName" .= _utS3BucketName, "Name" .= _utName]++instance ToPath UpdateTrail where+        toPath = const "/"++instance ToQuery UpdateTrail where+        toQuery = const mempty++-- | Returns the objects or data listed below if successful. Otherwise,+-- returns an error. ----- The fields accessible through corresponding lenses are:+-- /See:/ 'updateTrailResponse' smart constructor.+data UpdateTrailResponse = UpdateTrailResponse'+    { _utrsS3KeyPrefix                :: !(Maybe Text)+    , _utrsSNSTopicName               :: !(Maybe Text)+    , _utrsCloudWatchLogsLogGroupARN  :: !(Maybe Text)+    , _utrsName                       :: !(Maybe Text)+    , _utrsIncludeGlobalServiceEvents :: !(Maybe Bool)+    , _utrsCloudWatchLogsRoleARN      :: !(Maybe Text)+    , _utrsS3BucketName               :: !(Maybe Text)+    , _utrsStatus                     :: !Int+    } deriving (Eq,Read,Show,Data,Typeable,Generic)++-- | Creates a value of 'UpdateTrailResponse' with the minimum fields required to make a request. ----- * 'utrCloudWatchLogsLogGroupArn' @::@ 'Maybe' 'Text'+-- Use one of the following lenses to modify other fields as desired: ----- * 'utrCloudWatchLogsRoleArn' @::@ 'Maybe' 'Text'+-- * 'utrsS3KeyPrefix' ----- * 'utrIncludeGlobalServiceEvents' @::@ 'Maybe' 'Bool'+-- * 'utrsSNSTopicName' ----- * 'utrName' @::@ 'Maybe' 'Text'+-- * 'utrsCloudWatchLogsLogGroupARN' ----- * 'utrS3BucketName' @::@ 'Maybe' 'Text'+-- * 'utrsName' ----- * 'utrS3KeyPrefix' @::@ 'Maybe' 'Text'+-- * 'utrsIncludeGlobalServiceEvents' ----- * 'utrSnsTopicName' @::@ 'Maybe' 'Text'+-- * 'utrsCloudWatchLogsRoleARN' ---updateTrailResponse :: UpdateTrailResponse-updateTrailResponse = UpdateTrailResponse-    { _utrName                       = Nothing-    , _utrS3BucketName               = Nothing-    , _utrS3KeyPrefix                = Nothing-    , _utrSnsTopicName               = Nothing-    , _utrIncludeGlobalServiceEvents = Nothing-    , _utrCloudWatchLogsLogGroupArn  = Nothing-    , _utrCloudWatchLogsRoleArn      = Nothing+-- * 'utrsS3BucketName'+--+-- * 'utrsStatus'+updateTrailResponse+    :: Int -- ^ 'utrsStatus'+    -> UpdateTrailResponse+updateTrailResponse pStatus_ =+    UpdateTrailResponse'+    { _utrsS3KeyPrefix = Nothing+    , _utrsSNSTopicName = Nothing+    , _utrsCloudWatchLogsLogGroupARN = Nothing+    , _utrsName = Nothing+    , _utrsIncludeGlobalServiceEvents = Nothing+    , _utrsCloudWatchLogsRoleARN = Nothing+    , _utrsS3BucketName = Nothing+    , _utrsStatus = pStatus_     } --- | Specifies the Amazon Resource Name (ARN) of the log group to which CloudTrail--- logs will be delivered.-utrCloudWatchLogsLogGroupArn :: Lens' UpdateTrailResponse (Maybe Text)-utrCloudWatchLogsLogGroupArn =-    lens _utrCloudWatchLogsLogGroupArn-        (\s a -> s { _utrCloudWatchLogsLogGroupArn = a })+-- | Specifies the Amazon S3 key prefix that precedes the name of the bucket+-- you have designated for log file delivery.+utrsS3KeyPrefix :: Lens' UpdateTrailResponse (Maybe Text)+utrsS3KeyPrefix = lens _utrsS3KeyPrefix (\ s a -> s{_utrsS3KeyPrefix = a}); --- | Specifies the role for the CloudWatch Logs endpoint to assume to write to a--- user’s log group.-utrCloudWatchLogsRoleArn :: Lens' UpdateTrailResponse (Maybe Text)-utrCloudWatchLogsRoleArn =-    lens _utrCloudWatchLogsRoleArn-        (\s a -> s { _utrCloudWatchLogsRoleArn = a })+-- | Specifies the name of the Amazon SNS topic defined for notification of+-- log file delivery.+utrsSNSTopicName :: Lens' UpdateTrailResponse (Maybe Text)+utrsSNSTopicName = lens _utrsSNSTopicName (\ s a -> s{_utrsSNSTopicName = a}); --- | Specifies whether the trail is publishing events from global services such as--- IAM to the log files.-utrIncludeGlobalServiceEvents :: Lens' UpdateTrailResponse (Maybe Bool)-utrIncludeGlobalServiceEvents =-    lens _utrIncludeGlobalServiceEvents-        (\s a -> s { _utrIncludeGlobalServiceEvents = a })+-- | Specifies the Amazon Resource Name (ARN) of the log group to which+-- CloudTrail logs will be delivered.+utrsCloudWatchLogsLogGroupARN :: Lens' UpdateTrailResponse (Maybe Text)+utrsCloudWatchLogsLogGroupARN = lens _utrsCloudWatchLogsLogGroupARN (\ s a -> s{_utrsCloudWatchLogsLogGroupARN = a});  -- | Specifies the name of the trail.-utrName :: Lens' UpdateTrailResponse (Maybe Text)-utrName = lens _utrName (\s a -> s { _utrName = a })---- | Specifies the name of the Amazon S3 bucket designated for publishing log--- files.-utrS3BucketName :: Lens' UpdateTrailResponse (Maybe Text)-utrS3BucketName = lens _utrS3BucketName (\s a -> s { _utrS3BucketName = a })---- | Specifies the Amazon S3 key prefix that precedes the name of the bucket you--- have designated for log file delivery.-utrS3KeyPrefix :: Lens' UpdateTrailResponse (Maybe Text)-utrS3KeyPrefix = lens _utrS3KeyPrefix (\s a -> s { _utrS3KeyPrefix = a })---- | Specifies the name of the Amazon SNS topic defined for notification of log--- file delivery.-utrSnsTopicName :: Lens' UpdateTrailResponse (Maybe Text)-utrSnsTopicName = lens _utrSnsTopicName (\s a -> s { _utrSnsTopicName = a })--instance ToPath UpdateTrail where-    toPath = const "/"--instance ToQuery UpdateTrail where-    toQuery = const mempty--instance ToHeaders UpdateTrail+utrsName :: Lens' UpdateTrailResponse (Maybe Text)+utrsName = lens _utrsName (\ s a -> s{_utrsName = a}); -instance ToJSON UpdateTrail where-    toJSON UpdateTrail{..} = object-        [ "Name"                       .= _utName-        , "S3BucketName"               .= _utS3BucketName-        , "S3KeyPrefix"                .= _utS3KeyPrefix-        , "SnsTopicName"               .= _utSnsTopicName-        , "IncludeGlobalServiceEvents" .= _utIncludeGlobalServiceEvents-        , "CloudWatchLogsLogGroupArn"  .= _utCloudWatchLogsLogGroupArn-        , "CloudWatchLogsRoleArn"      .= _utCloudWatchLogsRoleArn-        ]+-- | Specifies whether the trail is publishing events from global services+-- such as IAM to the log files.+utrsIncludeGlobalServiceEvents :: Lens' UpdateTrailResponse (Maybe Bool)+utrsIncludeGlobalServiceEvents = lens _utrsIncludeGlobalServiceEvents (\ s a -> s{_utrsIncludeGlobalServiceEvents = a}); -instance AWSRequest UpdateTrail where-    type Sv UpdateTrail = CloudTrail-    type Rs UpdateTrail = UpdateTrailResponse+-- | Specifies the role for the CloudWatch Logs endpoint to assume to write+-- to a user’s log group.+utrsCloudWatchLogsRoleARN :: Lens' UpdateTrailResponse (Maybe Text)+utrsCloudWatchLogsRoleARN = lens _utrsCloudWatchLogsRoleARN (\ s a -> s{_utrsCloudWatchLogsRoleARN = a}); -    request  = post "UpdateTrail"-    response = jsonResponse+-- | Specifies the name of the Amazon S3 bucket designated for publishing log+-- files.+utrsS3BucketName :: Lens' UpdateTrailResponse (Maybe Text)+utrsS3BucketName = lens _utrsS3BucketName (\ s a -> s{_utrsS3BucketName = a}); -instance FromJSON UpdateTrailResponse where-    parseJSON = withObject "UpdateTrailResponse" $ \o -> UpdateTrailResponse-        <$> o .:? "CloudWatchLogsLogGroupArn"-        <*> o .:? "CloudWatchLogsRoleArn"-        <*> o .:? "IncludeGlobalServiceEvents"-        <*> o .:? "Name"-        <*> o .:? "S3BucketName"-        <*> o .:? "S3KeyPrefix"-        <*> o .:? "SnsTopicName"+-- | The response status code.+utrsStatus :: Lens' UpdateTrailResponse Int+utrsStatus = lens _utrsStatus (\ s a -> s{_utrsStatus = a});
+ gen/Network/AWS/CloudTrail/Waiters.hs view
@@ -0,0 +1,20 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TypeFamilies      #-}++{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Network.AWS.CloudTrail.Waiters+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Network.AWS.CloudTrail.Waiters where++import           Network.AWS.CloudTrail.Types+import           Network.AWS.Prelude+import           Network.AWS.Waiter
+ test/Main.hs view
@@ -0,0 +1,21 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- |+-- Module      : Main+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Main (main) where++import Test.Tasty+import Test.AWS.CloudTrail+import Test.AWS.CloudTrail.Internal++main :: IO ()+main = defaultMain $ testGroup "CloudTrail"+    [ testGroup "tests"    tests+    , testGroup "fixtures" fixtures+    ]
+ test/Test/AWS/CloudTrail.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++-- Module      : Test.AWS.CloudTrail+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.CloudTrail+    ( tests+    , fixtures+    ) where++import           Network.AWS.CloudTrail+import           Test.AWS.Gen.CloudTrail+import           Test.Tasty++tests :: [TestTree]+tests = []++fixtures :: [TestTree]+fixtures = []
+ test/Test/AWS/CloudTrail/Internal.hs view
@@ -0,0 +1,16 @@+{-# LANGUAGE OverloadedStrings #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}++-- Module      : Test.AWS.CloudTrail.Internal+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : This Source Code Form is subject to the terms of+--               the Mozilla Public License, v. 2.0.+--               A copy of the MPL can be found in the LICENSE file or+--               you can obtain it at http://mozilla.org/MPL/2.0/.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : experimental+-- Portability : non-portable (GHC extensions)++module Test.AWS.CloudTrail.Internal where++import Test.AWS.Prelude
+ test/Test/AWS/Gen/CloudTrail.hs view
@@ -0,0 +1,175 @@+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-orphans        #-}++-- Derived from AWS service descriptions, licensed under Apache 2.0.++-- |+-- Module      : Test.AWS.Gen.CloudTrail+-- Copyright   : (c) 2013-2015 Brendan Hay+-- License     : Mozilla Public License, v. 2.0.+-- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>+-- Stability   : auto-generated+-- Portability : non-portable (GHC extensions)+--+module Test.AWS.Gen.CloudTrail where++import Data.Proxy+import Test.AWS.Fixture+import Test.AWS.Prelude+import Test.Tasty+import Network.AWS.CloudTrail+import Test.AWS.CloudTrail.Internal++-- Auto-generated: the actual test selection needs to be manually placed into+-- the top-level so that real test data can be incrementally added.+--+-- This commented snippet is what the entire set should look like:++-- fixtures :: TestTree+-- fixtures =+--     [ testGroup "request"+--         [ testDescribeTrails $+--             describeTrails+--+--         , testLookupEvents $+--             lookupEvents+--+--         , testStopLogging $+--             stopLogging+--+--         , testDeleteTrail $+--             deleteTrail+--+--         , testUpdateTrail $+--             updateTrail+--+--         , testCreateTrail $+--             createTrail+--+--         , testGetTrailStatus $+--             getTrailStatus+--+--         , testStartLogging $+--             startLogging+--+--           ]++--     , testGroup "response"+--         [ testDescribeTrailsResponse $+--             describeTrailsResponse+--+--         , testLookupEventsResponse $+--             lookupEventsResponse+--+--         , testStopLoggingResponse $+--             stopLoggingResponse+--+--         , testDeleteTrailResponse $+--             deleteTrailResponse+--+--         , testUpdateTrailResponse $+--             updateTrailResponse+--+--         , testCreateTrailResponse $+--             createTrailResponse+--+--         , testGetTrailStatusResponse $+--             getTrailStatusResponse+--+--         , testStartLoggingResponse $+--             startLoggingResponse+--+--           ]+--     ]++-- Requests++testDescribeTrails :: DescribeTrails -> TestTree+testDescribeTrails = req+    "DescribeTrails"+    "fixture/DescribeTrails"++testLookupEvents :: LookupEvents -> TestTree+testLookupEvents = req+    "LookupEvents"+    "fixture/LookupEvents"++testStopLogging :: StopLogging -> TestTree+testStopLogging = req+    "StopLogging"+    "fixture/StopLogging"++testDeleteTrail :: DeleteTrail -> TestTree+testDeleteTrail = req+    "DeleteTrail"+    "fixture/DeleteTrail"++testUpdateTrail :: UpdateTrail -> TestTree+testUpdateTrail = req+    "UpdateTrail"+    "fixture/UpdateTrail"++testCreateTrail :: CreateTrail -> TestTree+testCreateTrail = req+    "CreateTrail"+    "fixture/CreateTrail"++testGetTrailStatus :: GetTrailStatus -> TestTree+testGetTrailStatus = req+    "GetTrailStatus"+    "fixture/GetTrailStatus"++testStartLogging :: StartLogging -> TestTree+testStartLogging = req+    "StartLogging"+    "fixture/StartLogging"++-- Responses++testDescribeTrailsResponse :: DescribeTrailsResponse -> TestTree+testDescribeTrailsResponse = res+    "DescribeTrailsResponse"+    "fixture/DescribeTrailsResponse"+    (Proxy :: Proxy DescribeTrails)++testLookupEventsResponse :: LookupEventsResponse -> TestTree+testLookupEventsResponse = res+    "LookupEventsResponse"+    "fixture/LookupEventsResponse"+    (Proxy :: Proxy LookupEvents)++testStopLoggingResponse :: StopLoggingResponse -> TestTree+testStopLoggingResponse = res+    "StopLoggingResponse"+    "fixture/StopLoggingResponse"+    (Proxy :: Proxy StopLogging)++testDeleteTrailResponse :: DeleteTrailResponse -> TestTree+testDeleteTrailResponse = res+    "DeleteTrailResponse"+    "fixture/DeleteTrailResponse"+    (Proxy :: Proxy DeleteTrail)++testUpdateTrailResponse :: UpdateTrailResponse -> TestTree+testUpdateTrailResponse = res+    "UpdateTrailResponse"+    "fixture/UpdateTrailResponse"+    (Proxy :: Proxy UpdateTrail)++testCreateTrailResponse :: CreateTrailResponse -> TestTree+testCreateTrailResponse = res+    "CreateTrailResponse"+    "fixture/CreateTrailResponse"+    (Proxy :: Proxy CreateTrail)++testGetTrailStatusResponse :: GetTrailStatusResponse -> TestTree+testGetTrailStatusResponse = res+    "GetTrailStatusResponse"+    "fixture/GetTrailStatusResponse"+    (Proxy :: Proxy GetTrailStatus)++testStartLoggingResponse :: StartLoggingResponse -> TestTree+testStartLoggingResponse = res+    "StartLoggingResponse"+    "fixture/StartLoggingResponse"+    (Proxy :: Proxy StartLogging)