diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,17 +8,17 @@
 
 ## Version
 
-`1.4.0`
+`1.4.1`
 
 
 ## Description
 
 Amazon Inspector
 
-Amazon Inspector enables you to analyze the behavior of the applications
-you run in AWS and to identify potential security issues. For more
+Amazon Inspector enables you to analyze the behavior of your AWS
+resources and to identify potential security issues. For more
 information, see
-<https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
+<http://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
 
 Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-inspector)
 and the [AWS API Reference](https://aws.amazon.com/documentation/).
diff --git a/amazonka-inspector.cabal b/amazonka-inspector.cabal
--- a/amazonka-inspector.cabal
+++ b/amazonka-inspector.cabal
@@ -1,5 +1,5 @@
 name:                  amazonka-inspector
-version:               1.4.0
+version:               1.4.1
 synopsis:              Amazon Inspector SDK.
 homepage:              https://github.com/brendanhay/amazonka
 bug-reports:           https://github.com/brendanhay/amazonka/issues
@@ -15,10 +15,10 @@
 description:
     Amazon Inspector
 
-    Amazon Inspector enables you to analyze the behavior of the applications
-    you run in AWS and to identify potential security issues. For more
+    Amazon Inspector enables you to analyze the behavior of your AWS
+    resources and to identify potential security issues. For more
     information, see
-    <https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
+    <http://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
     .
     The types from this library are intended to be used with
     <http://hackage.haskell.org/package/amazonka amazonka>, which provides
@@ -47,42 +47,38 @@
     exposed-modules:
           Network.AWS.Inspector
         , Network.AWS.Inspector.AddAttributesToFindings
-        , Network.AWS.Inspector.AttachAssessmentAndRulesPackage
-        , Network.AWS.Inspector.CreateApplication
-        , Network.AWS.Inspector.CreateAssessment
+        , Network.AWS.Inspector.CreateAssessmentTarget
+        , Network.AWS.Inspector.CreateAssessmentTemplate
         , Network.AWS.Inspector.CreateResourceGroup
-        , Network.AWS.Inspector.DeleteApplication
-        , Network.AWS.Inspector.DeleteAssessment
-        , Network.AWS.Inspector.DeleteRun
-        , Network.AWS.Inspector.DescribeApplication
-        , Network.AWS.Inspector.DescribeAssessment
+        , Network.AWS.Inspector.DeleteAssessmentRun
+        , Network.AWS.Inspector.DeleteAssessmentTarget
+        , Network.AWS.Inspector.DeleteAssessmentTemplate
+        , Network.AWS.Inspector.DescribeAssessmentRuns
+        , Network.AWS.Inspector.DescribeAssessmentTargets
+        , Network.AWS.Inspector.DescribeAssessmentTemplates
         , Network.AWS.Inspector.DescribeCrossAccountAccessRole
-        , Network.AWS.Inspector.DescribeFinding
-        , Network.AWS.Inspector.DescribeResourceGroup
-        , Network.AWS.Inspector.DescribeRulesPackage
-        , Network.AWS.Inspector.DescribeRun
-        , Network.AWS.Inspector.DetachAssessmentAndRulesPackage
-        , Network.AWS.Inspector.GetAssessmentTelemetry
-        , Network.AWS.Inspector.ListApplications
-        , Network.AWS.Inspector.ListAssessmentAgents
-        , Network.AWS.Inspector.ListAssessments
-        , Network.AWS.Inspector.ListAttachedAssessments
-        , Network.AWS.Inspector.ListAttachedRulesPackages
+        , Network.AWS.Inspector.DescribeFindings
+        , Network.AWS.Inspector.DescribeResourceGroups
+        , Network.AWS.Inspector.DescribeRulesPackages
+        , Network.AWS.Inspector.GetTelemetryMetadata
+        , Network.AWS.Inspector.ListAssessmentRunAgents
+        , Network.AWS.Inspector.ListAssessmentRuns
+        , Network.AWS.Inspector.ListAssessmentTargets
+        , Network.AWS.Inspector.ListAssessmentTemplates
+        , Network.AWS.Inspector.ListEventSubscriptions
         , Network.AWS.Inspector.ListFindings
         , Network.AWS.Inspector.ListRulesPackages
-        , Network.AWS.Inspector.ListRuns
         , Network.AWS.Inspector.ListTagsForResource
-        , Network.AWS.Inspector.LocalizeText
-        , Network.AWS.Inspector.PreviewAgentsForResourceGroup
+        , Network.AWS.Inspector.PreviewAgents
         , Network.AWS.Inspector.RegisterCrossAccountAccessRole
         , Network.AWS.Inspector.RemoveAttributesFromFindings
-        , Network.AWS.Inspector.RunAssessment
         , Network.AWS.Inspector.SetTagsForResource
-        , Network.AWS.Inspector.StartDataCollection
-        , Network.AWS.Inspector.StopDataCollection
+        , Network.AWS.Inspector.StartAssessmentRun
+        , Network.AWS.Inspector.StopAssessmentRun
+        , Network.AWS.Inspector.SubscribeToEvent
         , Network.AWS.Inspector.Types
-        , Network.AWS.Inspector.UpdateApplication
-        , Network.AWS.Inspector.UpdateAssessment
+        , Network.AWS.Inspector.UnsubscribeFromEvent
+        , Network.AWS.Inspector.UpdateAssessmentTarget
         , Network.AWS.Inspector.Waiters
 
     other-modules:
@@ -90,7 +86,7 @@
         , Network.AWS.Inspector.Types.Sum
 
     build-depends:
-          amazonka-core == 1.4.0.*
+          amazonka-core == 1.4.1.*
         , base          >= 4.7     && < 5
 
 test-suite amazonka-inspector-test
@@ -110,9 +106,9 @@
         , Test.AWS.Inspector.Internal
 
     build-depends:
-          amazonka-core == 1.4.0.*
-        , amazonka-test == 1.4.0.*
-        , amazonka-inspector == 1.4.0.*
+          amazonka-core == 1.4.1.*
+        , amazonka-test == 1.4.1.*
+        , amazonka-inspector == 1.4.1.*
         , base
         , bytestring
         , tasty
diff --git a/fixture/CreateAssessmentTarget.yaml b/fixture/CreateAssessmentTarget.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentTarget.yaml
diff --git a/fixture/CreateAssessmentTargetResponse.proto b/fixture/CreateAssessmentTargetResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentTargetResponse.proto
diff --git a/fixture/CreateAssessmentTemplate.yaml b/fixture/CreateAssessmentTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentTemplate.yaml
diff --git a/fixture/CreateAssessmentTemplateResponse.proto b/fixture/CreateAssessmentTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateAssessmentTemplateResponse.proto
diff --git a/fixture/DeleteAssessmentRun.yaml b/fixture/DeleteAssessmentRun.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentRun.yaml
diff --git a/fixture/DeleteAssessmentRunResponse.proto b/fixture/DeleteAssessmentRunResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentRunResponse.proto
diff --git a/fixture/DeleteAssessmentTarget.yaml b/fixture/DeleteAssessmentTarget.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentTarget.yaml
diff --git a/fixture/DeleteAssessmentTargetResponse.proto b/fixture/DeleteAssessmentTargetResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentTargetResponse.proto
diff --git a/fixture/DeleteAssessmentTemplate.yaml b/fixture/DeleteAssessmentTemplate.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentTemplate.yaml
diff --git a/fixture/DeleteAssessmentTemplateResponse.proto b/fixture/DeleteAssessmentTemplateResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteAssessmentTemplateResponse.proto
diff --git a/fixture/DescribeAssessmentRuns.yaml b/fixture/DescribeAssessmentRuns.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentRuns.yaml
diff --git a/fixture/DescribeAssessmentRunsResponse.proto b/fixture/DescribeAssessmentRunsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentRunsResponse.proto
diff --git a/fixture/DescribeAssessmentTargets.yaml b/fixture/DescribeAssessmentTargets.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentTargets.yaml
diff --git a/fixture/DescribeAssessmentTargetsResponse.proto b/fixture/DescribeAssessmentTargetsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentTargetsResponse.proto
diff --git a/fixture/DescribeAssessmentTemplates.yaml b/fixture/DescribeAssessmentTemplates.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentTemplates.yaml
diff --git a/fixture/DescribeAssessmentTemplatesResponse.proto b/fixture/DescribeAssessmentTemplatesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeAssessmentTemplatesResponse.proto
diff --git a/fixture/DescribeFindings.yaml b/fixture/DescribeFindings.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeFindings.yaml
diff --git a/fixture/DescribeFindingsResponse.proto b/fixture/DescribeFindingsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeFindingsResponse.proto
diff --git a/fixture/DescribeResourceGroups.yaml b/fixture/DescribeResourceGroups.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeResourceGroups.yaml
diff --git a/fixture/DescribeResourceGroupsResponse.proto b/fixture/DescribeResourceGroupsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeResourceGroupsResponse.proto
diff --git a/fixture/DescribeRulesPackages.yaml b/fixture/DescribeRulesPackages.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeRulesPackages.yaml
diff --git a/fixture/DescribeRulesPackagesResponse.proto b/fixture/DescribeRulesPackagesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeRulesPackagesResponse.proto
diff --git a/fixture/GetTelemetryMetadata.yaml b/fixture/GetTelemetryMetadata.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/GetTelemetryMetadata.yaml
diff --git a/fixture/GetTelemetryMetadataResponse.proto b/fixture/GetTelemetryMetadataResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/GetTelemetryMetadataResponse.proto
diff --git a/fixture/ListAssessmentRunAgents.yaml b/fixture/ListAssessmentRunAgents.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentRunAgents.yaml
diff --git a/fixture/ListAssessmentRunAgentsResponse.proto b/fixture/ListAssessmentRunAgentsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentRunAgentsResponse.proto
diff --git a/fixture/ListAssessmentRuns.yaml b/fixture/ListAssessmentRuns.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentRuns.yaml
diff --git a/fixture/ListAssessmentRunsResponse.proto b/fixture/ListAssessmentRunsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentRunsResponse.proto
diff --git a/fixture/ListAssessmentTargets.yaml b/fixture/ListAssessmentTargets.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentTargets.yaml
diff --git a/fixture/ListAssessmentTargetsResponse.proto b/fixture/ListAssessmentTargetsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentTargetsResponse.proto
diff --git a/fixture/ListAssessmentTemplates.yaml b/fixture/ListAssessmentTemplates.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentTemplates.yaml
diff --git a/fixture/ListAssessmentTemplatesResponse.proto b/fixture/ListAssessmentTemplatesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListAssessmentTemplatesResponse.proto
diff --git a/fixture/ListEventSubscriptions.yaml b/fixture/ListEventSubscriptions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListEventSubscriptions.yaml
diff --git a/fixture/ListEventSubscriptionsResponse.proto b/fixture/ListEventSubscriptionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListEventSubscriptionsResponse.proto
diff --git a/fixture/PreviewAgents.yaml b/fixture/PreviewAgents.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/PreviewAgents.yaml
diff --git a/fixture/PreviewAgentsResponse.proto b/fixture/PreviewAgentsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/PreviewAgentsResponse.proto
diff --git a/fixture/StartAssessmentRun.yaml b/fixture/StartAssessmentRun.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StartAssessmentRun.yaml
diff --git a/fixture/StartAssessmentRunResponse.proto b/fixture/StartAssessmentRunResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StartAssessmentRunResponse.proto
diff --git a/fixture/StopAssessmentRun.yaml b/fixture/StopAssessmentRun.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/StopAssessmentRun.yaml
diff --git a/fixture/StopAssessmentRunResponse.proto b/fixture/StopAssessmentRunResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/StopAssessmentRunResponse.proto
diff --git a/fixture/SubscribeToEvent.yaml b/fixture/SubscribeToEvent.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/SubscribeToEvent.yaml
diff --git a/fixture/SubscribeToEventResponse.proto b/fixture/SubscribeToEventResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/SubscribeToEventResponse.proto
diff --git a/fixture/UnsubscribeFromEvent.yaml b/fixture/UnsubscribeFromEvent.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UnsubscribeFromEvent.yaml
diff --git a/fixture/UnsubscribeFromEventResponse.proto b/fixture/UnsubscribeFromEventResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UnsubscribeFromEventResponse.proto
diff --git a/fixture/UpdateAssessmentTarget.yaml b/fixture/UpdateAssessmentTarget.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentTarget.yaml
diff --git a/fixture/UpdateAssessmentTargetResponse.proto b/fixture/UpdateAssessmentTargetResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/UpdateAssessmentTargetResponse.proto
diff --git a/gen/Network/AWS/Inspector.hs b/gen/Network/AWS/Inspector.hs
--- a/gen/Network/AWS/Inspector.hs
+++ b/gen/Network/AWS/Inspector.hs
@@ -13,10 +13,10 @@
 --
 -- Amazon Inspector
 --
--- Amazon Inspector enables you to analyze the behavior of the applications
--- you run in AWS and to identify potential security issues. For more
+-- Amazon Inspector enables you to analyze the behavior of your AWS
+-- resources and to identify potential security issues. For more
 -- information, see
--- <https://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
+-- <http://docs.aws.amazon.com/inspector/latest/userguide/inspector_introduction.html Amazon Inspector User Guide>.
 module Network.AWS.Inspector
     (
     -- * Service Configuration
@@ -28,11 +28,14 @@
     -- ** AccessDeniedException
     , _AccessDeniedException
 
+    -- ** AssessmentRunInProgressException
+    , _AssessmentRunInProgressException
+
     -- ** NoSuchEntityException
     , _NoSuchEntityException
 
-    -- ** OperationInProgressException
-    , _OperationInProgressException
+    -- ** AgentsAlreadyRunningAssessmentException
+    , _AgentsAlreadyRunningAssessmentException
 
     -- ** InvalidCrossAccountRoleException
     , _InvalidCrossAccountRoleException
@@ -43,24 +46,39 @@
     -- ** InternalException
     , _InternalException
 
+    -- ** LimitExceededException
+    , _LimitExceededException
+
     -- * Waiters
     -- $waiters
 
     -- * Operations
     -- $operations
 
+    -- ** GetTelemetryMetadata
+    , module Network.AWS.Inspector.GetTelemetryMetadata
+
     -- ** ListFindings
     , module Network.AWS.Inspector.ListFindings
 
-    -- ** DescribeRun
-    , module Network.AWS.Inspector.DescribeRun
+    -- ** ListAssessmentTemplates
+    , module Network.AWS.Inspector.ListAssessmentTemplates
 
-    -- ** DescribeApplication
-    , module Network.AWS.Inspector.DescribeApplication
+    -- ** SubscribeToEvent
+    , module Network.AWS.Inspector.SubscribeToEvent
 
-    -- ** RunAssessment
-    , module Network.AWS.Inspector.RunAssessment
+    -- ** ListAssessmentRunAgents
+    , module Network.AWS.Inspector.ListAssessmentRunAgents
 
+    -- ** StartAssessmentRun
+    , module Network.AWS.Inspector.StartAssessmentRun
+
+    -- ** DeleteAssessmentTemplate
+    , module Network.AWS.Inspector.DeleteAssessmentTemplate
+
+    -- ** CreateAssessmentTemplate
+    , module Network.AWS.Inspector.CreateAssessmentTemplate
+
     -- ** ListTagsForResource
     , module Network.AWS.Inspector.ListTagsForResource
 
@@ -70,154 +88,208 @@
     -- ** DescribeCrossAccountAccessRole
     , module Network.AWS.Inspector.DescribeCrossAccountAccessRole
 
-    -- ** ListAttachedAssessments
-    , module Network.AWS.Inspector.ListAttachedAssessments
-
-    -- ** DescribeFinding
-    , module Network.AWS.Inspector.DescribeFinding
-
-    -- ** DeleteRun
-    , module Network.AWS.Inspector.DeleteRun
-
-    -- ** ListRuns
-    , module Network.AWS.Inspector.ListRuns
-
-    -- ** DeleteApplication
-    , module Network.AWS.Inspector.DeleteApplication
+    -- ** DescribeAssessmentTemplates
+    , module Network.AWS.Inspector.DescribeAssessmentTemplates
 
-    -- ** UpdateApplication
-    , module Network.AWS.Inspector.UpdateApplication
+    -- ** DescribeResourceGroups
+    , module Network.AWS.Inspector.DescribeResourceGroups
 
-    -- ** StartDataCollection
-    , module Network.AWS.Inspector.StartDataCollection
+    -- ** CreateAssessmentTarget
+    , module Network.AWS.Inspector.CreateAssessmentTarget
 
-    -- ** LocalizeText
-    , module Network.AWS.Inspector.LocalizeText
+    -- ** ListEventSubscriptions
+    , module Network.AWS.Inspector.ListEventSubscriptions
 
     -- ** RegisterCrossAccountAccessRole
     , module Network.AWS.Inspector.RegisterCrossAccountAccessRole
 
-    -- ** CreateApplication
-    , module Network.AWS.Inspector.CreateApplication
+    -- ** ListAssessmentTargets
+    , module Network.AWS.Inspector.ListAssessmentTargets
 
     -- ** CreateResourceGroup
     , module Network.AWS.Inspector.CreateResourceGroup
 
-    -- ** ListAttachedRulesPackages
-    , module Network.AWS.Inspector.ListAttachedRulesPackages
-
-    -- ** DeleteAssessment
-    , module Network.AWS.Inspector.DeleteAssessment
-
-    -- ** UpdateAssessment
-    , module Network.AWS.Inspector.UpdateAssessment
-
-    -- ** GetAssessmentTelemetry
-    , module Network.AWS.Inspector.GetAssessmentTelemetry
-
-    -- ** ListAssessments
-    , module Network.AWS.Inspector.ListAssessments
-
-    -- ** DescribeRulesPackage
-    , module Network.AWS.Inspector.DescribeRulesPackage
-
-    -- ** CreateAssessment
-    , module Network.AWS.Inspector.CreateAssessment
-
-    -- ** DetachAssessmentAndRulesPackage
-    , module Network.AWS.Inspector.DetachAssessmentAndRulesPackage
+    -- ** DescribeRulesPackages
+    , module Network.AWS.Inspector.DescribeRulesPackages
 
-    -- ** DescribeResourceGroup
-    , module Network.AWS.Inspector.DescribeResourceGroup
+    -- ** StopAssessmentRun
+    , module Network.AWS.Inspector.StopAssessmentRun
 
-    -- ** ListApplications
-    , module Network.AWS.Inspector.ListApplications
+    -- ** PreviewAgents
+    , module Network.AWS.Inspector.PreviewAgents
 
-    -- ** DescribeAssessment
-    , module Network.AWS.Inspector.DescribeAssessment
+    -- ** DescribeFindings
+    , module Network.AWS.Inspector.DescribeFindings
 
     -- ** AddAttributesToFindings
     , module Network.AWS.Inspector.AddAttributesToFindings
 
-    -- ** StopDataCollection
-    , module Network.AWS.Inspector.StopDataCollection
+    -- ** UpdateAssessmentTarget
+    , module Network.AWS.Inspector.UpdateAssessmentTarget
 
-    -- ** PreviewAgentsForResourceGroup
-    , module Network.AWS.Inspector.PreviewAgentsForResourceGroup
+    -- ** DeleteAssessmentTarget
+    , module Network.AWS.Inspector.DeleteAssessmentTarget
 
-    -- ** ListAssessmentAgents
-    , module Network.AWS.Inspector.ListAssessmentAgents
+    -- ** DeleteAssessmentRun
+    , module Network.AWS.Inspector.DeleteAssessmentRun
 
+    -- ** ListAssessmentRuns
+    , module Network.AWS.Inspector.ListAssessmentRuns
+
     -- ** ListRulesPackages
     , module Network.AWS.Inspector.ListRulesPackages
 
+    -- ** DescribeAssessmentRuns
+    , module Network.AWS.Inspector.DescribeAssessmentRuns
+
+    -- ** UnsubscribeFromEvent
+    , module Network.AWS.Inspector.UnsubscribeFromEvent
+
     -- ** RemoveAttributesFromFindings
     , module Network.AWS.Inspector.RemoveAttributesFromFindings
 
-    -- ** AttachAssessmentAndRulesPackage
-    , module Network.AWS.Inspector.AttachAssessmentAndRulesPackage
+    -- ** DescribeAssessmentTargets
+    , module Network.AWS.Inspector.DescribeAssessmentTargets
 
     -- * Types
 
-    -- ** Agent
-    , Agent
-    , agent
-    , aTelemetry
-    , aAutoScalingGroup
-    , aAgentHealthCode
-    , aAssessmentARN
-    , aAgentId
-    , aAccountId
-    , aAgentHealthDetails
-    , aAgentHealth
+    -- ** AgentHealth
+    , AgentHealth (..)
 
+    -- ** AgentHealthCode
+    , AgentHealthCode (..)
+
+    -- ** AssessmentRunNotificationSNSStatusCode
+    , AssessmentRunNotificationSNSStatusCode (..)
+
+    -- ** AssessmentRunState
+    , AssessmentRunState (..)
+
+    -- ** AssetType
+    , AssetType (..)
+
+    -- ** FailedItemErrorCode
+    , FailedItemErrorCode (..)
+
+    -- ** InspectorEvent
+    , InspectorEvent (..)
+
+    -- ** Locale
+    , Locale (..)
+
+    -- ** Severity
+    , Severity (..)
+
+    -- ** AgentFilter
+    , AgentFilter
+    , agentFilter
+    , afAgentHealths
+    , afAgentHealthCodes
+
     -- ** AgentPreview
     , AgentPreview
     , agentPreview
     , apAutoScalingGroup
     , apAgentId
 
-    -- ** AgentsFilter
-    , AgentsFilter
-    , agentsFilter
-    , afAgentHealthList
+    -- ** AssessmentRun
+    , AssessmentRun
+    , assessmentRun
+    , arStartedAt
+    , arCompletedAt
+    , arArn
+    , arName
+    , arAssessmentTemplateARN
+    , arState
+    , arDurationInSeconds
+    , arRulesPackageARNs
+    , arUserAttributesForFindings
+    , arCreatedAt
+    , arStateChangedAt
+    , arDataCollected
+    , arStateChanges
+    , arNotifications
 
-    -- ** Application
-    , Application
-    , application
-    , aApplicationARN
+    -- ** AssessmentRunAgent
+    , AssessmentRunAgent
+    , assessmentRunAgent
+    , araAutoScalingGroup
+    , araAgentHealthDetails
+    , araAgentId
+    , araAssessmentRunARN
+    , araAgentHealth
+    , araAgentHealthCode
+    , araTelemetryMetadata
+
+    -- ** AssessmentRunFilter
+    , AssessmentRunFilter
+    , assessmentRunFilter
+    , arfStates
+    , arfNamePattern
+    , arfStartTimeRange
+    , arfStateChangeTimeRange
+    , arfRulesPackageARNs
+    , arfCompletionTimeRange
+    , arfDurationRange
+
+    -- ** AssessmentRunNotification
+    , AssessmentRunNotification
+    , assessmentRunNotification
+    , arnSnsTopicARN
+    , arnSnsPublishStatusCode
+    , arnMessage
+    , arnDate
+    , arnEvent
+    , arnError
+
+    -- ** AssessmentRunStateChange
+    , AssessmentRunStateChange
+    , assessmentRunStateChange
+    , arscStateChangedAt
+    , arscState
+
+    -- ** AssessmentTarget
+    , AssessmentTarget
+    , assessmentTarget
+    , aArn
+    , aName
     , aResourceGroupARN
-    , aApplicationName
+    , aCreatedAt
+    , aUpdatedAt
 
-    -- ** ApplicationsFilter
-    , ApplicationsFilter
-    , applicationsFilter
-    , afApplicationNamePatterns
+    -- ** AssessmentTargetFilter
+    , AssessmentTargetFilter
+    , assessmentTargetFilter
+    , atfAssessmentTargetNamePattern
 
-    -- ** Assessment
-    , Assessment
-    , assessment
-    , assDataCollected
-    , assApplicationARN
-    , assStartTime
-    , assAssessmentARN
-    , assUserAttributesForFindings
-    , assFailureMessage
-    , assAssessmentState
-    , assEndTime
-    , assDurationInSeconds
-    , assAssessmentName
+    -- ** AssessmentTemplate
+    , AssessmentTemplate
+    , assessmentTemplate
+    , atArn
+    , atName
+    , atAssessmentTargetARN
+    , atDurationInSeconds
+    , atRulesPackageARNs
+    , atUserAttributesForFindings
+    , atCreatedAt
 
-    -- ** AssessmentsFilter
-    , AssessmentsFilter
-    , assessmentsFilter
-    , afDataCollected
-    , afAssessmentStates
-    , afStartTimeRange
-    , afAssessmentNamePatterns
-    , afEndTimeRange
-    , afDurationRange
+    -- ** AssessmentTemplateFilter
+    , AssessmentTemplateFilter
+    , assessmentTemplateFilter
+    , atfNamePattern
+    , atfRulesPackageARNs
+    , atfDurationRange
 
+    -- ** AssetAttributes
+    , AssetAttributes
+    , assetAttributes
+    , aaHostname
+    , aaAutoScalingGroup
+    , aaIpv4Addresses
+    , aaAgentId
+    , aaAmiId
+    , aaSchemaVersion
+
     -- ** Attribute
     , Attribute
     , attribute
@@ -227,93 +299,90 @@
     -- ** DurationRange
     , DurationRange
     , durationRange
-    , drMaximum
-    , drMinimum
+    , drMinSeconds
+    , drMaxSeconds
 
+    -- ** EventSubscription
+    , EventSubscription
+    , eventSubscription
+    , esEvent
+    , esSubscribedAt
+
+    -- ** FailedItemDetails
+    , FailedItemDetails
+    , failedItemDetails
+    , fidFailureCode
+    , fidRetryable
+
     -- ** Finding
     , Finding
     , finding
-    , fAutoScalingGroup
-    , fFinding
+    , fService
     , fSeverity
-    , fUserAttributes
-    , fRuleName
-    , fAgentId
-    , fRunARN
-    , fAttributes
-    , fRulesPackageARN
-    , fFindingARN
+    , fSchemaVersion
+    , fConfidence
+    , fAssetAttributes
+    , fServiceAttributes
+    , fId
+    , fNumericSeverity
+    , fAssetType
+    , fTitle
+    , fIndicatorOfCompromise
     , fDescription
     , fRecommendation
+    , fArn
+    , fAttributes
+    , fUserAttributes
+    , fCreatedAt
+    , fUpdatedAt
 
-    -- ** FindingsFilter
-    , FindingsFilter
-    , findingsFilter
+    -- ** FindingFilter
+    , FindingFilter
+    , findingFilter
+    , ffAgentIds
     , ffRuleNames
     , ffUserAttributes
     , ffRulesPackageARNs
     , ffAttributes
     , ffSeverities
-
-    -- ** LocalizedText
-    , LocalizedText
-    , localizedText
-    , ltKey
-    , ltParameters
-
-    -- ** LocalizedTextKey
-    , LocalizedTextKey
-    , localizedTextKey
-    , ltkFacility
-    , ltkId
-
-    -- ** MessageTypeTelemetry
-    , MessageTypeTelemetry
-    , messageTypeTelemetry
-    , mttDataSize
-    , mttMessageType
-    , mttCount
+    , ffCreationTimeRange
+    , ffAutoScalingGroups
 
-    -- ** Parameter
-    , Parameter
-    , parameter
-    , pValue
-    , pName
+    -- ** InspectorServiceAttributes
+    , InspectorServiceAttributes
+    , inspectorServiceAttributes
+    , isaRulesPackageARN
+    , isaAssessmentRunARN
+    , isaSchemaVersion
 
     -- ** ResourceGroup
     , ResourceGroup
     , resourceGroup
-    , rgResourceGroupTags
-    , rgResourceGroupARN
+    , rgArn
+    , rgTags
+    , rgCreatedAt
 
+    -- ** ResourceGroupTag
+    , ResourceGroupTag
+    , resourceGroupTag
+    , rgtValue
+    , rgtKey
+
     -- ** RulesPackage
     , RulesPackage
     , rulesPackage
-    , rpVersion
-    , rpRulesPackageARN
-    , rpRulesPackageName
     , rpDescription
+    , rpArn
+    , rpName
+    , rpVersion
     , rpProvider
 
-    -- ** Run
-    , Run
-    , run
-    , runCreationTime
-    , runRulesPackages
-    , runAssessmentARN
-    , runRunState
-    , runRunName
-    , runCompletionTime
-    , runRunARN
-
-    -- ** RunsFilter
-    , RunsFilter
-    , runsFilter
-    , rfCreationTime
-    , rfRulesPackages
-    , rfRunStates
-    , rfRunNamePatterns
-    , rfCompletionTime
+    -- ** Subscription
+    , Subscription
+    , subscription
+    , sResourceARN
+    , sTopicARN
+    , sEventSubscriptions
 
     -- ** Tag
     , Tag
@@ -321,56 +390,53 @@
     , tagValue
     , tagKey
 
-    -- ** Telemetry
-    , Telemetry
-    , telemetry
-    , tStatus
-    , tMessageTypeTelemetries
+    -- ** TelemetryMetadata
+    , TelemetryMetadata
+    , telemetryMetadata
+    , tmDataSize
+    , tmMessageType
+    , tmCount
 
     -- ** TimestampRange
     , TimestampRange
     , timestampRange
-    , trMaximum
-    , trMinimum
+    , trEndDate
+    , trBeginDate
     ) where
 
 import           Network.AWS.Inspector.AddAttributesToFindings
-import           Network.AWS.Inspector.AttachAssessmentAndRulesPackage
-import           Network.AWS.Inspector.CreateApplication
-import           Network.AWS.Inspector.CreateAssessment
+import           Network.AWS.Inspector.CreateAssessmentTarget
+import           Network.AWS.Inspector.CreateAssessmentTemplate
 import           Network.AWS.Inspector.CreateResourceGroup
-import           Network.AWS.Inspector.DeleteApplication
-import           Network.AWS.Inspector.DeleteAssessment
-import           Network.AWS.Inspector.DeleteRun
-import           Network.AWS.Inspector.DescribeApplication
-import           Network.AWS.Inspector.DescribeAssessment
+import           Network.AWS.Inspector.DeleteAssessmentRun
+import           Network.AWS.Inspector.DeleteAssessmentTarget
+import           Network.AWS.Inspector.DeleteAssessmentTemplate
+import           Network.AWS.Inspector.DescribeAssessmentRuns
+import           Network.AWS.Inspector.DescribeAssessmentTargets
+import           Network.AWS.Inspector.DescribeAssessmentTemplates
 import           Network.AWS.Inspector.DescribeCrossAccountAccessRole
-import           Network.AWS.Inspector.DescribeFinding
-import           Network.AWS.Inspector.DescribeResourceGroup
-import           Network.AWS.Inspector.DescribeRulesPackage
-import           Network.AWS.Inspector.DescribeRun
-import           Network.AWS.Inspector.DetachAssessmentAndRulesPackage
-import           Network.AWS.Inspector.GetAssessmentTelemetry
-import           Network.AWS.Inspector.ListApplications
-import           Network.AWS.Inspector.ListAssessmentAgents
-import           Network.AWS.Inspector.ListAssessments
-import           Network.AWS.Inspector.ListAttachedAssessments
-import           Network.AWS.Inspector.ListAttachedRulesPackages
+import           Network.AWS.Inspector.DescribeFindings
+import           Network.AWS.Inspector.DescribeResourceGroups
+import           Network.AWS.Inspector.DescribeRulesPackages
+import           Network.AWS.Inspector.GetTelemetryMetadata
+import           Network.AWS.Inspector.ListAssessmentRunAgents
+import           Network.AWS.Inspector.ListAssessmentRuns
+import           Network.AWS.Inspector.ListAssessmentTargets
+import           Network.AWS.Inspector.ListAssessmentTemplates
+import           Network.AWS.Inspector.ListEventSubscriptions
 import           Network.AWS.Inspector.ListFindings
 import           Network.AWS.Inspector.ListRulesPackages
-import           Network.AWS.Inspector.ListRuns
 import           Network.AWS.Inspector.ListTagsForResource
-import           Network.AWS.Inspector.LocalizeText
-import           Network.AWS.Inspector.PreviewAgentsForResourceGroup
+import           Network.AWS.Inspector.PreviewAgents
 import           Network.AWS.Inspector.RegisterCrossAccountAccessRole
 import           Network.AWS.Inspector.RemoveAttributesFromFindings
-import           Network.AWS.Inspector.RunAssessment
 import           Network.AWS.Inspector.SetTagsForResource
-import           Network.AWS.Inspector.StartDataCollection
-import           Network.AWS.Inspector.StopDataCollection
+import           Network.AWS.Inspector.StartAssessmentRun
+import           Network.AWS.Inspector.StopAssessmentRun
+import           Network.AWS.Inspector.SubscribeToEvent
 import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.UpdateApplication
-import           Network.AWS.Inspector.UpdateAssessment
+import           Network.AWS.Inspector.UnsubscribeFromEvent
+import           Network.AWS.Inspector.UpdateAssessmentTarget
 import           Network.AWS.Inspector.Waiters
 
 {- $errors
diff --git a/gen/Network/AWS/Inspector/AddAttributesToFindings.hs b/gen/Network/AWS/Inspector/AddAttributesToFindings.hs
--- a/gen/Network/AWS/Inspector/AddAttributesToFindings.hs
+++ b/gen/Network/AWS/Inspector/AddAttributesToFindings.hs
@@ -18,8 +18,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Assigns attributes (key and value pair) to the findings specified by the
--- findings\' ARNs.
+-- Assigns attributes (key and value pairs) to the findings that are
+-- specified by the ARNs of the findings.
 module Network.AWS.Inspector.AddAttributesToFindings
     (
     -- * Creating a Request
@@ -33,8 +33,8 @@
     , addAttributesToFindingsResponse
     , AddAttributesToFindingsResponse
     -- * Response Lenses
-    , aatfrsMessage
     , aatfrsResponseStatus
+    , aatfrsFailedItems
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -46,7 +46,7 @@
 
 -- | /See:/ 'addAttributesToFindings' smart constructor.
 data AddAttributesToFindings = AddAttributesToFindings'
-    { _aatfFindingARNs :: ![Text]
+    { _aatfFindingARNs :: !(List1 Text)
     , _aatfAttributes  :: ![Attribute]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -58,16 +58,18 @@
 --
 -- * 'aatfAttributes'
 addAttributesToFindings
-    :: AddAttributesToFindings
-addAttributesToFindings =
+    :: NonEmpty Text -- ^ 'aatfFindingARNs'
+    -> AddAttributesToFindings
+addAttributesToFindings pFindingARNs_ =
     AddAttributesToFindings'
-    { _aatfFindingARNs = mempty
+    { _aatfFindingARNs = _List1 # pFindingARNs_
     , _aatfAttributes = mempty
     }
 
--- | The ARNs specifying the findings that you want to assign attributes to.
-aatfFindingARNs :: Lens' AddAttributesToFindings [Text]
-aatfFindingARNs = lens _aatfFindingARNs (\ s a -> s{_aatfFindingARNs = a}) . _Coerce;
+-- | The ARNs that specify the findings that you want to assign attributes
+-- to.
+aatfFindingARNs :: Lens' AddAttributesToFindings (NonEmpty Text)
+aatfFindingARNs = lens _aatfFindingARNs (\ s a -> s{_aatfFindingARNs = a}) . _List1;
 
 -- | The array of attributes that you want to assign to specified findings.
 aatfAttributes :: Lens' AddAttributesToFindings [Attribute]
@@ -81,10 +83,13 @@
           = receiveJSON
               (\ s h x ->
                  AddAttributesToFindingsResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
+                   (pure (fromEnum s)) <*>
+                     (x .?> "failedItems" .!@ mempty))
 
 instance Hashable AddAttributesToFindings
 
+instance NFData AddAttributesToFindings
+
 instance ToHeaders AddAttributesToFindings where
         toHeaders
           = const
@@ -110,30 +115,33 @@
 
 -- | /See:/ 'addAttributesToFindingsResponse' smart constructor.
 data AddAttributesToFindingsResponse = AddAttributesToFindingsResponse'
-    { _aatfrsMessage        :: !(Maybe Text)
-    , _aatfrsResponseStatus :: !Int
+    { _aatfrsResponseStatus :: !Int
+    , _aatfrsFailedItems    :: !(Map Text FailedItemDetails)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'AddAttributesToFindingsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'aatfrsMessage'
---
 -- * 'aatfrsResponseStatus'
+--
+-- * 'aatfrsFailedItems'
 addAttributesToFindingsResponse
     :: Int -- ^ 'aatfrsResponseStatus'
     -> AddAttributesToFindingsResponse
 addAttributesToFindingsResponse pResponseStatus_ =
     AddAttributesToFindingsResponse'
-    { _aatfrsMessage = Nothing
-    , _aatfrsResponseStatus = pResponseStatus_
+    { _aatfrsResponseStatus = pResponseStatus_
+    , _aatfrsFailedItems = mempty
     }
 
--- | Confirmation details of the action performed.
-aatfrsMessage :: Lens' AddAttributesToFindingsResponse (Maybe Text)
-aatfrsMessage = lens _aatfrsMessage (\ s a -> s{_aatfrsMessage = a});
-
 -- | The response status code.
 aatfrsResponseStatus :: Lens' AddAttributesToFindingsResponse Int
 aatfrsResponseStatus = lens _aatfrsResponseStatus (\ s a -> s{_aatfrsResponseStatus = a});
+
+-- | Attribute details that cannot be described. An error code is provided
+-- for each failed item.
+aatfrsFailedItems :: Lens' AddAttributesToFindingsResponse (HashMap Text FailedItemDetails)
+aatfrsFailedItems = lens _aatfrsFailedItems (\ s a -> s{_aatfrsFailedItems = a}) . _Map;
+
+instance NFData AddAttributesToFindingsResponse
diff --git a/gen/Network/AWS/Inspector/AttachAssessmentAndRulesPackage.hs b/gen/Network/AWS/Inspector/AttachAssessmentAndRulesPackage.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/AttachAssessmentAndRulesPackage.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-# 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.Inspector.AttachAssessmentAndRulesPackage
--- Copyright   : (c) 2013-2016 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)
---
--- Attaches the rules package specified by the rules package ARN to the
--- assessment specified by the assessment ARN.
-module Network.AWS.Inspector.AttachAssessmentAndRulesPackage
-    (
-    -- * Creating a Request
-      attachAssessmentAndRulesPackage
-    , AttachAssessmentAndRulesPackage
-    -- * Request Lenses
-    , aaarpAssessmentARN
-    , aaarpRulesPackageARN
-
-    -- * Destructuring the Response
-    , attachAssessmentAndRulesPackageResponse
-    , AttachAssessmentAndRulesPackageResponse
-    -- * Response Lenses
-    , aaarprsMessage
-    , aaarprsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'attachAssessmentAndRulesPackage' smart constructor.
-data AttachAssessmentAndRulesPackage = AttachAssessmentAndRulesPackage'
-    { _aaarpAssessmentARN   :: !Text
-    , _aaarpRulesPackageARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AttachAssessmentAndRulesPackage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaarpAssessmentARN'
---
--- * 'aaarpRulesPackageARN'
-attachAssessmentAndRulesPackage
-    :: Text -- ^ 'aaarpAssessmentARN'
-    -> Text -- ^ 'aaarpRulesPackageARN'
-    -> AttachAssessmentAndRulesPackage
-attachAssessmentAndRulesPackage pAssessmentARN_ pRulesPackageARN_ =
-    AttachAssessmentAndRulesPackage'
-    { _aaarpAssessmentARN = pAssessmentARN_
-    , _aaarpRulesPackageARN = pRulesPackageARN_
-    }
-
--- | The ARN specifying the assessment to which you want to attach a rules
--- package.
-aaarpAssessmentARN :: Lens' AttachAssessmentAndRulesPackage Text
-aaarpAssessmentARN = lens _aaarpAssessmentARN (\ s a -> s{_aaarpAssessmentARN = a});
-
--- | The ARN specifying the rules package that you want to attach to the
--- assessment.
-aaarpRulesPackageARN :: Lens' AttachAssessmentAndRulesPackage Text
-aaarpRulesPackageARN = lens _aaarpRulesPackageARN (\ s a -> s{_aaarpRulesPackageARN = a});
-
-instance AWSRequest AttachAssessmentAndRulesPackage
-         where
-        type Rs AttachAssessmentAndRulesPackage =
-             AttachAssessmentAndRulesPackageResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 AttachAssessmentAndRulesPackageResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable AttachAssessmentAndRulesPackage
-
-instance ToHeaders AttachAssessmentAndRulesPackage
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.AttachAssessmentAndRulesPackage"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON AttachAssessmentAndRulesPackage where
-        toJSON AttachAssessmentAndRulesPackage'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _aaarpAssessmentARN),
-                  Just ("rulesPackageArn" .= _aaarpRulesPackageARN)])
-
-instance ToPath AttachAssessmentAndRulesPackage where
-        toPath = const "/"
-
-instance ToQuery AttachAssessmentAndRulesPackage
-         where
-        toQuery = const mempty
-
--- | /See:/ 'attachAssessmentAndRulesPackageResponse' smart constructor.
-data AttachAssessmentAndRulesPackageResponse = AttachAssessmentAndRulesPackageResponse'
-    { _aaarprsMessage        :: !(Maybe Text)
-    , _aaarprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AttachAssessmentAndRulesPackageResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaarprsMessage'
---
--- * 'aaarprsResponseStatus'
-attachAssessmentAndRulesPackageResponse
-    :: Int -- ^ 'aaarprsResponseStatus'
-    -> AttachAssessmentAndRulesPackageResponse
-attachAssessmentAndRulesPackageResponse pResponseStatus_ =
-    AttachAssessmentAndRulesPackageResponse'
-    { _aaarprsMessage = Nothing
-    , _aaarprsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-aaarprsMessage :: Lens' AttachAssessmentAndRulesPackageResponse (Maybe Text)
-aaarprsMessage = lens _aaarprsMessage (\ s a -> s{_aaarprsMessage = a});
-
--- | The response status code.
-aaarprsResponseStatus :: Lens' AttachAssessmentAndRulesPackageResponse Int
-aaarprsResponseStatus = lens _aaarprsResponseStatus (\ s a -> s{_aaarprsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/CreateApplication.hs b/gen/Network/AWS/Inspector/CreateApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/CreateApplication.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# 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.Inspector.CreateApplication
--- Copyright   : (c) 2013-2016 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)
---
--- Creates a new application using the resource group ARN generated by
--- < CreateResourceGroup>. You can create up to 50 applications per AWS
--- account. You can run up to 500 concurrent agents per AWS account. For
--- more information, see
--- <https://docs.aws.amazon.com/inspector/latest/userguide//inspector_applications.html Inspector Applications.>
-module Network.AWS.Inspector.CreateApplication
-    (
-    -- * Creating a Request
-      createApplication
-    , CreateApplication
-    -- * Request Lenses
-    , caApplicationName
-    , caResourceGroupARN
-
-    -- * Destructuring the Response
-    , createApplicationResponse
-    , CreateApplicationResponse
-    -- * Response Lenses
-    , carsApplicationARN
-    , carsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'createApplication' smart constructor.
-data CreateApplication = CreateApplication'
-    { _caApplicationName  :: !Text
-    , _caResourceGroupARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreateApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caApplicationName'
---
--- * 'caResourceGroupARN'
-createApplication
-    :: Text -- ^ 'caApplicationName'
-    -> Text -- ^ 'caResourceGroupARN'
-    -> CreateApplication
-createApplication pApplicationName_ pResourceGroupARN_ =
-    CreateApplication'
-    { _caApplicationName = pApplicationName_
-    , _caResourceGroupARN = pResourceGroupARN_
-    }
-
--- | The user-defined name identifying the application that you want to
--- create. The name must be unique within the AWS account.
-caApplicationName :: Lens' CreateApplication Text
-caApplicationName = lens _caApplicationName (\ s a -> s{_caApplicationName = a});
-
--- | The ARN specifying the resource group that is used to create the
--- application.
-caResourceGroupARN :: Lens' CreateApplication Text
-caResourceGroupARN = lens _caResourceGroupARN (\ s a -> s{_caResourceGroupARN = a});
-
-instance AWSRequest CreateApplication where
-        type Rs CreateApplication = CreateApplicationResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateApplicationResponse' <$>
-                   (x .?> "applicationArn") <*> (pure (fromEnum s)))
-
-instance Hashable CreateApplication
-
-instance ToHeaders CreateApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.CreateApplication" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateApplication where
-        toJSON CreateApplication'{..}
-          = object
-              (catMaybes
-                 [Just ("applicationName" .= _caApplicationName),
-                  Just ("resourceGroupArn" .= _caResourceGroupARN)])
-
-instance ToPath CreateApplication where
-        toPath = const "/"
-
-instance ToQuery CreateApplication where
-        toQuery = const mempty
-
--- | /See:/ 'createApplicationResponse' smart constructor.
-data CreateApplicationResponse = CreateApplicationResponse'
-    { _carsApplicationARN :: !(Maybe Text)
-    , _carsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreateApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'carsApplicationARN'
---
--- * 'carsResponseStatus'
-createApplicationResponse
-    :: Int -- ^ 'carsResponseStatus'
-    -> CreateApplicationResponse
-createApplicationResponse pResponseStatus_ =
-    CreateApplicationResponse'
-    { _carsApplicationARN = Nothing
-    , _carsResponseStatus = pResponseStatus_
-    }
-
--- | The ARN specifying the application that is created.
-carsApplicationARN :: Lens' CreateApplicationResponse (Maybe Text)
-carsApplicationARN = lens _carsApplicationARN (\ s a -> s{_carsApplicationARN = a});
-
--- | The response status code.
-carsResponseStatus :: Lens' CreateApplicationResponse Int
-carsResponseStatus = lens _carsResponseStatus (\ s a -> s{_carsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/CreateAssessment.hs b/gen/Network/AWS/Inspector/CreateAssessment.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/CreateAssessment.hs
+++ /dev/null
@@ -1,167 +0,0 @@
-{-# 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.Inspector.CreateAssessment
--- Copyright   : (c) 2013-2016 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)
---
--- Creates an assessment for the application specified by the application
--- ARN. You can create up to 500 assessments per AWS account.
-module Network.AWS.Inspector.CreateAssessment
-    (
-    -- * Creating a Request
-      createAssessment
-    , CreateAssessment
-    -- * Request Lenses
-    , caUserAttributesForFindings
-    , caApplicationARN
-    , caAssessmentName
-    , caDurationInSeconds
-
-    -- * Destructuring the Response
-    , createAssessmentResponse
-    , CreateAssessmentResponse
-    -- * Response Lenses
-    , crsAssessmentARN
-    , crsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'createAssessment' smart constructor.
-data CreateAssessment = CreateAssessment'
-    { _caUserAttributesForFindings :: !(Maybe [Attribute])
-    , _caApplicationARN            :: !Text
-    , _caAssessmentName            :: !Text
-    , _caDurationInSeconds         :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreateAssessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caUserAttributesForFindings'
---
--- * 'caApplicationARN'
---
--- * 'caAssessmentName'
---
--- * 'caDurationInSeconds'
-createAssessment
-    :: Text -- ^ 'caApplicationARN'
-    -> Text -- ^ 'caAssessmentName'
-    -> Int -- ^ 'caDurationInSeconds'
-    -> CreateAssessment
-createAssessment pApplicationARN_ pAssessmentName_ pDurationInSeconds_ =
-    CreateAssessment'
-    { _caUserAttributesForFindings = Nothing
-    , _caApplicationARN = pApplicationARN_
-    , _caAssessmentName = pAssessmentName_
-    , _caDurationInSeconds = pDurationInSeconds_
-    }
-
--- | The user-defined attributes that are assigned to every finding generated
--- by running this assessment.
-caUserAttributesForFindings :: Lens' CreateAssessment [Attribute]
-caUserAttributesForFindings = lens _caUserAttributesForFindings (\ s a -> s{_caUserAttributesForFindings = a}) . _Default . _Coerce;
-
--- | The ARN specifying the application for which you want to create an
--- assessment.
-caApplicationARN :: Lens' CreateAssessment Text
-caApplicationARN = lens _caApplicationARN (\ s a -> s{_caApplicationARN = a});
-
--- | The user-defined name identifying the assessment that you want to
--- create. You can create several assessments for an application. The names
--- of the assessments corresponding to a particular application must be
--- unique.
-caAssessmentName :: Lens' CreateAssessment Text
-caAssessmentName = lens _caAssessmentName (\ s a -> s{_caAssessmentName = a});
-
--- | The duration of the assessment in seconds. The default value is 3600
--- seconds (one hour). The maximum value is 86400 seconds (one day).
-caDurationInSeconds :: Lens' CreateAssessment Int
-caDurationInSeconds = lens _caDurationInSeconds (\ s a -> s{_caDurationInSeconds = a});
-
-instance AWSRequest CreateAssessment where
-        type Rs CreateAssessment = CreateAssessmentResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateAssessmentResponse' <$>
-                   (x .?> "assessmentArn") <*> (pure (fromEnum s)))
-
-instance Hashable CreateAssessment
-
-instance ToHeaders CreateAssessment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.CreateAssessment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateAssessment where
-        toJSON CreateAssessment'{..}
-          = object
-              (catMaybes
-                 [("userAttributesForFindings" .=) <$>
-                    _caUserAttributesForFindings,
-                  Just ("applicationArn" .= _caApplicationARN),
-                  Just ("assessmentName" .= _caAssessmentName),
-                  Just ("durationInSeconds" .= _caDurationInSeconds)])
-
-instance ToPath CreateAssessment where
-        toPath = const "/"
-
-instance ToQuery CreateAssessment where
-        toQuery = const mempty
-
--- | /See:/ 'createAssessmentResponse' smart constructor.
-data CreateAssessmentResponse = CreateAssessmentResponse'
-    { _crsAssessmentARN  :: !(Maybe Text)
-    , _crsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'CreateAssessmentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crsAssessmentARN'
---
--- * 'crsResponseStatus'
-createAssessmentResponse
-    :: Int -- ^ 'crsResponseStatus'
-    -> CreateAssessmentResponse
-createAssessmentResponse pResponseStatus_ =
-    CreateAssessmentResponse'
-    { _crsAssessmentARN = Nothing
-    , _crsResponseStatus = pResponseStatus_
-    }
-
--- | The ARN specifying the assessment that is created.
-crsAssessmentARN :: Lens' CreateAssessmentResponse (Maybe Text)
-crsAssessmentARN = lens _crsAssessmentARN (\ s a -> s{_crsAssessmentARN = a});
-
--- | The response status code.
-crsResponseStatus :: Lens' CreateAssessmentResponse Int
-crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/CreateAssessmentTarget.hs b/gen/Network/AWS/Inspector/CreateAssessmentTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/CreateAssessmentTarget.hs
@@ -0,0 +1,153 @@
+{-# 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.Inspector.CreateAssessmentTarget
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Creates a new assessment target using the ARN of the resource group that
+-- is generated by < CreateResourceGroup>. You can create up to 50
+-- assessment targets per AWS account. You can run up to 500 concurrent
+-- agents per AWS account. For more information, see
+-- <http://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html Amazon Inspector Assessment Targets>.
+module Network.AWS.Inspector.CreateAssessmentTarget
+    (
+    -- * Creating a Request
+      createAssessmentTarget
+    , CreateAssessmentTarget
+    -- * Request Lenses
+    , catAssessmentTargetName
+    , catResourceGroupARN
+
+    -- * Destructuring the Response
+    , createAssessmentTargetResponse
+    , CreateAssessmentTargetResponse
+    -- * Response Lenses
+    , catrsResponseStatus
+    , catrsAssessmentTargetARN
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'createAssessmentTarget' smart constructor.
+data CreateAssessmentTarget = CreateAssessmentTarget'
+    { _catAssessmentTargetName :: !Text
+    , _catResourceGroupARN     :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateAssessmentTarget' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'catAssessmentTargetName'
+--
+-- * 'catResourceGroupARN'
+createAssessmentTarget
+    :: Text -- ^ 'catAssessmentTargetName'
+    -> Text -- ^ 'catResourceGroupARN'
+    -> CreateAssessmentTarget
+createAssessmentTarget pAssessmentTargetName_ pResourceGroupARN_ =
+    CreateAssessmentTarget'
+    { _catAssessmentTargetName = pAssessmentTargetName_
+    , _catResourceGroupARN = pResourceGroupARN_
+    }
+
+-- | The user-defined name that identifies the assessment target that you
+-- want to create. The name must be unique within the AWS account.
+catAssessmentTargetName :: Lens' CreateAssessmentTarget Text
+catAssessmentTargetName = lens _catAssessmentTargetName (\ s a -> s{_catAssessmentTargetName = a});
+
+-- | The ARN that specifies the resource group that is used to create the
+-- assessment target.
+catResourceGroupARN :: Lens' CreateAssessmentTarget Text
+catResourceGroupARN = lens _catResourceGroupARN (\ s a -> s{_catResourceGroupARN = a});
+
+instance AWSRequest CreateAssessmentTarget where
+        type Rs CreateAssessmentTarget =
+             CreateAssessmentTargetResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateAssessmentTargetResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .:> "assessmentTargetArn"))
+
+instance Hashable CreateAssessmentTarget
+
+instance NFData CreateAssessmentTarget
+
+instance ToHeaders CreateAssessmentTarget where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.CreateAssessmentTarget" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateAssessmentTarget where
+        toJSON CreateAssessmentTarget'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTargetName" .= _catAssessmentTargetName),
+                  Just ("resourceGroupArn" .= _catResourceGroupARN)])
+
+instance ToPath CreateAssessmentTarget where
+        toPath = const "/"
+
+instance ToQuery CreateAssessmentTarget where
+        toQuery = const mempty
+
+-- | /See:/ 'createAssessmentTargetResponse' smart constructor.
+data CreateAssessmentTargetResponse = CreateAssessmentTargetResponse'
+    { _catrsResponseStatus      :: !Int
+    , _catrsAssessmentTargetARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateAssessmentTargetResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'catrsResponseStatus'
+--
+-- * 'catrsAssessmentTargetARN'
+createAssessmentTargetResponse
+    :: Int -- ^ 'catrsResponseStatus'
+    -> Text -- ^ 'catrsAssessmentTargetARN'
+    -> CreateAssessmentTargetResponse
+createAssessmentTargetResponse pResponseStatus_ pAssessmentTargetARN_ =
+    CreateAssessmentTargetResponse'
+    { _catrsResponseStatus = pResponseStatus_
+    , _catrsAssessmentTargetARN = pAssessmentTargetARN_
+    }
+
+-- | The response status code.
+catrsResponseStatus :: Lens' CreateAssessmentTargetResponse Int
+catrsResponseStatus = lens _catrsResponseStatus (\ s a -> s{_catrsResponseStatus = a});
+
+-- | The ARN that specifies the assessment target that is created.
+catrsAssessmentTargetARN :: Lens' CreateAssessmentTargetResponse Text
+catrsAssessmentTargetARN = lens _catrsAssessmentTargetARN (\ s a -> s{_catrsAssessmentTargetARN = a});
+
+instance NFData CreateAssessmentTargetResponse
diff --git a/gen/Network/AWS/Inspector/CreateAssessmentTemplate.hs b/gen/Network/AWS/Inspector/CreateAssessmentTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/CreateAssessmentTemplate.hs
@@ -0,0 +1,189 @@
+{-# 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.Inspector.CreateAssessmentTemplate
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Creates an assessment template for the assessment target that is
+-- specified by the ARN of the assessment target.
+module Network.AWS.Inspector.CreateAssessmentTemplate
+    (
+    -- * Creating a Request
+      createAssessmentTemplate
+    , CreateAssessmentTemplate
+    -- * Request Lenses
+    , catUserAttributesForFindings
+    , catAssessmentTargetARN
+    , catAssessmentTemplateName
+    , catDurationInSeconds
+    , catRulesPackageARNs
+
+    -- * Destructuring the Response
+    , createAssessmentTemplateResponse
+    , CreateAssessmentTemplateResponse
+    -- * Response Lenses
+    , crsResponseStatus
+    , crsAssessmentTemplateARN
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'createAssessmentTemplate' smart constructor.
+data CreateAssessmentTemplate = CreateAssessmentTemplate'
+    { _catUserAttributesForFindings :: !(Maybe [Attribute])
+    , _catAssessmentTargetARN       :: !Text
+    , _catAssessmentTemplateName    :: !Text
+    , _catDurationInSeconds         :: !Nat
+    , _catRulesPackageARNs          :: ![Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateAssessmentTemplate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'catUserAttributesForFindings'
+--
+-- * 'catAssessmentTargetARN'
+--
+-- * 'catAssessmentTemplateName'
+--
+-- * 'catDurationInSeconds'
+--
+-- * 'catRulesPackageARNs'
+createAssessmentTemplate
+    :: Text -- ^ 'catAssessmentTargetARN'
+    -> Text -- ^ 'catAssessmentTemplateName'
+    -> Natural -- ^ 'catDurationInSeconds'
+    -> CreateAssessmentTemplate
+createAssessmentTemplate pAssessmentTargetARN_ pAssessmentTemplateName_ pDurationInSeconds_ =
+    CreateAssessmentTemplate'
+    { _catUserAttributesForFindings = Nothing
+    , _catAssessmentTargetARN = pAssessmentTargetARN_
+    , _catAssessmentTemplateName = pAssessmentTemplateName_
+    , _catDurationInSeconds = _Nat # pDurationInSeconds_
+    , _catRulesPackageARNs = mempty
+    }
+
+-- | The user-defined attributes that are assigned to every finding that is
+-- generated by the assessment run that uses this assessment template.
+catUserAttributesForFindings :: Lens' CreateAssessmentTemplate [Attribute]
+catUserAttributesForFindings = lens _catUserAttributesForFindings (\ s a -> s{_catUserAttributesForFindings = a}) . _Default . _Coerce;
+
+-- | The ARN that specifies the assessment target for which you want to
+-- create the assessment template.
+catAssessmentTargetARN :: Lens' CreateAssessmentTemplate Text
+catAssessmentTargetARN = lens _catAssessmentTargetARN (\ s a -> s{_catAssessmentTargetARN = a});
+
+-- | The user-defined name that identifies the assessment template that you
+-- want to create. You can create several assessment templates for an
+-- assessment target. The names of the assessment templates that correspond
+-- to a particular assessment target must be unique.
+catAssessmentTemplateName :: Lens' CreateAssessmentTemplate Text
+catAssessmentTemplateName = lens _catAssessmentTemplateName (\ s a -> s{_catAssessmentTemplateName = a});
+
+-- | The duration of the assessment run in seconds. The default value is 3600
+-- seconds (one hour).
+catDurationInSeconds :: Lens' CreateAssessmentTemplate Natural
+catDurationInSeconds = lens _catDurationInSeconds (\ s a -> s{_catDurationInSeconds = a}) . _Nat;
+
+-- | The ARNs that specify the rules packages that you want to attach to the
+-- assessment template.
+catRulesPackageARNs :: Lens' CreateAssessmentTemplate [Text]
+catRulesPackageARNs = lens _catRulesPackageARNs (\ s a -> s{_catRulesPackageARNs = a}) . _Coerce;
+
+instance AWSRequest CreateAssessmentTemplate where
+        type Rs CreateAssessmentTemplate =
+             CreateAssessmentTemplateResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 CreateAssessmentTemplateResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .:> "assessmentTemplateArn"))
+
+instance Hashable CreateAssessmentTemplate
+
+instance NFData CreateAssessmentTemplate
+
+instance ToHeaders CreateAssessmentTemplate where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.CreateAssessmentTemplate" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON CreateAssessmentTemplate where
+        toJSON CreateAssessmentTemplate'{..}
+          = object
+              (catMaybes
+                 [("userAttributesForFindings" .=) <$>
+                    _catUserAttributesForFindings,
+                  Just
+                    ("assessmentTargetArn" .= _catAssessmentTargetARN),
+                  Just
+                    ("assessmentTemplateName" .=
+                       _catAssessmentTemplateName),
+                  Just ("durationInSeconds" .= _catDurationInSeconds),
+                  Just ("rulesPackageArns" .= _catRulesPackageARNs)])
+
+instance ToPath CreateAssessmentTemplate where
+        toPath = const "/"
+
+instance ToQuery CreateAssessmentTemplate where
+        toQuery = const mempty
+
+-- | /See:/ 'createAssessmentTemplateResponse' smart constructor.
+data CreateAssessmentTemplateResponse = CreateAssessmentTemplateResponse'
+    { _crsResponseStatus        :: !Int
+    , _crsAssessmentTemplateARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'CreateAssessmentTemplateResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'crsResponseStatus'
+--
+-- * 'crsAssessmentTemplateARN'
+createAssessmentTemplateResponse
+    :: Int -- ^ 'crsResponseStatus'
+    -> Text -- ^ 'crsAssessmentTemplateARN'
+    -> CreateAssessmentTemplateResponse
+createAssessmentTemplateResponse pResponseStatus_ pAssessmentTemplateARN_ =
+    CreateAssessmentTemplateResponse'
+    { _crsResponseStatus = pResponseStatus_
+    , _crsAssessmentTemplateARN = pAssessmentTemplateARN_
+    }
+
+-- | The response status code.
+crsResponseStatus :: Lens' CreateAssessmentTemplateResponse Int
+crsResponseStatus = lens _crsResponseStatus (\ s a -> s{_crsResponseStatus = a});
+
+-- | The ARN that specifies the assessment template that is created.
+crsAssessmentTemplateARN :: Lens' CreateAssessmentTemplateResponse Text
+crsAssessmentTemplateARN = lens _crsAssessmentTemplateARN (\ s a -> s{_crsAssessmentTemplateARN = a});
+
+instance NFData CreateAssessmentTemplateResponse
diff --git a/gen/Network/AWS/Inspector/CreateResourceGroup.hs b/gen/Network/AWS/Inspector/CreateResourceGroup.hs
--- a/gen/Network/AWS/Inspector/CreateResourceGroup.hs
+++ b/gen/Network/AWS/Inspector/CreateResourceGroup.hs
@@ -20,8 +20,9 @@
 --
 -- Creates a resource group using the specified set of tags (key and value
 -- pairs) that are used to select the EC2 instances to be included in an
--- Inspector application. The created resource group is then used to create
--- an Inspector application.
+-- Amazon Inspector assessment target. The created resource group is then
+-- used to create an Amazon Inspector assessment target. For more
+-- information, see < CreateAssessmentTarget>.
 module Network.AWS.Inspector.CreateResourceGroup
     (
     -- * Creating a Request
@@ -34,8 +35,8 @@
     , createResourceGroupResponse
     , CreateResourceGroupResponse
     -- * Response Lenses
-    , crgrsResourceGroupARN
     , crgrsResponseStatus
+    , crgrsResourceGroupARN
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -47,7 +48,7 @@
 
 -- | /See:/ 'createResourceGroup' smart constructor.
 newtype CreateResourceGroup = CreateResourceGroup'
-    { _crgResourceGroupTags :: Text
+    { _crgResourceGroupTags :: List1 ResourceGroupTag
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'CreateResourceGroup' with the minimum fields required to make a request.
@@ -56,19 +57,19 @@
 --
 -- * 'crgResourceGroupTags'
 createResourceGroup
-    :: Text -- ^ 'crgResourceGroupTags'
+    :: NonEmpty ResourceGroupTag -- ^ 'crgResourceGroupTags'
     -> CreateResourceGroup
 createResourceGroup pResourceGroupTags_ =
     CreateResourceGroup'
-    { _crgResourceGroupTags = pResourceGroupTags_
+    { _crgResourceGroupTags = _List1 # pResourceGroupTags_
     }
 
--- | A collection of keys and an array of possible values in JSON format.
+-- | A collection of keys and an array of possible values,
+-- \'[{\"key\":\"key1\",\"values\":[\"Value1\",\"Value2\"]},{\"key\":\"Key2\",\"values\":[\"Value3\"]}]\'.
 --
--- For example, [{ \"key1\" : [\"Value1\",\"Value2\"]},{\"Key2\":
--- [\"Value3\"]}]
-crgResourceGroupTags :: Lens' CreateResourceGroup Text
-crgResourceGroupTags = lens _crgResourceGroupTags (\ s a -> s{_crgResourceGroupTags = a});
+-- For example,\'[{\"key\":\"Name\",\"values\":[\"TestEC2Instance\"]}]\'.
+crgResourceGroupTags :: Lens' CreateResourceGroup (NonEmpty ResourceGroupTag)
+crgResourceGroupTags = lens _crgResourceGroupTags (\ s a -> s{_crgResourceGroupTags = a}) . _List1;
 
 instance AWSRequest CreateResourceGroup where
         type Rs CreateResourceGroup =
@@ -78,10 +79,12 @@
           = receiveJSON
               (\ s h x ->
                  CreateResourceGroupResponse' <$>
-                   (x .?> "resourceGroupArn") <*> (pure (fromEnum s)))
+                   (pure (fromEnum s)) <*> (x .:> "resourceGroupArn"))
 
 instance Hashable CreateResourceGroup
 
+instance NFData CreateResourceGroup
+
 instance ToHeaders CreateResourceGroup where
         toHeaders
           = const
@@ -107,30 +110,33 @@
 
 -- | /See:/ 'createResourceGroupResponse' smart constructor.
 data CreateResourceGroupResponse = CreateResourceGroupResponse'
-    { _crgrsResourceGroupARN :: !(Maybe Text)
-    , _crgrsResponseStatus   :: !Int
+    { _crgrsResponseStatus   :: !Int
+    , _crgrsResourceGroupARN :: !Text
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'CreateResourceGroupResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'crgrsResourceGroupARN'
---
 -- * 'crgrsResponseStatus'
+--
+-- * 'crgrsResourceGroupARN'
 createResourceGroupResponse
     :: Int -- ^ 'crgrsResponseStatus'
+    -> Text -- ^ 'crgrsResourceGroupARN'
     -> CreateResourceGroupResponse
-createResourceGroupResponse pResponseStatus_ =
+createResourceGroupResponse pResponseStatus_ pResourceGroupARN_ =
     CreateResourceGroupResponse'
-    { _crgrsResourceGroupARN = Nothing
-    , _crgrsResponseStatus = pResponseStatus_
+    { _crgrsResponseStatus = pResponseStatus_
+    , _crgrsResourceGroupARN = pResourceGroupARN_
     }
 
--- | The ARN specifying the resource group that is created.
-crgrsResourceGroupARN :: Lens' CreateResourceGroupResponse (Maybe Text)
-crgrsResourceGroupARN = lens _crgrsResourceGroupARN (\ s a -> s{_crgrsResourceGroupARN = a});
-
 -- | The response status code.
 crgrsResponseStatus :: Lens' CreateResourceGroupResponse Int
 crgrsResponseStatus = lens _crgrsResponseStatus (\ s a -> s{_crgrsResponseStatus = a});
+
+-- | The ARN that specifies the resource group that is created.
+crgrsResourceGroupARN :: Lens' CreateResourceGroupResponse Text
+crgrsResourceGroupARN = lens _crgrsResourceGroupARN (\ s a -> s{_crgrsResourceGroupARN = a});
+
+instance NFData CreateResourceGroupResponse
diff --git a/gen/Network/AWS/Inspector/DeleteApplication.hs b/gen/Network/AWS/Inspector/DeleteApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DeleteApplication.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# 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.Inspector.DeleteApplication
--- Copyright   : (c) 2013-2016 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)
---
--- Deletes the application specified by the application ARN.
-module Network.AWS.Inspector.DeleteApplication
-    (
-    -- * Creating a Request
-      deleteApplication
-    , DeleteApplication
-    -- * Request Lenses
-    , dApplicationARN
-
-    -- * Destructuring the Response
-    , deleteApplicationResponse
-    , DeleteApplicationResponse
-    -- * Response Lenses
-    , drsMessage
-    , drsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'deleteApplication' smart constructor.
-newtype DeleteApplication = DeleteApplication'
-    { _dApplicationARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dApplicationARN'
-deleteApplication
-    :: Text -- ^ 'dApplicationARN'
-    -> DeleteApplication
-deleteApplication pApplicationARN_ =
-    DeleteApplication'
-    { _dApplicationARN = pApplicationARN_
-    }
-
--- | The ARN specifying the application that you want to delete.
-dApplicationARN :: Lens' DeleteApplication Text
-dApplicationARN = lens _dApplicationARN (\ s a -> s{_dApplicationARN = a});
-
-instance AWSRequest DeleteApplication where
-        type Rs DeleteApplication = DeleteApplicationResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteApplicationResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteApplication
-
-instance ToHeaders DeleteApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DeleteApplication" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteApplication where
-        toJSON DeleteApplication'{..}
-          = object
-              (catMaybes
-                 [Just ("applicationArn" .= _dApplicationARN)])
-
-instance ToPath DeleteApplication where
-        toPath = const "/"
-
-instance ToQuery DeleteApplication where
-        toQuery = const mempty
-
--- | /See:/ 'deleteApplicationResponse' smart constructor.
-data DeleteApplicationResponse = DeleteApplicationResponse'
-    { _drsMessage        :: !(Maybe Text)
-    , _drsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drsMessage'
---
--- * 'drsResponseStatus'
-deleteApplicationResponse
-    :: Int -- ^ 'drsResponseStatus'
-    -> DeleteApplicationResponse
-deleteApplicationResponse pResponseStatus_ =
-    DeleteApplicationResponse'
-    { _drsMessage = Nothing
-    , _drsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-drsMessage :: Lens' DeleteApplicationResponse (Maybe Text)
-drsMessage = lens _drsMessage (\ s a -> s{_drsMessage = a});
-
--- | The response status code.
-drsResponseStatus :: Lens' DeleteApplicationResponse Int
-drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DeleteAssessment.hs b/gen/Network/AWS/Inspector/DeleteAssessment.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DeleteAssessment.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# 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.Inspector.DeleteAssessment
--- Copyright   : (c) 2013-2016 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)
---
--- Deletes the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.DeleteAssessment
-    (
-    -- * Creating a Request
-      deleteAssessment
-    , DeleteAssessment
-    -- * Request Lenses
-    , daAssessmentARN
-
-    -- * Destructuring the Response
-    , deleteAssessmentResponse
-    , DeleteAssessmentResponse
-    -- * Response Lenses
-    , daarsMessage
-    , daarsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'deleteAssessment' smart constructor.
-newtype DeleteAssessment = DeleteAssessment'
-    { _daAssessmentARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteAssessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daAssessmentARN'
-deleteAssessment
-    :: Text -- ^ 'daAssessmentARN'
-    -> DeleteAssessment
-deleteAssessment pAssessmentARN_ =
-    DeleteAssessment'
-    { _daAssessmentARN = pAssessmentARN_
-    }
-
--- | The ARN specifying the assessment that you want to delete.
-daAssessmentARN :: Lens' DeleteAssessment Text
-daAssessmentARN = lens _daAssessmentARN (\ s a -> s{_daAssessmentARN = a});
-
-instance AWSRequest DeleteAssessment where
-        type Rs DeleteAssessment = DeleteAssessmentResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteAssessmentResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteAssessment
-
-instance ToHeaders DeleteAssessment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DeleteAssessment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteAssessment where
-        toJSON DeleteAssessment'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _daAssessmentARN)])
-
-instance ToPath DeleteAssessment where
-        toPath = const "/"
-
-instance ToQuery DeleteAssessment where
-        toQuery = const mempty
-
--- | /See:/ 'deleteAssessmentResponse' smart constructor.
-data DeleteAssessmentResponse = DeleteAssessmentResponse'
-    { _daarsMessage        :: !(Maybe Text)
-    , _daarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteAssessmentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daarsMessage'
---
--- * 'daarsResponseStatus'
-deleteAssessmentResponse
-    :: Int -- ^ 'daarsResponseStatus'
-    -> DeleteAssessmentResponse
-deleteAssessmentResponse pResponseStatus_ =
-    DeleteAssessmentResponse'
-    { _daarsMessage = Nothing
-    , _daarsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-daarsMessage :: Lens' DeleteAssessmentResponse (Maybe Text)
-daarsMessage = lens _daarsMessage (\ s a -> s{_daarsMessage = a});
-
--- | The response status code.
-daarsResponseStatus :: Lens' DeleteAssessmentResponse Int
-daarsResponseStatus = lens _daarsResponseStatus (\ s a -> s{_daarsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DeleteAssessmentRun.hs b/gen/Network/AWS/Inspector/DeleteAssessmentRun.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DeleteAssessmentRun.hs
@@ -0,0 +1,108 @@
+{-# 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.Inspector.DeleteAssessmentRun
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Deletes the assessment run that is specified by the ARN of the
+-- assessment run.
+module Network.AWS.Inspector.DeleteAssessmentRun
+    (
+    -- * Creating a Request
+      deleteAssessmentRun
+    , DeleteAssessmentRun
+    -- * Request Lenses
+    , darAssessmentRunARN
+
+    -- * Destructuring the Response
+    , deleteAssessmentRunResponse
+    , DeleteAssessmentRunResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'deleteAssessmentRun' smart constructor.
+newtype DeleteAssessmentRun = DeleteAssessmentRun'
+    { _darAssessmentRunARN :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'darAssessmentRunARN'
+deleteAssessmentRun
+    :: Text -- ^ 'darAssessmentRunARN'
+    -> DeleteAssessmentRun
+deleteAssessmentRun pAssessmentRunARN_ =
+    DeleteAssessmentRun'
+    { _darAssessmentRunARN = pAssessmentRunARN_
+    }
+
+-- | The ARN that specifies the assessment run that you want to delete.
+darAssessmentRunARN :: Lens' DeleteAssessmentRun Text
+darAssessmentRunARN = lens _darAssessmentRunARN (\ s a -> s{_darAssessmentRunARN = a});
+
+instance AWSRequest DeleteAssessmentRun where
+        type Rs DeleteAssessmentRun =
+             DeleteAssessmentRunResponse
+        request = postJSON inspector
+        response = receiveNull DeleteAssessmentRunResponse'
+
+instance Hashable DeleteAssessmentRun
+
+instance NFData DeleteAssessmentRun
+
+instance ToHeaders DeleteAssessmentRun where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DeleteAssessmentRun" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteAssessmentRun where
+        toJSON DeleteAssessmentRun'{..}
+          = object
+              (catMaybes
+                 [Just ("assessmentRunArn" .= _darAssessmentRunARN)])
+
+instance ToPath DeleteAssessmentRun where
+        toPath = const "/"
+
+instance ToQuery DeleteAssessmentRun where
+        toQuery = const mempty
+
+-- | /See:/ 'deleteAssessmentRunResponse' smart constructor.
+data DeleteAssessmentRunResponse =
+    DeleteAssessmentRunResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentRunResponse' with the minimum fields required to make a request.
+--
+deleteAssessmentRunResponse
+    :: DeleteAssessmentRunResponse
+deleteAssessmentRunResponse = DeleteAssessmentRunResponse'
+
+instance NFData DeleteAssessmentRunResponse
diff --git a/gen/Network/AWS/Inspector/DeleteAssessmentTarget.hs b/gen/Network/AWS/Inspector/DeleteAssessmentTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DeleteAssessmentTarget.hs
@@ -0,0 +1,110 @@
+{-# 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.Inspector.DeleteAssessmentTarget
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Deletes the assessment target that is specified by the ARN of the
+-- assessment target.
+module Network.AWS.Inspector.DeleteAssessmentTarget
+    (
+    -- * Creating a Request
+      deleteAssessmentTarget
+    , DeleteAssessmentTarget
+    -- * Request Lenses
+    , datAssessmentTargetARN
+
+    -- * Destructuring the Response
+    , deleteAssessmentTargetResponse
+    , DeleteAssessmentTargetResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'deleteAssessmentTarget' smart constructor.
+newtype DeleteAssessmentTarget = DeleteAssessmentTarget'
+    { _datAssessmentTargetARN :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentTarget' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'datAssessmentTargetARN'
+deleteAssessmentTarget
+    :: Text -- ^ 'datAssessmentTargetARN'
+    -> DeleteAssessmentTarget
+deleteAssessmentTarget pAssessmentTargetARN_ =
+    DeleteAssessmentTarget'
+    { _datAssessmentTargetARN = pAssessmentTargetARN_
+    }
+
+-- | The ARN that specifies the assessment target that you want to delete.
+datAssessmentTargetARN :: Lens' DeleteAssessmentTarget Text
+datAssessmentTargetARN = lens _datAssessmentTargetARN (\ s a -> s{_datAssessmentTargetARN = a});
+
+instance AWSRequest DeleteAssessmentTarget where
+        type Rs DeleteAssessmentTarget =
+             DeleteAssessmentTargetResponse
+        request = postJSON inspector
+        response
+          = receiveNull DeleteAssessmentTargetResponse'
+
+instance Hashable DeleteAssessmentTarget
+
+instance NFData DeleteAssessmentTarget
+
+instance ToHeaders DeleteAssessmentTarget where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DeleteAssessmentTarget" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteAssessmentTarget where
+        toJSON DeleteAssessmentTarget'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTargetArn" .= _datAssessmentTargetARN)])
+
+instance ToPath DeleteAssessmentTarget where
+        toPath = const "/"
+
+instance ToQuery DeleteAssessmentTarget where
+        toQuery = const mempty
+
+-- | /See:/ 'deleteAssessmentTargetResponse' smart constructor.
+data DeleteAssessmentTargetResponse =
+    DeleteAssessmentTargetResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentTargetResponse' with the minimum fields required to make a request.
+--
+deleteAssessmentTargetResponse
+    :: DeleteAssessmentTargetResponse
+deleteAssessmentTargetResponse = DeleteAssessmentTargetResponse'
+
+instance NFData DeleteAssessmentTargetResponse
diff --git a/gen/Network/AWS/Inspector/DeleteAssessmentTemplate.hs b/gen/Network/AWS/Inspector/DeleteAssessmentTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DeleteAssessmentTemplate.hs
@@ -0,0 +1,111 @@
+{-# 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.Inspector.DeleteAssessmentTemplate
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Deletes the assessment template that is specified by the ARN of the
+-- assessment template.
+module Network.AWS.Inspector.DeleteAssessmentTemplate
+    (
+    -- * Creating a Request
+      deleteAssessmentTemplate
+    , DeleteAssessmentTemplate
+    -- * Request Lenses
+    , datAssessmentTemplateARN
+
+    -- * Destructuring the Response
+    , deleteAssessmentTemplateResponse
+    , DeleteAssessmentTemplateResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'deleteAssessmentTemplate' smart constructor.
+newtype DeleteAssessmentTemplate = DeleteAssessmentTemplate'
+    { _datAssessmentTemplateARN :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentTemplate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'datAssessmentTemplateARN'
+deleteAssessmentTemplate
+    :: Text -- ^ 'datAssessmentTemplateARN'
+    -> DeleteAssessmentTemplate
+deleteAssessmentTemplate pAssessmentTemplateARN_ =
+    DeleteAssessmentTemplate'
+    { _datAssessmentTemplateARN = pAssessmentTemplateARN_
+    }
+
+-- | The ARN that specifies the assessment template that you want to delete.
+datAssessmentTemplateARN :: Lens' DeleteAssessmentTemplate Text
+datAssessmentTemplateARN = lens _datAssessmentTemplateARN (\ s a -> s{_datAssessmentTemplateARN = a});
+
+instance AWSRequest DeleteAssessmentTemplate where
+        type Rs DeleteAssessmentTemplate =
+             DeleteAssessmentTemplateResponse
+        request = postJSON inspector
+        response
+          = receiveNull DeleteAssessmentTemplateResponse'
+
+instance Hashable DeleteAssessmentTemplate
+
+instance NFData DeleteAssessmentTemplate
+
+instance ToHeaders DeleteAssessmentTemplate where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DeleteAssessmentTemplate" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DeleteAssessmentTemplate where
+        toJSON DeleteAssessmentTemplate'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTemplateArn" .=
+                       _datAssessmentTemplateARN)])
+
+instance ToPath DeleteAssessmentTemplate where
+        toPath = const "/"
+
+instance ToQuery DeleteAssessmentTemplate where
+        toQuery = const mempty
+
+-- | /See:/ 'deleteAssessmentTemplateResponse' smart constructor.
+data DeleteAssessmentTemplateResponse =
+    DeleteAssessmentTemplateResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DeleteAssessmentTemplateResponse' with the minimum fields required to make a request.
+--
+deleteAssessmentTemplateResponse
+    :: DeleteAssessmentTemplateResponse
+deleteAssessmentTemplateResponse = DeleteAssessmentTemplateResponse'
+
+instance NFData DeleteAssessmentTemplateResponse
diff --git a/gen/Network/AWS/Inspector/DeleteRun.hs b/gen/Network/AWS/Inspector/DeleteRun.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DeleteRun.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# 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.Inspector.DeleteRun
--- Copyright   : (c) 2013-2016 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)
---
--- Deletes the assessment run specified by the run ARN.
-module Network.AWS.Inspector.DeleteRun
-    (
-    -- * Creating a Request
-      deleteRun
-    , DeleteRun
-    -- * Request Lenses
-    , dRunARN
-
-    -- * Destructuring the Response
-    , deleteRunResponse
-    , DeleteRunResponse
-    -- * Response Lenses
-    , delrsMessage
-    , delrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'deleteRun' smart constructor.
-newtype DeleteRun = DeleteRun'
-    { _dRunARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteRun' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dRunARN'
-deleteRun
-    :: Text -- ^ 'dRunARN'
-    -> DeleteRun
-deleteRun pRunARN_ =
-    DeleteRun'
-    { _dRunARN = pRunARN_
-    }
-
--- | The ARN specifying the assessment run that you want to delete.
-dRunARN :: Lens' DeleteRun Text
-dRunARN = lens _dRunARN (\ s a -> s{_dRunARN = a});
-
-instance AWSRequest DeleteRun where
-        type Rs DeleteRun = DeleteRunResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteRunResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteRun
-
-instance ToHeaders DeleteRun where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DeleteRun" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DeleteRun where
-        toJSON DeleteRun'{..}
-          = object (catMaybes [Just ("runArn" .= _dRunARN)])
-
-instance ToPath DeleteRun where
-        toPath = const "/"
-
-instance ToQuery DeleteRun where
-        toQuery = const mempty
-
--- | /See:/ 'deleteRunResponse' smart constructor.
-data DeleteRunResponse = DeleteRunResponse'
-    { _delrsMessage        :: !(Maybe Text)
-    , _delrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DeleteRunResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'delrsMessage'
---
--- * 'delrsResponseStatus'
-deleteRunResponse
-    :: Int -- ^ 'delrsResponseStatus'
-    -> DeleteRunResponse
-deleteRunResponse pResponseStatus_ =
-    DeleteRunResponse'
-    { _delrsMessage = Nothing
-    , _delrsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-delrsMessage :: Lens' DeleteRunResponse (Maybe Text)
-delrsMessage = lens _delrsMessage (\ s a -> s{_delrsMessage = a});
-
--- | The response status code.
-delrsResponseStatus :: Lens' DeleteRunResponse Int
-delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeApplication.hs b/gen/Network/AWS/Inspector/DescribeApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeApplication.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# 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.Inspector.DescribeApplication
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the application specified by the application ARN.
-module Network.AWS.Inspector.DescribeApplication
-    (
-    -- * Creating a Request
-      describeApplication
-    , DescribeApplication
-    -- * Request Lenses
-    , daApplicationARN
-
-    -- * Destructuring the Response
-    , describeApplicationResponse
-    , DescribeApplicationResponse
-    -- * Response Lenses
-    , darsApplication
-    , darsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeApplication' smart constructor.
-newtype DescribeApplication = DescribeApplication'
-    { _daApplicationARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daApplicationARN'
-describeApplication
-    :: Text -- ^ 'daApplicationARN'
-    -> DescribeApplication
-describeApplication pApplicationARN_ =
-    DescribeApplication'
-    { _daApplicationARN = pApplicationARN_
-    }
-
--- | The ARN specifying the application that you want to describe.
-daApplicationARN :: Lens' DescribeApplication Text
-daApplicationARN = lens _daApplicationARN (\ s a -> s{_daApplicationARN = a});
-
-instance AWSRequest DescribeApplication where
-        type Rs DescribeApplication =
-             DescribeApplicationResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeApplicationResponse' <$>
-                   (x .?> "application") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeApplication
-
-instance ToHeaders DescribeApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeApplication" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeApplication where
-        toJSON DescribeApplication'{..}
-          = object
-              (catMaybes
-                 [Just ("applicationArn" .= _daApplicationARN)])
-
-instance ToPath DescribeApplication where
-        toPath = const "/"
-
-instance ToQuery DescribeApplication where
-        toQuery = const mempty
-
--- | /See:/ 'describeApplicationResponse' smart constructor.
-data DescribeApplicationResponse = DescribeApplicationResponse'
-    { _darsApplication    :: !(Maybe Application)
-    , _darsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'darsApplication'
---
--- * 'darsResponseStatus'
-describeApplicationResponse
-    :: Int -- ^ 'darsResponseStatus'
-    -> DescribeApplicationResponse
-describeApplicationResponse pResponseStatus_ =
-    DescribeApplicationResponse'
-    { _darsApplication = Nothing
-    , _darsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the application.
-darsApplication :: Lens' DescribeApplicationResponse (Maybe Application)
-darsApplication = lens _darsApplication (\ s a -> s{_darsApplication = a});
-
--- | The response status code.
-darsResponseStatus :: Lens' DescribeApplicationResponse Int
-darsResponseStatus = lens _darsResponseStatus (\ s a -> s{_darsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeAssessment.hs b/gen/Network/AWS/Inspector/DescribeAssessment.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeAssessment.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# 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.Inspector.DescribeAssessment
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.DescribeAssessment
-    (
-    -- * Creating a Request
-      describeAssessment
-    , DescribeAssessment
-    -- * Request Lenses
-    , dAssessmentARN
-
-    -- * Destructuring the Response
-    , describeAssessmentResponse
-    , DescribeAssessmentResponse
-    -- * Response Lenses
-    , desrsAssessment
-    , desrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeAssessment' smart constructor.
-newtype DescribeAssessment = DescribeAssessment'
-    { _dAssessmentARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeAssessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dAssessmentARN'
-describeAssessment
-    :: Text -- ^ 'dAssessmentARN'
-    -> DescribeAssessment
-describeAssessment pAssessmentARN_ =
-    DescribeAssessment'
-    { _dAssessmentARN = pAssessmentARN_
-    }
-
--- | The ARN specifying the assessment that you want to describe.
-dAssessmentARN :: Lens' DescribeAssessment Text
-dAssessmentARN = lens _dAssessmentARN (\ s a -> s{_dAssessmentARN = a});
-
-instance AWSRequest DescribeAssessment where
-        type Rs DescribeAssessment =
-             DescribeAssessmentResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeAssessmentResponse' <$>
-                   (x .?> "assessment") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeAssessment
-
-instance ToHeaders DescribeAssessment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeAssessment" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeAssessment where
-        toJSON DescribeAssessment'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _dAssessmentARN)])
-
-instance ToPath DescribeAssessment where
-        toPath = const "/"
-
-instance ToQuery DescribeAssessment where
-        toQuery = const mempty
-
--- | /See:/ 'describeAssessmentResponse' smart constructor.
-data DescribeAssessmentResponse = DescribeAssessmentResponse'
-    { _desrsAssessment     :: !(Maybe Assessment)
-    , _desrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeAssessmentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'desrsAssessment'
---
--- * 'desrsResponseStatus'
-describeAssessmentResponse
-    :: Int -- ^ 'desrsResponseStatus'
-    -> DescribeAssessmentResponse
-describeAssessmentResponse pResponseStatus_ =
-    DescribeAssessmentResponse'
-    { _desrsAssessment = Nothing
-    , _desrsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the assessment.
-desrsAssessment :: Lens' DescribeAssessmentResponse (Maybe Assessment)
-desrsAssessment = lens _desrsAssessment (\ s a -> s{_desrsAssessment = a});
-
--- | The response status code.
-desrsResponseStatus :: Lens' DescribeAssessmentResponse Int
-desrsResponseStatus = lens _desrsResponseStatus (\ s a -> s{_desrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeAssessmentRuns.hs b/gen/Network/AWS/Inspector/DescribeAssessmentRuns.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeAssessmentRuns.hs
@@ -0,0 +1,147 @@
+{-# 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.Inspector.DescribeAssessmentRuns
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the assessment runs that are specified by the ARNs of the
+-- assessment runs.
+module Network.AWS.Inspector.DescribeAssessmentRuns
+    (
+    -- * Creating a Request
+      describeAssessmentRuns
+    , DescribeAssessmentRuns
+    -- * Request Lenses
+    , darAssessmentRunARNs
+
+    -- * Destructuring the Response
+    , describeAssessmentRunsResponse
+    , DescribeAssessmentRunsResponse
+    -- * Response Lenses
+    , darrsResponseStatus
+    , darrsAssessmentRuns
+    , darrsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeAssessmentRuns' smart constructor.
+newtype DescribeAssessmentRuns = DescribeAssessmentRuns'
+    { _darAssessmentRunARNs :: List1 Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentRuns' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'darAssessmentRunARNs'
+describeAssessmentRuns
+    :: NonEmpty Text -- ^ 'darAssessmentRunARNs'
+    -> DescribeAssessmentRuns
+describeAssessmentRuns pAssessmentRunARNs_ =
+    DescribeAssessmentRuns'
+    { _darAssessmentRunARNs = _List1 # pAssessmentRunARNs_
+    }
+
+-- | The ARN that specifies the assessment run that you want to describe.
+darAssessmentRunARNs :: Lens' DescribeAssessmentRuns (NonEmpty Text)
+darAssessmentRunARNs = lens _darAssessmentRunARNs (\ s a -> s{_darAssessmentRunARNs = a}) . _List1;
+
+instance AWSRequest DescribeAssessmentRuns where
+        type Rs DescribeAssessmentRuns =
+             DescribeAssessmentRunsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeAssessmentRunsResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "assessmentRuns" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeAssessmentRuns
+
+instance NFData DescribeAssessmentRuns
+
+instance ToHeaders DescribeAssessmentRuns where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeAssessmentRuns" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeAssessmentRuns where
+        toJSON DescribeAssessmentRuns'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentRunArns" .= _darAssessmentRunARNs)])
+
+instance ToPath DescribeAssessmentRuns where
+        toPath = const "/"
+
+instance ToQuery DescribeAssessmentRuns where
+        toQuery = const mempty
+
+-- | /See:/ 'describeAssessmentRunsResponse' smart constructor.
+data DescribeAssessmentRunsResponse = DescribeAssessmentRunsResponse'
+    { _darrsResponseStatus :: !Int
+    , _darrsAssessmentRuns :: ![AssessmentRun]
+    , _darrsFailedItems    :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentRunsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'darrsResponseStatus'
+--
+-- * 'darrsAssessmentRuns'
+--
+-- * 'darrsFailedItems'
+describeAssessmentRunsResponse
+    :: Int -- ^ 'darrsResponseStatus'
+    -> DescribeAssessmentRunsResponse
+describeAssessmentRunsResponse pResponseStatus_ =
+    DescribeAssessmentRunsResponse'
+    { _darrsResponseStatus = pResponseStatus_
+    , _darrsAssessmentRuns = mempty
+    , _darrsFailedItems = mempty
+    }
+
+-- | The response status code.
+darrsResponseStatus :: Lens' DescribeAssessmentRunsResponse Int
+darrsResponseStatus = lens _darrsResponseStatus (\ s a -> s{_darrsResponseStatus = a});
+
+-- | Information about the assessment run.
+darrsAssessmentRuns :: Lens' DescribeAssessmentRunsResponse [AssessmentRun]
+darrsAssessmentRuns = lens _darrsAssessmentRuns (\ s a -> s{_darrsAssessmentRuns = a}) . _Coerce;
+
+-- | Assessment run details that cannot be described. An error code is
+-- provided for each failed item.
+darrsFailedItems :: Lens' DescribeAssessmentRunsResponse (HashMap Text FailedItemDetails)
+darrsFailedItems = lens _darrsFailedItems (\ s a -> s{_darrsFailedItems = a}) . _Map;
+
+instance NFData DescribeAssessmentRunsResponse
diff --git a/gen/Network/AWS/Inspector/DescribeAssessmentTargets.hs b/gen/Network/AWS/Inspector/DescribeAssessmentTargets.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeAssessmentTargets.hs
@@ -0,0 +1,149 @@
+{-# 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.Inspector.DescribeAssessmentTargets
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the assessment targets that are specified by the ARNs of the
+-- assessment targets.
+module Network.AWS.Inspector.DescribeAssessmentTargets
+    (
+    -- * Creating a Request
+      describeAssessmentTargets
+    , DescribeAssessmentTargets
+    -- * Request Lenses
+    , datAssessmentTargetARNs
+
+    -- * Destructuring the Response
+    , describeAssessmentTargetsResponse
+    , DescribeAssessmentTargetsResponse
+    -- * Response Lenses
+    , drsResponseStatus
+    , drsAssessmentTargets
+    , drsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeAssessmentTargets' smart constructor.
+newtype DescribeAssessmentTargets = DescribeAssessmentTargets'
+    { _datAssessmentTargetARNs :: List1 Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentTargets' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'datAssessmentTargetARNs'
+describeAssessmentTargets
+    :: NonEmpty Text -- ^ 'datAssessmentTargetARNs'
+    -> DescribeAssessmentTargets
+describeAssessmentTargets pAssessmentTargetARNs_ =
+    DescribeAssessmentTargets'
+    { _datAssessmentTargetARNs = _List1 # pAssessmentTargetARNs_
+    }
+
+-- | The ARNs that specifies the assessment targets that you want to
+-- describe.
+datAssessmentTargetARNs :: Lens' DescribeAssessmentTargets (NonEmpty Text)
+datAssessmentTargetARNs = lens _datAssessmentTargetARNs (\ s a -> s{_datAssessmentTargetARNs = a}) . _List1;
+
+instance AWSRequest DescribeAssessmentTargets where
+        type Rs DescribeAssessmentTargets =
+             DescribeAssessmentTargetsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeAssessmentTargetsResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "assessmentTargets" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeAssessmentTargets
+
+instance NFData DescribeAssessmentTargets
+
+instance ToHeaders DescribeAssessmentTargets where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeAssessmentTargets" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeAssessmentTargets where
+        toJSON DescribeAssessmentTargets'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTargetArns" .=
+                       _datAssessmentTargetARNs)])
+
+instance ToPath DescribeAssessmentTargets where
+        toPath = const "/"
+
+instance ToQuery DescribeAssessmentTargets where
+        toQuery = const mempty
+
+-- | /See:/ 'describeAssessmentTargetsResponse' smart constructor.
+data DescribeAssessmentTargetsResponse = DescribeAssessmentTargetsResponse'
+    { _drsResponseStatus    :: !Int
+    , _drsAssessmentTargets :: ![AssessmentTarget]
+    , _drsFailedItems       :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentTargetsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drsResponseStatus'
+--
+-- * 'drsAssessmentTargets'
+--
+-- * 'drsFailedItems'
+describeAssessmentTargetsResponse
+    :: Int -- ^ 'drsResponseStatus'
+    -> DescribeAssessmentTargetsResponse
+describeAssessmentTargetsResponse pResponseStatus_ =
+    DescribeAssessmentTargetsResponse'
+    { _drsResponseStatus = pResponseStatus_
+    , _drsAssessmentTargets = mempty
+    , _drsFailedItems = mempty
+    }
+
+-- | The response status code.
+drsResponseStatus :: Lens' DescribeAssessmentTargetsResponse Int
+drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a});
+
+-- | Information about the assessment targets.
+drsAssessmentTargets :: Lens' DescribeAssessmentTargetsResponse [AssessmentTarget]
+drsAssessmentTargets = lens _drsAssessmentTargets (\ s a -> s{_drsAssessmentTargets = a}) . _Coerce;
+
+-- | Assessment target details that cannot be described. An error code is
+-- provided for each failed item.
+drsFailedItems :: Lens' DescribeAssessmentTargetsResponse (HashMap Text FailedItemDetails)
+drsFailedItems = lens _drsFailedItems (\ s a -> s{_drsFailedItems = a}) . _Map;
+
+instance NFData DescribeAssessmentTargetsResponse
diff --git a/gen/Network/AWS/Inspector/DescribeAssessmentTemplates.hs b/gen/Network/AWS/Inspector/DescribeAssessmentTemplates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeAssessmentTemplates.hs
@@ -0,0 +1,149 @@
+{-# 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.Inspector.DescribeAssessmentTemplates
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the assessment templates that are specified by the ARNs of the
+-- assessment templates.
+module Network.AWS.Inspector.DescribeAssessmentTemplates
+    (
+    -- * Creating a Request
+      describeAssessmentTemplates
+    , DescribeAssessmentTemplates
+    -- * Request Lenses
+    , datAssessmentTemplateARNs
+
+    -- * Destructuring the Response
+    , describeAssessmentTemplatesResponse
+    , DescribeAssessmentTemplatesResponse
+    -- * Response Lenses
+    , datrsResponseStatus
+    , datrsAssessmentTemplates
+    , datrsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeAssessmentTemplates' smart constructor.
+newtype DescribeAssessmentTemplates = DescribeAssessmentTemplates'
+    { _datAssessmentTemplateARNs :: List1 Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentTemplates' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'datAssessmentTemplateARNs'
+describeAssessmentTemplates
+    :: NonEmpty Text -- ^ 'datAssessmentTemplateARNs'
+    -> DescribeAssessmentTemplates
+describeAssessmentTemplates pAssessmentTemplateARNs_ =
+    DescribeAssessmentTemplates'
+    { _datAssessmentTemplateARNs = _List1 # pAssessmentTemplateARNs_
+    }
+
+-- | The ARN that specifiesthe assessment templates that you want to
+-- describe.
+datAssessmentTemplateARNs :: Lens' DescribeAssessmentTemplates (NonEmpty Text)
+datAssessmentTemplateARNs = lens _datAssessmentTemplateARNs (\ s a -> s{_datAssessmentTemplateARNs = a}) . _List1;
+
+instance AWSRequest DescribeAssessmentTemplates where
+        type Rs DescribeAssessmentTemplates =
+             DescribeAssessmentTemplatesResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeAssessmentTemplatesResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "assessmentTemplates" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeAssessmentTemplates
+
+instance NFData DescribeAssessmentTemplates
+
+instance ToHeaders DescribeAssessmentTemplates where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeAssessmentTemplates" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeAssessmentTemplates where
+        toJSON DescribeAssessmentTemplates'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTemplateArns" .=
+                       _datAssessmentTemplateARNs)])
+
+instance ToPath DescribeAssessmentTemplates where
+        toPath = const "/"
+
+instance ToQuery DescribeAssessmentTemplates where
+        toQuery = const mempty
+
+-- | /See:/ 'describeAssessmentTemplatesResponse' smart constructor.
+data DescribeAssessmentTemplatesResponse = DescribeAssessmentTemplatesResponse'
+    { _datrsResponseStatus      :: !Int
+    , _datrsAssessmentTemplates :: ![AssessmentTemplate]
+    , _datrsFailedItems         :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeAssessmentTemplatesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'datrsResponseStatus'
+--
+-- * 'datrsAssessmentTemplates'
+--
+-- * 'datrsFailedItems'
+describeAssessmentTemplatesResponse
+    :: Int -- ^ 'datrsResponseStatus'
+    -> DescribeAssessmentTemplatesResponse
+describeAssessmentTemplatesResponse pResponseStatus_ =
+    DescribeAssessmentTemplatesResponse'
+    { _datrsResponseStatus = pResponseStatus_
+    , _datrsAssessmentTemplates = mempty
+    , _datrsFailedItems = mempty
+    }
+
+-- | The response status code.
+datrsResponseStatus :: Lens' DescribeAssessmentTemplatesResponse Int
+datrsResponseStatus = lens _datrsResponseStatus (\ s a -> s{_datrsResponseStatus = a});
+
+-- | Information about the assessment templates.
+datrsAssessmentTemplates :: Lens' DescribeAssessmentTemplatesResponse [AssessmentTemplate]
+datrsAssessmentTemplates = lens _datrsAssessmentTemplates (\ s a -> s{_datrsAssessmentTemplates = a}) . _Coerce;
+
+-- | Assessment template details that cannot be described. An error code is
+-- provided for each failed item.
+datrsFailedItems :: Lens' DescribeAssessmentTemplatesResponse (HashMap Text FailedItemDetails)
+datrsFailedItems = lens _datrsFailedItems (\ s a -> s{_datrsFailedItems = a}) . _Map;
+
+instance NFData DescribeAssessmentTemplatesResponse
diff --git a/gen/Network/AWS/Inspector/DescribeCrossAccountAccessRole.hs b/gen/Network/AWS/Inspector/DescribeCrossAccountAccessRole.hs
--- a/gen/Network/AWS/Inspector/DescribeCrossAccountAccessRole.hs
+++ b/gen/Network/AWS/Inspector/DescribeCrossAccountAccessRole.hs
@@ -18,7 +18,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Describes the IAM role that enables Inspector to access your AWS
+-- Describes the IAM role that enables Amazon Inspector to access your AWS
 -- account.
 module Network.AWS.Inspector.DescribeCrossAccountAccessRole
     (
@@ -30,9 +30,10 @@
     , describeCrossAccountAccessRoleResponse
     , DescribeCrossAccountAccessRoleResponse
     -- * Response Lenses
-    , dcaarrsValid
-    , dcaarrsRoleARN
     , dcaarrsResponseStatus
+    , dcaarrsRoleARN
+    , dcaarrsValid
+    , dcaarrsRegisteredAt
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -62,11 +63,14 @@
           = receiveJSON
               (\ s h x ->
                  DescribeCrossAccountAccessRoleResponse' <$>
-                   (x .?> "valid") <*> (x .?> "roleArn") <*>
-                     (pure (fromEnum s)))
+                   (pure (fromEnum s)) <*> (x .:> "roleArn") <*>
+                     (x .:> "valid")
+                     <*> (x .:> "registeredAt"))
 
 instance Hashable DescribeCrossAccountAccessRole
 
+instance NFData DescribeCrossAccountAccessRole
+
 instance ToHeaders DescribeCrossAccountAccessRole
          where
         toHeaders
@@ -89,40 +93,54 @@
 
 -- | /See:/ 'describeCrossAccountAccessRoleResponse' smart constructor.
 data DescribeCrossAccountAccessRoleResponse = DescribeCrossAccountAccessRoleResponse'
-    { _dcaarrsValid          :: !(Maybe Bool)
-    , _dcaarrsRoleARN        :: !(Maybe Text)
-    , _dcaarrsResponseStatus :: !Int
+    { _dcaarrsResponseStatus :: !Int
+    , _dcaarrsRoleARN        :: !Text
+    , _dcaarrsValid          :: !Bool
+    , _dcaarrsRegisteredAt   :: !POSIX
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'DescribeCrossAccountAccessRoleResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'dcaarrsValid'
+-- * 'dcaarrsResponseStatus'
 --
 -- * 'dcaarrsRoleARN'
 --
--- * 'dcaarrsResponseStatus'
+-- * 'dcaarrsValid'
+--
+-- * 'dcaarrsRegisteredAt'
 describeCrossAccountAccessRoleResponse
     :: Int -- ^ 'dcaarrsResponseStatus'
+    -> Text -- ^ 'dcaarrsRoleARN'
+    -> Bool -- ^ 'dcaarrsValid'
+    -> UTCTime -- ^ 'dcaarrsRegisteredAt'
     -> DescribeCrossAccountAccessRoleResponse
-describeCrossAccountAccessRoleResponse pResponseStatus_ =
+describeCrossAccountAccessRoleResponse pResponseStatus_ pRoleARN_ pValid_ pRegisteredAt_ =
     DescribeCrossAccountAccessRoleResponse'
-    { _dcaarrsValid = Nothing
-    , _dcaarrsRoleARN = Nothing
-    , _dcaarrsResponseStatus = pResponseStatus_
+    { _dcaarrsResponseStatus = pResponseStatus_
+    , _dcaarrsRoleARN = pRoleARN_
+    , _dcaarrsValid = pValid_
+    , _dcaarrsRegisteredAt = _Time # pRegisteredAt_
     }
 
+-- | The response status code.
+dcaarrsResponseStatus :: Lens' DescribeCrossAccountAccessRoleResponse Int
+dcaarrsResponseStatus = lens _dcaarrsResponseStatus (\ s a -> s{_dcaarrsResponseStatus = a});
+
+-- | The ARN that specifies the IAM role that Amazon Inspector uses to access
+-- your AWS account.
+dcaarrsRoleARN :: Lens' DescribeCrossAccountAccessRoleResponse Text
+dcaarrsRoleARN = lens _dcaarrsRoleARN (\ s a -> s{_dcaarrsRoleARN = a});
+
 -- | A Boolean value that specifies whether the IAM role has the necessary
--- policies attached to enable Inspector to access your AWS account.
-dcaarrsValid :: Lens' DescribeCrossAccountAccessRoleResponse (Maybe Bool)
+-- policies attached to enable Amazon Inspector to access your AWS account.
+dcaarrsValid :: Lens' DescribeCrossAccountAccessRoleResponse Bool
 dcaarrsValid = lens _dcaarrsValid (\ s a -> s{_dcaarrsValid = a});
 
--- | The ARN specifying the IAM role that Inspector uses to access your AWS
--- account.
-dcaarrsRoleARN :: Lens' DescribeCrossAccountAccessRoleResponse (Maybe Text)
-dcaarrsRoleARN = lens _dcaarrsRoleARN (\ s a -> s{_dcaarrsRoleARN = a});
+-- | The date when the cross-account access role was registered.
+dcaarrsRegisteredAt :: Lens' DescribeCrossAccountAccessRoleResponse UTCTime
+dcaarrsRegisteredAt = lens _dcaarrsRegisteredAt (\ s a -> s{_dcaarrsRegisteredAt = a}) . _Time;
 
--- | The response status code.
-dcaarrsResponseStatus :: Lens' DescribeCrossAccountAccessRoleResponse Int
-dcaarrsResponseStatus = lens _dcaarrsResponseStatus (\ s a -> s{_dcaarrsResponseStatus = a});
+instance NFData
+         DescribeCrossAccountAccessRoleResponse
diff --git a/gen/Network/AWS/Inspector/DescribeFinding.hs b/gen/Network/AWS/Inspector/DescribeFinding.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeFinding.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# 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.Inspector.DescribeFinding
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the finding specified by the finding ARN.
-module Network.AWS.Inspector.DescribeFinding
-    (
-    -- * Creating a Request
-      describeFinding
-    , DescribeFinding
-    -- * Request Lenses
-    , dfFindingARN
-
-    -- * Destructuring the Response
-    , describeFindingResponse
-    , DescribeFindingResponse
-    -- * Response Lenses
-    , dfrsFinding
-    , dfrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeFinding' smart constructor.
-newtype DescribeFinding = DescribeFinding'
-    { _dfFindingARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeFinding' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dfFindingARN'
-describeFinding
-    :: Text -- ^ 'dfFindingARN'
-    -> DescribeFinding
-describeFinding pFindingARN_ =
-    DescribeFinding'
-    { _dfFindingARN = pFindingARN_
-    }
-
--- | The ARN specifying the finding that you want to describe.
-dfFindingARN :: Lens' DescribeFinding Text
-dfFindingARN = lens _dfFindingARN (\ s a -> s{_dfFindingARN = a});
-
-instance AWSRequest DescribeFinding where
-        type Rs DescribeFinding = DescribeFindingResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeFindingResponse' <$>
-                   (x .?> "finding") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeFinding
-
-instance ToHeaders DescribeFinding where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeFinding" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeFinding where
-        toJSON DescribeFinding'{..}
-          = object
-              (catMaybes [Just ("findingArn" .= _dfFindingARN)])
-
-instance ToPath DescribeFinding where
-        toPath = const "/"
-
-instance ToQuery DescribeFinding where
-        toQuery = const mempty
-
--- | /See:/ 'describeFindingResponse' smart constructor.
-data DescribeFindingResponse = DescribeFindingResponse'
-    { _dfrsFinding        :: !(Maybe Finding)
-    , _dfrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeFindingResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dfrsFinding'
---
--- * 'dfrsResponseStatus'
-describeFindingResponse
-    :: Int -- ^ 'dfrsResponseStatus'
-    -> DescribeFindingResponse
-describeFindingResponse pResponseStatus_ =
-    DescribeFindingResponse'
-    { _dfrsFinding = Nothing
-    , _dfrsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the finding.
-dfrsFinding :: Lens' DescribeFindingResponse (Maybe Finding)
-dfrsFinding = lens _dfrsFinding (\ s a -> s{_dfrsFinding = a});
-
--- | The response status code.
-dfrsResponseStatus :: Lens' DescribeFindingResponse Int
-dfrsResponseStatus = lens _dfrsResponseStatus (\ s a -> s{_dfrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeFindings.hs b/gen/Network/AWS/Inspector/DescribeFindings.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeFindings.hs
@@ -0,0 +1,153 @@
+{-# 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.Inspector.DescribeFindings
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the findings that are specified by the ARNs of the findings.
+module Network.AWS.Inspector.DescribeFindings
+    (
+    -- * Creating a Request
+      describeFindings
+    , DescribeFindings
+    -- * Request Lenses
+    , dfLocale
+    , dfFindingARNs
+
+    -- * Destructuring the Response
+    , describeFindingsResponse
+    , DescribeFindingsResponse
+    -- * Response Lenses
+    , dfrsResponseStatus
+    , dfrsFindings
+    , dfrsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeFindings' smart constructor.
+data DescribeFindings = DescribeFindings'
+    { _dfLocale      :: !(Maybe Locale)
+    , _dfFindingARNs :: !(List1 Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeFindings' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfLocale'
+--
+-- * 'dfFindingARNs'
+describeFindings
+    :: NonEmpty Text -- ^ 'dfFindingARNs'
+    -> DescribeFindings
+describeFindings pFindingARNs_ =
+    DescribeFindings'
+    { _dfLocale = Nothing
+    , _dfFindingARNs = _List1 # pFindingARNs_
+    }
+
+-- | The locale into which you want to translate a finding description,
+-- recommendation, and the short description that identifies the finding.
+dfLocale :: Lens' DescribeFindings (Maybe Locale)
+dfLocale = lens _dfLocale (\ s a -> s{_dfLocale = a});
+
+-- | The ARN that specifies the finding that you want to describe.
+dfFindingARNs :: Lens' DescribeFindings (NonEmpty Text)
+dfFindingARNs = lens _dfFindingARNs (\ s a -> s{_dfFindingARNs = a}) . _List1;
+
+instance AWSRequest DescribeFindings where
+        type Rs DescribeFindings = DescribeFindingsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeFindingsResponse' <$>
+                   (pure (fromEnum s)) <*> (x .?> "findings" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeFindings
+
+instance NFData DescribeFindings
+
+instance ToHeaders DescribeFindings where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeFindings" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeFindings where
+        toJSON DescribeFindings'{..}
+          = object
+              (catMaybes
+                 [("locale" .=) <$> _dfLocale,
+                  Just ("findingArns" .= _dfFindingARNs)])
+
+instance ToPath DescribeFindings where
+        toPath = const "/"
+
+instance ToQuery DescribeFindings where
+        toQuery = const mempty
+
+-- | /See:/ 'describeFindingsResponse' smart constructor.
+data DescribeFindingsResponse = DescribeFindingsResponse'
+    { _dfrsResponseStatus :: !Int
+    , _dfrsFindings       :: ![Finding]
+    , _dfrsFailedItems    :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeFindingsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'dfrsResponseStatus'
+--
+-- * 'dfrsFindings'
+--
+-- * 'dfrsFailedItems'
+describeFindingsResponse
+    :: Int -- ^ 'dfrsResponseStatus'
+    -> DescribeFindingsResponse
+describeFindingsResponse pResponseStatus_ =
+    DescribeFindingsResponse'
+    { _dfrsResponseStatus = pResponseStatus_
+    , _dfrsFindings = mempty
+    , _dfrsFailedItems = mempty
+    }
+
+-- | The response status code.
+dfrsResponseStatus :: Lens' DescribeFindingsResponse Int
+dfrsResponseStatus = lens _dfrsResponseStatus (\ s a -> s{_dfrsResponseStatus = a});
+
+-- | Information about the finding.
+dfrsFindings :: Lens' DescribeFindingsResponse [Finding]
+dfrsFindings = lens _dfrsFindings (\ s a -> s{_dfrsFindings = a}) . _Coerce;
+
+-- | Finding details that cannot be described. An error code is provided for
+-- each failed item.
+dfrsFailedItems :: Lens' DescribeFindingsResponse (HashMap Text FailedItemDetails)
+dfrsFailedItems = lens _dfrsFailedItems (\ s a -> s{_dfrsFailedItems = a}) . _Map;
+
+instance NFData DescribeFindingsResponse
diff --git a/gen/Network/AWS/Inspector/DescribeResourceGroup.hs b/gen/Network/AWS/Inspector/DescribeResourceGroup.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeResourceGroup.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# 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.Inspector.DescribeResourceGroup
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the resource group specified by the resource group ARN.
-module Network.AWS.Inspector.DescribeResourceGroup
-    (
-    -- * Creating a Request
-      describeResourceGroup
-    , DescribeResourceGroup
-    -- * Request Lenses
-    , drgResourceGroupARN
-
-    -- * Destructuring the Response
-    , describeResourceGroupResponse
-    , DescribeResourceGroupResponse
-    -- * Response Lenses
-    , drgrsResourceGroup
-    , drgrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeResourceGroup' smart constructor.
-newtype DescribeResourceGroup = DescribeResourceGroup'
-    { _drgResourceGroupARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeResourceGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drgResourceGroupARN'
-describeResourceGroup
-    :: Text -- ^ 'drgResourceGroupARN'
-    -> DescribeResourceGroup
-describeResourceGroup pResourceGroupARN_ =
-    DescribeResourceGroup'
-    { _drgResourceGroupARN = pResourceGroupARN_
-    }
-
--- | The ARN specifying the resource group that you want to describe.
-drgResourceGroupARN :: Lens' DescribeResourceGroup Text
-drgResourceGroupARN = lens _drgResourceGroupARN (\ s a -> s{_drgResourceGroupARN = a});
-
-instance AWSRequest DescribeResourceGroup where
-        type Rs DescribeResourceGroup =
-             DescribeResourceGroupResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeResourceGroupResponse' <$>
-                   (x .?> "resourceGroup") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeResourceGroup
-
-instance ToHeaders DescribeResourceGroup where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeResourceGroup" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeResourceGroup where
-        toJSON DescribeResourceGroup'{..}
-          = object
-              (catMaybes
-                 [Just ("resourceGroupArn" .= _drgResourceGroupARN)])
-
-instance ToPath DescribeResourceGroup where
-        toPath = const "/"
-
-instance ToQuery DescribeResourceGroup where
-        toQuery = const mempty
-
--- | /See:/ 'describeResourceGroupResponse' smart constructor.
-data DescribeResourceGroupResponse = DescribeResourceGroupResponse'
-    { _drgrsResourceGroup  :: !(Maybe ResourceGroup)
-    , _drgrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeResourceGroupResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drgrsResourceGroup'
---
--- * 'drgrsResponseStatus'
-describeResourceGroupResponse
-    :: Int -- ^ 'drgrsResponseStatus'
-    -> DescribeResourceGroupResponse
-describeResourceGroupResponse pResponseStatus_ =
-    DescribeResourceGroupResponse'
-    { _drgrsResourceGroup = Nothing
-    , _drgrsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the resource group.
-drgrsResourceGroup :: Lens' DescribeResourceGroupResponse (Maybe ResourceGroup)
-drgrsResourceGroup = lens _drgrsResourceGroup (\ s a -> s{_drgrsResourceGroup = a});
-
--- | The response status code.
-drgrsResponseStatus :: Lens' DescribeResourceGroupResponse Int
-drgrsResponseStatus = lens _drgrsResponseStatus (\ s a -> s{_drgrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeResourceGroups.hs b/gen/Network/AWS/Inspector/DescribeResourceGroups.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeResourceGroups.hs
@@ -0,0 +1,147 @@
+{-# 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.Inspector.DescribeResourceGroups
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the resource groups that are specified by the ARNs of the
+-- resource groups.
+module Network.AWS.Inspector.DescribeResourceGroups
+    (
+    -- * Creating a Request
+      describeResourceGroups
+    , DescribeResourceGroups
+    -- * Request Lenses
+    , drgResourceGroupARNs
+
+    -- * Destructuring the Response
+    , describeResourceGroupsResponse
+    , DescribeResourceGroupsResponse
+    -- * Response Lenses
+    , drgrsResponseStatus
+    , drgrsResourceGroups
+    , drgrsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeResourceGroups' smart constructor.
+newtype DescribeResourceGroups = DescribeResourceGroups'
+    { _drgResourceGroupARNs :: List1 Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeResourceGroups' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drgResourceGroupARNs'
+describeResourceGroups
+    :: NonEmpty Text -- ^ 'drgResourceGroupARNs'
+    -> DescribeResourceGroups
+describeResourceGroups pResourceGroupARNs_ =
+    DescribeResourceGroups'
+    { _drgResourceGroupARNs = _List1 # pResourceGroupARNs_
+    }
+
+-- | The ARN that specifies the resource group that you want to describe.
+drgResourceGroupARNs :: Lens' DescribeResourceGroups (NonEmpty Text)
+drgResourceGroupARNs = lens _drgResourceGroupARNs (\ s a -> s{_drgResourceGroupARNs = a}) . _List1;
+
+instance AWSRequest DescribeResourceGroups where
+        type Rs DescribeResourceGroups =
+             DescribeResourceGroupsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeResourceGroupsResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "resourceGroups" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeResourceGroups
+
+instance NFData DescribeResourceGroups
+
+instance ToHeaders DescribeResourceGroups where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeResourceGroups" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeResourceGroups where
+        toJSON DescribeResourceGroups'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("resourceGroupArns" .= _drgResourceGroupARNs)])
+
+instance ToPath DescribeResourceGroups where
+        toPath = const "/"
+
+instance ToQuery DescribeResourceGroups where
+        toQuery = const mempty
+
+-- | /See:/ 'describeResourceGroupsResponse' smart constructor.
+data DescribeResourceGroupsResponse = DescribeResourceGroupsResponse'
+    { _drgrsResponseStatus :: !Int
+    , _drgrsResourceGroups :: ![ResourceGroup]
+    , _drgrsFailedItems    :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeResourceGroupsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drgrsResponseStatus'
+--
+-- * 'drgrsResourceGroups'
+--
+-- * 'drgrsFailedItems'
+describeResourceGroupsResponse
+    :: Int -- ^ 'drgrsResponseStatus'
+    -> DescribeResourceGroupsResponse
+describeResourceGroupsResponse pResponseStatus_ =
+    DescribeResourceGroupsResponse'
+    { _drgrsResponseStatus = pResponseStatus_
+    , _drgrsResourceGroups = mempty
+    , _drgrsFailedItems = mempty
+    }
+
+-- | The response status code.
+drgrsResponseStatus :: Lens' DescribeResourceGroupsResponse Int
+drgrsResponseStatus = lens _drgrsResponseStatus (\ s a -> s{_drgrsResponseStatus = a});
+
+-- | Information about a resource group.
+drgrsResourceGroups :: Lens' DescribeResourceGroupsResponse [ResourceGroup]
+drgrsResourceGroups = lens _drgrsResourceGroups (\ s a -> s{_drgrsResourceGroups = a}) . _Coerce;
+
+-- | Resource group details that cannot be described. An error code is
+-- provided for each failed item.
+drgrsFailedItems :: Lens' DescribeResourceGroupsResponse (HashMap Text FailedItemDetails)
+drgrsFailedItems = lens _drgrsFailedItems (\ s a -> s{_drgrsFailedItems = a}) . _Map;
+
+instance NFData DescribeResourceGroupsResponse
diff --git a/gen/Network/AWS/Inspector/DescribeRulesPackage.hs b/gen/Network/AWS/Inspector/DescribeRulesPackage.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeRulesPackage.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# 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.Inspector.DescribeRulesPackage
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the rules package specified by the rules package ARN.
-module Network.AWS.Inspector.DescribeRulesPackage
-    (
-    -- * Creating a Request
-      describeRulesPackage
-    , DescribeRulesPackage
-    -- * Request Lenses
-    , drpRulesPackageARN
-
-    -- * Destructuring the Response
-    , describeRulesPackageResponse
-    , DescribeRulesPackageResponse
-    -- * Response Lenses
-    , drprsRulesPackage
-    , drprsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeRulesPackage' smart constructor.
-newtype DescribeRulesPackage = DescribeRulesPackage'
-    { _drpRulesPackageARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeRulesPackage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drpRulesPackageARN'
-describeRulesPackage
-    :: Text -- ^ 'drpRulesPackageARN'
-    -> DescribeRulesPackage
-describeRulesPackage pRulesPackageARN_ =
-    DescribeRulesPackage'
-    { _drpRulesPackageARN = pRulesPackageARN_
-    }
-
--- | The ARN specifying the rules package that you want to describe.
-drpRulesPackageARN :: Lens' DescribeRulesPackage Text
-drpRulesPackageARN = lens _drpRulesPackageARN (\ s a -> s{_drpRulesPackageARN = a});
-
-instance AWSRequest DescribeRulesPackage where
-        type Rs DescribeRulesPackage =
-             DescribeRulesPackageResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeRulesPackageResponse' <$>
-                   (x .?> "rulesPackage") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeRulesPackage
-
-instance ToHeaders DescribeRulesPackage where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeRulesPackage" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeRulesPackage where
-        toJSON DescribeRulesPackage'{..}
-          = object
-              (catMaybes
-                 [Just ("rulesPackageArn" .= _drpRulesPackageARN)])
-
-instance ToPath DescribeRulesPackage where
-        toPath = const "/"
-
-instance ToQuery DescribeRulesPackage where
-        toQuery = const mempty
-
--- | /See:/ 'describeRulesPackageResponse' smart constructor.
-data DescribeRulesPackageResponse = DescribeRulesPackageResponse'
-    { _drprsRulesPackage   :: !(Maybe RulesPackage)
-    , _drprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeRulesPackageResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drprsRulesPackage'
---
--- * 'drprsResponseStatus'
-describeRulesPackageResponse
-    :: Int -- ^ 'drprsResponseStatus'
-    -> DescribeRulesPackageResponse
-describeRulesPackageResponse pResponseStatus_ =
-    DescribeRulesPackageResponse'
-    { _drprsRulesPackage = Nothing
-    , _drprsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the rules package.
-drprsRulesPackage :: Lens' DescribeRulesPackageResponse (Maybe RulesPackage)
-drprsRulesPackage = lens _drprsRulesPackage (\ s a -> s{_drprsRulesPackage = a});
-
--- | The response status code.
-drprsResponseStatus :: Lens' DescribeRulesPackageResponse Int
-drprsResponseStatus = lens _drprsResponseStatus (\ s a -> s{_drprsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DescribeRulesPackages.hs b/gen/Network/AWS/Inspector/DescribeRulesPackages.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/DescribeRulesPackages.hs
@@ -0,0 +1,156 @@
+{-# 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.Inspector.DescribeRulesPackages
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Describes the rules packages that are specified by the ARNs of the rules
+-- packages.
+module Network.AWS.Inspector.DescribeRulesPackages
+    (
+    -- * Creating a Request
+      describeRulesPackages
+    , DescribeRulesPackages
+    -- * Request Lenses
+    , drpLocale
+    , drpRulesPackageARNs
+
+    -- * Destructuring the Response
+    , describeRulesPackagesResponse
+    , DescribeRulesPackagesResponse
+    -- * Response Lenses
+    , drprsResponseStatus
+    , drprsRulesPackages
+    , drprsFailedItems
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'describeRulesPackages' smart constructor.
+data DescribeRulesPackages = DescribeRulesPackages'
+    { _drpLocale           :: !(Maybe Locale)
+    , _drpRulesPackageARNs :: !(List1 Text)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeRulesPackages' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drpLocale'
+--
+-- * 'drpRulesPackageARNs'
+describeRulesPackages
+    :: NonEmpty Text -- ^ 'drpRulesPackageARNs'
+    -> DescribeRulesPackages
+describeRulesPackages pRulesPackageARNs_ =
+    DescribeRulesPackages'
+    { _drpLocale = Nothing
+    , _drpRulesPackageARNs = _List1 # pRulesPackageARNs_
+    }
+
+-- | The locale that you want to translate a rules package description into.
+drpLocale :: Lens' DescribeRulesPackages (Maybe Locale)
+drpLocale = lens _drpLocale (\ s a -> s{_drpLocale = a});
+
+-- | The ARN that specifies the rules package that you want to describe.
+drpRulesPackageARNs :: Lens' DescribeRulesPackages (NonEmpty Text)
+drpRulesPackageARNs = lens _drpRulesPackageARNs (\ s a -> s{_drpRulesPackageARNs = a}) . _List1;
+
+instance AWSRequest DescribeRulesPackages where
+        type Rs DescribeRulesPackages =
+             DescribeRulesPackagesResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 DescribeRulesPackagesResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "rulesPackages" .!@ mempty)
+                     <*> (x .?> "failedItems" .!@ mempty))
+
+instance Hashable DescribeRulesPackages
+
+instance NFData DescribeRulesPackages
+
+instance ToHeaders DescribeRulesPackages where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.DescribeRulesPackages" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON DescribeRulesPackages where
+        toJSON DescribeRulesPackages'{..}
+          = object
+              (catMaybes
+                 [("locale" .=) <$> _drpLocale,
+                  Just ("rulesPackageArns" .= _drpRulesPackageARNs)])
+
+instance ToPath DescribeRulesPackages where
+        toPath = const "/"
+
+instance ToQuery DescribeRulesPackages where
+        toQuery = const mempty
+
+-- | /See:/ 'describeRulesPackagesResponse' smart constructor.
+data DescribeRulesPackagesResponse = DescribeRulesPackagesResponse'
+    { _drprsResponseStatus :: !Int
+    , _drprsRulesPackages  :: ![RulesPackage]
+    , _drprsFailedItems    :: !(Map Text FailedItemDetails)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DescribeRulesPackagesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drprsResponseStatus'
+--
+-- * 'drprsRulesPackages'
+--
+-- * 'drprsFailedItems'
+describeRulesPackagesResponse
+    :: Int -- ^ 'drprsResponseStatus'
+    -> DescribeRulesPackagesResponse
+describeRulesPackagesResponse pResponseStatus_ =
+    DescribeRulesPackagesResponse'
+    { _drprsResponseStatus = pResponseStatus_
+    , _drprsRulesPackages = mempty
+    , _drprsFailedItems = mempty
+    }
+
+-- | The response status code.
+drprsResponseStatus :: Lens' DescribeRulesPackagesResponse Int
+drprsResponseStatus = lens _drprsResponseStatus (\ s a -> s{_drprsResponseStatus = a});
+
+-- | Information about the rules package.
+drprsRulesPackages :: Lens' DescribeRulesPackagesResponse [RulesPackage]
+drprsRulesPackages = lens _drprsRulesPackages (\ s a -> s{_drprsRulesPackages = a}) . _Coerce;
+
+-- | Rules package details that cannot be described. An error code is
+-- provided for each failed item.
+drprsFailedItems :: Lens' DescribeRulesPackagesResponse (HashMap Text FailedItemDetails)
+drprsFailedItems = lens _drprsFailedItems (\ s a -> s{_drprsFailedItems = a}) . _Map;
+
+instance NFData DescribeRulesPackagesResponse
diff --git a/gen/Network/AWS/Inspector/DescribeRun.hs b/gen/Network/AWS/Inspector/DescribeRun.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DescribeRun.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# 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.Inspector.DescribeRun
--- Copyright   : (c) 2013-2016 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)
---
--- Describes the assessment run specified by the run ARN.
-module Network.AWS.Inspector.DescribeRun
-    (
-    -- * Creating a Request
-      describeRun
-    , DescribeRun
-    -- * Request Lenses
-    , drRunARN
-
-    -- * Destructuring the Response
-    , describeRunResponse
-    , DescribeRunResponse
-    -- * Response Lenses
-    , drrsRun
-    , drrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'describeRun' smart constructor.
-newtype DescribeRun = DescribeRun'
-    { _drRunARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeRun' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drRunARN'
-describeRun
-    :: Text -- ^ 'drRunARN'
-    -> DescribeRun
-describeRun pRunARN_ =
-    DescribeRun'
-    { _drRunARN = pRunARN_
-    }
-
--- | The ARN specifying the assessment run that you want to describe.
-drRunARN :: Lens' DescribeRun Text
-drRunARN = lens _drRunARN (\ s a -> s{_drRunARN = a});
-
-instance AWSRequest DescribeRun where
-        type Rs DescribeRun = DescribeRunResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeRunResponse' <$>
-                   (x .?> "run") <*> (pure (fromEnum s)))
-
-instance Hashable DescribeRun
-
-instance ToHeaders DescribeRun where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DescribeRun" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DescribeRun where
-        toJSON DescribeRun'{..}
-          = object (catMaybes [Just ("runArn" .= _drRunARN)])
-
-instance ToPath DescribeRun where
-        toPath = const "/"
-
-instance ToQuery DescribeRun where
-        toQuery = const mempty
-
--- | /See:/ 'describeRunResponse' smart constructor.
-data DescribeRunResponse = DescribeRunResponse'
-    { _drrsRun            :: !(Maybe Run)
-    , _drrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DescribeRunResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drrsRun'
---
--- * 'drrsResponseStatus'
-describeRunResponse
-    :: Int -- ^ 'drrsResponseStatus'
-    -> DescribeRunResponse
-describeRunResponse pResponseStatus_ =
-    DescribeRunResponse'
-    { _drrsRun = Nothing
-    , _drrsResponseStatus = pResponseStatus_
-    }
-
--- | Information about the assessment run.
-drrsRun :: Lens' DescribeRunResponse (Maybe Run)
-drrsRun = lens _drrsRun (\ s a -> s{_drrsRun = a});
-
--- | The response status code.
-drrsResponseStatus :: Lens' DescribeRunResponse Int
-drrsResponseStatus = lens _drrsResponseStatus (\ s a -> s{_drrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/DetachAssessmentAndRulesPackage.hs b/gen/Network/AWS/Inspector/DetachAssessmentAndRulesPackage.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/DetachAssessmentAndRulesPackage.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-# 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.Inspector.DetachAssessmentAndRulesPackage
--- Copyright   : (c) 2013-2016 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)
---
--- Detaches the rules package specified by the rules package ARN from the
--- assessment specified by the assessment ARN.
-module Network.AWS.Inspector.DetachAssessmentAndRulesPackage
-    (
-    -- * Creating a Request
-      detachAssessmentAndRulesPackage
-    , DetachAssessmentAndRulesPackage
-    -- * Request Lenses
-    , daarpAssessmentARN
-    , daarpRulesPackageARN
-
-    -- * Destructuring the Response
-    , detachAssessmentAndRulesPackageResponse
-    , DetachAssessmentAndRulesPackageResponse
-    -- * Response Lenses
-    , daarprsMessage
-    , daarprsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'detachAssessmentAndRulesPackage' smart constructor.
-data DetachAssessmentAndRulesPackage = DetachAssessmentAndRulesPackage'
-    { _daarpAssessmentARN   :: !Text
-    , _daarpRulesPackageARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DetachAssessmentAndRulesPackage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daarpAssessmentARN'
---
--- * 'daarpRulesPackageARN'
-detachAssessmentAndRulesPackage
-    :: Text -- ^ 'daarpAssessmentARN'
-    -> Text -- ^ 'daarpRulesPackageARN'
-    -> DetachAssessmentAndRulesPackage
-detachAssessmentAndRulesPackage pAssessmentARN_ pRulesPackageARN_ =
-    DetachAssessmentAndRulesPackage'
-    { _daarpAssessmentARN = pAssessmentARN_
-    , _daarpRulesPackageARN = pRulesPackageARN_
-    }
-
--- | The ARN specifying the assessment from which you want to detach a rules
--- package.
-daarpAssessmentARN :: Lens' DetachAssessmentAndRulesPackage Text
-daarpAssessmentARN = lens _daarpAssessmentARN (\ s a -> s{_daarpAssessmentARN = a});
-
--- | The ARN specifying the rules package that you want to detach from the
--- assessment.
-daarpRulesPackageARN :: Lens' DetachAssessmentAndRulesPackage Text
-daarpRulesPackageARN = lens _daarpRulesPackageARN (\ s a -> s{_daarpRulesPackageARN = a});
-
-instance AWSRequest DetachAssessmentAndRulesPackage
-         where
-        type Rs DetachAssessmentAndRulesPackage =
-             DetachAssessmentAndRulesPackageResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DetachAssessmentAndRulesPackageResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable DetachAssessmentAndRulesPackage
-
-instance ToHeaders DetachAssessmentAndRulesPackage
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.DetachAssessmentAndRulesPackage"
-                       :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON DetachAssessmentAndRulesPackage where
-        toJSON DetachAssessmentAndRulesPackage'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _daarpAssessmentARN),
-                  Just ("rulesPackageArn" .= _daarpRulesPackageARN)])
-
-instance ToPath DetachAssessmentAndRulesPackage where
-        toPath = const "/"
-
-instance ToQuery DetachAssessmentAndRulesPackage
-         where
-        toQuery = const mempty
-
--- | /See:/ 'detachAssessmentAndRulesPackageResponse' smart constructor.
-data DetachAssessmentAndRulesPackageResponse = DetachAssessmentAndRulesPackageResponse'
-    { _daarprsMessage        :: !(Maybe Text)
-    , _daarprsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DetachAssessmentAndRulesPackageResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daarprsMessage'
---
--- * 'daarprsResponseStatus'
-detachAssessmentAndRulesPackageResponse
-    :: Int -- ^ 'daarprsResponseStatus'
-    -> DetachAssessmentAndRulesPackageResponse
-detachAssessmentAndRulesPackageResponse pResponseStatus_ =
-    DetachAssessmentAndRulesPackageResponse'
-    { _daarprsMessage = Nothing
-    , _daarprsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-daarprsMessage :: Lens' DetachAssessmentAndRulesPackageResponse (Maybe Text)
-daarprsMessage = lens _daarprsMessage (\ s a -> s{_daarprsMessage = a});
-
--- | The response status code.
-daarprsResponseStatus :: Lens' DetachAssessmentAndRulesPackageResponse Int
-daarprsResponseStatus = lens _daarprsResponseStatus (\ s a -> s{_daarprsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/GetAssessmentTelemetry.hs b/gen/Network/AWS/Inspector/GetAssessmentTelemetry.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/GetAssessmentTelemetry.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# 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.Inspector.GetAssessmentTelemetry
--- Copyright   : (c) 2013-2016 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)
---
--- Returns the metadata about the telemetry (application behavioral data)
--- for the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.GetAssessmentTelemetry
-    (
-    -- * Creating a Request
-      getAssessmentTelemetry
-    , GetAssessmentTelemetry
-    -- * Request Lenses
-    , gatAssessmentARN
-
-    -- * Destructuring the Response
-    , getAssessmentTelemetryResponse
-    , GetAssessmentTelemetryResponse
-    -- * Response Lenses
-    , gatrsTelemetry
-    , gatrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'getAssessmentTelemetry' smart constructor.
-newtype GetAssessmentTelemetry = GetAssessmentTelemetry'
-    { _gatAssessmentARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GetAssessmentTelemetry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gatAssessmentARN'
-getAssessmentTelemetry
-    :: Text -- ^ 'gatAssessmentARN'
-    -> GetAssessmentTelemetry
-getAssessmentTelemetry pAssessmentARN_ =
-    GetAssessmentTelemetry'
-    { _gatAssessmentARN = pAssessmentARN_
-    }
-
--- | The ARN specifying the assessment the telemetry of which you want to
--- obtain.
-gatAssessmentARN :: Lens' GetAssessmentTelemetry Text
-gatAssessmentARN = lens _gatAssessmentARN (\ s a -> s{_gatAssessmentARN = a});
-
-instance AWSRequest GetAssessmentTelemetry where
-        type Rs GetAssessmentTelemetry =
-             GetAssessmentTelemetryResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 GetAssessmentTelemetryResponse' <$>
-                   (x .?> "telemetry" .!@ mempty) <*>
-                     (pure (fromEnum s)))
-
-instance Hashable GetAssessmentTelemetry
-
-instance ToHeaders GetAssessmentTelemetry where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.GetAssessmentTelemetry" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON GetAssessmentTelemetry where
-        toJSON GetAssessmentTelemetry'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _gatAssessmentARN)])
-
-instance ToPath GetAssessmentTelemetry where
-        toPath = const "/"
-
-instance ToQuery GetAssessmentTelemetry where
-        toQuery = const mempty
-
--- | /See:/ 'getAssessmentTelemetryResponse' smart constructor.
-data GetAssessmentTelemetryResponse = GetAssessmentTelemetryResponse'
-    { _gatrsTelemetry      :: !(Maybe [Telemetry])
-    , _gatrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'GetAssessmentTelemetryResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gatrsTelemetry'
---
--- * 'gatrsResponseStatus'
-getAssessmentTelemetryResponse
-    :: Int -- ^ 'gatrsResponseStatus'
-    -> GetAssessmentTelemetryResponse
-getAssessmentTelemetryResponse pResponseStatus_ =
-    GetAssessmentTelemetryResponse'
-    { _gatrsTelemetry = Nothing
-    , _gatrsResponseStatus = pResponseStatus_
-    }
-
--- | Telemetry details.
-gatrsTelemetry :: Lens' GetAssessmentTelemetryResponse [Telemetry]
-gatrsTelemetry = lens _gatrsTelemetry (\ s a -> s{_gatrsTelemetry = a}) . _Default . _Coerce;
-
--- | The response status code.
-gatrsResponseStatus :: Lens' GetAssessmentTelemetryResponse Int
-gatrsResponseStatus = lens _gatrsResponseStatus (\ s a -> s{_gatrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/GetTelemetryMetadata.hs b/gen/Network/AWS/Inspector/GetTelemetryMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/GetTelemetryMetadata.hs
@@ -0,0 +1,136 @@
+{-# 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.Inspector.GetTelemetryMetadata
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Information about the data that is collected for the specified
+-- assessment run.
+module Network.AWS.Inspector.GetTelemetryMetadata
+    (
+    -- * Creating a Request
+      getTelemetryMetadata
+    , GetTelemetryMetadata
+    -- * Request Lenses
+    , gtmAssessmentRunARN
+
+    -- * Destructuring the Response
+    , getTelemetryMetadataResponse
+    , GetTelemetryMetadataResponse
+    -- * Response Lenses
+    , gtmrsResponseStatus
+    , gtmrsTelemetryMetadata
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'getTelemetryMetadata' smart constructor.
+newtype GetTelemetryMetadata = GetTelemetryMetadata'
+    { _gtmAssessmentRunARN :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetTelemetryMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtmAssessmentRunARN'
+getTelemetryMetadata
+    :: Text -- ^ 'gtmAssessmentRunARN'
+    -> GetTelemetryMetadata
+getTelemetryMetadata pAssessmentRunARN_ =
+    GetTelemetryMetadata'
+    { _gtmAssessmentRunARN = pAssessmentRunARN_
+    }
+
+-- | The ARN that specifies the assessment run that has the telemetry data
+-- that you want to obtain.
+gtmAssessmentRunARN :: Lens' GetTelemetryMetadata Text
+gtmAssessmentRunARN = lens _gtmAssessmentRunARN (\ s a -> s{_gtmAssessmentRunARN = a});
+
+instance AWSRequest GetTelemetryMetadata where
+        type Rs GetTelemetryMetadata =
+             GetTelemetryMetadataResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 GetTelemetryMetadataResponse' <$>
+                   (pure (fromEnum s)) <*>
+                     (x .?> "telemetryMetadata" .!@ mempty))
+
+instance Hashable GetTelemetryMetadata
+
+instance NFData GetTelemetryMetadata
+
+instance ToHeaders GetTelemetryMetadata where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.GetTelemetryMetadata" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON GetTelemetryMetadata where
+        toJSON GetTelemetryMetadata'{..}
+          = object
+              (catMaybes
+                 [Just ("assessmentRunArn" .= _gtmAssessmentRunARN)])
+
+instance ToPath GetTelemetryMetadata where
+        toPath = const "/"
+
+instance ToQuery GetTelemetryMetadata where
+        toQuery = const mempty
+
+-- | /See:/ 'getTelemetryMetadataResponse' smart constructor.
+data GetTelemetryMetadataResponse = GetTelemetryMetadataResponse'
+    { _gtmrsResponseStatus    :: !Int
+    , _gtmrsTelemetryMetadata :: ![TelemetryMetadata]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'GetTelemetryMetadataResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'gtmrsResponseStatus'
+--
+-- * 'gtmrsTelemetryMetadata'
+getTelemetryMetadataResponse
+    :: Int -- ^ 'gtmrsResponseStatus'
+    -> GetTelemetryMetadataResponse
+getTelemetryMetadataResponse pResponseStatus_ =
+    GetTelemetryMetadataResponse'
+    { _gtmrsResponseStatus = pResponseStatus_
+    , _gtmrsTelemetryMetadata = mempty
+    }
+
+-- | The response status code.
+gtmrsResponseStatus :: Lens' GetTelemetryMetadataResponse Int
+gtmrsResponseStatus = lens _gtmrsResponseStatus (\ s a -> s{_gtmrsResponseStatus = a});
+
+-- | Telemetry details.
+gtmrsTelemetryMetadata :: Lens' GetTelemetryMetadataResponse [TelemetryMetadata]
+gtmrsTelemetryMetadata = lens _gtmrsTelemetryMetadata (\ s a -> s{_gtmrsTelemetryMetadata = a}) . _Coerce;
+
+instance NFData GetTelemetryMetadataResponse
diff --git a/gen/Network/AWS/Inspector/ListApplications.hs b/gen/Network/AWS/Inspector/ListApplications.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListApplications.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# 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.Inspector.ListApplications
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the ARNs of the applications within this AWS account. For more
--- information about applications, see
--- <https://docs.aws.amazon.com/inspector/latest/userguide//inspector_applications.html Inspector Applications>.
-module Network.AWS.Inspector.ListApplications
-    (
-    -- * Creating a Request
-      listApplications
-    , ListApplications
-    -- * Request Lenses
-    , lNextToken
-    , lFilter
-    , lMaxResults
-
-    -- * Destructuring the Response
-    , listApplicationsResponse
-    , ListApplicationsResponse
-    -- * Response Lenses
-    , lrsApplicationARNList
-    , lrsNextToken
-    , lrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listApplications' smart constructor.
-data ListApplications = ListApplications'
-    { _lNextToken  :: !(Maybe Text)
-    , _lFilter     :: !(Maybe ApplicationsFilter)
-    , _lMaxResults :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListApplications' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lNextToken'
---
--- * 'lFilter'
---
--- * 'lMaxResults'
-listApplications
-    :: ListApplications
-listApplications =
-    ListApplications'
-    { _lNextToken = Nothing
-    , _lFilter = Nothing
-    , _lMaxResults = Nothing
-    }
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __ListApplications__ action. Subsequent calls to the action fill
--- __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
-lNextToken :: Lens' ListApplications (Maybe Text)
-lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a});
-
--- | You can use this parameter to specify a subset of data to be included in
--- the action\'s response.
---
--- For a record to match a filter, all specified filter attributes must
--- match. When multiple values are specified for a filter attribute, any of
--- the values can match.
-lFilter :: Lens' ListApplications (Maybe ApplicationsFilter)
-lFilter = lens _lFilter (\ s a -> s{_lFilter = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-lMaxResults :: Lens' ListApplications (Maybe Int)
-lMaxResults = lens _lMaxResults (\ s a -> s{_lMaxResults = a});
-
-instance AWSRequest ListApplications where
-        type Rs ListApplications = ListApplicationsResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListApplicationsResponse' <$>
-                   (x .?> "applicationArnList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListApplications
-
-instance ToHeaders ListApplications where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListApplications" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListApplications where
-        toJSON ListApplications'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _lNextToken,
-                  ("filter" .=) <$> _lFilter,
-                  ("maxResults" .=) <$> _lMaxResults])
-
-instance ToPath ListApplications where
-        toPath = const "/"
-
-instance ToQuery ListApplications where
-        toQuery = const mempty
-
--- | /See:/ 'listApplicationsResponse' smart constructor.
-data ListApplicationsResponse = ListApplicationsResponse'
-    { _lrsApplicationARNList :: !(Maybe [Text])
-    , _lrsNextToken          :: !(Maybe Text)
-    , _lrsResponseStatus     :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListApplicationsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrsApplicationARNList'
---
--- * 'lrsNextToken'
---
--- * 'lrsResponseStatus'
-listApplicationsResponse
-    :: Int -- ^ 'lrsResponseStatus'
-    -> ListApplicationsResponse
-listApplicationsResponse pResponseStatus_ =
-    ListApplicationsResponse'
-    { _lrsApplicationARNList = Nothing
-    , _lrsNextToken = Nothing
-    , _lrsResponseStatus = pResponseStatus_
-    }
-
--- | A list of ARNs specifying the applications returned by the action.
-lrsApplicationARNList :: Lens' ListApplicationsResponse [Text]
-lrsApplicationARNList = lens _lrsApplicationARNList (\ s a -> s{_lrsApplicationARNList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-lrsNextToken :: Lens' ListApplicationsResponse (Maybe Text)
-lrsNextToken = lens _lrsNextToken (\ s a -> s{_lrsNextToken = a});
-
--- | The response status code.
-lrsResponseStatus :: Lens' ListApplicationsResponse Int
-lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListAssessmentAgents.hs b/gen/Network/AWS/Inspector/ListAssessmentAgents.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListAssessmentAgents.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# 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.Inspector.ListAssessmentAgents
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the agents of the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.ListAssessmentAgents
-    (
-    -- * Creating a Request
-      listAssessmentAgents
-    , ListAssessmentAgents
-    -- * Request Lenses
-    , laasNextToken
-    , laasFilter
-    , laasMaxResults
-    , laasAssessmentARN
-
-    -- * Destructuring the Response
-    , listAssessmentAgentsResponse
-    , ListAssessmentAgentsResponse
-    -- * Response Lenses
-    , laarsAgentList
-    , laarsNextToken
-    , laarsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listAssessmentAgents' smart constructor.
-data ListAssessmentAgents = ListAssessmentAgents'
-    { _laasNextToken     :: !(Maybe Text)
-    , _laasFilter        :: !(Maybe AgentsFilter)
-    , _laasMaxResults    :: !(Maybe Int)
-    , _laasAssessmentARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAssessmentAgents' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laasNextToken'
---
--- * 'laasFilter'
---
--- * 'laasMaxResults'
---
--- * 'laasAssessmentARN'
-listAssessmentAgents
-    :: Text -- ^ 'laasAssessmentARN'
-    -> ListAssessmentAgents
-listAssessmentAgents pAssessmentARN_ =
-    ListAssessmentAgents'
-    { _laasNextToken = Nothing
-    , _laasFilter = Nothing
-    , _laasMaxResults = Nothing
-    , _laasAssessmentARN = pAssessmentARN_
-    }
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __ListAssessmentAgents__ action. Subsequent calls to the action fill
--- __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
-laasNextToken :: Lens' ListAssessmentAgents (Maybe Text)
-laasNextToken = lens _laasNextToken (\ s a -> s{_laasNextToken = a});
-
--- | You can use this parameter to specify a subset of data to be included in
--- the action\'s response.
---
--- For a record to match a filter, all specified filter attributes must
--- match. When multiple values are specified for a filter attribute, any of
--- the values can match.
-laasFilter :: Lens' ListAssessmentAgents (Maybe AgentsFilter)
-laasFilter = lens _laasFilter (\ s a -> s{_laasFilter = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-laasMaxResults :: Lens' ListAssessmentAgents (Maybe Int)
-laasMaxResults = lens _laasMaxResults (\ s a -> s{_laasMaxResults = a});
-
--- | The ARN specifying the assessment whose agents you want to list.
-laasAssessmentARN :: Lens' ListAssessmentAgents Text
-laasAssessmentARN = lens _laasAssessmentARN (\ s a -> s{_laasAssessmentARN = a});
-
-instance AWSRequest ListAssessmentAgents where
-        type Rs ListAssessmentAgents =
-             ListAssessmentAgentsResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListAssessmentAgentsResponse' <$>
-                   (x .?> "agentList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListAssessmentAgents
-
-instance ToHeaders ListAssessmentAgents where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListAssessmentAgents" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListAssessmentAgents where
-        toJSON ListAssessmentAgents'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _laasNextToken,
-                  ("filter" .=) <$> _laasFilter,
-                  ("maxResults" .=) <$> _laasMaxResults,
-                  Just ("assessmentArn" .= _laasAssessmentARN)])
-
-instance ToPath ListAssessmentAgents where
-        toPath = const "/"
-
-instance ToQuery ListAssessmentAgents where
-        toQuery = const mempty
-
--- | /See:/ 'listAssessmentAgentsResponse' smart constructor.
-data ListAssessmentAgentsResponse = ListAssessmentAgentsResponse'
-    { _laarsAgentList      :: !(Maybe [Agent])
-    , _laarsNextToken      :: !(Maybe Text)
-    , _laarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAssessmentAgentsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laarsAgentList'
---
--- * 'laarsNextToken'
---
--- * 'laarsResponseStatus'
-listAssessmentAgentsResponse
-    :: Int -- ^ 'laarsResponseStatus'
-    -> ListAssessmentAgentsResponse
-listAssessmentAgentsResponse pResponseStatus_ =
-    ListAssessmentAgentsResponse'
-    { _laarsAgentList = Nothing
-    , _laarsNextToken = Nothing
-    , _laarsResponseStatus = pResponseStatus_
-    }
-
--- | A list of ARNs specifying the agents returned by the action.
-laarsAgentList :: Lens' ListAssessmentAgentsResponse [Agent]
-laarsAgentList = lens _laarsAgentList (\ s a -> s{_laarsAgentList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-laarsNextToken :: Lens' ListAssessmentAgentsResponse (Maybe Text)
-laarsNextToken = lens _laarsNextToken (\ s a -> s{_laarsNextToken = a});
-
--- | The response status code.
-laarsResponseStatus :: Lens' ListAssessmentAgentsResponse Int
-laarsResponseStatus = lens _laarsResponseStatus (\ s a -> s{_laarsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListAssessmentRunAgents.hs b/gen/Network/AWS/Inspector/ListAssessmentRunAgents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/ListAssessmentRunAgents.hs
@@ -0,0 +1,188 @@
+{-# 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.Inspector.ListAssessmentRunAgents
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Lists the agents of the assessment runs that are specified by the ARNs
+-- of the assessment runs.
+module Network.AWS.Inspector.ListAssessmentRunAgents
+    (
+    -- * Creating a Request
+      listAssessmentRunAgents
+    , ListAssessmentRunAgents
+    -- * Request Lenses
+    , laraNextToken
+    , laraFilter
+    , laraMaxResults
+    , laraAssessmentRunARN
+
+    -- * Destructuring the Response
+    , listAssessmentRunAgentsResponse
+    , ListAssessmentRunAgentsResponse
+    -- * Response Lenses
+    , lararsNextToken
+    , lararsResponseStatus
+    , lararsAssessmentRunAgents
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'listAssessmentRunAgents' smart constructor.
+data ListAssessmentRunAgents = ListAssessmentRunAgents'
+    { _laraNextToken        :: !(Maybe Text)
+    , _laraFilter           :: !(Maybe AgentFilter)
+    , _laraMaxResults       :: !(Maybe Int)
+    , _laraAssessmentRunARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentRunAgents' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'laraNextToken'
+--
+-- * 'laraFilter'
+--
+-- * 'laraMaxResults'
+--
+-- * 'laraAssessmentRunARN'
+listAssessmentRunAgents
+    :: Text -- ^ 'laraAssessmentRunARN'
+    -> ListAssessmentRunAgents
+listAssessmentRunAgents pAssessmentRunARN_ =
+    ListAssessmentRunAgents'
+    { _laraNextToken = Nothing
+    , _laraFilter = Nothing
+    , _laraMaxResults = Nothing
+    , _laraAssessmentRunARN = pAssessmentRunARN_
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the
+-- __ListAssessmentRunAgents__ action. Subsequent calls to the action fill
+-- __nextToken__ in the request with the value of __NextToken__ from the
+-- previous response to continue listing data.
+laraNextToken :: Lens' ListAssessmentRunAgents (Maybe Text)
+laraNextToken = lens _laraNextToken (\ s a -> s{_laraNextToken = a});
+
+-- | You can use this parameter to specify a subset of data to be included in
+-- the action\'s response.
+--
+-- For a record to match a filter, all specified filter attributes must
+-- match. When multiple values are specified for a filter attribute, any of
+-- the values can match.
+laraFilter :: Lens' ListAssessmentRunAgents (Maybe AgentFilter)
+laraFilter = lens _laraFilter (\ s a -> s{_laraFilter = a});
+
+-- | You can use this parameter to indicate the maximum number of items that
+-- you want in the response. The default value is 10. The maximum value is
+-- 500.
+laraMaxResults :: Lens' ListAssessmentRunAgents (Maybe Int)
+laraMaxResults = lens _laraMaxResults (\ s a -> s{_laraMaxResults = a});
+
+-- | The ARN that specifies the assessment run whose agents you want to list.
+laraAssessmentRunARN :: Lens' ListAssessmentRunAgents Text
+laraAssessmentRunARN = lens _laraAssessmentRunARN (\ s a -> s{_laraAssessmentRunARN = a});
+
+instance AWSRequest ListAssessmentRunAgents where
+        type Rs ListAssessmentRunAgents =
+             ListAssessmentRunAgentsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListAssessmentRunAgentsResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "assessmentRunAgents" .!@ mempty))
+
+instance Hashable ListAssessmentRunAgents
+
+instance NFData ListAssessmentRunAgents
+
+instance ToHeaders ListAssessmentRunAgents where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.ListAssessmentRunAgents" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListAssessmentRunAgents where
+        toJSON ListAssessmentRunAgents'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _laraNextToken,
+                  ("filter" .=) <$> _laraFilter,
+                  ("maxResults" .=) <$> _laraMaxResults,
+                  Just ("assessmentRunArn" .= _laraAssessmentRunARN)])
+
+instance ToPath ListAssessmentRunAgents where
+        toPath = const "/"
+
+instance ToQuery ListAssessmentRunAgents where
+        toQuery = const mempty
+
+-- | /See:/ 'listAssessmentRunAgentsResponse' smart constructor.
+data ListAssessmentRunAgentsResponse = ListAssessmentRunAgentsResponse'
+    { _lararsNextToken           :: !(Maybe Text)
+    , _lararsResponseStatus      :: !Int
+    , _lararsAssessmentRunAgents :: ![AssessmentRunAgent]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentRunAgentsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lararsNextToken'
+--
+-- * 'lararsResponseStatus'
+--
+-- * 'lararsAssessmentRunAgents'
+listAssessmentRunAgentsResponse
+    :: Int -- ^ 'lararsResponseStatus'
+    -> ListAssessmentRunAgentsResponse
+listAssessmentRunAgentsResponse pResponseStatus_ =
+    ListAssessmentRunAgentsResponse'
+    { _lararsNextToken = Nothing
+    , _lararsResponseStatus = pResponseStatus_
+    , _lararsAssessmentRunAgents = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+lararsNextToken :: Lens' ListAssessmentRunAgentsResponse (Maybe Text)
+lararsNextToken = lens _lararsNextToken (\ s a -> s{_lararsNextToken = a});
+
+-- | The response status code.
+lararsResponseStatus :: Lens' ListAssessmentRunAgentsResponse Int
+lararsResponseStatus = lens _lararsResponseStatus (\ s a -> s{_lararsResponseStatus = a});
+
+-- | A list of ARNs that specifies the agents returned by the action.
+lararsAssessmentRunAgents :: Lens' ListAssessmentRunAgentsResponse [AssessmentRunAgent]
+lararsAssessmentRunAgents = lens _lararsAssessmentRunAgents (\ s a -> s{_lararsAssessmentRunAgents = a}) . _Coerce;
+
+instance NFData ListAssessmentRunAgentsResponse
diff --git a/gen/Network/AWS/Inspector/ListAssessmentRuns.hs b/gen/Network/AWS/Inspector/ListAssessmentRuns.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/ListAssessmentRuns.hs
@@ -0,0 +1,190 @@
+{-# 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.Inspector.ListAssessmentRuns
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Lists the assessment runs that correspond to the assessment templates
+-- that are specified by the ARNs of the assessment templates.
+module Network.AWS.Inspector.ListAssessmentRuns
+    (
+    -- * Creating a Request
+      listAssessmentRuns
+    , ListAssessmentRuns
+    -- * Request Lenses
+    , larNextToken
+    , larFilter
+    , larAssessmentTemplateARNs
+    , larMaxResults
+
+    -- * Destructuring the Response
+    , listAssessmentRunsResponse
+    , ListAssessmentRunsResponse
+    -- * Response Lenses
+    , larrsNextToken
+    , larrsResponseStatus
+    , larrsAssessmentRunARNs
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'listAssessmentRuns' smart constructor.
+data ListAssessmentRuns = ListAssessmentRuns'
+    { _larNextToken              :: !(Maybe Text)
+    , _larFilter                 :: !(Maybe AssessmentRunFilter)
+    , _larAssessmentTemplateARNs :: !(Maybe [Text])
+    , _larMaxResults             :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentRuns' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'larNextToken'
+--
+-- * 'larFilter'
+--
+-- * 'larAssessmentTemplateARNs'
+--
+-- * 'larMaxResults'
+listAssessmentRuns
+    :: ListAssessmentRuns
+listAssessmentRuns =
+    ListAssessmentRuns'
+    { _larNextToken = Nothing
+    , _larFilter = Nothing
+    , _larAssessmentTemplateARNs = Nothing
+    , _larMaxResults = Nothing
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the __ListAssessmentRuns__
+-- action. Subsequent calls to the action fill __nextToken__ in the request
+-- with the value of __NextToken__ from the previous response to continue
+-- listing data.
+larNextToken :: Lens' ListAssessmentRuns (Maybe Text)
+larNextToken = lens _larNextToken (\ s a -> s{_larNextToken = a});
+
+-- | You can use this parameter to specify a subset of data to be included in
+-- the action\'s response.
+--
+-- For a record to match a filter, all specified filter attributes must
+-- match. When multiple values are specified for a filter attribute, any of
+-- the values can match.
+larFilter :: Lens' ListAssessmentRuns (Maybe AssessmentRunFilter)
+larFilter = lens _larFilter (\ s a -> s{_larFilter = a});
+
+-- | The ARNs that specify the assessment templates whose assessment runs you
+-- want to list.
+larAssessmentTemplateARNs :: Lens' ListAssessmentRuns [Text]
+larAssessmentTemplateARNs = lens _larAssessmentTemplateARNs (\ s a -> s{_larAssessmentTemplateARNs = a}) . _Default . _Coerce;
+
+-- | You can use this parameter to indicate the maximum number of items that
+-- you want in the response. The default value is 10. The maximum value is
+-- 500.
+larMaxResults :: Lens' ListAssessmentRuns (Maybe Int)
+larMaxResults = lens _larMaxResults (\ s a -> s{_larMaxResults = a});
+
+instance AWSRequest ListAssessmentRuns where
+        type Rs ListAssessmentRuns =
+             ListAssessmentRunsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListAssessmentRunsResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "assessmentRunArns" .!@ mempty))
+
+instance Hashable ListAssessmentRuns
+
+instance NFData ListAssessmentRuns
+
+instance ToHeaders ListAssessmentRuns where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.ListAssessmentRuns" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListAssessmentRuns where
+        toJSON ListAssessmentRuns'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _larNextToken,
+                  ("filter" .=) <$> _larFilter,
+                  ("assessmentTemplateArns" .=) <$>
+                    _larAssessmentTemplateARNs,
+                  ("maxResults" .=) <$> _larMaxResults])
+
+instance ToPath ListAssessmentRuns where
+        toPath = const "/"
+
+instance ToQuery ListAssessmentRuns where
+        toQuery = const mempty
+
+-- | /See:/ 'listAssessmentRunsResponse' smart constructor.
+data ListAssessmentRunsResponse = ListAssessmentRunsResponse'
+    { _larrsNextToken         :: !(Maybe Text)
+    , _larrsResponseStatus    :: !Int
+    , _larrsAssessmentRunARNs :: ![Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentRunsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'larrsNextToken'
+--
+-- * 'larrsResponseStatus'
+--
+-- * 'larrsAssessmentRunARNs'
+listAssessmentRunsResponse
+    :: Int -- ^ 'larrsResponseStatus'
+    -> ListAssessmentRunsResponse
+listAssessmentRunsResponse pResponseStatus_ =
+    ListAssessmentRunsResponse'
+    { _larrsNextToken = Nothing
+    , _larrsResponseStatus = pResponseStatus_
+    , _larrsAssessmentRunARNs = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+larrsNextToken :: Lens' ListAssessmentRunsResponse (Maybe Text)
+larrsNextToken = lens _larrsNextToken (\ s a -> s{_larrsNextToken = a});
+
+-- | The response status code.
+larrsResponseStatus :: Lens' ListAssessmentRunsResponse Int
+larrsResponseStatus = lens _larrsResponseStatus (\ s a -> s{_larrsResponseStatus = a});
+
+-- | A list of ARNs that specifies the assessment runs that are returned by
+-- the action.
+larrsAssessmentRunARNs :: Lens' ListAssessmentRunsResponse [Text]
+larrsAssessmentRunARNs = lens _larrsAssessmentRunARNs (\ s a -> s{_larrsAssessmentRunARNs = a}) . _Coerce;
+
+instance NFData ListAssessmentRunsResponse
diff --git a/gen/Network/AWS/Inspector/ListAssessmentTargets.hs b/gen/Network/AWS/Inspector/ListAssessmentTargets.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/ListAssessmentTargets.hs
@@ -0,0 +1,178 @@
+{-# 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.Inspector.ListAssessmentTargets
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Lists the ARNs of the assessment targets within this AWS account. For
+-- more information about assessment targets, see
+-- <http://docs.aws.amazon.com/inspector/latest/userguide/inspector_applications.html Amazon Inspector Assessment Targets>.
+module Network.AWS.Inspector.ListAssessmentTargets
+    (
+    -- * Creating a Request
+      listAssessmentTargets
+    , ListAssessmentTargets
+    -- * Request Lenses
+    , lNextToken
+    , lFilter
+    , lMaxResults
+
+    -- * Destructuring the Response
+    , listAssessmentTargetsResponse
+    , ListAssessmentTargetsResponse
+    -- * Response Lenses
+    , lrsNextToken
+    , lrsResponseStatus
+    , lrsAssessmentTargetARNs
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'listAssessmentTargets' smart constructor.
+data ListAssessmentTargets = ListAssessmentTargets'
+    { _lNextToken  :: !(Maybe Text)
+    , _lFilter     :: !(Maybe AssessmentTargetFilter)
+    , _lMaxResults :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentTargets' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lNextToken'
+--
+-- * 'lFilter'
+--
+-- * 'lMaxResults'
+listAssessmentTargets
+    :: ListAssessmentTargets
+listAssessmentTargets =
+    ListAssessmentTargets'
+    { _lNextToken = Nothing
+    , _lFilter = Nothing
+    , _lMaxResults = Nothing
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the
+-- __ListAssessmentTargets__ action. Subsequent calls to the action fill
+-- __nextToken__ in the request with the value of __NextToken__ from the
+-- previous response to continue listing data.
+lNextToken :: Lens' ListAssessmentTargets (Maybe Text)
+lNextToken = lens _lNextToken (\ s a -> s{_lNextToken = a});
+
+-- | You can use this parameter to specify a subset of data to be included in
+-- the action\'s response.
+--
+-- For a record to match a filter, all specified filter attributes must
+-- match. When multiple values are specified for a filter attribute, any of
+-- the values can match.
+lFilter :: Lens' ListAssessmentTargets (Maybe AssessmentTargetFilter)
+lFilter = lens _lFilter (\ s a -> s{_lFilter = a});
+
+-- | You can use this parameter to indicate the maximum number of items you
+-- want in the response. The default value is 10. The maximum value is 500.
+lMaxResults :: Lens' ListAssessmentTargets (Maybe Int)
+lMaxResults = lens _lMaxResults (\ s a -> s{_lMaxResults = a});
+
+instance AWSRequest ListAssessmentTargets where
+        type Rs ListAssessmentTargets =
+             ListAssessmentTargetsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListAssessmentTargetsResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "assessmentTargetArns" .!@ mempty))
+
+instance Hashable ListAssessmentTargets
+
+instance NFData ListAssessmentTargets
+
+instance ToHeaders ListAssessmentTargets where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.ListAssessmentTargets" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListAssessmentTargets where
+        toJSON ListAssessmentTargets'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _lNextToken,
+                  ("filter" .=) <$> _lFilter,
+                  ("maxResults" .=) <$> _lMaxResults])
+
+instance ToPath ListAssessmentTargets where
+        toPath = const "/"
+
+instance ToQuery ListAssessmentTargets where
+        toQuery = const mempty
+
+-- | /See:/ 'listAssessmentTargetsResponse' smart constructor.
+data ListAssessmentTargetsResponse = ListAssessmentTargetsResponse'
+    { _lrsNextToken            :: !(Maybe Text)
+    , _lrsResponseStatus       :: !Int
+    , _lrsAssessmentTargetARNs :: ![Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentTargetsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lrsNextToken'
+--
+-- * 'lrsResponseStatus'
+--
+-- * 'lrsAssessmentTargetARNs'
+listAssessmentTargetsResponse
+    :: Int -- ^ 'lrsResponseStatus'
+    -> ListAssessmentTargetsResponse
+listAssessmentTargetsResponse pResponseStatus_ =
+    ListAssessmentTargetsResponse'
+    { _lrsNextToken = Nothing
+    , _lrsResponseStatus = pResponseStatus_
+    , _lrsAssessmentTargetARNs = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+lrsNextToken :: Lens' ListAssessmentTargetsResponse (Maybe Text)
+lrsNextToken = lens _lrsNextToken (\ s a -> s{_lrsNextToken = a});
+
+-- | The response status code.
+lrsResponseStatus :: Lens' ListAssessmentTargetsResponse Int
+lrsResponseStatus = lens _lrsResponseStatus (\ s a -> s{_lrsResponseStatus = a});
+
+-- | A list of ARNs that specifies the assessment targets that are returned
+-- by the action.
+lrsAssessmentTargetARNs :: Lens' ListAssessmentTargetsResponse [Text]
+lrsAssessmentTargetARNs = lens _lrsAssessmentTargetARNs (\ s a -> s{_lrsAssessmentTargetARNs = a}) . _Coerce;
+
+instance NFData ListAssessmentTargetsResponse
diff --git a/gen/Network/AWS/Inspector/ListAssessmentTemplates.hs b/gen/Network/AWS/Inspector/ListAssessmentTemplates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/ListAssessmentTemplates.hs
@@ -0,0 +1,189 @@
+{-# 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.Inspector.ListAssessmentTemplates
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Lists the assessment templates that correspond to the assessment targets
+-- that are specified by the ARNs of the assessment targets.
+module Network.AWS.Inspector.ListAssessmentTemplates
+    (
+    -- * Creating a Request
+      listAssessmentTemplates
+    , ListAssessmentTemplates
+    -- * Request Lenses
+    , latNextToken
+    , latFilter
+    , latMaxResults
+    , latAssessmentTargetARNs
+
+    -- * Destructuring the Response
+    , listAssessmentTemplatesResponse
+    , ListAssessmentTemplatesResponse
+    -- * Response Lenses
+    , latrsNextToken
+    , latrsResponseStatus
+    , latrsAssessmentTemplateARNs
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'listAssessmentTemplates' smart constructor.
+data ListAssessmentTemplates = ListAssessmentTemplates'
+    { _latNextToken            :: !(Maybe Text)
+    , _latFilter               :: !(Maybe AssessmentTemplateFilter)
+    , _latMaxResults           :: !(Maybe Int)
+    , _latAssessmentTargetARNs :: !(Maybe [Text])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentTemplates' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'latNextToken'
+--
+-- * 'latFilter'
+--
+-- * 'latMaxResults'
+--
+-- * 'latAssessmentTargetARNs'
+listAssessmentTemplates
+    :: ListAssessmentTemplates
+listAssessmentTemplates =
+    ListAssessmentTemplates'
+    { _latNextToken = Nothing
+    , _latFilter = Nothing
+    , _latMaxResults = Nothing
+    , _latAssessmentTargetARNs = Nothing
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the
+-- __ListAssessmentTemplates__ action. Subsequent calls to the action fill
+-- __nextToken__ in the request with the value of __NextToken__ from the
+-- previous response to continue listing data.
+latNextToken :: Lens' ListAssessmentTemplates (Maybe Text)
+latNextToken = lens _latNextToken (\ s a -> s{_latNextToken = a});
+
+-- | You can use this parameter to specify a subset of data to be included in
+-- the action\'s response.
+--
+-- For a record to match a filter, all specified filter attributes must
+-- match. When multiple values are specified for a filter attribute, any of
+-- the values can match.
+latFilter :: Lens' ListAssessmentTemplates (Maybe AssessmentTemplateFilter)
+latFilter = lens _latFilter (\ s a -> s{_latFilter = a});
+
+-- | You can use this parameter to indicate the maximum number of items you
+-- want in the response. The default value is 10. The maximum value is 500.
+latMaxResults :: Lens' ListAssessmentTemplates (Maybe Int)
+latMaxResults = lens _latMaxResults (\ s a -> s{_latMaxResults = a});
+
+-- | A list of ARNs that specifies the assessment targets whose assessment
+-- templates you want to list.
+latAssessmentTargetARNs :: Lens' ListAssessmentTemplates [Text]
+latAssessmentTargetARNs = lens _latAssessmentTargetARNs (\ s a -> s{_latAssessmentTargetARNs = a}) . _Default . _Coerce;
+
+instance AWSRequest ListAssessmentTemplates where
+        type Rs ListAssessmentTemplates =
+             ListAssessmentTemplatesResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListAssessmentTemplatesResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "assessmentTemplateArns" .!@ mempty))
+
+instance Hashable ListAssessmentTemplates
+
+instance NFData ListAssessmentTemplates
+
+instance ToHeaders ListAssessmentTemplates where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.ListAssessmentTemplates" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListAssessmentTemplates where
+        toJSON ListAssessmentTemplates'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _latNextToken,
+                  ("filter" .=) <$> _latFilter,
+                  ("maxResults" .=) <$> _latMaxResults,
+                  ("assessmentTargetArns" .=) <$>
+                    _latAssessmentTargetARNs])
+
+instance ToPath ListAssessmentTemplates where
+        toPath = const "/"
+
+instance ToQuery ListAssessmentTemplates where
+        toQuery = const mempty
+
+-- | /See:/ 'listAssessmentTemplatesResponse' smart constructor.
+data ListAssessmentTemplatesResponse = ListAssessmentTemplatesResponse'
+    { _latrsNextToken              :: !(Maybe Text)
+    , _latrsResponseStatus         :: !Int
+    , _latrsAssessmentTemplateARNs :: ![Text]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListAssessmentTemplatesResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'latrsNextToken'
+--
+-- * 'latrsResponseStatus'
+--
+-- * 'latrsAssessmentTemplateARNs'
+listAssessmentTemplatesResponse
+    :: Int -- ^ 'latrsResponseStatus'
+    -> ListAssessmentTemplatesResponse
+listAssessmentTemplatesResponse pResponseStatus_ =
+    ListAssessmentTemplatesResponse'
+    { _latrsNextToken = Nothing
+    , _latrsResponseStatus = pResponseStatus_
+    , _latrsAssessmentTemplateARNs = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+latrsNextToken :: Lens' ListAssessmentTemplatesResponse (Maybe Text)
+latrsNextToken = lens _latrsNextToken (\ s a -> s{_latrsNextToken = a});
+
+-- | The response status code.
+latrsResponseStatus :: Lens' ListAssessmentTemplatesResponse Int
+latrsResponseStatus = lens _latrsResponseStatus (\ s a -> s{_latrsResponseStatus = a});
+
+-- | A list of ARNs that specifies the assessment templates returned by the
+-- action.
+latrsAssessmentTemplateARNs :: Lens' ListAssessmentTemplatesResponse [Text]
+latrsAssessmentTemplateARNs = lens _latrsAssessmentTemplateARNs (\ s a -> s{_latrsAssessmentTemplateARNs = a}) . _Coerce;
+
+instance NFData ListAssessmentTemplatesResponse
diff --git a/gen/Network/AWS/Inspector/ListAssessments.hs b/gen/Network/AWS/Inspector/ListAssessments.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListAssessments.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# 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.Inspector.ListAssessments
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the assessments corresponding to applications specified by the
--- applications\' ARNs.
-module Network.AWS.Inspector.ListAssessments
-    (
-    -- * Creating a Request
-      listAssessments
-    , ListAssessments
-    -- * Request Lenses
-    , laApplicationARNs
-    , laNextToken
-    , laFilter
-    , laMaxResults
-
-    -- * Destructuring the Response
-    , listAssessmentsResponse
-    , ListAssessmentsResponse
-    -- * Response Lenses
-    , larsAssessmentARNList
-    , larsNextToken
-    , larsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listAssessments' smart constructor.
-data ListAssessments = ListAssessments'
-    { _laApplicationARNs :: !(Maybe [Text])
-    , _laNextToken       :: !(Maybe Text)
-    , _laFilter          :: !(Maybe AssessmentsFilter)
-    , _laMaxResults      :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAssessments' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laApplicationARNs'
---
--- * 'laNextToken'
---
--- * 'laFilter'
---
--- * 'laMaxResults'
-listAssessments
-    :: ListAssessments
-listAssessments =
-    ListAssessments'
-    { _laApplicationARNs = Nothing
-    , _laNextToken = Nothing
-    , _laFilter = Nothing
-    , _laMaxResults = Nothing
-    }
-
--- | A list of ARNs specifying the applications the assessments of which you
--- want to list.
-laApplicationARNs :: Lens' ListAssessments [Text]
-laApplicationARNs = lens _laApplicationARNs (\ s a -> s{_laApplicationARNs = a}) . _Default . _Coerce;
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the __ListAssessments__
--- action. Subsequent calls to the action fill __nextToken__ in the request
--- with the value of __NextToken__ from previous response to continue
--- listing data.
-laNextToken :: Lens' ListAssessments (Maybe Text)
-laNextToken = lens _laNextToken (\ s a -> s{_laNextToken = a});
-
--- | You can use this parameter to specify a subset of data to be included in
--- the action\'s response.
---
--- For a record to match a filter, all specified filter attributes must
--- match. When multiple values are specified for a filter attribute, any of
--- the values can match.
-laFilter :: Lens' ListAssessments (Maybe AssessmentsFilter)
-laFilter = lens _laFilter (\ s a -> s{_laFilter = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-laMaxResults :: Lens' ListAssessments (Maybe Int)
-laMaxResults = lens _laMaxResults (\ s a -> s{_laMaxResults = a});
-
-instance AWSRequest ListAssessments where
-        type Rs ListAssessments = ListAssessmentsResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListAssessmentsResponse' <$>
-                   (x .?> "assessmentArnList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListAssessments
-
-instance ToHeaders ListAssessments where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListAssessments" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListAssessments where
-        toJSON ListAssessments'{..}
-          = object
-              (catMaybes
-                 [("applicationArns" .=) <$> _laApplicationARNs,
-                  ("nextToken" .=) <$> _laNextToken,
-                  ("filter" .=) <$> _laFilter,
-                  ("maxResults" .=) <$> _laMaxResults])
-
-instance ToPath ListAssessments where
-        toPath = const "/"
-
-instance ToQuery ListAssessments where
-        toQuery = const mempty
-
--- | /See:/ 'listAssessmentsResponse' smart constructor.
-data ListAssessmentsResponse = ListAssessmentsResponse'
-    { _larsAssessmentARNList :: !(Maybe [Text])
-    , _larsNextToken         :: !(Maybe Text)
-    , _larsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAssessmentsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'larsAssessmentARNList'
---
--- * 'larsNextToken'
---
--- * 'larsResponseStatus'
-listAssessmentsResponse
-    :: Int -- ^ 'larsResponseStatus'
-    -> ListAssessmentsResponse
-listAssessmentsResponse pResponseStatus_ =
-    ListAssessmentsResponse'
-    { _larsAssessmentARNList = Nothing
-    , _larsNextToken = Nothing
-    , _larsResponseStatus = pResponseStatus_
-    }
-
--- | A list of ARNs specifying the assessments returned by the action.
-larsAssessmentARNList :: Lens' ListAssessmentsResponse [Text]
-larsAssessmentARNList = lens _larsAssessmentARNList (\ s a -> s{_larsAssessmentARNList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-larsNextToken :: Lens' ListAssessmentsResponse (Maybe Text)
-larsNextToken = lens _larsNextToken (\ s a -> s{_larsNextToken = a});
-
--- | The response status code.
-larsResponseStatus :: Lens' ListAssessmentsResponse Int
-larsResponseStatus = lens _larsResponseStatus (\ s a -> s{_larsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListAttachedAssessments.hs b/gen/Network/AWS/Inspector/ListAttachedAssessments.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListAttachedAssessments.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# 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.Inspector.ListAttachedAssessments
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the assessments attached to the rules package specified by the
--- rules package ARN.
-module Network.AWS.Inspector.ListAttachedAssessments
-    (
-    -- * Creating a Request
-      listAttachedAssessments
-    , ListAttachedAssessments
-    -- * Request Lenses
-    , laaNextToken
-    , laaFilter
-    , laaMaxResults
-    , laaRulesPackageARN
-
-    -- * Destructuring the Response
-    , listAttachedAssessmentsResponse
-    , ListAttachedAssessmentsResponse
-    -- * Response Lenses
-    , laasrsAssessmentARNList
-    , laasrsNextToken
-    , laasrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listAttachedAssessments' smart constructor.
-data ListAttachedAssessments = ListAttachedAssessments'
-    { _laaNextToken       :: !(Maybe Text)
-    , _laaFilter          :: !(Maybe AssessmentsFilter)
-    , _laaMaxResults      :: !(Maybe Int)
-    , _laaRulesPackageARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAttachedAssessments' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laaNextToken'
---
--- * 'laaFilter'
---
--- * 'laaMaxResults'
---
--- * 'laaRulesPackageARN'
-listAttachedAssessments
-    :: Text -- ^ 'laaRulesPackageARN'
-    -> ListAttachedAssessments
-listAttachedAssessments pRulesPackageARN_ =
-    ListAttachedAssessments'
-    { _laaNextToken = Nothing
-    , _laaFilter = Nothing
-    , _laaMaxResults = Nothing
-    , _laaRulesPackageARN = pRulesPackageARN_
-    }
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __ListAttachedAssessments__ action. Subsequent calls to the action fill
--- __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
-laaNextToken :: Lens' ListAttachedAssessments (Maybe Text)
-laaNextToken = lens _laaNextToken (\ s a -> s{_laaNextToken = a});
-
--- | You can use this parameter to specify a subset of data to be included in
--- the action\'s response.
---
--- For a record to match a filter, all specified filter attributes must
--- match. When multiple values are specified for a filter attribute, any of
--- the values can match.
-laaFilter :: Lens' ListAttachedAssessments (Maybe AssessmentsFilter)
-laaFilter = lens _laaFilter (\ s a -> s{_laaFilter = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-laaMaxResults :: Lens' ListAttachedAssessments (Maybe Int)
-laaMaxResults = lens _laaMaxResults (\ s a -> s{_laaMaxResults = a});
-
--- | The ARN specifying the rules package whose assessments you want to list.
-laaRulesPackageARN :: Lens' ListAttachedAssessments Text
-laaRulesPackageARN = lens _laaRulesPackageARN (\ s a -> s{_laaRulesPackageARN = a});
-
-instance AWSRequest ListAttachedAssessments where
-        type Rs ListAttachedAssessments =
-             ListAttachedAssessmentsResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListAttachedAssessmentsResponse' <$>
-                   (x .?> "assessmentArnList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListAttachedAssessments
-
-instance ToHeaders ListAttachedAssessments where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListAttachedAssessments" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListAttachedAssessments where
-        toJSON ListAttachedAssessments'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _laaNextToken,
-                  ("filter" .=) <$> _laaFilter,
-                  ("maxResults" .=) <$> _laaMaxResults,
-                  Just ("rulesPackageArn" .= _laaRulesPackageARN)])
-
-instance ToPath ListAttachedAssessments where
-        toPath = const "/"
-
-instance ToQuery ListAttachedAssessments where
-        toQuery = const mempty
-
--- | /See:/ 'listAttachedAssessmentsResponse' smart constructor.
-data ListAttachedAssessmentsResponse = ListAttachedAssessmentsResponse'
-    { _laasrsAssessmentARNList :: !(Maybe [Text])
-    , _laasrsNextToken         :: !(Maybe Text)
-    , _laasrsResponseStatus    :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAttachedAssessmentsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'laasrsAssessmentARNList'
---
--- * 'laasrsNextToken'
---
--- * 'laasrsResponseStatus'
-listAttachedAssessmentsResponse
-    :: Int -- ^ 'laasrsResponseStatus'
-    -> ListAttachedAssessmentsResponse
-listAttachedAssessmentsResponse pResponseStatus_ =
-    ListAttachedAssessmentsResponse'
-    { _laasrsAssessmentARNList = Nothing
-    , _laasrsNextToken = Nothing
-    , _laasrsResponseStatus = pResponseStatus_
-    }
-
--- | A list of ARNs specifying the assessments returned by the action.
-laasrsAssessmentARNList :: Lens' ListAttachedAssessmentsResponse [Text]
-laasrsAssessmentARNList = lens _laasrsAssessmentARNList (\ s a -> s{_laasrsAssessmentARNList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-laasrsNextToken :: Lens' ListAttachedAssessmentsResponse (Maybe Text)
-laasrsNextToken = lens _laasrsNextToken (\ s a -> s{_laasrsNextToken = a});
-
--- | The response status code.
-laasrsResponseStatus :: Lens' ListAttachedAssessmentsResponse Int
-laasrsResponseStatus = lens _laasrsResponseStatus (\ s a -> s{_laasrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListAttachedRulesPackages.hs b/gen/Network/AWS/Inspector/ListAttachedRulesPackages.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListAttachedRulesPackages.hs
+++ /dev/null
@@ -1,169 +0,0 @@
-{-# 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.Inspector.ListAttachedRulesPackages
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the rules packages attached to the assessment specified by the
--- assessment ARN.
-module Network.AWS.Inspector.ListAttachedRulesPackages
-    (
-    -- * Creating a Request
-      listAttachedRulesPackages
-    , ListAttachedRulesPackages
-    -- * Request Lenses
-    , larpNextToken
-    , larpMaxResults
-    , larpAssessmentARN
-
-    -- * Destructuring the Response
-    , listAttachedRulesPackagesResponse
-    , ListAttachedRulesPackagesResponse
-    -- * Response Lenses
-    , larprsNextToken
-    , larprsRulesPackageARNList
-    , larprsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listAttachedRulesPackages' smart constructor.
-data ListAttachedRulesPackages = ListAttachedRulesPackages'
-    { _larpNextToken     :: !(Maybe Text)
-    , _larpMaxResults    :: !(Maybe Int)
-    , _larpAssessmentARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAttachedRulesPackages' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'larpNextToken'
---
--- * 'larpMaxResults'
---
--- * 'larpAssessmentARN'
-listAttachedRulesPackages
-    :: Text -- ^ 'larpAssessmentARN'
-    -> ListAttachedRulesPackages
-listAttachedRulesPackages pAssessmentARN_ =
-    ListAttachedRulesPackages'
-    { _larpNextToken = Nothing
-    , _larpMaxResults = Nothing
-    , _larpAssessmentARN = pAssessmentARN_
-    }
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __ListAttachedRulesPackages__ action. Subsequent calls to the action
--- fill __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
-larpNextToken :: Lens' ListAttachedRulesPackages (Maybe Text)
-larpNextToken = lens _larpNextToken (\ s a -> s{_larpNextToken = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-larpMaxResults :: Lens' ListAttachedRulesPackages (Maybe Int)
-larpMaxResults = lens _larpMaxResults (\ s a -> s{_larpMaxResults = a});
-
--- | The ARN specifying the assessment whose rules packages you want to list.
-larpAssessmentARN :: Lens' ListAttachedRulesPackages Text
-larpAssessmentARN = lens _larpAssessmentARN (\ s a -> s{_larpAssessmentARN = a});
-
-instance AWSRequest ListAttachedRulesPackages where
-        type Rs ListAttachedRulesPackages =
-             ListAttachedRulesPackagesResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListAttachedRulesPackagesResponse' <$>
-                   (x .?> "nextToken") <*>
-                     (x .?> "rulesPackageArnList" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListAttachedRulesPackages
-
-instance ToHeaders ListAttachedRulesPackages where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListAttachedRulesPackages" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListAttachedRulesPackages where
-        toJSON ListAttachedRulesPackages'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _larpNextToken,
-                  ("maxResults" .=) <$> _larpMaxResults,
-                  Just ("assessmentArn" .= _larpAssessmentARN)])
-
-instance ToPath ListAttachedRulesPackages where
-        toPath = const "/"
-
-instance ToQuery ListAttachedRulesPackages where
-        toQuery = const mempty
-
--- | /See:/ 'listAttachedRulesPackagesResponse' smart constructor.
-data ListAttachedRulesPackagesResponse = ListAttachedRulesPackagesResponse'
-    { _larprsNextToken           :: !(Maybe Text)
-    , _larprsRulesPackageARNList :: !(Maybe [Text])
-    , _larprsResponseStatus      :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListAttachedRulesPackagesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'larprsNextToken'
---
--- * 'larprsRulesPackageARNList'
---
--- * 'larprsResponseStatus'
-listAttachedRulesPackagesResponse
-    :: Int -- ^ 'larprsResponseStatus'
-    -> ListAttachedRulesPackagesResponse
-listAttachedRulesPackagesResponse pResponseStatus_ =
-    ListAttachedRulesPackagesResponse'
-    { _larprsNextToken = Nothing
-    , _larprsRulesPackageARNList = Nothing
-    , _larprsResponseStatus = pResponseStatus_
-    }
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-larprsNextToken :: Lens' ListAttachedRulesPackagesResponse (Maybe Text)
-larprsNextToken = lens _larprsNextToken (\ s a -> s{_larprsNextToken = a});
-
--- | A list of ARNs specifying the rules packages returned by the action.
-larprsRulesPackageARNList :: Lens' ListAttachedRulesPackagesResponse [Text]
-larprsRulesPackageARNList = lens _larprsRulesPackageARNList (\ s a -> s{_larprsRulesPackageARNList = a}) . _Default . _Coerce;
-
--- | The response status code.
-larprsResponseStatus :: Lens' ListAttachedRulesPackagesResponse Int
-larprsResponseStatus = lens _larprsResponseStatus (\ s a -> s{_larprsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListEventSubscriptions.hs b/gen/Network/AWS/Inspector/ListEventSubscriptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/ListEventSubscriptions.hs
@@ -0,0 +1,173 @@
+{-# 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.Inspector.ListEventSubscriptions
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Lists all the event subscriptions for the assessment template that is
+-- specified by the ARN of the assessment template. For more information,
+-- see < SubscribeToEvent> and < UnsubscribeFromEvent>.
+module Network.AWS.Inspector.ListEventSubscriptions
+    (
+    -- * Creating a Request
+      listEventSubscriptions
+    , ListEventSubscriptions
+    -- * Request Lenses
+    , lesNextToken
+    , lesResourceARN
+    , lesMaxResults
+
+    -- * Destructuring the Response
+    , listEventSubscriptionsResponse
+    , ListEventSubscriptionsResponse
+    -- * Response Lenses
+    , lesrsNextToken
+    , lesrsResponseStatus
+    , lesrsSubscriptions
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'listEventSubscriptions' smart constructor.
+data ListEventSubscriptions = ListEventSubscriptions'
+    { _lesNextToken   :: !(Maybe Text)
+    , _lesResourceARN :: !(Maybe Text)
+    , _lesMaxResults  :: !(Maybe Int)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListEventSubscriptions' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lesNextToken'
+--
+-- * 'lesResourceARN'
+--
+-- * 'lesMaxResults'
+listEventSubscriptions
+    :: ListEventSubscriptions
+listEventSubscriptions =
+    ListEventSubscriptions'
+    { _lesNextToken = Nothing
+    , _lesResourceARN = Nothing
+    , _lesMaxResults = Nothing
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the
+-- __ListEventSubscriptions__ action. Subsequent calls to the action fill
+-- __nextToken__ in the request with the value of __NextToken__ from the
+-- previous response to continue listing data.
+lesNextToken :: Lens' ListEventSubscriptions (Maybe Text)
+lesNextToken = lens _lesNextToken (\ s a -> s{_lesNextToken = a});
+
+-- | The ARN of the assessment template for which you want to list the
+-- existing event subscriptions.
+lesResourceARN :: Lens' ListEventSubscriptions (Maybe Text)
+lesResourceARN = lens _lesResourceARN (\ s a -> s{_lesResourceARN = a});
+
+-- | You can use this parameter to indicate the maximum number of items you
+-- want in the response. The default value is 10. The maximum value is 500.
+lesMaxResults :: Lens' ListEventSubscriptions (Maybe Int)
+lesMaxResults = lens _lesMaxResults (\ s a -> s{_lesMaxResults = a});
+
+instance AWSRequest ListEventSubscriptions where
+        type Rs ListEventSubscriptions =
+             ListEventSubscriptionsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 ListEventSubscriptionsResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "subscriptions" .!@ mempty))
+
+instance Hashable ListEventSubscriptions
+
+instance NFData ListEventSubscriptions
+
+instance ToHeaders ListEventSubscriptions where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.ListEventSubscriptions" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON ListEventSubscriptions where
+        toJSON ListEventSubscriptions'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _lesNextToken,
+                  ("resourceArn" .=) <$> _lesResourceARN,
+                  ("maxResults" .=) <$> _lesMaxResults])
+
+instance ToPath ListEventSubscriptions where
+        toPath = const "/"
+
+instance ToQuery ListEventSubscriptions where
+        toQuery = const mempty
+
+-- | /See:/ 'listEventSubscriptionsResponse' smart constructor.
+data ListEventSubscriptionsResponse = ListEventSubscriptionsResponse'
+    { _lesrsNextToken      :: !(Maybe Text)
+    , _lesrsResponseStatus :: !Int
+    , _lesrsSubscriptions  :: ![Subscription]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ListEventSubscriptionsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'lesrsNextToken'
+--
+-- * 'lesrsResponseStatus'
+--
+-- * 'lesrsSubscriptions'
+listEventSubscriptionsResponse
+    :: Int -- ^ 'lesrsResponseStatus'
+    -> ListEventSubscriptionsResponse
+listEventSubscriptionsResponse pResponseStatus_ =
+    ListEventSubscriptionsResponse'
+    { _lesrsNextToken = Nothing
+    , _lesrsResponseStatus = pResponseStatus_
+    , _lesrsSubscriptions = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+lesrsNextToken :: Lens' ListEventSubscriptionsResponse (Maybe Text)
+lesrsNextToken = lens _lesrsNextToken (\ s a -> s{_lesrsNextToken = a});
+
+-- | The response status code.
+lesrsResponseStatus :: Lens' ListEventSubscriptionsResponse Int
+lesrsResponseStatus = lens _lesrsResponseStatus (\ s a -> s{_lesrsResponseStatus = a});
+
+-- | Details of the returned event subscriptions.
+lesrsSubscriptions :: Lens' ListEventSubscriptionsResponse [Subscription]
+lesrsSubscriptions = lens _lesrsSubscriptions (\ s a -> s{_lesrsSubscriptions = a}) . _Coerce;
+
+instance NFData ListEventSubscriptionsResponse
diff --git a/gen/Network/AWS/Inspector/ListFindings.hs b/gen/Network/AWS/Inspector/ListFindings.hs
--- a/gen/Network/AWS/Inspector/ListFindings.hs
+++ b/gen/Network/AWS/Inspector/ListFindings.hs
@@ -18,15 +18,15 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists findings generated by the assessment run specified by the run
--- ARNs.
+-- Lists findings that are generated by the assessment runs that are
+-- specified by the ARNs of the assessment runs.
 module Network.AWS.Inspector.ListFindings
     (
     -- * Creating a Request
       listFindings
     , ListFindings
     -- * Request Lenses
-    , lfRunARNs
+    , lfAssessmentRunARNs
     , lfNextToken
     , lfFilter
     , lfMaxResults
@@ -36,8 +36,8 @@
     , ListFindingsResponse
     -- * Response Lenses
     , lfrsNextToken
-    , lfrsFindingARNList
     , lfrsResponseStatus
+    , lfrsFindingARNs
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -49,17 +49,17 @@
 
 -- | /See:/ 'listFindings' smart constructor.
 data ListFindings = ListFindings'
-    { _lfRunARNs    :: !(Maybe [Text])
-    , _lfNextToken  :: !(Maybe Text)
-    , _lfFilter     :: !(Maybe FindingsFilter)
-    , _lfMaxResults :: !(Maybe Int)
+    { _lfAssessmentRunARNs :: !(Maybe [Text])
+    , _lfNextToken         :: !(Maybe Text)
+    , _lfFilter            :: !(Maybe FindingFilter)
+    , _lfMaxResults        :: !(Maybe Int)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ListFindings' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'lfRunARNs'
+-- * 'lfAssessmentRunARNs'
 --
 -- * 'lfNextToken'
 --
@@ -70,7 +70,7 @@
     :: ListFindings
 listFindings =
     ListFindings'
-    { _lfRunARNs = Nothing
+    { _lfAssessmentRunARNs = Nothing
     , _lfNextToken = Nothing
     , _lfFilter = Nothing
     , _lfMaxResults = Nothing
@@ -78,13 +78,13 @@
 
 -- | The ARNs of the assessment runs that generate the findings that you want
 -- to list.
-lfRunARNs :: Lens' ListFindings [Text]
-lfRunARNs = lens _lfRunARNs (\ s a -> s{_lfRunARNs = a}) . _Default . _Coerce;
+lfAssessmentRunARNs :: Lens' ListFindings [Text]
+lfAssessmentRunARNs = lens _lfAssessmentRunARNs (\ s a -> s{_lfAssessmentRunARNs = a}) . _Default . _Coerce;
 
 -- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the __ListFindings__
+-- this parameter to null on your first call to the __ListFindings__
 -- action. Subsequent calls to the action fill __nextToken__ in the request
--- with the value of __NextToken__ from previous response to continue
+-- with the value of __NextToken__ from the previous response to continue
 -- listing data.
 lfNextToken :: Lens' ListFindings (Maybe Text)
 lfNextToken = lens _lfNextToken (\ s a -> s{_lfNextToken = a});
@@ -95,7 +95,7 @@
 -- For a record to match a filter, all specified filter attributes must
 -- match. When multiple values are specified for a filter attribute, any of
 -- the values can match.
-lfFilter :: Lens' ListFindings (Maybe FindingsFilter)
+lfFilter :: Lens' ListFindings (Maybe FindingFilter)
 lfFilter = lens _lfFilter (\ s a -> s{_lfFilter = a});
 
 -- | You can use this parameter to indicate the maximum number of items you
@@ -110,12 +110,13 @@
           = receiveJSON
               (\ s h x ->
                  ListFindingsResponse' <$>
-                   (x .?> "nextToken") <*>
-                     (x .?> "findingArnList" .!@ mempty)
-                     <*> (pure (fromEnum s)))
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "findingArns" .!@ mempty))
 
 instance Hashable ListFindings
 
+instance NFData ListFindings
+
 instance ToHeaders ListFindings where
         toHeaders
           = const
@@ -129,7 +130,7 @@
         toJSON ListFindings'{..}
           = object
               (catMaybes
-                 [("runArns" .=) <$> _lfRunARNs,
+                 [("assessmentRunArns" .=) <$> _lfAssessmentRunARNs,
                   ("nextToken" .=) <$> _lfNextToken,
                   ("filter" .=) <$> _lfFilter,
                   ("maxResults" .=) <$> _lfMaxResults])
@@ -143,8 +144,8 @@
 -- | /See:/ 'listFindingsResponse' smart constructor.
 data ListFindingsResponse = ListFindingsResponse'
     { _lfrsNextToken      :: !(Maybe Text)
-    , _lfrsFindingARNList :: !(Maybe [Text])
     , _lfrsResponseStatus :: !Int
+    , _lfrsFindingARNs    :: ![Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ListFindingsResponse' with the minimum fields required to make a request.
@@ -153,30 +154,32 @@
 --
 -- * 'lfrsNextToken'
 --
--- * 'lfrsFindingARNList'
---
 -- * 'lfrsResponseStatus'
+--
+-- * 'lfrsFindingARNs'
 listFindingsResponse
     :: Int -- ^ 'lfrsResponseStatus'
     -> ListFindingsResponse
 listFindingsResponse pResponseStatus_ =
     ListFindingsResponse'
     { _lfrsNextToken = Nothing
-    , _lfrsFindingARNList = Nothing
     , _lfrsResponseStatus = pResponseStatus_
+    , _lfrsFindingARNs = mempty
     }
 
 -- | When a response is generated, if there is more data to be listed, this
 -- parameter is present in the response and contains the value to use for
 -- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
+-- is no more data to be listed, this parameter is set to null.
 lfrsNextToken :: Lens' ListFindingsResponse (Maybe Text)
 lfrsNextToken = lens _lfrsNextToken (\ s a -> s{_lfrsNextToken = a});
 
--- | A list of ARNs specifying the findings returned by the action.
-lfrsFindingARNList :: Lens' ListFindingsResponse [Text]
-lfrsFindingARNList = lens _lfrsFindingARNList (\ s a -> s{_lfrsFindingARNList = a}) . _Default . _Coerce;
-
 -- | The response status code.
 lfrsResponseStatus :: Lens' ListFindingsResponse Int
 lfrsResponseStatus = lens _lfrsResponseStatus (\ s a -> s{_lfrsResponseStatus = a});
+
+-- | A list of ARNs that specifies the findings returned by the action.
+lfrsFindingARNs :: Lens' ListFindingsResponse [Text]
+lfrsFindingARNs = lens _lfrsFindingARNs (\ s a -> s{_lfrsFindingARNs = a}) . _Coerce;
+
+instance NFData ListFindingsResponse
diff --git a/gen/Network/AWS/Inspector/ListRulesPackages.hs b/gen/Network/AWS/Inspector/ListRulesPackages.hs
--- a/gen/Network/AWS/Inspector/ListRulesPackages.hs
+++ b/gen/Network/AWS/Inspector/ListRulesPackages.hs
@@ -18,7 +18,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists all available Inspector rules packages.
+-- Lists all available Amazon Inspector rules packages.
 module Network.AWS.Inspector.ListRulesPackages
     (
     -- * Creating a Request
@@ -33,8 +33,8 @@
     , ListRulesPackagesResponse
     -- * Response Lenses
     , lrprsNextToken
-    , lrprsRulesPackageARNList
     , lrprsResponseStatus
+    , lrprsRulesPackageARNs
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -66,10 +66,10 @@
     }
 
 -- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __ListRulesPackages__ action. Subsequent calls to the action fill
--- __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
+-- this parameter to null on your first call to the __ListRulesPackages__
+-- action. Subsequent calls to the action fill __nextToken__ in the request
+-- with the value of __NextToken__ from the previous response to continue
+-- listing data.
 lrpNextToken :: Lens' ListRulesPackages (Maybe Text)
 lrpNextToken = lens _lrpNextToken (\ s a -> s{_lrpNextToken = a});
 
@@ -85,12 +85,13 @@
           = receiveJSON
               (\ s h x ->
                  ListRulesPackagesResponse' <$>
-                   (x .?> "nextToken") <*>
-                     (x .?> "rulesPackageArnList" .!@ mempty)
-                     <*> (pure (fromEnum s)))
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "rulesPackageArns" .!@ mempty))
 
 instance Hashable ListRulesPackages
 
+instance NFData ListRulesPackages
+
 instance ToHeaders ListRulesPackages where
         toHeaders
           = const
@@ -115,9 +116,9 @@
 
 -- | /See:/ 'listRulesPackagesResponse' smart constructor.
 data ListRulesPackagesResponse = ListRulesPackagesResponse'
-    { _lrprsNextToken           :: !(Maybe Text)
-    , _lrprsRulesPackageARNList :: !(Maybe [Text])
-    , _lrprsResponseStatus      :: !Int
+    { _lrprsNextToken        :: !(Maybe Text)
+    , _lrprsResponseStatus   :: !Int
+    , _lrprsRulesPackageARNs :: ![Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ListRulesPackagesResponse' with the minimum fields required to make a request.
@@ -126,30 +127,33 @@
 --
 -- * 'lrprsNextToken'
 --
--- * 'lrprsRulesPackageARNList'
---
 -- * 'lrprsResponseStatus'
+--
+-- * 'lrprsRulesPackageARNs'
 listRulesPackagesResponse
     :: Int -- ^ 'lrprsResponseStatus'
     -> ListRulesPackagesResponse
 listRulesPackagesResponse pResponseStatus_ =
     ListRulesPackagesResponse'
     { _lrprsNextToken = Nothing
-    , _lrprsRulesPackageARNList = Nothing
     , _lrprsResponseStatus = pResponseStatus_
+    , _lrprsRulesPackageARNs = mempty
     }
 
 -- | When a response is generated, if there is more data to be listed, this
 -- parameter is present in the response and contains the value to use for
 -- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
+-- is no more data to be listed, this parameter is set to null.
 lrprsNextToken :: Lens' ListRulesPackagesResponse (Maybe Text)
 lrprsNextToken = lens _lrprsNextToken (\ s a -> s{_lrprsNextToken = a});
 
--- | The list of ARNs specifying the rules packages returned by the action.
-lrprsRulesPackageARNList :: Lens' ListRulesPackagesResponse [Text]
-lrprsRulesPackageARNList = lens _lrprsRulesPackageARNList (\ s a -> s{_lrprsRulesPackageARNList = a}) . _Default . _Coerce;
-
 -- | The response status code.
 lrprsResponseStatus :: Lens' ListRulesPackagesResponse Int
 lrprsResponseStatus = lens _lrprsResponseStatus (\ s a -> s{_lrprsResponseStatus = a});
+
+-- | The list of ARNs that specifies the rules packages returned by the
+-- action.
+lrprsRulesPackageARNs :: Lens' ListRulesPackagesResponse [Text]
+lrprsRulesPackageARNs = lens _lrprsRulesPackageARNs (\ s a -> s{_lrprsRulesPackageARNs = a}) . _Coerce;
+
+instance NFData ListRulesPackagesResponse
diff --git a/gen/Network/AWS/Inspector/ListRuns.hs b/gen/Network/AWS/Inspector/ListRuns.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/ListRuns.hs
+++ /dev/null
@@ -1,181 +0,0 @@
-{-# 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.Inspector.ListRuns
--- Copyright   : (c) 2013-2016 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)
---
--- Lists the assessment runs associated with the assessments specified by
--- the assessment ARNs.
-module Network.AWS.Inspector.ListRuns
-    (
-    -- * Creating a Request
-      listRuns
-    , ListRuns
-    -- * Request Lenses
-    , lrAssessmentARNs
-    , lrNextToken
-    , lrFilter
-    , lrMaxResults
-
-    -- * Destructuring the Response
-    , listRunsResponse
-    , ListRunsResponse
-    -- * Response Lenses
-    , lrrsRunARNList
-    , lrrsNextToken
-    , lrrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'listRuns' smart constructor.
-data ListRuns = ListRuns'
-    { _lrAssessmentARNs :: !(Maybe [Text])
-    , _lrNextToken      :: !(Maybe Text)
-    , _lrFilter         :: !(Maybe RunsFilter)
-    , _lrMaxResults     :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListRuns' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrAssessmentARNs'
---
--- * 'lrNextToken'
---
--- * 'lrFilter'
---
--- * 'lrMaxResults'
-listRuns
-    :: ListRuns
-listRuns =
-    ListRuns'
-    { _lrAssessmentARNs = Nothing
-    , _lrNextToken = Nothing
-    , _lrFilter = Nothing
-    , _lrMaxResults = Nothing
-    }
-
--- | The ARNs specifying the assessments whose runs you want to list.
-lrAssessmentARNs :: Lens' ListRuns [Text]
-lrAssessmentARNs = lens _lrAssessmentARNs (\ s a -> s{_lrAssessmentARNs = a}) . _Default . _Coerce;
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the __ListRuns__
--- action. Subsequent calls to the action fill __nextToken__ in the request
--- with the value of __NextToken__ from previous response to continue
--- listing data.
-lrNextToken :: Lens' ListRuns (Maybe Text)
-lrNextToken = lens _lrNextToken (\ s a -> s{_lrNextToken = a});
-
--- | You can use this parameter to specify a subset of data to be included in
--- the action\'s response.
---
--- For a record to match a filter, all specified filter attributes must
--- match. When multiple values are specified for a filter attribute, any of
--- the values can match.
-lrFilter :: Lens' ListRuns (Maybe RunsFilter)
-lrFilter = lens _lrFilter (\ s a -> s{_lrFilter = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-lrMaxResults :: Lens' ListRuns (Maybe Int)
-lrMaxResults = lens _lrMaxResults (\ s a -> s{_lrMaxResults = a});
-
-instance AWSRequest ListRuns where
-        type Rs ListRuns = ListRunsResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListRunsResponse' <$>
-                   (x .?> "runArnList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListRuns
-
-instance ToHeaders ListRuns where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.ListRuns" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON ListRuns where
-        toJSON ListRuns'{..}
-          = object
-              (catMaybes
-                 [("assessmentArns" .=) <$> _lrAssessmentARNs,
-                  ("nextToken" .=) <$> _lrNextToken,
-                  ("filter" .=) <$> _lrFilter,
-                  ("maxResults" .=) <$> _lrMaxResults])
-
-instance ToPath ListRuns where
-        toPath = const "/"
-
-instance ToQuery ListRuns where
-        toQuery = const mempty
-
--- | /See:/ 'listRunsResponse' smart constructor.
-data ListRunsResponse = ListRunsResponse'
-    { _lrrsRunARNList     :: !(Maybe [Text])
-    , _lrrsNextToken      :: !(Maybe Text)
-    , _lrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ListRunsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrrsRunARNList'
---
--- * 'lrrsNextToken'
---
--- * 'lrrsResponseStatus'
-listRunsResponse
-    :: Int -- ^ 'lrrsResponseStatus'
-    -> ListRunsResponse
-listRunsResponse pResponseStatus_ =
-    ListRunsResponse'
-    { _lrrsRunARNList = Nothing
-    , _lrrsNextToken = Nothing
-    , _lrrsResponseStatus = pResponseStatus_
-    }
-
--- | A list of ARNs specifying the assessment runs returned by the action.
-lrrsRunARNList :: Lens' ListRunsResponse [Text]
-lrrsRunARNList = lens _lrrsRunARNList (\ s a -> s{_lrrsRunARNList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-lrrsNextToken :: Lens' ListRunsResponse (Maybe Text)
-lrrsNextToken = lens _lrrsNextToken (\ s a -> s{_lrrsNextToken = a});
-
--- | The response status code.
-lrrsResponseStatus :: Lens' ListRunsResponse Int
-lrrsResponseStatus = lens _lrrsResponseStatus (\ s a -> s{_lrrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/ListTagsForResource.hs b/gen/Network/AWS/Inspector/ListTagsForResource.hs
--- a/gen/Network/AWS/Inspector/ListTagsForResource.hs
+++ b/gen/Network/AWS/Inspector/ListTagsForResource.hs
@@ -18,7 +18,7 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Lists all tags associated with a resource.
+-- Lists all tags associated with an assessment template.
 module Network.AWS.Inspector.ListTagsForResource
     (
     -- * Creating a Request
@@ -31,8 +31,8 @@
     , listTagsForResourceResponse
     , ListTagsForResourceResponse
     -- * Response Lenses
-    , ltfrrsTagList
     , ltfrrsResponseStatus
+    , ltfrrsTags
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -60,7 +60,8 @@
     { _ltfrResourceARN = pResourceARN_
     }
 
--- | The ARN specifying the resource whose tags you want to list.
+-- | The ARN that specifies the assessment template whose tags you want to
+-- list.
 ltfrResourceARN :: Lens' ListTagsForResource Text
 ltfrResourceARN = lens _ltfrResourceARN (\ s a -> s{_ltfrResourceARN = a});
 
@@ -72,10 +73,12 @@
           = receiveJSON
               (\ s h x ->
                  ListTagsForResourceResponse' <$>
-                   (x .?> "tagList" .!@ mempty) <*> (pure (fromEnum s)))
+                   (pure (fromEnum s)) <*> (x .?> "tags" .!@ mempty))
 
 instance Hashable ListTagsForResource
 
+instance NFData ListTagsForResource
+
 instance ToHeaders ListTagsForResource where
         toHeaders
           = const
@@ -100,30 +103,32 @@
 
 -- | /See:/ 'listTagsForResourceResponse' smart constructor.
 data ListTagsForResourceResponse = ListTagsForResourceResponse'
-    { _ltfrrsTagList        :: !(Maybe [Tag])
-    , _ltfrrsResponseStatus :: !Int
+    { _ltfrrsResponseStatus :: !Int
+    , _ltfrrsTags           :: ![Tag]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'ListTagsForResourceResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'ltfrrsTagList'
---
 -- * 'ltfrrsResponseStatus'
+--
+-- * 'ltfrrsTags'
 listTagsForResourceResponse
     :: Int -- ^ 'ltfrrsResponseStatus'
     -> ListTagsForResourceResponse
 listTagsForResourceResponse pResponseStatus_ =
     ListTagsForResourceResponse'
-    { _ltfrrsTagList = Nothing
-    , _ltfrrsResponseStatus = pResponseStatus_
+    { _ltfrrsResponseStatus = pResponseStatus_
+    , _ltfrrsTags = mempty
     }
 
--- | A collection of key and value pairs.
-ltfrrsTagList :: Lens' ListTagsForResourceResponse [Tag]
-ltfrrsTagList = lens _ltfrrsTagList (\ s a -> s{_ltfrrsTagList = a}) . _Default . _Coerce;
-
 -- | The response status code.
 ltfrrsResponseStatus :: Lens' ListTagsForResourceResponse Int
 ltfrrsResponseStatus = lens _ltfrrsResponseStatus (\ s a -> s{_ltfrrsResponseStatus = a});
+
+-- | A collection of key and value pairs.
+ltfrrsTags :: Lens' ListTagsForResourceResponse [Tag]
+ltfrrsTags = lens _ltfrrsTags (\ s a -> s{_ltfrrsTags = a}) . _Coerce;
+
+instance NFData ListTagsForResourceResponse
diff --git a/gen/Network/AWS/Inspector/LocalizeText.hs b/gen/Network/AWS/Inspector/LocalizeText.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/LocalizeText.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# 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.Inspector.LocalizeText
--- Copyright   : (c) 2013-2016 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)
---
--- Translates a textual identifier into a user-readable text in a specified
--- locale.
-module Network.AWS.Inspector.LocalizeText
-    (
-    -- * Creating a Request
-      localizeText
-    , LocalizeText
-    -- * Request Lenses
-    , ltLocalizedTexts
-    , ltLocale
-
-    -- * Destructuring the Response
-    , localizeTextResponse
-    , LocalizeTextResponse
-    -- * Response Lenses
-    , ltrsResults
-    , ltrsMessage
-    , ltrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'localizeText' smart constructor.
-data LocalizeText = LocalizeText'
-    { _ltLocalizedTexts :: ![LocalizedText]
-    , _ltLocale         :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LocalizeText' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ltLocalizedTexts'
---
--- * 'ltLocale'
-localizeText
-    :: Text -- ^ 'ltLocale'
-    -> LocalizeText
-localizeText pLocale_ =
-    LocalizeText'
-    { _ltLocalizedTexts = mempty
-    , _ltLocale = pLocale_
-    }
-
--- | A list of textual identifiers.
-ltLocalizedTexts :: Lens' LocalizeText [LocalizedText]
-ltLocalizedTexts = lens _ltLocalizedTexts (\ s a -> s{_ltLocalizedTexts = a}) . _Coerce;
-
--- | The locale that you want to translate a textual identifier into.
-ltLocale :: Lens' LocalizeText Text
-ltLocale = lens _ltLocale (\ s a -> s{_ltLocale = a});
-
-instance AWSRequest LocalizeText where
-        type Rs LocalizeText = LocalizeTextResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 LocalizeTextResponse' <$>
-                   (x .?> "results" .!@ mempty) <*> (x .?> "message")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable LocalizeText
-
-instance ToHeaders LocalizeText where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.LocalizeText" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON LocalizeText where
-        toJSON LocalizeText'{..}
-          = object
-              (catMaybes
-                 [Just ("localizedTexts" .= _ltLocalizedTexts),
-                  Just ("locale" .= _ltLocale)])
-
-instance ToPath LocalizeText where
-        toPath = const "/"
-
-instance ToQuery LocalizeText where
-        toQuery = const mempty
-
--- | /See:/ 'localizeTextResponse' smart constructor.
-data LocalizeTextResponse = LocalizeTextResponse'
-    { _ltrsResults        :: !(Maybe [Text])
-    , _ltrsMessage        :: !(Maybe Text)
-    , _ltrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LocalizeTextResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ltrsResults'
---
--- * 'ltrsMessage'
---
--- * 'ltrsResponseStatus'
-localizeTextResponse
-    :: Int -- ^ 'ltrsResponseStatus'
-    -> LocalizeTextResponse
-localizeTextResponse pResponseStatus_ =
-    LocalizeTextResponse'
-    { _ltrsResults = Nothing
-    , _ltrsMessage = Nothing
-    , _ltrsResponseStatus = pResponseStatus_
-    }
-
--- | The resulting list of user-readable texts.
-ltrsResults :: Lens' LocalizeTextResponse [Text]
-ltrsResults = lens _ltrsResults (\ s a -> s{_ltrsResults = a}) . _Default . _Coerce;
-
--- | Confirmation details of the action performed.
-ltrsMessage :: Lens' LocalizeTextResponse (Maybe Text)
-ltrsMessage = lens _ltrsMessage (\ s a -> s{_ltrsMessage = a});
-
--- | The response status code.
-ltrsResponseStatus :: Lens' LocalizeTextResponse Int
-ltrsResponseStatus = lens _ltrsResponseStatus (\ s a -> s{_ltrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/PreviewAgents.hs b/gen/Network/AWS/Inspector/PreviewAgents.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/PreviewAgents.hs
@@ -0,0 +1,170 @@
+{-# 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.Inspector.PreviewAgents
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Previews the agents installed on the EC2 instances that are part of the
+-- specified assessment target.
+module Network.AWS.Inspector.PreviewAgents
+    (
+    -- * Creating a Request
+      previewAgents
+    , PreviewAgents
+    -- * Request Lenses
+    , paNextToken
+    , paMaxResults
+    , paPreviewAgentsARN
+
+    -- * Destructuring the Response
+    , previewAgentsResponse
+    , PreviewAgentsResponse
+    -- * Response Lenses
+    , parsNextToken
+    , parsResponseStatus
+    , parsAgentPreviews
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'previewAgents' smart constructor.
+data PreviewAgents = PreviewAgents'
+    { _paNextToken        :: !(Maybe Text)
+    , _paMaxResults       :: !(Maybe Int)
+    , _paPreviewAgentsARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PreviewAgents' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'paNextToken'
+--
+-- * 'paMaxResults'
+--
+-- * 'paPreviewAgentsARN'
+previewAgents
+    :: Text -- ^ 'paPreviewAgentsARN'
+    -> PreviewAgents
+previewAgents pPreviewAgentsARN_ =
+    PreviewAgents'
+    { _paNextToken = Nothing
+    , _paMaxResults = Nothing
+    , _paPreviewAgentsARN = pPreviewAgentsARN_
+    }
+
+-- | You can use this parameter when paginating results. Set the value of
+-- this parameter to null on your first call to the __PreviewAgents__
+-- action. Subsequent calls to the action fill __nextToken__ in the request
+-- with the value of __NextToken__ from the previous response to continue
+-- listing data.
+paNextToken :: Lens' PreviewAgents (Maybe Text)
+paNextToken = lens _paNextToken (\ s a -> s{_paNextToken = a});
+
+-- | You can use this parameter to indicate the maximum number of items you
+-- want in the response. The default value is 10. The maximum value is 500.
+paMaxResults :: Lens' PreviewAgents (Maybe Int)
+paMaxResults = lens _paMaxResults (\ s a -> s{_paMaxResults = a});
+
+-- | The ARN of the assessment target whose agents you want to preview.
+paPreviewAgentsARN :: Lens' PreviewAgents Text
+paPreviewAgentsARN = lens _paPreviewAgentsARN (\ s a -> s{_paPreviewAgentsARN = a});
+
+instance AWSRequest PreviewAgents where
+        type Rs PreviewAgents = PreviewAgentsResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 PreviewAgentsResponse' <$>
+                   (x .?> "nextToken") <*> (pure (fromEnum s)) <*>
+                     (x .?> "agentPreviews" .!@ mempty))
+
+instance Hashable PreviewAgents
+
+instance NFData PreviewAgents
+
+instance ToHeaders PreviewAgents where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.PreviewAgents" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON PreviewAgents where
+        toJSON PreviewAgents'{..}
+          = object
+              (catMaybes
+                 [("nextToken" .=) <$> _paNextToken,
+                  ("maxResults" .=) <$> _paMaxResults,
+                  Just ("previewAgentsArn" .= _paPreviewAgentsARN)])
+
+instance ToPath PreviewAgents where
+        toPath = const "/"
+
+instance ToQuery PreviewAgents where
+        toQuery = const mempty
+
+-- | /See:/ 'previewAgentsResponse' smart constructor.
+data PreviewAgentsResponse = PreviewAgentsResponse'
+    { _parsNextToken      :: !(Maybe Text)
+    , _parsResponseStatus :: !Int
+    , _parsAgentPreviews  :: ![AgentPreview]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'PreviewAgentsResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'parsNextToken'
+--
+-- * 'parsResponseStatus'
+--
+-- * 'parsAgentPreviews'
+previewAgentsResponse
+    :: Int -- ^ 'parsResponseStatus'
+    -> PreviewAgentsResponse
+previewAgentsResponse pResponseStatus_ =
+    PreviewAgentsResponse'
+    { _parsNextToken = Nothing
+    , _parsResponseStatus = pResponseStatus_
+    , _parsAgentPreviews = mempty
+    }
+
+-- | When a response is generated, if there is more data to be listed, this
+-- parameter is present in the response and contains the value to use for
+-- the __nextToken__ parameter in a subsequent pagination request. If there
+-- is no more data to be listed, this parameter is set to null.
+parsNextToken :: Lens' PreviewAgentsResponse (Maybe Text)
+parsNextToken = lens _parsNextToken (\ s a -> s{_parsNextToken = a});
+
+-- | The response status code.
+parsResponseStatus :: Lens' PreviewAgentsResponse Int
+parsResponseStatus = lens _parsResponseStatus (\ s a -> s{_parsResponseStatus = a});
+
+-- | The resulting list of agents.
+parsAgentPreviews :: Lens' PreviewAgentsResponse [AgentPreview]
+parsAgentPreviews = lens _parsAgentPreviews (\ s a -> s{_parsAgentPreviews = a}) . _Coerce;
+
+instance NFData PreviewAgentsResponse
diff --git a/gen/Network/AWS/Inspector/PreviewAgentsForResourceGroup.hs b/gen/Network/AWS/Inspector/PreviewAgentsForResourceGroup.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/PreviewAgentsForResourceGroup.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# 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.Inspector.PreviewAgentsForResourceGroup
--- Copyright   : (c) 2013-2016 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)
---
--- Previews the agents installed on the EC2 instances that are included in
--- the application created with the specified resource group.
-module Network.AWS.Inspector.PreviewAgentsForResourceGroup
-    (
-    -- * Creating a Request
-      previewAgentsForResourceGroup
-    , PreviewAgentsForResourceGroup
-    -- * Request Lenses
-    , pafrgNextToken
-    , pafrgMaxResults
-    , pafrgResourceGroupARN
-
-    -- * Destructuring the Response
-    , previewAgentsForResourceGroupResponse
-    , PreviewAgentsForResourceGroupResponse
-    -- * Response Lenses
-    , pafrgrsAgentPreviewList
-    , pafrgrsNextToken
-    , pafrgrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'previewAgentsForResourceGroup' smart constructor.
-data PreviewAgentsForResourceGroup = PreviewAgentsForResourceGroup'
-    { _pafrgNextToken        :: !(Maybe Text)
-    , _pafrgMaxResults       :: !(Maybe Int)
-    , _pafrgResourceGroupARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PreviewAgentsForResourceGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pafrgNextToken'
---
--- * 'pafrgMaxResults'
---
--- * 'pafrgResourceGroupARN'
-previewAgentsForResourceGroup
-    :: Text -- ^ 'pafrgResourceGroupARN'
-    -> PreviewAgentsForResourceGroup
-previewAgentsForResourceGroup pResourceGroupARN_ =
-    PreviewAgentsForResourceGroup'
-    { _pafrgNextToken = Nothing
-    , _pafrgMaxResults = Nothing
-    , _pafrgResourceGroupARN = pResourceGroupARN_
-    }
-
--- | You can use this parameter when paginating results. Set the value of
--- this parameter to \'null\' on your first call to the
--- __PreviewAgentsForResourceGroup__ action. Subsequent calls to the action
--- fill __nextToken__ in the request with the value of __NextToken__ from
--- previous response to continue listing data.
-pafrgNextToken :: Lens' PreviewAgentsForResourceGroup (Maybe Text)
-pafrgNextToken = lens _pafrgNextToken (\ s a -> s{_pafrgNextToken = a});
-
--- | You can use this parameter to indicate the maximum number of items you
--- want in the response. The default value is 10. The maximum value is 500.
-pafrgMaxResults :: Lens' PreviewAgentsForResourceGroup (Maybe Int)
-pafrgMaxResults = lens _pafrgMaxResults (\ s a -> s{_pafrgMaxResults = a});
-
--- | The ARN of the resource group that is used to create an application.
-pafrgResourceGroupARN :: Lens' PreviewAgentsForResourceGroup Text
-pafrgResourceGroupARN = lens _pafrgResourceGroupARN (\ s a -> s{_pafrgResourceGroupARN = a});
-
-instance AWSRequest PreviewAgentsForResourceGroup
-         where
-        type Rs PreviewAgentsForResourceGroup =
-             PreviewAgentsForResourceGroupResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 PreviewAgentsForResourceGroupResponse' <$>
-                   (x .?> "agentPreviewList" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable PreviewAgentsForResourceGroup
-
-instance ToHeaders PreviewAgentsForResourceGroup
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.PreviewAgentsForResourceGroup" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON PreviewAgentsForResourceGroup where
-        toJSON PreviewAgentsForResourceGroup'{..}
-          = object
-              (catMaybes
-                 [("nextToken" .=) <$> _pafrgNextToken,
-                  ("maxResults" .=) <$> _pafrgMaxResults,
-                  Just ("resourceGroupArn" .= _pafrgResourceGroupARN)])
-
-instance ToPath PreviewAgentsForResourceGroup where
-        toPath = const "/"
-
-instance ToQuery PreviewAgentsForResourceGroup where
-        toQuery = const mempty
-
--- | /See:/ 'previewAgentsForResourceGroupResponse' smart constructor.
-data PreviewAgentsForResourceGroupResponse = PreviewAgentsForResourceGroupResponse'
-    { _pafrgrsAgentPreviewList :: !(Maybe [AgentPreview])
-    , _pafrgrsNextToken        :: !(Maybe Text)
-    , _pafrgrsResponseStatus   :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'PreviewAgentsForResourceGroupResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pafrgrsAgentPreviewList'
---
--- * 'pafrgrsNextToken'
---
--- * 'pafrgrsResponseStatus'
-previewAgentsForResourceGroupResponse
-    :: Int -- ^ 'pafrgrsResponseStatus'
-    -> PreviewAgentsForResourceGroupResponse
-previewAgentsForResourceGroupResponse pResponseStatus_ =
-    PreviewAgentsForResourceGroupResponse'
-    { _pafrgrsAgentPreviewList = Nothing
-    , _pafrgrsNextToken = Nothing
-    , _pafrgrsResponseStatus = pResponseStatus_
-    }
-
--- | The resulting list of agents.
-pafrgrsAgentPreviewList :: Lens' PreviewAgentsForResourceGroupResponse [AgentPreview]
-pafrgrsAgentPreviewList = lens _pafrgrsAgentPreviewList (\ s a -> s{_pafrgrsAgentPreviewList = a}) . _Default . _Coerce;
-
--- | When a response is generated, if there is more data to be listed, this
--- parameter is present in the response and contains the value to use for
--- the __nextToken__ parameter in a subsequent pagination request. If there
--- is no more data to be listed, this parameter is set to \'null\'.
-pafrgrsNextToken :: Lens' PreviewAgentsForResourceGroupResponse (Maybe Text)
-pafrgrsNextToken = lens _pafrgrsNextToken (\ s a -> s{_pafrgrsNextToken = a});
-
--- | The response status code.
-pafrgrsResponseStatus :: Lens' PreviewAgentsForResourceGroupResponse Int
-pafrgrsResponseStatus = lens _pafrgrsResponseStatus (\ s a -> s{_pafrgrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/RegisterCrossAccountAccessRole.hs b/gen/Network/AWS/Inspector/RegisterCrossAccountAccessRole.hs
--- a/gen/Network/AWS/Inspector/RegisterCrossAccountAccessRole.hs
+++ b/gen/Network/AWS/Inspector/RegisterCrossAccountAccessRole.hs
@@ -18,8 +18,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Register the role that Inspector uses to list your EC2 instances during
--- the assessment.
+-- Registers the IAM role that Amazon Inspector uses to list your EC2
+-- instances at the start of the assessment run or when you call the
+-- < PreviewAgents> action.
 module Network.AWS.Inspector.RegisterCrossAccountAccessRole
     (
     -- * Creating a Request
@@ -31,9 +32,6 @@
     -- * Destructuring the Response
     , registerCrossAccountAccessRoleResponse
     , RegisterCrossAccountAccessRoleResponse
-    -- * Response Lenses
-    , rcaarrsMessage
-    , rcaarrsResponseStatus
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -61,8 +59,9 @@
     { _rcaarRoleARN = pRoleARN_
     }
 
--- | The ARN of the IAM role that Inspector uses to list your EC2 instances
--- during the assessment.
+-- | The ARN of the IAM role that Amazon Inspector uses to list your EC2
+-- instances during the assessment run or when you call the
+-- < PreviewAgents> action.
 rcaarRoleARN :: Lens' RegisterCrossAccountAccessRole Text
 rcaarRoleARN = lens _rcaarRoleARN (\ s a -> s{_rcaarRoleARN = a});
 
@@ -72,13 +71,12 @@
              RegisterCrossAccountAccessRoleResponse
         request = postJSON inspector
         response
-          = receiveJSON
-              (\ s h x ->
-                 RegisterCrossAccountAccessRoleResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
+          = receiveNull RegisterCrossAccountAccessRoleResponse'
 
 instance Hashable RegisterCrossAccountAccessRole
 
+instance NFData RegisterCrossAccountAccessRole
+
 instance ToHeaders RegisterCrossAccountAccessRole
          where
         toHeaders
@@ -102,31 +100,16 @@
         toQuery = const mempty
 
 -- | /See:/ 'registerCrossAccountAccessRoleResponse' smart constructor.
-data RegisterCrossAccountAccessRoleResponse = RegisterCrossAccountAccessRoleResponse'
-    { _rcaarrsMessage        :: !(Maybe Text)
-    , _rcaarrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+data RegisterCrossAccountAccessRoleResponse =
+    RegisterCrossAccountAccessRoleResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'RegisterCrossAccountAccessRoleResponse' with the minimum fields required to make a request.
 --
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcaarrsMessage'
---
--- * 'rcaarrsResponseStatus'
 registerCrossAccountAccessRoleResponse
-    :: Int -- ^ 'rcaarrsResponseStatus'
-    -> RegisterCrossAccountAccessRoleResponse
-registerCrossAccountAccessRoleResponse pResponseStatus_ =
+    :: RegisterCrossAccountAccessRoleResponse
+registerCrossAccountAccessRoleResponse =
     RegisterCrossAccountAccessRoleResponse'
-    { _rcaarrsMessage = Nothing
-    , _rcaarrsResponseStatus = pResponseStatus_
-    }
 
--- | Confirmation details of the action performed.
-rcaarrsMessage :: Lens' RegisterCrossAccountAccessRoleResponse (Maybe Text)
-rcaarrsMessage = lens _rcaarrsMessage (\ s a -> s{_rcaarrsMessage = a});
-
--- | The response status code.
-rcaarrsResponseStatus :: Lens' RegisterCrossAccountAccessRoleResponse Int
-rcaarrsResponseStatus = lens _rcaarrsResponseStatus (\ s a -> s{_rcaarrsResponseStatus = a});
+instance NFData
+         RegisterCrossAccountAccessRoleResponse
diff --git a/gen/Network/AWS/Inspector/RemoveAttributesFromFindings.hs b/gen/Network/AWS/Inspector/RemoveAttributesFromFindings.hs
--- a/gen/Network/AWS/Inspector/RemoveAttributesFromFindings.hs
+++ b/gen/Network/AWS/Inspector/RemoveAttributesFromFindings.hs
@@ -18,9 +18,9 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Removes the entire attribute (key and value pair) from the findings
--- specified by the finding ARNs where an attribute with the specified key
--- exists.
+-- Removes entire attributes (key and value pairs) from the findings that
+-- are specified by the ARNs of the findings where an attribute with the
+-- specified key exists.
 module Network.AWS.Inspector.RemoveAttributesFromFindings
     (
     -- * Creating a Request
@@ -34,8 +34,8 @@
     , removeAttributesFromFindingsResponse
     , RemoveAttributesFromFindingsResponse
     -- * Response Lenses
-    , raffrsMessage
     , raffrsResponseStatus
+    , raffrsFailedItems
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -47,7 +47,7 @@
 
 -- | /See:/ 'removeAttributesFromFindings' smart constructor.
 data RemoveAttributesFromFindings = RemoveAttributesFromFindings'
-    { _raffFindingARNs   :: ![Text]
+    { _raffFindingARNs   :: !(List1 Text)
     , _raffAttributeKeys :: ![Text]
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
@@ -59,17 +59,18 @@
 --
 -- * 'raffAttributeKeys'
 removeAttributesFromFindings
-    :: RemoveAttributesFromFindings
-removeAttributesFromFindings =
+    :: NonEmpty Text -- ^ 'raffFindingARNs'
+    -> RemoveAttributesFromFindings
+removeAttributesFromFindings pFindingARNs_ =
     RemoveAttributesFromFindings'
-    { _raffFindingARNs = mempty
+    { _raffFindingARNs = _List1 # pFindingARNs_
     , _raffAttributeKeys = mempty
     }
 
--- | The ARNs specifying the findings that you want to remove attributes
+-- | The ARNs that specify the findings that you want to remove attributes
 -- from.
-raffFindingARNs :: Lens' RemoveAttributesFromFindings [Text]
-raffFindingARNs = lens _raffFindingARNs (\ s a -> s{_raffFindingARNs = a}) . _Coerce;
+raffFindingARNs :: Lens' RemoveAttributesFromFindings (NonEmpty Text)
+raffFindingARNs = lens _raffFindingARNs (\ s a -> s{_raffFindingARNs = a}) . _List1;
 
 -- | The array of attribute keys that you want to remove from specified
 -- findings.
@@ -85,10 +86,13 @@
           = receiveJSON
               (\ s h x ->
                  RemoveAttributesFromFindingsResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
+                   (pure (fromEnum s)) <*>
+                     (x .?> "failedItems" .!@ mempty))
 
 instance Hashable RemoveAttributesFromFindings
 
+instance NFData RemoveAttributesFromFindings
+
 instance ToHeaders RemoveAttributesFromFindings where
         toHeaders
           = const
@@ -114,30 +118,33 @@
 
 -- | /See:/ 'removeAttributesFromFindingsResponse' smart constructor.
 data RemoveAttributesFromFindingsResponse = RemoveAttributesFromFindingsResponse'
-    { _raffrsMessage        :: !(Maybe Text)
-    , _raffrsResponseStatus :: !Int
+    { _raffrsResponseStatus :: !Int
+    , _raffrsFailedItems    :: !(Map Text FailedItemDetails)
     } deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'RemoveAttributesFromFindingsResponse' with the minimum fields required to make a request.
 --
 -- Use one of the following lenses to modify other fields as desired:
 --
--- * 'raffrsMessage'
---
 -- * 'raffrsResponseStatus'
+--
+-- * 'raffrsFailedItems'
 removeAttributesFromFindingsResponse
     :: Int -- ^ 'raffrsResponseStatus'
     -> RemoveAttributesFromFindingsResponse
 removeAttributesFromFindingsResponse pResponseStatus_ =
     RemoveAttributesFromFindingsResponse'
-    { _raffrsMessage = Nothing
-    , _raffrsResponseStatus = pResponseStatus_
+    { _raffrsResponseStatus = pResponseStatus_
+    , _raffrsFailedItems = mempty
     }
 
--- | Confirmation details of the action performed.
-raffrsMessage :: Lens' RemoveAttributesFromFindingsResponse (Maybe Text)
-raffrsMessage = lens _raffrsMessage (\ s a -> s{_raffrsMessage = a});
-
 -- | The response status code.
 raffrsResponseStatus :: Lens' RemoveAttributesFromFindingsResponse Int
 raffrsResponseStatus = lens _raffrsResponseStatus (\ s a -> s{_raffrsResponseStatus = a});
+
+-- | Attributes details that cannot be described. An error code is provided
+-- for each failed item.
+raffrsFailedItems :: Lens' RemoveAttributesFromFindingsResponse (HashMap Text FailedItemDetails)
+raffrsFailedItems = lens _raffrsFailedItems (\ s a -> s{_raffrsFailedItems = a}) . _Map;
+
+instance NFData RemoveAttributesFromFindingsResponse
diff --git a/gen/Network/AWS/Inspector/RunAssessment.hs b/gen/Network/AWS/Inspector/RunAssessment.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/RunAssessment.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# 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.Inspector.RunAssessment
--- Copyright   : (c) 2013-2016 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)
---
--- Starts the analysis of the application’s behavior against selected rule
--- packages for the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.RunAssessment
-    (
-    -- * Creating a Request
-      runAssessment
-    , RunAssessment
-    -- * Request Lenses
-    , raAssessmentARN
-    , raRunName
-
-    -- * Destructuring the Response
-    , runAssessmentResponse
-    , RunAssessmentResponse
-    -- * Response Lenses
-    , rarsRunARN
-    , rarsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'runAssessment' smart constructor.
-data RunAssessment = RunAssessment'
-    { _raAssessmentARN :: !Text
-    , _raRunName       :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RunAssessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'raAssessmentARN'
---
--- * 'raRunName'
-runAssessment
-    :: Text -- ^ 'raAssessmentARN'
-    -> Text -- ^ 'raRunName'
-    -> RunAssessment
-runAssessment pAssessmentARN_ pRunName_ =
-    RunAssessment'
-    { _raAssessmentARN = pAssessmentARN_
-    , _raRunName = pRunName_
-    }
-
--- | The ARN of the assessment that you want to run.
-raAssessmentARN :: Lens' RunAssessment Text
-raAssessmentARN = lens _raAssessmentARN (\ s a -> s{_raAssessmentARN = a});
-
--- | A name specifying the run of the assessment.
-raRunName :: Lens' RunAssessment Text
-raRunName = lens _raRunName (\ s a -> s{_raRunName = a});
-
-instance AWSRequest RunAssessment where
-        type Rs RunAssessment = RunAssessmentResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 RunAssessmentResponse' <$>
-                   (x .?> "runArn") <*> (pure (fromEnum s)))
-
-instance Hashable RunAssessment
-
-instance ToHeaders RunAssessment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.RunAssessment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON RunAssessment where
-        toJSON RunAssessment'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _raAssessmentARN),
-                  Just ("runName" .= _raRunName)])
-
-instance ToPath RunAssessment where
-        toPath = const "/"
-
-instance ToQuery RunAssessment where
-        toQuery = const mempty
-
--- | /See:/ 'runAssessmentResponse' smart constructor.
-data RunAssessmentResponse = RunAssessmentResponse'
-    { _rarsRunARN         :: !(Maybe Text)
-    , _rarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RunAssessmentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rarsRunARN'
---
--- * 'rarsResponseStatus'
-runAssessmentResponse
-    :: Int -- ^ 'rarsResponseStatus'
-    -> RunAssessmentResponse
-runAssessmentResponse pResponseStatus_ =
-    RunAssessmentResponse'
-    { _rarsRunARN = Nothing
-    , _rarsResponseStatus = pResponseStatus_
-    }
-
--- | The ARN specifying the run of the assessment.
-rarsRunARN :: Lens' RunAssessmentResponse (Maybe Text)
-rarsRunARN = lens _rarsRunARN (\ s a -> s{_rarsRunARN = a});
-
--- | The response status code.
-rarsResponseStatus :: Lens' RunAssessmentResponse Int
-rarsResponseStatus = lens _rarsResponseStatus (\ s a -> s{_rarsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/SetTagsForResource.hs b/gen/Network/AWS/Inspector/SetTagsForResource.hs
--- a/gen/Network/AWS/Inspector/SetTagsForResource.hs
+++ b/gen/Network/AWS/Inspector/SetTagsForResource.hs
@@ -18,8 +18,8 @@
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
 --
--- Sets tags (key and value pairs) to the assessment specified by the
--- assessment ARN.
+-- Sets tags (key and value pairs) to the assessment template that is
+-- specified by the ARN of the assessment template.
 module Network.AWS.Inspector.SetTagsForResource
     (
     -- * Creating a Request
@@ -32,9 +32,6 @@
     -- * Destructuring the Response
     , setTagsForResourceResponse
     , SetTagsForResourceResponse
-    -- * Response Lenses
-    , stfrrsMessage
-    , stfrrsResponseStatus
     ) where
 
 import           Network.AWS.Inspector.Types
@@ -66,12 +63,12 @@
     , _stfrResourceARN = pResourceARN_
     }
 
--- | A collection of key and value pairs that you want to set to an
--- assessment.
+-- | A collection of key and value pairs that you want to set to the
+-- assessment template.
 stfrTags :: Lens' SetTagsForResource [Tag]
 stfrTags = lens _stfrTags (\ s a -> s{_stfrTags = a}) . _Default . _Coerce;
 
--- | The ARN of the assessment that you want to set tags to.
+-- | The ARN of the assessment template that you want to set tags to.
 stfrResourceARN :: Lens' SetTagsForResource Text
 stfrResourceARN = lens _stfrResourceARN (\ s a -> s{_stfrResourceARN = a});
 
@@ -79,14 +76,12 @@
         type Rs SetTagsForResource =
              SetTagsForResourceResponse
         request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 SetTagsForResourceResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
+        response = receiveNull SetTagsForResourceResponse'
 
 instance Hashable SetTagsForResource
 
+instance NFData SetTagsForResource
+
 instance ToHeaders SetTagsForResource where
         toHeaders
           = const
@@ -111,31 +106,14 @@
         toQuery = const mempty
 
 -- | /See:/ 'setTagsForResourceResponse' smart constructor.
-data SetTagsForResourceResponse = SetTagsForResourceResponse'
-    { _stfrrsMessage        :: !(Maybe Text)
-    , _stfrrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+data SetTagsForResourceResponse =
+    SetTagsForResourceResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
 
 -- | Creates a value of 'SetTagsForResourceResponse' with the minimum fields required to make a request.
 --
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'stfrrsMessage'
---
--- * 'stfrrsResponseStatus'
 setTagsForResourceResponse
-    :: Int -- ^ 'stfrrsResponseStatus'
-    -> SetTagsForResourceResponse
-setTagsForResourceResponse pResponseStatus_ =
-    SetTagsForResourceResponse'
-    { _stfrrsMessage = Nothing
-    , _stfrrsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-stfrrsMessage :: Lens' SetTagsForResourceResponse (Maybe Text)
-stfrrsMessage = lens _stfrrsMessage (\ s a -> s{_stfrrsMessage = a});
+    :: SetTagsForResourceResponse
+setTagsForResourceResponse = SetTagsForResourceResponse'
 
--- | The response status code.
-stfrrsResponseStatus :: Lens' SetTagsForResourceResponse Int
-stfrrsResponseStatus = lens _stfrrsResponseStatus (\ s a -> s{_stfrrsResponseStatus = a});
+instance NFData SetTagsForResourceResponse
diff --git a/gen/Network/AWS/Inspector/StartAssessmentRun.hs b/gen/Network/AWS/Inspector/StartAssessmentRun.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/StartAssessmentRun.hs
@@ -0,0 +1,151 @@
+{-# 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.Inspector.StartAssessmentRun
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Starts the assessment run specified by the ARN of the assessment
+-- template. For this API to function properly, you must not exceed the
+-- limit of running up to 500 concurrent agents per AWS account.
+module Network.AWS.Inspector.StartAssessmentRun
+    (
+    -- * Creating a Request
+      startAssessmentRun
+    , StartAssessmentRun
+    -- * Request Lenses
+    , sarAssessmentRunName
+    , sarAssessmentTemplateARN
+
+    -- * Destructuring the Response
+    , startAssessmentRunResponse
+    , StartAssessmentRunResponse
+    -- * Response Lenses
+    , sarrsResponseStatus
+    , sarrsAssessmentRunARN
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'startAssessmentRun' smart constructor.
+data StartAssessmentRun = StartAssessmentRun'
+    { _sarAssessmentRunName     :: !(Maybe Text)
+    , _sarAssessmentTemplateARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StartAssessmentRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sarAssessmentRunName'
+--
+-- * 'sarAssessmentTemplateARN'
+startAssessmentRun
+    :: Text -- ^ 'sarAssessmentTemplateARN'
+    -> StartAssessmentRun
+startAssessmentRun pAssessmentTemplateARN_ =
+    StartAssessmentRun'
+    { _sarAssessmentRunName = Nothing
+    , _sarAssessmentTemplateARN = pAssessmentTemplateARN_
+    }
+
+-- | You can specify the name for the assessment run, or you can use the
+-- auto-generated name that is based on the assessment template name. The
+-- name must be unique for the assessment template.
+sarAssessmentRunName :: Lens' StartAssessmentRun (Maybe Text)
+sarAssessmentRunName = lens _sarAssessmentRunName (\ s a -> s{_sarAssessmentRunName = a});
+
+-- | The ARN of the assessment template of the assessment run that you want
+-- to start.
+sarAssessmentTemplateARN :: Lens' StartAssessmentRun Text
+sarAssessmentTemplateARN = lens _sarAssessmentTemplateARN (\ s a -> s{_sarAssessmentTemplateARN = a});
+
+instance AWSRequest StartAssessmentRun where
+        type Rs StartAssessmentRun =
+             StartAssessmentRunResponse
+        request = postJSON inspector
+        response
+          = receiveJSON
+              (\ s h x ->
+                 StartAssessmentRunResponse' <$>
+                   (pure (fromEnum s)) <*> (x .:> "assessmentRunArn"))
+
+instance Hashable StartAssessmentRun
+
+instance NFData StartAssessmentRun
+
+instance ToHeaders StartAssessmentRun where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.StartAssessmentRun" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON StartAssessmentRun where
+        toJSON StartAssessmentRun'{..}
+          = object
+              (catMaybes
+                 [("assessmentRunName" .=) <$> _sarAssessmentRunName,
+                  Just
+                    ("assessmentTemplateArn" .=
+                       _sarAssessmentTemplateARN)])
+
+instance ToPath StartAssessmentRun where
+        toPath = const "/"
+
+instance ToQuery StartAssessmentRun where
+        toQuery = const mempty
+
+-- | /See:/ 'startAssessmentRunResponse' smart constructor.
+data StartAssessmentRunResponse = StartAssessmentRunResponse'
+    { _sarrsResponseStatus   :: !Int
+    , _sarrsAssessmentRunARN :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StartAssessmentRunResponse' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sarrsResponseStatus'
+--
+-- * 'sarrsAssessmentRunARN'
+startAssessmentRunResponse
+    :: Int -- ^ 'sarrsResponseStatus'
+    -> Text -- ^ 'sarrsAssessmentRunARN'
+    -> StartAssessmentRunResponse
+startAssessmentRunResponse pResponseStatus_ pAssessmentRunARN_ =
+    StartAssessmentRunResponse'
+    { _sarrsResponseStatus = pResponseStatus_
+    , _sarrsAssessmentRunARN = pAssessmentRunARN_
+    }
+
+-- | The response status code.
+sarrsResponseStatus :: Lens' StartAssessmentRunResponse Int
+sarrsResponseStatus = lens _sarrsResponseStatus (\ s a -> s{_sarrsResponseStatus = a});
+
+-- | The ARN of the assessment run that has been started.
+sarrsAssessmentRunARN :: Lens' StartAssessmentRunResponse Text
+sarrsAssessmentRunARN = lens _sarrsAssessmentRunARN (\ s a -> s{_sarrsAssessmentRunARN = a});
+
+instance NFData StartAssessmentRunResponse
diff --git a/gen/Network/AWS/Inspector/StartDataCollection.hs b/gen/Network/AWS/Inspector/StartDataCollection.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/StartDataCollection.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# 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.Inspector.StartDataCollection
--- Copyright   : (c) 2013-2016 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)
---
--- Starts data collection for the assessment specified by the assessment
--- ARN. For this API to function properly, you must not exceed the limit of
--- running up to 500 concurrent agents per AWS account.
-module Network.AWS.Inspector.StartDataCollection
-    (
-    -- * Creating a Request
-      startDataCollection
-    , StartDataCollection
-    -- * Request Lenses
-    , sdcAssessmentARN
-
-    -- * Destructuring the Response
-    , startDataCollectionResponse
-    , StartDataCollectionResponse
-    -- * Response Lenses
-    , srsMessage
-    , srsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'startDataCollection' smart constructor.
-newtype StartDataCollection = StartDataCollection'
-    { _sdcAssessmentARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StartDataCollection' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdcAssessmentARN'
-startDataCollection
-    :: Text -- ^ 'sdcAssessmentARN'
-    -> StartDataCollection
-startDataCollection pAssessmentARN_ =
-    StartDataCollection'
-    { _sdcAssessmentARN = pAssessmentARN_
-    }
-
--- | The ARN of the assessment for which you want to start the data
--- collection process.
-sdcAssessmentARN :: Lens' StartDataCollection Text
-sdcAssessmentARN = lens _sdcAssessmentARN (\ s a -> s{_sdcAssessmentARN = a});
-
-instance AWSRequest StartDataCollection where
-        type Rs StartDataCollection =
-             StartDataCollectionResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 StartDataCollectionResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable StartDataCollection
-
-instance ToHeaders StartDataCollection where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.StartDataCollection" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON StartDataCollection where
-        toJSON StartDataCollection'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _sdcAssessmentARN)])
-
-instance ToPath StartDataCollection where
-        toPath = const "/"
-
-instance ToQuery StartDataCollection where
-        toQuery = const mempty
-
--- | /See:/ 'startDataCollectionResponse' smart constructor.
-data StartDataCollectionResponse = StartDataCollectionResponse'
-    { _srsMessage        :: !(Maybe Text)
-    , _srsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StartDataCollectionResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'srsMessage'
---
--- * 'srsResponseStatus'
-startDataCollectionResponse
-    :: Int -- ^ 'srsResponseStatus'
-    -> StartDataCollectionResponse
-startDataCollectionResponse pResponseStatus_ =
-    StartDataCollectionResponse'
-    { _srsMessage = Nothing
-    , _srsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-srsMessage :: Lens' StartDataCollectionResponse (Maybe Text)
-srsMessage = lens _srsMessage (\ s a -> s{_srsMessage = a});
-
--- | The response status code.
-srsResponseStatus :: Lens' StartDataCollectionResponse Int
-srsResponseStatus = lens _srsResponseStatus (\ s a -> s{_srsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/StopAssessmentRun.hs b/gen/Network/AWS/Inspector/StopAssessmentRun.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/StopAssessmentRun.hs
@@ -0,0 +1,106 @@
+{-# 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.Inspector.StopAssessmentRun
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Stops the assessment run that is specified by the ARN of the assessment
+-- run.
+module Network.AWS.Inspector.StopAssessmentRun
+    (
+    -- * Creating a Request
+      stopAssessmentRun
+    , StopAssessmentRun
+    -- * Request Lenses
+    , sarAssessmentRunARN
+
+    -- * Destructuring the Response
+    , stopAssessmentRunResponse
+    , StopAssessmentRunResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'stopAssessmentRun' smart constructor.
+newtype StopAssessmentRun = StopAssessmentRun'
+    { _sarAssessmentRunARN :: Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StopAssessmentRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sarAssessmentRunARN'
+stopAssessmentRun
+    :: Text -- ^ 'sarAssessmentRunARN'
+    -> StopAssessmentRun
+stopAssessmentRun pAssessmentRunARN_ =
+    StopAssessmentRun'
+    { _sarAssessmentRunARN = pAssessmentRunARN_
+    }
+
+-- | The ARN of the assessment run that you want to stop.
+sarAssessmentRunARN :: Lens' StopAssessmentRun Text
+sarAssessmentRunARN = lens _sarAssessmentRunARN (\ s a -> s{_sarAssessmentRunARN = a});
+
+instance AWSRequest StopAssessmentRun where
+        type Rs StopAssessmentRun = StopAssessmentRunResponse
+        request = postJSON inspector
+        response = receiveNull StopAssessmentRunResponse'
+
+instance Hashable StopAssessmentRun
+
+instance NFData StopAssessmentRun
+
+instance ToHeaders StopAssessmentRun where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.StopAssessmentRun" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON StopAssessmentRun where
+        toJSON StopAssessmentRun'{..}
+          = object
+              (catMaybes
+                 [Just ("assessmentRunArn" .= _sarAssessmentRunARN)])
+
+instance ToPath StopAssessmentRun where
+        toPath = const "/"
+
+instance ToQuery StopAssessmentRun where
+        toQuery = const mempty
+
+-- | /See:/ 'stopAssessmentRunResponse' smart constructor.
+data StopAssessmentRunResponse =
+    StopAssessmentRunResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'StopAssessmentRunResponse' with the minimum fields required to make a request.
+--
+stopAssessmentRunResponse
+    :: StopAssessmentRunResponse
+stopAssessmentRunResponse = StopAssessmentRunResponse'
+
+instance NFData StopAssessmentRunResponse
diff --git a/gen/Network/AWS/Inspector/StopDataCollection.hs b/gen/Network/AWS/Inspector/StopDataCollection.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/StopDataCollection.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# 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.Inspector.StopDataCollection
--- Copyright   : (c) 2013-2016 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)
---
--- Stop data collection for the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.StopDataCollection
-    (
-    -- * Creating a Request
-      stopDataCollection
-    , StopDataCollection
-    -- * Request Lenses
-    , sAssessmentARN
-
-    -- * Destructuring the Response
-    , stopDataCollectionResponse
-    , StopDataCollectionResponse
-    -- * Response Lenses
-    , sdcrsMessage
-    , sdcrsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'stopDataCollection' smart constructor.
-newtype StopDataCollection = StopDataCollection'
-    { _sAssessmentARN :: Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StopDataCollection' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sAssessmentARN'
-stopDataCollection
-    :: Text -- ^ 'sAssessmentARN'
-    -> StopDataCollection
-stopDataCollection pAssessmentARN_ =
-    StopDataCollection'
-    { _sAssessmentARN = pAssessmentARN_
-    }
-
--- | The ARN of the assessment for which you want to stop the data collection
--- process.
-sAssessmentARN :: Lens' StopDataCollection Text
-sAssessmentARN = lens _sAssessmentARN (\ s a -> s{_sAssessmentARN = a});
-
-instance AWSRequest StopDataCollection where
-        type Rs StopDataCollection =
-             StopDataCollectionResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 StopDataCollectionResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable StopDataCollection
-
-instance ToHeaders StopDataCollection where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.StopDataCollection" ::
-                       ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON StopDataCollection where
-        toJSON StopDataCollection'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _sAssessmentARN)])
-
-instance ToPath StopDataCollection where
-        toPath = const "/"
-
-instance ToQuery StopDataCollection where
-        toQuery = const mempty
-
--- | /See:/ 'stopDataCollectionResponse' smart constructor.
-data StopDataCollectionResponse = StopDataCollectionResponse'
-    { _sdcrsMessage        :: !(Maybe Text)
-    , _sdcrsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'StopDataCollectionResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdcrsMessage'
---
--- * 'sdcrsResponseStatus'
-stopDataCollectionResponse
-    :: Int -- ^ 'sdcrsResponseStatus'
-    -> StopDataCollectionResponse
-stopDataCollectionResponse pResponseStatus_ =
-    StopDataCollectionResponse'
-    { _sdcrsMessage = Nothing
-    , _sdcrsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-sdcrsMessage :: Lens' StopDataCollectionResponse (Maybe Text)
-sdcrsMessage = lens _sdcrsMessage (\ s a -> s{_sdcrsMessage = a});
-
--- | The response status code.
-sdcrsResponseStatus :: Lens' StopDataCollectionResponse Int
-sdcrsResponseStatus = lens _sdcrsResponseStatus (\ s a -> s{_sdcrsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/SubscribeToEvent.hs b/gen/Network/AWS/Inspector/SubscribeToEvent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/SubscribeToEvent.hs
@@ -0,0 +1,129 @@
+{-# 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.Inspector.SubscribeToEvent
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Enables the process of sending Amazon Simple Notification Service (SNS)
+-- notifications about a specified event to a specified SNS topic.
+module Network.AWS.Inspector.SubscribeToEvent
+    (
+    -- * Creating a Request
+      subscribeToEvent
+    , SubscribeToEvent
+    -- * Request Lenses
+    , steResourceARN
+    , steEvent
+    , steTopicARN
+
+    -- * Destructuring the Response
+    , subscribeToEventResponse
+    , SubscribeToEventResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'subscribeToEvent' smart constructor.
+data SubscribeToEvent = SubscribeToEvent'
+    { _steResourceARN :: !Text
+    , _steEvent       :: !InspectorEvent
+    , _steTopicARN    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubscribeToEvent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'steResourceARN'
+--
+-- * 'steEvent'
+--
+-- * 'steTopicARN'
+subscribeToEvent
+    :: Text -- ^ 'steResourceARN'
+    -> InspectorEvent -- ^ 'steEvent'
+    -> Text -- ^ 'steTopicARN'
+    -> SubscribeToEvent
+subscribeToEvent pResourceARN_ pEvent_ pTopicARN_ =
+    SubscribeToEvent'
+    { _steResourceARN = pResourceARN_
+    , _steEvent = pEvent_
+    , _steTopicARN = pTopicARN_
+    }
+
+-- | The ARN of the assessment template that is used during the event for
+-- which you want to receive SNS notifications.
+steResourceARN :: Lens' SubscribeToEvent Text
+steResourceARN = lens _steResourceARN (\ s a -> s{_steResourceARN = a});
+
+-- | The event for which you want to receive SNS notifications.
+steEvent :: Lens' SubscribeToEvent InspectorEvent
+steEvent = lens _steEvent (\ s a -> s{_steEvent = a});
+
+-- | The ARN of the SNS topic to which the SNS notifications are sent.
+steTopicARN :: Lens' SubscribeToEvent Text
+steTopicARN = lens _steTopicARN (\ s a -> s{_steTopicARN = a});
+
+instance AWSRequest SubscribeToEvent where
+        type Rs SubscribeToEvent = SubscribeToEventResponse
+        request = postJSON inspector
+        response = receiveNull SubscribeToEventResponse'
+
+instance Hashable SubscribeToEvent
+
+instance NFData SubscribeToEvent
+
+instance ToHeaders SubscribeToEvent where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.SubscribeToEvent" :: ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON SubscribeToEvent where
+        toJSON SubscribeToEvent'{..}
+          = object
+              (catMaybes
+                 [Just ("resourceArn" .= _steResourceARN),
+                  Just ("event" .= _steEvent),
+                  Just ("topicArn" .= _steTopicARN)])
+
+instance ToPath SubscribeToEvent where
+        toPath = const "/"
+
+instance ToQuery SubscribeToEvent where
+        toQuery = const mempty
+
+-- | /See:/ 'subscribeToEventResponse' smart constructor.
+data SubscribeToEventResponse =
+    SubscribeToEventResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'SubscribeToEventResponse' with the minimum fields required to make a request.
+--
+subscribeToEventResponse
+    :: SubscribeToEventResponse
+subscribeToEventResponse = SubscribeToEventResponse'
+
+instance NFData SubscribeToEventResponse
diff --git a/gen/Network/AWS/Inspector/Types.hs b/gen/Network/AWS/Inspector/Types.hs
--- a/gen/Network/AWS/Inspector/Types.hs
+++ b/gen/Network/AWS/Inspector/Types.hs
@@ -17,71 +17,151 @@
 
     -- * Errors
     , _AccessDeniedException
+    , _AssessmentRunInProgressException
     , _NoSuchEntityException
-    , _OperationInProgressException
+    , _AgentsAlreadyRunningAssessmentException
     , _InvalidCrossAccountRoleException
     , _InvalidInputException
     , _InternalException
+    , _LimitExceededException
 
-    -- * Agent
-    , Agent
-    , agent
-    , aTelemetry
-    , aAutoScalingGroup
-    , aAgentHealthCode
-    , aAssessmentARN
-    , aAgentId
-    , aAccountId
-    , aAgentHealthDetails
-    , aAgentHealth
+    -- * AgentHealth
+    , AgentHealth (..)
 
+    -- * AgentHealthCode
+    , AgentHealthCode (..)
+
+    -- * AssessmentRunNotificationSNSStatusCode
+    , AssessmentRunNotificationSNSStatusCode (..)
+
+    -- * AssessmentRunState
+    , AssessmentRunState (..)
+
+    -- * AssetType
+    , AssetType (..)
+
+    -- * FailedItemErrorCode
+    , FailedItemErrorCode (..)
+
+    -- * InspectorEvent
+    , InspectorEvent (..)
+
+    -- * Locale
+    , Locale (..)
+
+    -- * Severity
+    , Severity (..)
+
+    -- * AgentFilter
+    , AgentFilter
+    , agentFilter
+    , afAgentHealths
+    , afAgentHealthCodes
+
     -- * AgentPreview
     , AgentPreview
     , agentPreview
     , apAutoScalingGroup
     , apAgentId
 
-    -- * AgentsFilter
-    , AgentsFilter
-    , agentsFilter
-    , afAgentHealthList
+    -- * AssessmentRun
+    , AssessmentRun
+    , assessmentRun
+    , arStartedAt
+    , arCompletedAt
+    , arArn
+    , arName
+    , arAssessmentTemplateARN
+    , arState
+    , arDurationInSeconds
+    , arRulesPackageARNs
+    , arUserAttributesForFindings
+    , arCreatedAt
+    , arStateChangedAt
+    , arDataCollected
+    , arStateChanges
+    , arNotifications
 
-    -- * Application
-    , Application
-    , application
-    , aApplicationARN
+    -- * AssessmentRunAgent
+    , AssessmentRunAgent
+    , assessmentRunAgent
+    , araAutoScalingGroup
+    , araAgentHealthDetails
+    , araAgentId
+    , araAssessmentRunARN
+    , araAgentHealth
+    , araAgentHealthCode
+    , araTelemetryMetadata
+
+    -- * AssessmentRunFilter
+    , AssessmentRunFilter
+    , assessmentRunFilter
+    , arfStates
+    , arfNamePattern
+    , arfStartTimeRange
+    , arfStateChangeTimeRange
+    , arfRulesPackageARNs
+    , arfCompletionTimeRange
+    , arfDurationRange
+
+    -- * AssessmentRunNotification
+    , AssessmentRunNotification
+    , assessmentRunNotification
+    , arnSnsTopicARN
+    , arnSnsPublishStatusCode
+    , arnMessage
+    , arnDate
+    , arnEvent
+    , arnError
+
+    -- * AssessmentRunStateChange
+    , AssessmentRunStateChange
+    , assessmentRunStateChange
+    , arscStateChangedAt
+    , arscState
+
+    -- * AssessmentTarget
+    , AssessmentTarget
+    , assessmentTarget
+    , aArn
+    , aName
     , aResourceGroupARN
-    , aApplicationName
+    , aCreatedAt
+    , aUpdatedAt
 
-    -- * ApplicationsFilter
-    , ApplicationsFilter
-    , applicationsFilter
-    , afApplicationNamePatterns
+    -- * AssessmentTargetFilter
+    , AssessmentTargetFilter
+    , assessmentTargetFilter
+    , atfAssessmentTargetNamePattern
 
-    -- * Assessment
-    , Assessment
-    , assessment
-    , assDataCollected
-    , assApplicationARN
-    , assStartTime
-    , assAssessmentARN
-    , assUserAttributesForFindings
-    , assFailureMessage
-    , assAssessmentState
-    , assEndTime
-    , assDurationInSeconds
-    , assAssessmentName
+    -- * AssessmentTemplate
+    , AssessmentTemplate
+    , assessmentTemplate
+    , atArn
+    , atName
+    , atAssessmentTargetARN
+    , atDurationInSeconds
+    , atRulesPackageARNs
+    , atUserAttributesForFindings
+    , atCreatedAt
 
-    -- * AssessmentsFilter
-    , AssessmentsFilter
-    , assessmentsFilter
-    , afDataCollected
-    , afAssessmentStates
-    , afStartTimeRange
-    , afAssessmentNamePatterns
-    , afEndTimeRange
-    , afDurationRange
+    -- * AssessmentTemplateFilter
+    , AssessmentTemplateFilter
+    , assessmentTemplateFilter
+    , atfNamePattern
+    , atfRulesPackageARNs
+    , atfDurationRange
 
+    -- * AssetAttributes
+    , AssetAttributes
+    , assetAttributes
+    , aaHostname
+    , aaAutoScalingGroup
+    , aaIpv4Addresses
+    , aaAgentId
+    , aaAmiId
+    , aaSchemaVersion
+
     -- * Attribute
     , Attribute
     , attribute
@@ -91,93 +171,90 @@
     -- * DurationRange
     , DurationRange
     , durationRange
-    , drMaximum
-    , drMinimum
+    , drMinSeconds
+    , drMaxSeconds
 
+    -- * EventSubscription
+    , EventSubscription
+    , eventSubscription
+    , esEvent
+    , esSubscribedAt
+
+    -- * FailedItemDetails
+    , FailedItemDetails
+    , failedItemDetails
+    , fidFailureCode
+    , fidRetryable
+
     -- * Finding
     , Finding
     , finding
-    , fAutoScalingGroup
-    , fFinding
+    , fService
     , fSeverity
-    , fUserAttributes
-    , fRuleName
-    , fAgentId
-    , fRunARN
-    , fAttributes
-    , fRulesPackageARN
-    , fFindingARN
+    , fSchemaVersion
+    , fConfidence
+    , fAssetAttributes
+    , fServiceAttributes
+    , fId
+    , fNumericSeverity
+    , fAssetType
+    , fTitle
+    , fIndicatorOfCompromise
     , fDescription
     , fRecommendation
+    , fArn
+    , fAttributes
+    , fUserAttributes
+    , fCreatedAt
+    , fUpdatedAt
 
-    -- * FindingsFilter
-    , FindingsFilter
-    , findingsFilter
+    -- * FindingFilter
+    , FindingFilter
+    , findingFilter
+    , ffAgentIds
     , ffRuleNames
     , ffUserAttributes
     , ffRulesPackageARNs
     , ffAttributes
     , ffSeverities
-
-    -- * LocalizedText
-    , LocalizedText
-    , localizedText
-    , ltKey
-    , ltParameters
-
-    -- * LocalizedTextKey
-    , LocalizedTextKey
-    , localizedTextKey
-    , ltkFacility
-    , ltkId
-
-    -- * MessageTypeTelemetry
-    , MessageTypeTelemetry
-    , messageTypeTelemetry
-    , mttDataSize
-    , mttMessageType
-    , mttCount
+    , ffCreationTimeRange
+    , ffAutoScalingGroups
 
-    -- * Parameter
-    , Parameter
-    , parameter
-    , pValue
-    , pName
+    -- * InspectorServiceAttributes
+    , InspectorServiceAttributes
+    , inspectorServiceAttributes
+    , isaRulesPackageARN
+    , isaAssessmentRunARN
+    , isaSchemaVersion
 
     -- * ResourceGroup
     , ResourceGroup
     , resourceGroup
-    , rgResourceGroupTags
-    , rgResourceGroupARN
+    , rgArn
+    , rgTags
+    , rgCreatedAt
 
+    -- * ResourceGroupTag
+    , ResourceGroupTag
+    , resourceGroupTag
+    , rgtValue
+    , rgtKey
+
     -- * RulesPackage
     , RulesPackage
     , rulesPackage
-    , rpVersion
-    , rpRulesPackageARN
-    , rpRulesPackageName
     , rpDescription
+    , rpArn
+    , rpName
+    , rpVersion
     , rpProvider
 
-    -- * Run
-    , Run
-    , run
-    , runCreationTime
-    , runRulesPackages
-    , runAssessmentARN
-    , runRunState
-    , runRunName
-    , runCompletionTime
-    , runRunARN
-
-    -- * RunsFilter
-    , RunsFilter
-    , runsFilter
-    , rfCreationTime
-    , rfRulesPackages
-    , rfRunStates
-    , rfRunNamePatterns
-    , rfCompletionTime
+    -- * Subscription
+    , Subscription
+    , subscription
+    , sResourceARN
+    , sTopicARN
+    , sEventSubscriptions
 
     -- * Tag
     , Tag
@@ -185,17 +262,18 @@
     , tagValue
     , tagKey
 
-    -- * Telemetry
-    , Telemetry
-    , telemetry
-    , tStatus
-    , tMessageTypeTelemetries
+    -- * TelemetryMetadata
+    , TelemetryMetadata
+    , telemetryMetadata
+    , tmDataSize
+    , tmMessageType
+    , tmCount
 
     -- * TimestampRange
     , TimestampRange
     , timestampRange
-    , trMaximum
-    , trMinimum
+    , trEndDate
+    , trBeginDate
     ) where
 
 import           Network.AWS.Inspector.Types.Product
@@ -204,14 +282,14 @@
 import           Network.AWS.Prelude
 import           Network.AWS.Sign.V4
 
--- | API version '2015-08-18' of the Amazon Inspector SDK configuration.
+-- | API version '2016-02-16' of the Amazon Inspector SDK configuration.
 inspector :: Service
 inspector =
     Service
     { _svcAbbrev = "Inspector"
     , _svcSigner = v4
     , _svcPrefix = "inspector"
-    , _svcVersion = "2015-08-18"
+    , _svcVersion = "2016-02-16"
     , _svcEndpoint = defaultEndpoint inspector
     , _svcTimeout = Just 70
     , _svcCheck = statusSuccess
@@ -231,33 +309,51 @@
       | has (hasCode "ThrottlingException" . hasStatus 400) e =
           Just "throttling_exception"
       | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
+      | has (hasStatus 504) e = Just "gateway_timeout"
+      | has (hasStatus 502) e = Just "bad_gateway"
       | has (hasStatus 503) e = Just "service_unavailable"
       | has (hasStatus 500) e = Just "general_server_error"
       | has (hasStatus 509) e = Just "limit_exceeded"
       | otherwise = Nothing
 
--- | Prism for AccessDeniedException' errors.
+-- | You do not have required permissions to access the requested resource.
 _AccessDeniedException :: AsError a => Getting (First ServiceError) a ServiceError
 _AccessDeniedException = _ServiceError . hasCode "AccessDeniedException"
 
--- | Prism for NoSuchEntityException' errors.
+-- | You cannot perform a specified action if an assessment run is currently
+-- in progress.
+_AssessmentRunInProgressException :: AsError a => Getting (First ServiceError) a ServiceError
+_AssessmentRunInProgressException =
+    _ServiceError . hasCode "AssessmentRunInProgressException"
+
+-- | The request was rejected because it referenced an entity that does not
+-- exist. The error code describes the entity.
 _NoSuchEntityException :: AsError a => Getting (First ServiceError) a ServiceError
 _NoSuchEntityException = _ServiceError . hasCode "NoSuchEntityException"
 
--- | Prism for OperationInProgressException' errors.
-_OperationInProgressException :: AsError a => Getting (First ServiceError) a ServiceError
-_OperationInProgressException =
-    _ServiceError . hasCode "OperationInProgressException"
+-- | You started an assessment run, but one of the instances is already
+-- participating in another assessment run.
+_AgentsAlreadyRunningAssessmentException :: AsError a => Getting (First ServiceError) a ServiceError
+_AgentsAlreadyRunningAssessmentException =
+    _ServiceError . hasCode "AgentsAlreadyRunningAssessmentException"
 
--- | Prism for InvalidCrossAccountRoleException' errors.
+-- | Amazon Inspector cannot assume the cross-account role that it needs to
+-- list your EC2 instances during the assessment run.
 _InvalidCrossAccountRoleException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidCrossAccountRoleException =
     _ServiceError . hasCode "InvalidCrossAccountRoleException"
 
--- | Prism for InvalidInputException' errors.
+-- | The request was rejected because an invalid or out-of-range value was
+-- supplied for an input parameter.
 _InvalidInputException :: AsError a => Getting (First ServiceError) a ServiceError
 _InvalidInputException = _ServiceError . hasCode "InvalidInputException"
 
--- | Prism for InternalException' errors.
+-- | Internal server error.
 _InternalException :: AsError a => Getting (First ServiceError) a ServiceError
 _InternalException = _ServiceError . hasCode "InternalException"
+
+-- | The request was rejected because it attempted to create resources beyond
+-- the current AWS account limits. The error code describes the limit
+-- exceeded.
+_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
+_LimitExceededException = _ServiceError . hasCode "LimitExceededException"
diff --git a/gen/Network/AWS/Inspector/Types/Product.hs b/gen/Network/AWS/Inspector/Types/Product.hs
--- a/gen/Network/AWS/Inspector/Types/Product.hs
+++ b/gen/Network/AWS/Inspector/Types/Product.hs
@@ -21,1407 +21,1871 @@
 import           Network.AWS.Lens
 import           Network.AWS.Prelude
 
--- | Contains information about an Inspector agent. This data type is used as
--- a response element in the < ListAssessmentAgents> action.
---
--- /See:/ 'agent' smart constructor.
-data Agent = Agent'
-    { _aTelemetry          :: !(Maybe [Telemetry])
-    , _aAutoScalingGroup   :: !(Maybe Text)
-    , _aAgentHealthCode    :: !(Maybe Text)
-    , _aAssessmentARN      :: !(Maybe Text)
-    , _aAgentId            :: !(Maybe Text)
-    , _aAccountId          :: !(Maybe Text)
-    , _aAgentHealthDetails :: !(Maybe Text)
-    , _aAgentHealth        :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Agent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aTelemetry'
---
--- * 'aAutoScalingGroup'
---
--- * 'aAgentHealthCode'
---
--- * 'aAssessmentARN'
---
--- * 'aAgentId'
---
--- * 'aAccountId'
---
--- * 'aAgentHealthDetails'
---
--- * 'aAgentHealth'
-agent
-    :: Agent
-agent =
-    Agent'
-    { _aTelemetry = Nothing
-    , _aAutoScalingGroup = Nothing
-    , _aAgentHealthCode = Nothing
-    , _aAssessmentARN = Nothing
-    , _aAgentId = Nothing
-    , _aAccountId = Nothing
-    , _aAgentHealthDetails = Nothing
-    , _aAgentHealth = Nothing
-    }
-
--- | The Inspector application data metrics collected by the agent.
-aTelemetry :: Lens' Agent [Telemetry]
-aTelemetry = lens _aTelemetry (\ s a -> s{_aTelemetry = a}) . _Default . _Coerce;
-
--- | This data type property is currently not used.
-aAutoScalingGroup :: Lens' Agent (Maybe Text)
-aAutoScalingGroup = lens _aAutoScalingGroup (\ s a -> s{_aAutoScalingGroup = a});
-
--- | The detailed health state of the agent. Values can be set to /RUNNING/,
--- /HEALTHY/, /UNHEALTHY/, /UNKNOWN/, /BLACKLISTED/, /SHUTDOWN/,
--- /THROTTLED/.
-aAgentHealthCode :: Lens' Agent (Maybe Text)
-aAgentHealthCode = lens _aAgentHealthCode (\ s a -> s{_aAgentHealthCode = a});
-
--- | The ARN of the assessment that is associated with the agent.
-aAssessmentARN :: Lens' Agent (Maybe Text)
-aAssessmentARN = lens _aAssessmentARN (\ s a -> s{_aAssessmentARN = a});
-
--- | The EC2 instance ID where the agent is installed.
-aAgentId :: Lens' Agent (Maybe Text)
-aAgentId = lens _aAgentId (\ s a -> s{_aAgentId = a});
-
--- | AWS account of the EC2 instance where the agent is installed.
-aAccountId :: Lens' Agent (Maybe Text)
-aAccountId = lens _aAccountId (\ s a -> s{_aAccountId = a});
-
--- | The description for the agent health code.
-aAgentHealthDetails :: Lens' Agent (Maybe Text)
-aAgentHealthDetails = lens _aAgentHealthDetails (\ s a -> s{_aAgentHealthDetails = a});
-
--- | The current health state of the agent. Values can be set to /HEALTHY/ or
--- /UNHEALTHY/.
-aAgentHealth :: Lens' Agent (Maybe Text)
-aAgentHealth = lens _aAgentHealth (\ s a -> s{_aAgentHealth = a});
-
-instance FromJSON Agent where
-        parseJSON
-          = withObject "Agent"
-              (\ x ->
-                 Agent' <$>
-                   (x .:? "telemetry" .!= mempty) <*>
-                     (x .:? "autoScalingGroup")
-                     <*> (x .:? "agentHealthCode")
-                     <*> (x .:? "assessmentArn")
-                     <*> (x .:? "agentId")
-                     <*> (x .:? "accountId")
-                     <*> (x .:? "agentHealthDetails")
-                     <*> (x .:? "agentHealth"))
-
-instance Hashable Agent
-
--- | This data type is used as a response element in the
--- < PreviewAgentsForResourceGroup> action.
---
--- /See:/ 'agentPreview' smart constructor.
-data AgentPreview = AgentPreview'
-    { _apAutoScalingGroup :: !(Maybe Text)
-    , _apAgentId          :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AgentPreview' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apAutoScalingGroup'
---
--- * 'apAgentId'
-agentPreview
-    :: AgentPreview
-agentPreview =
-    AgentPreview'
-    { _apAutoScalingGroup = Nothing
-    , _apAgentId = Nothing
-    }
-
--- | The autoscaling group for the EC2 instance where the agent is installed.
-apAutoScalingGroup :: Lens' AgentPreview (Maybe Text)
-apAutoScalingGroup = lens _apAutoScalingGroup (\ s a -> s{_apAutoScalingGroup = a});
-
--- | The id of the EC2 instance where the agent is intalled.
-apAgentId :: Lens' AgentPreview (Maybe Text)
-apAgentId = lens _apAgentId (\ s a -> s{_apAgentId = a});
-
-instance FromJSON AgentPreview where
-        parseJSON
-          = withObject "AgentPreview"
-              (\ x ->
-                 AgentPreview' <$>
-                   (x .:? "autoScalingGroup") <*> (x .:? "agentId"))
-
-instance Hashable AgentPreview
-
--- | This data type is used as a response element in the
--- < ListAssessmentAgents> action.
---
--- /See:/ 'agentsFilter' smart constructor.
-newtype AgentsFilter = AgentsFilter'
-    { _afAgentHealthList :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AgentsFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'afAgentHealthList'
-agentsFilter
-    :: AgentsFilter
-agentsFilter =
-    AgentsFilter'
-    { _afAgentHealthList = Nothing
-    }
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __agentHealth__
--- property of the < Agent> data type.
-afAgentHealthList :: Lens' AgentsFilter [Text]
-afAgentHealthList = lens _afAgentHealthList (\ s a -> s{_afAgentHealthList = a}) . _Default . _Coerce;
-
-instance Hashable AgentsFilter
-
-instance ToJSON AgentsFilter where
-        toJSON AgentsFilter'{..}
-          = object
-              (catMaybes
-                 [("agentHealthList" .=) <$> _afAgentHealthList])
-
--- | Contains information about an Inspector application.
---
--- This data type is used as the response element in the
--- < DescribeApplication> action.
---
--- /See:/ 'application' smart constructor.
-data Application = Application'
-    { _aApplicationARN   :: !(Maybe Text)
-    , _aResourceGroupARN :: !(Maybe Text)
-    , _aApplicationName  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Application' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aApplicationARN'
---
--- * 'aResourceGroupARN'
---
--- * 'aApplicationName'
-application
-    :: Application
-application =
-    Application'
-    { _aApplicationARN = Nothing
-    , _aResourceGroupARN = Nothing
-    , _aApplicationName = Nothing
-    }
-
--- | The ARN specifying the Inspector application.
-aApplicationARN :: Lens' Application (Maybe Text)
-aApplicationARN = lens _aApplicationARN (\ s a -> s{_aApplicationARN = a});
-
--- | The ARN specifying the resource group that is associated with the
--- application.
-aResourceGroupARN :: Lens' Application (Maybe Text)
-aResourceGroupARN = lens _aResourceGroupARN (\ s a -> s{_aResourceGroupARN = a});
-
--- | The name of the Inspector application.
-aApplicationName :: Lens' Application (Maybe Text)
-aApplicationName = lens _aApplicationName (\ s a -> s{_aApplicationName = a});
-
-instance FromJSON Application where
-        parseJSON
-          = withObject "Application"
-              (\ x ->
-                 Application' <$>
-                   (x .:? "applicationArn") <*>
-                     (x .:? "resourceGroupArn")
-                     <*> (x .:? "applicationName"))
-
-instance Hashable Application
-
--- | This data type is used as the request parameter in the
--- < ListApplications> action.
---
--- /See:/ 'applicationsFilter' smart constructor.
-newtype ApplicationsFilter = ApplicationsFilter'
-    { _afApplicationNamePatterns :: Maybe [Text]
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ApplicationsFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'afApplicationNamePatterns'
-applicationsFilter
-    :: ApplicationsFilter
-applicationsFilter =
-    ApplicationsFilter'
-    { _afApplicationNamePatterns = Nothing
-    }
-
--- | For a record to match a filter, an explicit value or a string containing
--- a wildcard specified for this data type property must match the value of
--- the __applicationName__ property of the < Application> data type.
-afApplicationNamePatterns :: Lens' ApplicationsFilter [Text]
-afApplicationNamePatterns = lens _afApplicationNamePatterns (\ s a -> s{_afApplicationNamePatterns = a}) . _Default . _Coerce;
-
-instance Hashable ApplicationsFilter
-
-instance ToJSON ApplicationsFilter where
-        toJSON ApplicationsFilter'{..}
-          = object
-              (catMaybes
-                 [("applicationNamePatterns" .=) <$>
-                    _afApplicationNamePatterns])
-
--- | Contains information about an Inspector assessment.
---
--- This data type is used as the response element in the
--- < DescribeAssessment> action.
---
--- /See:/ 'assessment' smart constructor.
-data Assessment = Assessment'
-    { _assDataCollected             :: !(Maybe Bool)
-    , _assApplicationARN            :: !(Maybe Text)
-    , _assStartTime                 :: !(Maybe POSIX)
-    , _assAssessmentARN             :: !(Maybe Text)
-    , _assUserAttributesForFindings :: !(Maybe [Attribute])
-    , _assFailureMessage            :: !(Maybe Text)
-    , _assAssessmentState           :: !(Maybe Text)
-    , _assEndTime                   :: !(Maybe POSIX)
-    , _assDurationInSeconds         :: !(Maybe Int)
-    , _assAssessmentName            :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Assessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'assDataCollected'
---
--- * 'assApplicationARN'
---
--- * 'assStartTime'
---
--- * 'assAssessmentARN'
---
--- * 'assUserAttributesForFindings'
---
--- * 'assFailureMessage'
---
--- * 'assAssessmentState'
---
--- * 'assEndTime'
---
--- * 'assDurationInSeconds'
---
--- * 'assAssessmentName'
-assessment
-    :: Assessment
-assessment =
-    Assessment'
-    { _assDataCollected = Nothing
-    , _assApplicationARN = Nothing
-    , _assStartTime = Nothing
-    , _assAssessmentARN = Nothing
-    , _assUserAttributesForFindings = Nothing
-    , _assFailureMessage = Nothing
-    , _assAssessmentState = Nothing
-    , _assEndTime = Nothing
-    , _assDurationInSeconds = Nothing
-    , _assAssessmentName = Nothing
-    }
-
--- | Boolean value (true or false) specifying whether the data collection
--- process is completed.
-assDataCollected :: Lens' Assessment (Maybe Bool)
-assDataCollected = lens _assDataCollected (\ s a -> s{_assDataCollected = a});
-
--- | The ARN of the application that corresponds to this assessment.
-assApplicationARN :: Lens' Assessment (Maybe Text)
-assApplicationARN = lens _assApplicationARN (\ s a -> s{_assApplicationARN = a});
-
--- | The assessment start time.
-assStartTime :: Lens' Assessment (Maybe UTCTime)
-assStartTime = lens _assStartTime (\ s a -> s{_assStartTime = a}) . mapping _Time;
-
--- | The ARN of the assessment.
-assAssessmentARN :: Lens' Assessment (Maybe Text)
-assAssessmentARN = lens _assAssessmentARN (\ s a -> s{_assAssessmentARN = a});
-
--- | The user-defined attributes that are assigned to every generated
--- finding.
-assUserAttributesForFindings :: Lens' Assessment [Attribute]
-assUserAttributesForFindings = lens _assUserAttributesForFindings (\ s a -> s{_assUserAttributesForFindings = a}) . _Default . _Coerce;
-
--- | This data type property is not currently used.
-assFailureMessage :: Lens' Assessment (Maybe Text)
-assFailureMessage = lens _assFailureMessage (\ s a -> s{_assFailureMessage = a});
-
--- | The state of the assessment. Values can be set to /Created/, /Collecting
--- Data/, /Stopping/, and /Completed/.
-assAssessmentState :: Lens' Assessment (Maybe Text)
-assAssessmentState = lens _assAssessmentState (\ s a -> s{_assAssessmentState = a});
-
--- | The assessment end time.
-assEndTime :: Lens' Assessment (Maybe UTCTime)
-assEndTime = lens _assEndTime (\ s a -> s{_assEndTime = a}) . mapping _Time;
-
--- | The assessment duration in seconds. The default value is 3600 seconds
--- (one hour). The maximum value is 86400 seconds (one day).
-assDurationInSeconds :: Lens' Assessment (Maybe Int)
-assDurationInSeconds = lens _assDurationInSeconds (\ s a -> s{_assDurationInSeconds = a});
-
--- | The name of the assessment.
-assAssessmentName :: Lens' Assessment (Maybe Text)
-assAssessmentName = lens _assAssessmentName (\ s a -> s{_assAssessmentName = a});
-
-instance FromJSON Assessment where
-        parseJSON
-          = withObject "Assessment"
-              (\ x ->
-                 Assessment' <$>
-                   (x .:? "dataCollected") <*> (x .:? "applicationArn")
-                     <*> (x .:? "startTime")
-                     <*> (x .:? "assessmentArn")
-                     <*> (x .:? "userAttributesForFindings" .!= mempty)
-                     <*> (x .:? "failureMessage")
-                     <*> (x .:? "assessmentState")
-                     <*> (x .:? "endTime")
-                     <*> (x .:? "durationInSeconds")
-                     <*> (x .:? "assessmentName"))
-
-instance Hashable Assessment
-
--- | This data type is used as the request parameter in the
--- < ListAssessments> and < ListAttachedAssessments> actions.
---
--- /See:/ 'assessmentsFilter' smart constructor.
-data AssessmentsFilter = AssessmentsFilter'
-    { _afDataCollected          :: !(Maybe Bool)
-    , _afAssessmentStates       :: !(Maybe [Text])
-    , _afStartTimeRange         :: !(Maybe TimestampRange)
-    , _afAssessmentNamePatterns :: !(Maybe [Text])
-    , _afEndTimeRange           :: !(Maybe TimestampRange)
-    , _afDurationRange          :: !(Maybe DurationRange)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'AssessmentsFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'afDataCollected'
---
--- * 'afAssessmentStates'
---
--- * 'afStartTimeRange'
---
--- * 'afAssessmentNamePatterns'
---
--- * 'afEndTimeRange'
---
--- * 'afDurationRange'
-assessmentsFilter
-    :: AssessmentsFilter
-assessmentsFilter =
-    AssessmentsFilter'
-    { _afDataCollected = Nothing
-    , _afAssessmentStates = Nothing
-    , _afStartTimeRange = Nothing
-    , _afAssessmentNamePatterns = Nothing
-    , _afEndTimeRange = Nothing
-    , _afDurationRange = Nothing
-    }
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __dataCollected__
--- property of the < Assessment> data type.
-afDataCollected :: Lens' AssessmentsFilter (Maybe Bool)
-afDataCollected = lens _afDataCollected (\ s a -> s{_afDataCollected = a});
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __assessmentState__
--- property of the < Assessment> data type.
-afAssessmentStates :: Lens' AssessmentsFilter [Text]
-afAssessmentStates = lens _afAssessmentStates (\ s a -> s{_afAssessmentStates = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must inclusively match any value between the specified minimum
--- and maximum values of the __startTime__ property of the < Assessment>
--- data type.
-afStartTimeRange :: Lens' AssessmentsFilter (Maybe TimestampRange)
-afStartTimeRange = lens _afStartTimeRange (\ s a -> s{_afStartTimeRange = a});
-
--- | For a record to match a filter, an explicit value or a string containing
--- a wildcard specified for this data type property must match the value of
--- the __assessmentName__ property of the < Assessment> data type.
-afAssessmentNamePatterns :: Lens' AssessmentsFilter [Text]
-afAssessmentNamePatterns = lens _afAssessmentNamePatterns (\ s a -> s{_afAssessmentNamePatterns = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must inclusively match any value between the specified minimum
--- and maximum values of the __endTime__ property of the < Assessment> data
--- type.
-afEndTimeRange :: Lens' AssessmentsFilter (Maybe TimestampRange)
-afEndTimeRange = lens _afEndTimeRange (\ s a -> s{_afEndTimeRange = a});
-
--- | For a record to match a filter, the value specified for this data type
--- property must inclusively match any value between the specified minimum
--- and maximum values of the __durationInSeconds__ property of the
--- < Assessment> data type.
-afDurationRange :: Lens' AssessmentsFilter (Maybe DurationRange)
-afDurationRange = lens _afDurationRange (\ s a -> s{_afDurationRange = a});
-
-instance Hashable AssessmentsFilter
-
-instance ToJSON AssessmentsFilter where
-        toJSON AssessmentsFilter'{..}
-          = object
-              (catMaybes
-                 [("dataCollected" .=) <$> _afDataCollected,
-                  ("assessmentStates" .=) <$> _afAssessmentStates,
-                  ("startTimeRange" .=) <$> _afStartTimeRange,
-                  ("assessmentNamePatterns" .=) <$>
-                    _afAssessmentNamePatterns,
-                  ("endTimeRange" .=) <$> _afEndTimeRange,
-                  ("durationRange" .=) <$> _afDurationRange])
-
--- | This data type is used as a response element in the
--- < AddAttributesToFindings> action and a request parameter in the
--- < CreateAssessment> action.
---
--- /See:/ 'attribute' smart constructor.
-data Attribute = Attribute'
-    { _aValue :: !(Maybe Text)
-    , _aKey   :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Attribute' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aValue'
---
--- * 'aKey'
-attribute
-    :: Attribute
-attribute =
-    Attribute'
-    { _aValue = Nothing
-    , _aKey = Nothing
-    }
-
--- | The value assigned to the attribute key.
-aValue :: Lens' Attribute (Maybe Text)
-aValue = lens _aValue (\ s a -> s{_aValue = a});
-
--- | The attribute key.
-aKey :: Lens' Attribute (Maybe Text)
-aKey = lens _aKey (\ s a -> s{_aKey = a});
-
-instance FromJSON Attribute where
-        parseJSON
-          = withObject "Attribute"
-              (\ x ->
-                 Attribute' <$> (x .:? "value") <*> (x .:? "key"))
-
-instance Hashable Attribute
-
-instance ToJSON Attribute where
-        toJSON Attribute'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _aValue, ("key" .=) <$> _aKey])
-
--- | This data type is used in the < AssessmentsFilter> data type.
---
--- /See:/ 'durationRange' smart constructor.
-data DurationRange = DurationRange'
-    { _drMaximum :: !(Maybe Int)
-    , _drMinimum :: !(Maybe Int)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'DurationRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drMaximum'
---
--- * 'drMinimum'
-durationRange
-    :: DurationRange
-durationRange =
-    DurationRange'
-    { _drMaximum = Nothing
-    , _drMinimum = Nothing
-    }
-
--- | The maximum value of the duration range. Must be less than or equal to
--- 604800 seconds (1 week).
-drMaximum :: Lens' DurationRange (Maybe Int)
-drMaximum = lens _drMaximum (\ s a -> s{_drMaximum = a});
-
--- | The minimum value of the duration range. Must be greater than zero.
-drMinimum :: Lens' DurationRange (Maybe Int)
-drMinimum = lens _drMinimum (\ s a -> s{_drMinimum = a});
-
-instance Hashable DurationRange
-
-instance ToJSON DurationRange where
-        toJSON DurationRange'{..}
-          = object
-              (catMaybes
-                 [("maximum" .=) <$> _drMaximum,
-                  ("minimum" .=) <$> _drMinimum])
-
--- | Contains information about an Inspector finding.
---
--- This data type is used as the response element in the < DescribeFinding>
--- action.
---
--- /See:/ 'finding' smart constructor.
-data Finding = Finding'
-    { _fAutoScalingGroup :: !(Maybe Text)
-    , _fFinding          :: !(Maybe LocalizedText)
-    , _fSeverity         :: !(Maybe Text)
-    , _fUserAttributes   :: !(Maybe [Attribute])
-    , _fRuleName         :: !(Maybe Text)
-    , _fAgentId          :: !(Maybe Text)
-    , _fRunARN           :: !(Maybe Text)
-    , _fAttributes       :: !(Maybe [Attribute])
-    , _fRulesPackageARN  :: !(Maybe Text)
-    , _fFindingARN       :: !(Maybe Text)
-    , _fDescription      :: !(Maybe LocalizedText)
-    , _fRecommendation   :: !(Maybe LocalizedText)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Finding' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fAutoScalingGroup'
---
--- * 'fFinding'
---
--- * 'fSeverity'
---
--- * 'fUserAttributes'
---
--- * 'fRuleName'
---
--- * 'fAgentId'
---
--- * 'fRunARN'
---
--- * 'fAttributes'
---
--- * 'fRulesPackageARN'
---
--- * 'fFindingARN'
---
--- * 'fDescription'
---
--- * 'fRecommendation'
-finding
-    :: Finding
-finding =
-    Finding'
-    { _fAutoScalingGroup = Nothing
-    , _fFinding = Nothing
-    , _fSeverity = Nothing
-    , _fUserAttributes = Nothing
-    , _fRuleName = Nothing
-    , _fAgentId = Nothing
-    , _fRunARN = Nothing
-    , _fAttributes = Nothing
-    , _fRulesPackageARN = Nothing
-    , _fFindingARN = Nothing
-    , _fDescription = Nothing
-    , _fRecommendation = Nothing
-    }
-
--- | The autoscaling group of the EC2 instance where the agent is installed
--- that is used during the assessment that generates the finding.
-fAutoScalingGroup :: Lens' Finding (Maybe Text)
-fAutoScalingGroup = lens _fAutoScalingGroup (\ s a -> s{_fAutoScalingGroup = a});
-
--- | A short description that identifies the finding.
-fFinding :: Lens' Finding (Maybe LocalizedText)
-fFinding = lens _fFinding (\ s a -> s{_fFinding = a});
-
--- | The finding severity. Values can be set to /High/, /Medium/, /Low/, and
--- /Informational/.
-fSeverity :: Lens' Finding (Maybe Text)
-fSeverity = lens _fSeverity (\ s a -> s{_fSeverity = a});
-
--- | The user-defined attributes that are assigned to the finding.
-fUserAttributes :: Lens' Finding [Attribute]
-fUserAttributes = lens _fUserAttributes (\ s a -> s{_fUserAttributes = a}) . _Default . _Coerce;
-
--- | The rule name that is used to generate the finding.
-fRuleName :: Lens' Finding (Maybe Text)
-fRuleName = lens _fRuleName (\ s a -> s{_fRuleName = a});
-
--- | The EC2 instance ID where the agent is installed that is used during the
--- assessment that generates the finding.
-fAgentId :: Lens' Finding (Maybe Text)
-fAgentId = lens _fAgentId (\ s a -> s{_fAgentId = a});
-
--- | The ARN of the assessment run that generated the finding.
-fRunARN :: Lens' Finding (Maybe Text)
-fRunARN = lens _fRunARN (\ s a -> s{_fRunARN = a});
-
--- | The system-defined attributes for the finding.
-fAttributes :: Lens' Finding [Attribute]
-fAttributes = lens _fAttributes (\ s a -> s{_fAttributes = a}) . _Default . _Coerce;
-
--- | The ARN of the rules package that is used to generate the finding.
-fRulesPackageARN :: Lens' Finding (Maybe Text)
-fRulesPackageARN = lens _fRulesPackageARN (\ s a -> s{_fRulesPackageARN = a});
-
--- | The ARN specifying the finding.
-fFindingARN :: Lens' Finding (Maybe Text)
-fFindingARN = lens _fFindingARN (\ s a -> s{_fFindingARN = a});
-
--- | The description of the finding.
-fDescription :: Lens' Finding (Maybe LocalizedText)
-fDescription = lens _fDescription (\ s a -> s{_fDescription = a});
-
--- | The recommendation for the finding.
-fRecommendation :: Lens' Finding (Maybe LocalizedText)
-fRecommendation = lens _fRecommendation (\ s a -> s{_fRecommendation = a});
-
-instance FromJSON Finding where
-        parseJSON
-          = withObject "Finding"
-              (\ x ->
-                 Finding' <$>
-                   (x .:? "autoScalingGroup") <*> (x .:? "finding") <*>
-                     (x .:? "severity")
-                     <*> (x .:? "userAttributes" .!= mempty)
-                     <*> (x .:? "ruleName")
-                     <*> (x .:? "agentId")
-                     <*> (x .:? "runArn")
-                     <*> (x .:? "attributes" .!= mempty)
-                     <*> (x .:? "rulesPackageArn")
-                     <*> (x .:? "findingArn")
-                     <*> (x .:? "description")
-                     <*> (x .:? "recommendation"))
-
-instance Hashable Finding
-
--- | This data type is used as a request parameter in the < ListFindings>
--- action.
---
--- /See:/ 'findingsFilter' smart constructor.
-data FindingsFilter = FindingsFilter'
-    { _ffRuleNames        :: !(Maybe [Text])
-    , _ffUserAttributes   :: !(Maybe [Attribute])
-    , _ffRulesPackageARNs :: !(Maybe [Text])
-    , _ffAttributes       :: !(Maybe [Attribute])
-    , _ffSeverities       :: !(Maybe [Text])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'FindingsFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ffRuleNames'
---
--- * 'ffUserAttributes'
---
--- * 'ffRulesPackageARNs'
---
--- * 'ffAttributes'
---
--- * 'ffSeverities'
-findingsFilter
-    :: FindingsFilter
-findingsFilter =
-    FindingsFilter'
-    { _ffRuleNames = Nothing
-    , _ffUserAttributes = Nothing
-    , _ffRulesPackageARNs = Nothing
-    , _ffAttributes = Nothing
-    , _ffSeverities = Nothing
-    }
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __ruleName__
--- property of the < Finding> data type.
-ffRuleNames :: Lens' FindingsFilter [Text]
-ffRuleNames = lens _ffRuleNames (\ s a -> s{_ffRuleNames = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __userAttributes__
--- property of the < Finding> data type.
-ffUserAttributes :: Lens' FindingsFilter [Attribute]
-ffUserAttributes = lens _ffUserAttributes (\ s a -> s{_ffUserAttributes = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __rulesPackageArn__
--- property of the < Finding> data type.
-ffRulesPackageARNs :: Lens' FindingsFilter [Text]
-ffRulesPackageARNs = lens _ffRulesPackageARNs (\ s a -> s{_ffRulesPackageARNs = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __attributes__
--- property of the < Finding> data type.
-ffAttributes :: Lens' FindingsFilter [Attribute]
-ffAttributes = lens _ffAttributes (\ s a -> s{_ffAttributes = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __severity__
--- property of the < Finding> data type.
-ffSeverities :: Lens' FindingsFilter [Text]
-ffSeverities = lens _ffSeverities (\ s a -> s{_ffSeverities = a}) . _Default . _Coerce;
-
-instance Hashable FindingsFilter
-
-instance ToJSON FindingsFilter where
-        toJSON FindingsFilter'{..}
-          = object
-              (catMaybes
-                 [("ruleNames" .=) <$> _ffRuleNames,
-                  ("userAttributes" .=) <$> _ffUserAttributes,
-                  ("rulesPackageArns" .=) <$> _ffRulesPackageARNs,
-                  ("attributes" .=) <$> _ffAttributes,
-                  ("severities" .=) <$> _ffSeverities])
-
--- | The textual identifier. This data type is used as the request parameter
--- in the < LocalizeText> action.
---
--- /See:/ 'localizedText' smart constructor.
-data LocalizedText = LocalizedText'
-    { _ltKey        :: !(Maybe LocalizedTextKey)
-    , _ltParameters :: !(Maybe [Parameter])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LocalizedText' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ltKey'
---
--- * 'ltParameters'
-localizedText
-    :: LocalizedText
-localizedText =
-    LocalizedText'
-    { _ltKey = Nothing
-    , _ltParameters = Nothing
-    }
-
--- | The facility and id properties of the < LocalizedTextKey> data type.
-ltKey :: Lens' LocalizedText (Maybe LocalizedTextKey)
-ltKey = lens _ltKey (\ s a -> s{_ltKey = a});
-
--- | Values for the dynamic elements of the string specified by the textual
--- identifier.
-ltParameters :: Lens' LocalizedText [Parameter]
-ltParameters = lens _ltParameters (\ s a -> s{_ltParameters = a}) . _Default . _Coerce;
-
-instance FromJSON LocalizedText where
-        parseJSON
-          = withObject "LocalizedText"
-              (\ x ->
-                 LocalizedText' <$>
-                   (x .:? "key") <*> (x .:? "parameters" .!= mempty))
-
-instance Hashable LocalizedText
-
-instance ToJSON LocalizedText where
-        toJSON LocalizedText'{..}
-          = object
-              (catMaybes
-                 [("key" .=) <$> _ltKey,
-                  ("parameters" .=) <$> _ltParameters])
-
--- | This data type is used in the < LocalizedText> data type.
---
--- /See:/ 'localizedTextKey' smart constructor.
-data LocalizedTextKey = LocalizedTextKey'
-    { _ltkFacility :: !(Maybe Text)
-    , _ltkId       :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'LocalizedTextKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ltkFacility'
---
--- * 'ltkId'
-localizedTextKey
-    :: LocalizedTextKey
-localizedTextKey =
-    LocalizedTextKey'
-    { _ltkFacility = Nothing
-    , _ltkId = Nothing
-    }
-
--- | The module response source of the text.
-ltkFacility :: Lens' LocalizedTextKey (Maybe Text)
-ltkFacility = lens _ltkFacility (\ s a -> s{_ltkFacility = a});
-
--- | Part of the module response source of the text.
-ltkId :: Lens' LocalizedTextKey (Maybe Text)
-ltkId = lens _ltkId (\ s a -> s{_ltkId = a});
-
-instance FromJSON LocalizedTextKey where
-        parseJSON
-          = withObject "LocalizedTextKey"
-              (\ x ->
-                 LocalizedTextKey' <$>
-                   (x .:? "facility") <*> (x .:? "id"))
-
-instance Hashable LocalizedTextKey
-
-instance ToJSON LocalizedTextKey where
-        toJSON LocalizedTextKey'{..}
-          = object
-              (catMaybes
-                 [("facility" .=) <$> _ltkFacility,
-                  ("id" .=) <$> _ltkId])
-
--- | This data type is used in the < Telemetry> data type.
---
--- This is metadata about the behavioral data collected by the Inspector
--- agent on your EC2 instances during an assessment and passed to the
--- Inspector service for analysis.
---
--- /See:/ 'messageTypeTelemetry' smart constructor.
-data MessageTypeTelemetry = MessageTypeTelemetry'
-    { _mttDataSize    :: !(Maybe Integer)
-    , _mttMessageType :: !(Maybe Text)
-    , _mttCount       :: !(Maybe Integer)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'MessageTypeTelemetry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mttDataSize'
---
--- * 'mttMessageType'
---
--- * 'mttCount'
-messageTypeTelemetry
-    :: MessageTypeTelemetry
-messageTypeTelemetry =
-    MessageTypeTelemetry'
-    { _mttDataSize = Nothing
-    , _mttMessageType = Nothing
-    , _mttCount = Nothing
-    }
-
--- | The total size of the behavioral data that is collected by the agent
--- during an assessment.
-mttDataSize :: Lens' MessageTypeTelemetry (Maybe Integer)
-mttDataSize = lens _mttDataSize (\ s a -> s{_mttDataSize = a});
-
--- | A specific type of behavioral data that is collected by the agent.
-mttMessageType :: Lens' MessageTypeTelemetry (Maybe Text)
-mttMessageType = lens _mttMessageType (\ s a -> s{_mttMessageType = a});
-
--- | The number of times that the behavioral data is collected by the agent
--- during an assessment.
-mttCount :: Lens' MessageTypeTelemetry (Maybe Integer)
-mttCount = lens _mttCount (\ s a -> s{_mttCount = a});
-
-instance FromJSON MessageTypeTelemetry where
-        parseJSON
-          = withObject "MessageTypeTelemetry"
-              (\ x ->
-                 MessageTypeTelemetry' <$>
-                   (x .:? "dataSize") <*> (x .:? "messageType") <*>
-                     (x .:? "count"))
-
-instance Hashable MessageTypeTelemetry
-
--- | This data type is used in the < LocalizedText> data type.
---
--- /See:/ 'parameter' smart constructor.
-data Parameter = Parameter'
-    { _pValue :: !(Maybe Text)
-    , _pName  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Parameter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pValue'
---
--- * 'pName'
-parameter
-    :: Parameter
-parameter =
-    Parameter'
-    { _pValue = Nothing
-    , _pName = Nothing
-    }
-
--- | The value assigned to the variable that is being replaced.
-pValue :: Lens' Parameter (Maybe Text)
-pValue = lens _pValue (\ s a -> s{_pValue = a});
-
--- | The name of the variable that is being replaced.
-pName :: Lens' Parameter (Maybe Text)
-pName = lens _pName (\ s a -> s{_pName = a});
-
-instance FromJSON Parameter where
-        parseJSON
-          = withObject "Parameter"
-              (\ x ->
-                 Parameter' <$> (x .:? "value") <*> (x .:? "name"))
-
-instance Hashable Parameter
-
-instance ToJSON Parameter where
-        toJSON Parameter'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _pValue, ("name" .=) <$> _pName])
-
--- | Contains information about a resource group. The resource group defines
--- a set of tags that, when queried, identify the AWS resources that
--- comprise the application.
---
--- This data type is used as the response element in the
--- < DescribeResourceGroup> action.
---
--- /See:/ 'resourceGroup' smart constructor.
-data ResourceGroup = ResourceGroup'
-    { _rgResourceGroupTags :: !(Maybe Text)
-    , _rgResourceGroupARN  :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'ResourceGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rgResourceGroupTags'
---
--- * 'rgResourceGroupARN'
-resourceGroup
-    :: ResourceGroup
-resourceGroup =
-    ResourceGroup'
-    { _rgResourceGroupTags = Nothing
-    , _rgResourceGroupARN = Nothing
-    }
-
--- | The tags (key and value pairs) of the resource group.
---
--- This data type property is used in the < CreateResourceGroup> action.
---
--- A collection of keys and an array of possible values in JSON format.
---
--- For example, [{ \"key1\" : [\"Value1\",\"Value2\"]},{\"Key2\":
--- [\"Value3\"]}]
-rgResourceGroupTags :: Lens' ResourceGroup (Maybe Text)
-rgResourceGroupTags = lens _rgResourceGroupTags (\ s a -> s{_rgResourceGroupTags = a});
-
--- | The ARN of the resource group.
-rgResourceGroupARN :: Lens' ResourceGroup (Maybe Text)
-rgResourceGroupARN = lens _rgResourceGroupARN (\ s a -> s{_rgResourceGroupARN = a});
-
-instance FromJSON ResourceGroup where
-        parseJSON
-          = withObject "ResourceGroup"
-              (\ x ->
-                 ResourceGroup' <$>
-                   (x .:? "resourceGroupTags") <*>
-                     (x .:? "resourceGroupArn"))
-
-instance Hashable ResourceGroup
-
--- | Contains information about an Inspector rules package.
---
--- This data type is used as the response element in the
--- < DescribeRulesPackage> action.
---
--- /See:/ 'rulesPackage' smart constructor.
-data RulesPackage = RulesPackage'
-    { _rpVersion          :: !(Maybe Text)
-    , _rpRulesPackageARN  :: !(Maybe Text)
-    , _rpRulesPackageName :: !(Maybe Text)
-    , _rpDescription      :: !(Maybe LocalizedText)
-    , _rpProvider         :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RulesPackage' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rpVersion'
---
--- * 'rpRulesPackageARN'
---
--- * 'rpRulesPackageName'
---
--- * 'rpDescription'
---
--- * 'rpProvider'
-rulesPackage
-    :: RulesPackage
-rulesPackage =
-    RulesPackage'
-    { _rpVersion = Nothing
-    , _rpRulesPackageARN = Nothing
-    , _rpRulesPackageName = Nothing
-    , _rpDescription = Nothing
-    , _rpProvider = Nothing
-    }
-
--- | The version id of the rules package.
-rpVersion :: Lens' RulesPackage (Maybe Text)
-rpVersion = lens _rpVersion (\ s a -> s{_rpVersion = a});
-
--- | The ARN of the rules package.
-rpRulesPackageARN :: Lens' RulesPackage (Maybe Text)
-rpRulesPackageARN = lens _rpRulesPackageARN (\ s a -> s{_rpRulesPackageARN = a});
-
--- | The name of the rules package.
-rpRulesPackageName :: Lens' RulesPackage (Maybe Text)
-rpRulesPackageName = lens _rpRulesPackageName (\ s a -> s{_rpRulesPackageName = a});
-
--- | The description of the rules package.
-rpDescription :: Lens' RulesPackage (Maybe LocalizedText)
-rpDescription = lens _rpDescription (\ s a -> s{_rpDescription = a});
-
--- | The provider of the rules package.
-rpProvider :: Lens' RulesPackage (Maybe Text)
-rpProvider = lens _rpProvider (\ s a -> s{_rpProvider = a});
-
-instance FromJSON RulesPackage where
-        parseJSON
-          = withObject "RulesPackage"
-              (\ x ->
-                 RulesPackage' <$>
-                   (x .:? "version") <*> (x .:? "rulesPackageArn") <*>
-                     (x .:? "rulesPackageName")
-                     <*> (x .:? "description")
-                     <*> (x .:? "provider"))
-
-instance Hashable RulesPackage
-
--- | A snapshot of an Inspector assessment that contains the assessment\'s
--- findings.
---
--- This data type is used as the response element in the < DescribeRun>
--- action.
---
--- /See:/ 'run' smart constructor.
-data Run = Run'
-    { _runCreationTime   :: !(Maybe POSIX)
-    , _runRulesPackages  :: !(Maybe [Text])
-    , _runAssessmentARN  :: !(Maybe Text)
-    , _runRunState       :: !(Maybe Text)
-    , _runRunName        :: !(Maybe Text)
-    , _runCompletionTime :: !(Maybe POSIX)
-    , _runRunARN         :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Run' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'runCreationTime'
---
--- * 'runRulesPackages'
---
--- * 'runAssessmentARN'
---
--- * 'runRunState'
---
--- * 'runRunName'
---
--- * 'runCompletionTime'
---
--- * 'runRunARN'
-run
-    :: Run
-run =
-    Run'
-    { _runCreationTime = Nothing
-    , _runRulesPackages = Nothing
-    , _runAssessmentARN = Nothing
-    , _runRunState = Nothing
-    , _runRunName = Nothing
-    , _runCompletionTime = Nothing
-    , _runRunARN = Nothing
-    }
-
--- | Run creation time that corresponds to the data collection completion
--- time or failure.
-runCreationTime :: Lens' Run (Maybe UTCTime)
-runCreationTime = lens _runCreationTime (\ s a -> s{_runCreationTime = a}) . mapping _Time;
-
--- | Rules packages selected for the run of the assessment.
-runRulesPackages :: Lens' Run [Text]
-runRulesPackages = lens _runRulesPackages (\ s a -> s{_runRulesPackages = a}) . _Default . _Coerce;
-
--- | The ARN of the assessment that is associated with the run.
-runAssessmentARN :: Lens' Run (Maybe Text)
-runAssessmentARN = lens _runAssessmentARN (\ s a -> s{_runAssessmentARN = a});
-
--- | The state of the run. Values can be set to /DataCollectionComplete/,
--- /EvaluatingPolicies/, /EvaluatingPoliciesErrorCanRetry/, /Completed/,
--- /Failed/, /TombStoned/.
-runRunState :: Lens' Run (Maybe Text)
-runRunState = lens _runRunState (\ s a -> s{_runRunState = a});
-
--- | The auto-generated name for the run.
-runRunName :: Lens' Run (Maybe Text)
-runRunName = lens _runRunName (\ s a -> s{_runRunName = a});
-
--- | Run completion time that corresponds to the rules packages evaluation
--- completion time or failure.
-runCompletionTime :: Lens' Run (Maybe UTCTime)
-runCompletionTime = lens _runCompletionTime (\ s a -> s{_runCompletionTime = a}) . mapping _Time;
-
--- | The ARN of the run.
-runRunARN :: Lens' Run (Maybe Text)
-runRunARN = lens _runRunARN (\ s a -> s{_runRunARN = a});
-
-instance FromJSON Run where
-        parseJSON
-          = withObject "Run"
-              (\ x ->
-                 Run' <$>
-                   (x .:? "creationTime") <*>
-                     (x .:? "rulesPackages" .!= mempty)
-                     <*> (x .:? "assessmentArn")
-                     <*> (x .:? "runState")
-                     <*> (x .:? "runName")
-                     <*> (x .:? "completionTime")
-                     <*> (x .:? "runArn"))
-
-instance Hashable Run
-
--- | This data type is used as the request parameter in the < ListRuns>
--- action.
---
--- /See:/ 'runsFilter' smart constructor.
-data RunsFilter = RunsFilter'
-    { _rfCreationTime    :: !(Maybe TimestampRange)
-    , _rfRulesPackages   :: !(Maybe [Text])
-    , _rfRunStates       :: !(Maybe [Text])
-    , _rfRunNamePatterns :: !(Maybe [Text])
-    , _rfCompletionTime  :: !(Maybe TimestampRange)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'RunsFilter' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rfCreationTime'
---
--- * 'rfRulesPackages'
---
--- * 'rfRunStates'
---
--- * 'rfRunNamePatterns'
---
--- * 'rfCompletionTime'
-runsFilter
-    :: RunsFilter
-runsFilter =
-    RunsFilter'
-    { _rfCreationTime = Nothing
-    , _rfRulesPackages = Nothing
-    , _rfRunStates = Nothing
-    , _rfRunNamePatterns = Nothing
-    , _rfCompletionTime = Nothing
-    }
-
--- | For a record to match a filter, the value specified for this data type
--- property must inclusively match any value between the specified minimum
--- and maximum values of the __creationTime__ property of the < Run> data
--- type.
-rfCreationTime :: Lens' RunsFilter (Maybe TimestampRange)
-rfCreationTime = lens _rfCreationTime (\ s a -> s{_rfCreationTime = a});
-
--- | For a record to match a filter, the value specified for this data type
--- property must match a list of values of the __rulesPackages__ property
--- of the < Run> data type.
-rfRulesPackages :: Lens' RunsFilter [Text]
-rfRulesPackages = lens _rfRulesPackages (\ s a -> s{_rfRulesPackages = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must be the exact match of the value of the __runState__
--- property of the < Run> data type.
-rfRunStates :: Lens' RunsFilter [Text]
-rfRunStates = lens _rfRunStates (\ s a -> s{_rfRunStates = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, an explicit value or a string containing
--- a wildcard specified for this data type property must match the value of
--- the __runName__ property of the < Run> data type.
-rfRunNamePatterns :: Lens' RunsFilter [Text]
-rfRunNamePatterns = lens _rfRunNamePatterns (\ s a -> s{_rfRunNamePatterns = a}) . _Default . _Coerce;
-
--- | For a record to match a filter, the value specified for this data type
--- property must inclusively match any value between the specified minimum
--- and maximum values of the __completionTime__ property of the < Run> data
--- type.
-rfCompletionTime :: Lens' RunsFilter (Maybe TimestampRange)
-rfCompletionTime = lens _rfCompletionTime (\ s a -> s{_rfCompletionTime = a});
-
-instance Hashable RunsFilter
-
-instance ToJSON RunsFilter where
-        toJSON RunsFilter'{..}
-          = object
-              (catMaybes
-                 [("creationTime" .=) <$> _rfCreationTime,
-                  ("rulesPackages" .=) <$> _rfRulesPackages,
-                  ("runStates" .=) <$> _rfRunStates,
-                  ("runNamePatterns" .=) <$> _rfRunNamePatterns,
-                  ("completionTime" .=) <$> _rfCompletionTime])
-
--- | A key and value pair.
---
--- This data type is used as a request parameter in the
--- < SetTagsForResource> action and a response element in the
--- < ListTagsForResource> action.
---
--- /See:/ 'tag' smart constructor.
-data Tag = Tag'
-    { _tagValue :: !(Maybe Text)
-    , _tagKey   :: !(Maybe Text)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Tag' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tagValue'
---
--- * 'tagKey'
-tag
-    :: Tag
-tag =
-    Tag'
-    { _tagValue = Nothing
-    , _tagKey = Nothing
-    }
-
--- | The value assigned to a tag key.
-tagValue :: Lens' Tag (Maybe Text)
-tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
-
--- | The tag key.
-tagKey :: Lens' Tag (Maybe Text)
-tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
-
-instance FromJSON Tag where
-        parseJSON
-          = withObject "Tag"
-              (\ x -> Tag' <$> (x .:? "Value") <*> (x .:? "Key"))
-
-instance Hashable Tag
-
-instance ToJSON Tag where
-        toJSON Tag'{..}
-          = object
-              (catMaybes
-                 [("Value" .=) <$> _tagValue, ("Key" .=) <$> _tagKey])
-
--- | The metadata about the Inspector application data metrics collected by
--- the agent.
---
--- This data type is used as the response element in the
--- < GetAssessmentTelemetry> action.
---
--- /See:/ 'telemetry' smart constructor.
-data Telemetry = Telemetry'
-    { _tStatus                 :: !(Maybe Text)
-    , _tMessageTypeTelemetries :: !(Maybe [MessageTypeTelemetry])
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'Telemetry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tStatus'
---
--- * 'tMessageTypeTelemetries'
-telemetry
-    :: Telemetry
-telemetry =
-    Telemetry'
-    { _tStatus = Nothing
-    , _tMessageTypeTelemetries = Nothing
-    }
-
--- | The category of the individual metrics that together constitute the
--- telemetry that Inspector received from the agent.
-tStatus :: Lens' Telemetry (Maybe Text)
-tStatus = lens _tStatus (\ s a -> s{_tStatus = a});
-
--- | Counts of individual metrics received by Inspector from the agent.
-tMessageTypeTelemetries :: Lens' Telemetry [MessageTypeTelemetry]
-tMessageTypeTelemetries = lens _tMessageTypeTelemetries (\ s a -> s{_tMessageTypeTelemetries = a}) . _Default . _Coerce;
-
-instance FromJSON Telemetry where
-        parseJSON
-          = withObject "Telemetry"
-              (\ x ->
-                 Telemetry' <$>
-                   (x .:? "status") <*>
-                     (x .:? "messageTypeTelemetries" .!= mempty))
-
-instance Hashable Telemetry
-
--- | This data type is used in the < AssessmentsFilter> and < RunsFilter>
--- data types.
---
--- /See:/ 'timestampRange' smart constructor.
-data TimestampRange = TimestampRange'
-    { _trMaximum :: !(Maybe POSIX)
-    , _trMinimum :: !(Maybe POSIX)
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'TimestampRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trMaximum'
---
--- * 'trMinimum'
-timestampRange
-    :: TimestampRange
-timestampRange =
-    TimestampRange'
-    { _trMaximum = Nothing
-    , _trMinimum = Nothing
-    }
-
--- | The maximum value of the timestamp range.
-trMaximum :: Lens' TimestampRange (Maybe UTCTime)
-trMaximum = lens _trMaximum (\ s a -> s{_trMaximum = a}) . mapping _Time;
-
--- | The minimum value of the timestamp range.
-trMinimum :: Lens' TimestampRange (Maybe UTCTime)
-trMinimum = lens _trMinimum (\ s a -> s{_trMinimum = a}) . mapping _Time;
-
-instance Hashable TimestampRange
-
-instance ToJSON TimestampRange where
-        toJSON TimestampRange'{..}
-          = object
-              (catMaybes
-                 [("maximum" .=) <$> _trMaximum,
-                  ("minimum" .=) <$> _trMinimum])
+-- | Contains information about an Amazon Inspector agent. This data type is
+-- used as a request parameter in the < ListAssessmentRunAgents> action.
+--
+-- /See:/ 'agentFilter' smart constructor.
+data AgentFilter = AgentFilter'
+    { _afAgentHealths     :: ![AgentHealth]
+    , _afAgentHealthCodes :: ![AgentHealthCode]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AgentFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'afAgentHealths'
+--
+-- * 'afAgentHealthCodes'
+agentFilter
+    :: AgentFilter
+agentFilter =
+    AgentFilter'
+    { _afAgentHealths = mempty
+    , _afAgentHealthCodes = mempty
+    }
+
+-- | The current health state of the agent. Values can be set to __HEALTHY__
+-- or __UNHEALTHY__.
+afAgentHealths :: Lens' AgentFilter [AgentHealth]
+afAgentHealths = lens _afAgentHealths (\ s a -> s{_afAgentHealths = a}) . _Coerce;
+
+-- | The detailed health state of the agent. Values can be set to __IDLE__,
+-- __RUNNING__, __SHUTDOWN__, __UNHEALTHY__, __THROTTLED__, and
+-- __UNKNOWN__.
+afAgentHealthCodes :: Lens' AgentFilter [AgentHealthCode]
+afAgentHealthCodes = lens _afAgentHealthCodes (\ s a -> s{_afAgentHealthCodes = a}) . _Coerce;
+
+instance Hashable AgentFilter
+
+instance NFData AgentFilter
+
+instance ToJSON AgentFilter where
+        toJSON AgentFilter'{..}
+          = object
+              (catMaybes
+                 [Just ("agentHealths" .= _afAgentHealths),
+                  Just ("agentHealthCodes" .= _afAgentHealthCodes)])
+
+-- | Used as a response element in the < PreviewAgents> action.
+--
+-- /See:/ 'agentPreview' smart constructor.
+data AgentPreview = AgentPreview'
+    { _apAutoScalingGroup :: !(Maybe Text)
+    , _apAgentId          :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AgentPreview' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'apAutoScalingGroup'
+--
+-- * 'apAgentId'
+agentPreview
+    :: Text -- ^ 'apAgentId'
+    -> AgentPreview
+agentPreview pAgentId_ =
+    AgentPreview'
+    { _apAutoScalingGroup = Nothing
+    , _apAgentId = pAgentId_
+    }
+
+-- | The Auto Scaling group for the EC2 instance where the agent is
+-- installed.
+apAutoScalingGroup :: Lens' AgentPreview (Maybe Text)
+apAutoScalingGroup = lens _apAutoScalingGroup (\ s a -> s{_apAutoScalingGroup = a});
+
+-- | The ID of the EC2 instance where the agent is installed.
+apAgentId :: Lens' AgentPreview Text
+apAgentId = lens _apAgentId (\ s a -> s{_apAgentId = a});
+
+instance FromJSON AgentPreview where
+        parseJSON
+          = withObject "AgentPreview"
+              (\ x ->
+                 AgentPreview' <$>
+                   (x .:? "autoScalingGroup") <*> (x .: "agentId"))
+
+instance Hashable AgentPreview
+
+instance NFData AgentPreview
+
+-- | A snapshot of an Amazon Inspector assessment run that contains the
+-- findings of the assessment run .
+--
+-- Used as the response element in the < DescribeAssessmentRuns> action.
+--
+-- /See:/ 'assessmentRun' smart constructor.
+data AssessmentRun = AssessmentRun'
+    { _arStartedAt                 :: !(Maybe POSIX)
+    , _arCompletedAt               :: !(Maybe POSIX)
+    , _arArn                       :: !Text
+    , _arName                      :: !Text
+    , _arAssessmentTemplateARN     :: !Text
+    , _arState                     :: !AssessmentRunState
+    , _arDurationInSeconds         :: !Nat
+    , _arRulesPackageARNs          :: !(List1 Text)
+    , _arUserAttributesForFindings :: ![Attribute]
+    , _arCreatedAt                 :: !POSIX
+    , _arStateChangedAt            :: !POSIX
+    , _arDataCollected             :: !Bool
+    , _arStateChanges              :: ![AssessmentRunStateChange]
+    , _arNotifications             :: ![AssessmentRunNotification]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentRun' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arStartedAt'
+--
+-- * 'arCompletedAt'
+--
+-- * 'arArn'
+--
+-- * 'arName'
+--
+-- * 'arAssessmentTemplateARN'
+--
+-- * 'arState'
+--
+-- * 'arDurationInSeconds'
+--
+-- * 'arRulesPackageARNs'
+--
+-- * 'arUserAttributesForFindings'
+--
+-- * 'arCreatedAt'
+--
+-- * 'arStateChangedAt'
+--
+-- * 'arDataCollected'
+--
+-- * 'arStateChanges'
+--
+-- * 'arNotifications'
+assessmentRun
+    :: Text -- ^ 'arArn'
+    -> Text -- ^ 'arName'
+    -> Text -- ^ 'arAssessmentTemplateARN'
+    -> AssessmentRunState -- ^ 'arState'
+    -> Natural -- ^ 'arDurationInSeconds'
+    -> NonEmpty Text -- ^ 'arRulesPackageARNs'
+    -> UTCTime -- ^ 'arCreatedAt'
+    -> UTCTime -- ^ 'arStateChangedAt'
+    -> Bool -- ^ 'arDataCollected'
+    -> AssessmentRun
+assessmentRun pArn_ pName_ pAssessmentTemplateARN_ pState_ pDurationInSeconds_ pRulesPackageARNs_ pCreatedAt_ pStateChangedAt_ pDataCollected_ =
+    AssessmentRun'
+    { _arStartedAt = Nothing
+    , _arCompletedAt = Nothing
+    , _arArn = pArn_
+    , _arName = pName_
+    , _arAssessmentTemplateARN = pAssessmentTemplateARN_
+    , _arState = pState_
+    , _arDurationInSeconds = _Nat # pDurationInSeconds_
+    , _arRulesPackageARNs = _List1 # pRulesPackageARNs_
+    , _arUserAttributesForFindings = mempty
+    , _arCreatedAt = _Time # pCreatedAt_
+    , _arStateChangedAt = _Time # pStateChangedAt_
+    , _arDataCollected = pDataCollected_
+    , _arStateChanges = mempty
+    , _arNotifications = mempty
+    }
+
+-- | The time when < StartAssessmentRun> was called.
+arStartedAt :: Lens' AssessmentRun (Maybe UTCTime)
+arStartedAt = lens _arStartedAt (\ s a -> s{_arStartedAt = a}) . mapping _Time;
+
+-- | The assessment run completion time that corresponds to the rules
+-- packages evaluation completion time or failure.
+arCompletedAt :: Lens' AssessmentRun (Maybe UTCTime)
+arCompletedAt = lens _arCompletedAt (\ s a -> s{_arCompletedAt = a}) . mapping _Time;
+
+-- | The ARN of the assessment run.
+arArn :: Lens' AssessmentRun Text
+arArn = lens _arArn (\ s a -> s{_arArn = a});
+
+-- | The auto-generated name for the assessment run.
+arName :: Lens' AssessmentRun Text
+arName = lens _arName (\ s a -> s{_arName = a});
+
+-- | The ARN of the assessment template that is associated with the
+-- assessment run.
+arAssessmentTemplateARN :: Lens' AssessmentRun Text
+arAssessmentTemplateARN = lens _arAssessmentTemplateARN (\ s a -> s{_arAssessmentTemplateARN = a});
+
+-- | The state of the assessment run.
+arState :: Lens' AssessmentRun AssessmentRunState
+arState = lens _arState (\ s a -> s{_arState = a});
+
+-- | The duration of the assessment run.
+arDurationInSeconds :: Lens' AssessmentRun Natural
+arDurationInSeconds = lens _arDurationInSeconds (\ s a -> s{_arDurationInSeconds = a}) . _Nat;
+
+-- | The rules packages selected for the assessment run.
+arRulesPackageARNs :: Lens' AssessmentRun (NonEmpty Text)
+arRulesPackageARNs = lens _arRulesPackageARNs (\ s a -> s{_arRulesPackageARNs = a}) . _List1;
+
+-- | The user-defined attributes that are assigned to every generated
+-- finding.
+arUserAttributesForFindings :: Lens' AssessmentRun [Attribute]
+arUserAttributesForFindings = lens _arUserAttributesForFindings (\ s a -> s{_arUserAttributesForFindings = a}) . _Coerce;
+
+-- | The time when < StartAssessmentRun> was called.
+arCreatedAt :: Lens' AssessmentRun UTCTime
+arCreatedAt = lens _arCreatedAt (\ s a -> s{_arCreatedAt = a}) . _Time;
+
+-- | The last time when the assessment run\'s state changed.
+arStateChangedAt :: Lens' AssessmentRun UTCTime
+arStateChangedAt = lens _arStateChangedAt (\ s a -> s{_arStateChangedAt = a}) . _Time;
+
+-- | A Boolean value (true or false) that specifies whether the process of
+-- collecting data from the agents is completed.
+arDataCollected :: Lens' AssessmentRun Bool
+arDataCollected = lens _arDataCollected (\ s a -> s{_arDataCollected = a});
+
+-- | A list of the assessment run state changes.
+arStateChanges :: Lens' AssessmentRun [AssessmentRunStateChange]
+arStateChanges = lens _arStateChanges (\ s a -> s{_arStateChanges = a}) . _Coerce;
+
+-- | A list of notifications for the event subscriptions. A notification
+-- about a particular generated finding is added to this list only once.
+arNotifications :: Lens' AssessmentRun [AssessmentRunNotification]
+arNotifications = lens _arNotifications (\ s a -> s{_arNotifications = a}) . _Coerce;
+
+instance FromJSON AssessmentRun where
+        parseJSON
+          = withObject "AssessmentRun"
+              (\ x ->
+                 AssessmentRun' <$>
+                   (x .:? "startedAt") <*> (x .:? "completedAt") <*>
+                     (x .: "arn")
+                     <*> (x .: "name")
+                     <*> (x .: "assessmentTemplateArn")
+                     <*> (x .: "state")
+                     <*> (x .: "durationInSeconds")
+                     <*> (x .: "rulesPackageArns")
+                     <*> (x .:? "userAttributesForFindings" .!= mempty)
+                     <*> (x .: "createdAt")
+                     <*> (x .: "stateChangedAt")
+                     <*> (x .: "dataCollected")
+                     <*> (x .:? "stateChanges" .!= mempty)
+                     <*> (x .:? "notifications" .!= mempty))
+
+instance Hashable AssessmentRun
+
+instance NFData AssessmentRun
+
+-- | Contains information about an Amazon Inspector agent. This data type is
+-- used as a response element in the < ListAssessmentRunAgents> action.
+--
+-- /See:/ 'assessmentRunAgent' smart constructor.
+data AssessmentRunAgent = AssessmentRunAgent'
+    { _araAutoScalingGroup   :: !(Maybe Text)
+    , _araAgentHealthDetails :: !(Maybe Text)
+    , _araAgentId            :: !Text
+    , _araAssessmentRunARN   :: !Text
+    , _araAgentHealth        :: !AgentHealth
+    , _araAgentHealthCode    :: !AgentHealthCode
+    , _araTelemetryMetadata  :: ![TelemetryMetadata]
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentRunAgent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'araAutoScalingGroup'
+--
+-- * 'araAgentHealthDetails'
+--
+-- * 'araAgentId'
+--
+-- * 'araAssessmentRunARN'
+--
+-- * 'araAgentHealth'
+--
+-- * 'araAgentHealthCode'
+--
+-- * 'araTelemetryMetadata'
+assessmentRunAgent
+    :: Text -- ^ 'araAgentId'
+    -> Text -- ^ 'araAssessmentRunARN'
+    -> AgentHealth -- ^ 'araAgentHealth'
+    -> AgentHealthCode -- ^ 'araAgentHealthCode'
+    -> AssessmentRunAgent
+assessmentRunAgent pAgentId_ pAssessmentRunARN_ pAgentHealth_ pAgentHealthCode_ =
+    AssessmentRunAgent'
+    { _araAutoScalingGroup = Nothing
+    , _araAgentHealthDetails = Nothing
+    , _araAgentId = pAgentId_
+    , _araAssessmentRunARN = pAssessmentRunARN_
+    , _araAgentHealth = pAgentHealth_
+    , _araAgentHealthCode = pAgentHealthCode_
+    , _araTelemetryMetadata = mempty
+    }
+
+-- | The Auto Scaling group of the EC2 instance that is specified by the
+-- agent ID.
+araAutoScalingGroup :: Lens' AssessmentRunAgent (Maybe Text)
+araAutoScalingGroup = lens _araAutoScalingGroup (\ s a -> s{_araAutoScalingGroup = a});
+
+-- | The description for the agent health code.
+araAgentHealthDetails :: Lens' AssessmentRunAgent (Maybe Text)
+araAgentHealthDetails = lens _araAgentHealthDetails (\ s a -> s{_araAgentHealthDetails = a});
+
+-- | The AWS account of the EC2 instance where the agent is installed.
+araAgentId :: Lens' AssessmentRunAgent Text
+araAgentId = lens _araAgentId (\ s a -> s{_araAgentId = a});
+
+-- | The ARN of the assessment run that is associated with the agent.
+araAssessmentRunARN :: Lens' AssessmentRunAgent Text
+araAssessmentRunARN = lens _araAssessmentRunARN (\ s a -> s{_araAssessmentRunARN = a});
+
+-- | The current health state of the agent.
+araAgentHealth :: Lens' AssessmentRunAgent AgentHealth
+araAgentHealth = lens _araAgentHealth (\ s a -> s{_araAgentHealth = a});
+
+-- | The detailed health state of the agent.
+araAgentHealthCode :: Lens' AssessmentRunAgent AgentHealthCode
+araAgentHealthCode = lens _araAgentHealthCode (\ s a -> s{_araAgentHealthCode = a});
+
+-- | The Amazon Inspector application data metrics that are collected by the
+-- agent.
+araTelemetryMetadata :: Lens' AssessmentRunAgent [TelemetryMetadata]
+araTelemetryMetadata = lens _araTelemetryMetadata (\ s a -> s{_araTelemetryMetadata = a}) . _Coerce;
+
+instance FromJSON AssessmentRunAgent where
+        parseJSON
+          = withObject "AssessmentRunAgent"
+              (\ x ->
+                 AssessmentRunAgent' <$>
+                   (x .:? "autoScalingGroup") <*>
+                     (x .:? "agentHealthDetails")
+                     <*> (x .: "agentId")
+                     <*> (x .: "assessmentRunArn")
+                     <*> (x .: "agentHealth")
+                     <*> (x .: "agentHealthCode")
+                     <*> (x .:? "telemetryMetadata" .!= mempty))
+
+instance Hashable AssessmentRunAgent
+
+instance NFData AssessmentRunAgent
+
+-- | Used as the request parameter in the < ListAssessmentRuns> action.
+--
+-- /See:/ 'assessmentRunFilter' smart constructor.
+data AssessmentRunFilter = AssessmentRunFilter'
+    { _arfStates               :: !(Maybe [AssessmentRunState])
+    , _arfNamePattern          :: !(Maybe Text)
+    , _arfStartTimeRange       :: !(Maybe TimestampRange)
+    , _arfStateChangeTimeRange :: !(Maybe TimestampRange)
+    , _arfRulesPackageARNs     :: !(Maybe [Text])
+    , _arfCompletionTimeRange  :: !(Maybe TimestampRange)
+    , _arfDurationRange        :: !(Maybe DurationRange)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentRunFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arfStates'
+--
+-- * 'arfNamePattern'
+--
+-- * 'arfStartTimeRange'
+--
+-- * 'arfStateChangeTimeRange'
+--
+-- * 'arfRulesPackageARNs'
+--
+-- * 'arfCompletionTimeRange'
+--
+-- * 'arfDurationRange'
+assessmentRunFilter
+    :: AssessmentRunFilter
+assessmentRunFilter =
+    AssessmentRunFilter'
+    { _arfStates = Nothing
+    , _arfNamePattern = Nothing
+    , _arfStartTimeRange = Nothing
+    , _arfStateChangeTimeRange = Nothing
+    , _arfRulesPackageARNs = Nothing
+    , _arfCompletionTimeRange = Nothing
+    , _arfDurationRange = Nothing
+    }
+
+-- | For a record to match a filter, one of the values specified for this
+-- data type property must be the exact match of the value of the
+-- __assessmentRunState__ property of the < AssessmentRun> data type.
+arfStates :: Lens' AssessmentRunFilter [AssessmentRunState]
+arfStates = lens _arfStates (\ s a -> s{_arfStates = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, an explicit value or a string containing
+-- a wildcard that is specified for this data type property must match the
+-- value of the __assessmentRunName__ property of the < AssessmentRun> data
+-- type.
+arfNamePattern :: Lens' AssessmentRunFilter (Maybe Text)
+arfNamePattern = lens _arfNamePattern (\ s a -> s{_arfNamePattern = a});
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must inclusively match any value between the
+-- specified minimum and maximum values of the __startTime__ property of
+-- the < AssessmentRun> data type.
+arfStartTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
+arfStartTimeRange = lens _arfStartTimeRange (\ s a -> s{_arfStartTimeRange = a});
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must match the __stateChangedAt__ property of the
+-- < AssessmentRun> data type.
+arfStateChangeTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
+arfStateChangeTimeRange = lens _arfStateChangeTimeRange (\ s a -> s{_arfStateChangeTimeRange = a});
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must be contained in the list of values of the
+-- __rulesPackages__ property of the < AssessmentRun> data type.
+arfRulesPackageARNs :: Lens' AssessmentRunFilter [Text]
+arfRulesPackageARNs = lens _arfRulesPackageARNs (\ s a -> s{_arfRulesPackageARNs = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must inclusively match any value between the
+-- specified minimum and maximum values of the __completedAt__ property of
+-- the < AssessmentRun> data type.
+arfCompletionTimeRange :: Lens' AssessmentRunFilter (Maybe TimestampRange)
+arfCompletionTimeRange = lens _arfCompletionTimeRange (\ s a -> s{_arfCompletionTimeRange = a});
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must inclusively match any value between the
+-- specified minimum and maximum values of the __durationInSeconds__
+-- property of the < AssessmentRun> data type.
+arfDurationRange :: Lens' AssessmentRunFilter (Maybe DurationRange)
+arfDurationRange = lens _arfDurationRange (\ s a -> s{_arfDurationRange = a});
+
+instance Hashable AssessmentRunFilter
+
+instance NFData AssessmentRunFilter
+
+instance ToJSON AssessmentRunFilter where
+        toJSON AssessmentRunFilter'{..}
+          = object
+              (catMaybes
+                 [("states" .=) <$> _arfStates,
+                  ("namePattern" .=) <$> _arfNamePattern,
+                  ("startTimeRange" .=) <$> _arfStartTimeRange,
+                  ("stateChangeTimeRange" .=) <$>
+                    _arfStateChangeTimeRange,
+                  ("rulesPackageArns" .=) <$> _arfRulesPackageARNs,
+                  ("completionTimeRange" .=) <$>
+                    _arfCompletionTimeRange,
+                  ("durationRange" .=) <$> _arfDurationRange])
+
+-- | Used as one of the elements of the < AssessmentRun> data type.
+--
+-- /See:/ 'assessmentRunNotification' smart constructor.
+data AssessmentRunNotification = AssessmentRunNotification'
+    { _arnSnsTopicARN          :: !(Maybe Text)
+    , _arnSnsPublishStatusCode :: !(Maybe AssessmentRunNotificationSNSStatusCode)
+    , _arnMessage              :: !(Maybe Text)
+    , _arnDate                 :: !POSIX
+    , _arnEvent                :: !InspectorEvent
+    , _arnError                :: !Bool
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentRunNotification' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arnSnsTopicARN'
+--
+-- * 'arnSnsPublishStatusCode'
+--
+-- * 'arnMessage'
+--
+-- * 'arnDate'
+--
+-- * 'arnEvent'
+--
+-- * 'arnError'
+assessmentRunNotification
+    :: UTCTime -- ^ 'arnDate'
+    -> InspectorEvent -- ^ 'arnEvent'
+    -> Bool -- ^ 'arnError'
+    -> AssessmentRunNotification
+assessmentRunNotification pDate_ pEvent_ pError_ =
+    AssessmentRunNotification'
+    { _arnSnsTopicARN = Nothing
+    , _arnSnsPublishStatusCode = Nothing
+    , _arnMessage = Nothing
+    , _arnDate = _Time # pDate_
+    , _arnEvent = pEvent_
+    , _arnError = pError_
+    }
+
+-- | The SNS topic to which the SNS notification is sent.
+arnSnsTopicARN :: Lens' AssessmentRunNotification (Maybe Text)
+arnSnsTopicARN = lens _arnSnsTopicARN (\ s a -> s{_arnSnsTopicARN = a});
+
+-- | The status code of the SNS notification.
+arnSnsPublishStatusCode :: Lens' AssessmentRunNotification (Maybe AssessmentRunNotificationSNSStatusCode)
+arnSnsPublishStatusCode = lens _arnSnsPublishStatusCode (\ s a -> s{_arnSnsPublishStatusCode = a});
+
+-- | Undocumented member.
+arnMessage :: Lens' AssessmentRunNotification (Maybe Text)
+arnMessage = lens _arnMessage (\ s a -> s{_arnMessage = a});
+
+-- | The date of the notification.
+arnDate :: Lens' AssessmentRunNotification UTCTime
+arnDate = lens _arnDate (\ s a -> s{_arnDate = a}) . _Time;
+
+-- | The event for which a notification is sent.
+arnEvent :: Lens' AssessmentRunNotification InspectorEvent
+arnEvent = lens _arnEvent (\ s a -> s{_arnEvent = a});
+
+-- | The Boolean value that specifies whether the notification represents an
+-- error.
+arnError :: Lens' AssessmentRunNotification Bool
+arnError = lens _arnError (\ s a -> s{_arnError = a});
+
+instance FromJSON AssessmentRunNotification where
+        parseJSON
+          = withObject "AssessmentRunNotification"
+              (\ x ->
+                 AssessmentRunNotification' <$>
+                   (x .:? "snsTopicArn") <*>
+                     (x .:? "snsPublishStatusCode")
+                     <*> (x .:? "message")
+                     <*> (x .: "date")
+                     <*> (x .: "event")
+                     <*> (x .: "error"))
+
+instance Hashable AssessmentRunNotification
+
+instance NFData AssessmentRunNotification
+
+-- | Used as one of the elements of the < AssessmentRun> data type.
+--
+-- /See:/ 'assessmentRunStateChange' smart constructor.
+data AssessmentRunStateChange = AssessmentRunStateChange'
+    { _arscStateChangedAt :: !POSIX
+    , _arscState          :: !AssessmentRunState
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentRunStateChange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'arscStateChangedAt'
+--
+-- * 'arscState'
+assessmentRunStateChange
+    :: UTCTime -- ^ 'arscStateChangedAt'
+    -> AssessmentRunState -- ^ 'arscState'
+    -> AssessmentRunStateChange
+assessmentRunStateChange pStateChangedAt_ pState_ =
+    AssessmentRunStateChange'
+    { _arscStateChangedAt = _Time # pStateChangedAt_
+    , _arscState = pState_
+    }
+
+-- | The last time the assessment run state changed.
+arscStateChangedAt :: Lens' AssessmentRunStateChange UTCTime
+arscStateChangedAt = lens _arscStateChangedAt (\ s a -> s{_arscStateChangedAt = a}) . _Time;
+
+-- | The assessment run state.
+arscState :: Lens' AssessmentRunStateChange AssessmentRunState
+arscState = lens _arscState (\ s a -> s{_arscState = a});
+
+instance FromJSON AssessmentRunStateChange where
+        parseJSON
+          = withObject "AssessmentRunStateChange"
+              (\ x ->
+                 AssessmentRunStateChange' <$>
+                   (x .: "stateChangedAt") <*> (x .: "state"))
+
+instance Hashable AssessmentRunStateChange
+
+instance NFData AssessmentRunStateChange
+
+-- | Contains information about an Amazon Inspector application. This data
+-- type is used as the response element in the < DescribeAssessmentTargets>
+-- action.
+--
+-- /See:/ 'assessmentTarget' smart constructor.
+data AssessmentTarget = AssessmentTarget'
+    { _aArn              :: !Text
+    , _aName             :: !Text
+    , _aResourceGroupARN :: !Text
+    , _aCreatedAt        :: !POSIX
+    , _aUpdatedAt        :: !POSIX
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentTarget' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aArn'
+--
+-- * 'aName'
+--
+-- * 'aResourceGroupARN'
+--
+-- * 'aCreatedAt'
+--
+-- * 'aUpdatedAt'
+assessmentTarget
+    :: Text -- ^ 'aArn'
+    -> Text -- ^ 'aName'
+    -> Text -- ^ 'aResourceGroupARN'
+    -> UTCTime -- ^ 'aCreatedAt'
+    -> UTCTime -- ^ 'aUpdatedAt'
+    -> AssessmentTarget
+assessmentTarget pArn_ pName_ pResourceGroupARN_ pCreatedAt_ pUpdatedAt_ =
+    AssessmentTarget'
+    { _aArn = pArn_
+    , _aName = pName_
+    , _aResourceGroupARN = pResourceGroupARN_
+    , _aCreatedAt = _Time # pCreatedAt_
+    , _aUpdatedAt = _Time # pUpdatedAt_
+    }
+
+-- | The ARN that specifies the Amazon Inspector assessment target.
+aArn :: Lens' AssessmentTarget Text
+aArn = lens _aArn (\ s a -> s{_aArn = a});
+
+-- | The name of the Amazon Inspector assessment target.
+aName :: Lens' AssessmentTarget Text
+aName = lens _aName (\ s a -> s{_aName = a});
+
+-- | The ARN that specifies the resource group that is associated with the
+-- assessment target.
+aResourceGroupARN :: Lens' AssessmentTarget Text
+aResourceGroupARN = lens _aResourceGroupARN (\ s a -> s{_aResourceGroupARN = a});
+
+-- | The time at which the assessment target is created.
+aCreatedAt :: Lens' AssessmentTarget UTCTime
+aCreatedAt = lens _aCreatedAt (\ s a -> s{_aCreatedAt = a}) . _Time;
+
+-- | The time at which < UpdateAssessmentTarget> is called.
+aUpdatedAt :: Lens' AssessmentTarget UTCTime
+aUpdatedAt = lens _aUpdatedAt (\ s a -> s{_aUpdatedAt = a}) . _Time;
+
+instance FromJSON AssessmentTarget where
+        parseJSON
+          = withObject "AssessmentTarget"
+              (\ x ->
+                 AssessmentTarget' <$>
+                   (x .: "arn") <*> (x .: "name") <*>
+                     (x .: "resourceGroupArn")
+                     <*> (x .: "createdAt")
+                     <*> (x .: "updatedAt"))
+
+instance Hashable AssessmentTarget
+
+instance NFData AssessmentTarget
+
+-- | Used as the request parameter in the < ListAssessmentTargets> action.
+--
+-- /See:/ 'assessmentTargetFilter' smart constructor.
+newtype AssessmentTargetFilter = AssessmentTargetFilter'
+    { _atfAssessmentTargetNamePattern :: Maybe Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentTargetFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atfAssessmentTargetNamePattern'
+assessmentTargetFilter
+    :: AssessmentTargetFilter
+assessmentTargetFilter =
+    AssessmentTargetFilter'
+    { _atfAssessmentTargetNamePattern = Nothing
+    }
+
+-- | For a record to match a filter, an explicit value or a string that
+-- contains a wildcard that is specified for this data type property must
+-- match the value of the __assessmentTargetName__ property of the
+-- < AssessmentTarget> data type.
+atfAssessmentTargetNamePattern :: Lens' AssessmentTargetFilter (Maybe Text)
+atfAssessmentTargetNamePattern = lens _atfAssessmentTargetNamePattern (\ s a -> s{_atfAssessmentTargetNamePattern = a});
+
+instance Hashable AssessmentTargetFilter
+
+instance NFData AssessmentTargetFilter
+
+instance ToJSON AssessmentTargetFilter where
+        toJSON AssessmentTargetFilter'{..}
+          = object
+              (catMaybes
+                 [("assessmentTargetNamePattern" .=) <$>
+                    _atfAssessmentTargetNamePattern])
+
+-- | Contains information about an Amazon Inspector assessment template. This
+-- data type is used as the response element in the
+-- < DescribeAssessmentTemplates> action.
+--
+-- /See:/ 'assessmentTemplate' smart constructor.
+data AssessmentTemplate = AssessmentTemplate'
+    { _atArn                       :: !Text
+    , _atName                      :: !Text
+    , _atAssessmentTargetARN       :: !Text
+    , _atDurationInSeconds         :: !Nat
+    , _atRulesPackageARNs          :: ![Text]
+    , _atUserAttributesForFindings :: ![Attribute]
+    , _atCreatedAt                 :: !POSIX
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentTemplate' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atArn'
+--
+-- * 'atName'
+--
+-- * 'atAssessmentTargetARN'
+--
+-- * 'atDurationInSeconds'
+--
+-- * 'atRulesPackageARNs'
+--
+-- * 'atUserAttributesForFindings'
+--
+-- * 'atCreatedAt'
+assessmentTemplate
+    :: Text -- ^ 'atArn'
+    -> Text -- ^ 'atName'
+    -> Text -- ^ 'atAssessmentTargetARN'
+    -> Natural -- ^ 'atDurationInSeconds'
+    -> UTCTime -- ^ 'atCreatedAt'
+    -> AssessmentTemplate
+assessmentTemplate pArn_ pName_ pAssessmentTargetARN_ pDurationInSeconds_ pCreatedAt_ =
+    AssessmentTemplate'
+    { _atArn = pArn_
+    , _atName = pName_
+    , _atAssessmentTargetARN = pAssessmentTargetARN_
+    , _atDurationInSeconds = _Nat # pDurationInSeconds_
+    , _atRulesPackageARNs = mempty
+    , _atUserAttributesForFindings = mempty
+    , _atCreatedAt = _Time # pCreatedAt_
+    }
+
+-- | The ARN of the assessment template.
+atArn :: Lens' AssessmentTemplate Text
+atArn = lens _atArn (\ s a -> s{_atArn = a});
+
+-- | The name of the assessment template.
+atName :: Lens' AssessmentTemplate Text
+atName = lens _atName (\ s a -> s{_atName = a});
+
+-- | The ARN of the assessment target that corresponds to this assessment
+-- template.
+atAssessmentTargetARN :: Lens' AssessmentTemplate Text
+atAssessmentTargetARN = lens _atAssessmentTargetARN (\ s a -> s{_atAssessmentTargetARN = a});
+
+-- | The duration in seconds specified for this assessment tempate. The
+-- default value is 3600 seconds (one hour). The maximum value is 86400
+-- seconds (one day).
+atDurationInSeconds :: Lens' AssessmentTemplate Natural
+atDurationInSeconds = lens _atDurationInSeconds (\ s a -> s{_atDurationInSeconds = a}) . _Nat;
+
+-- | The rules packages that are specified for this assessment template.
+atRulesPackageARNs :: Lens' AssessmentTemplate [Text]
+atRulesPackageARNs = lens _atRulesPackageARNs (\ s a -> s{_atRulesPackageARNs = a}) . _Coerce;
+
+-- | The user-defined attributes that are assigned to every generated finding
+-- from the assessment run that uses this assessment template.
+atUserAttributesForFindings :: Lens' AssessmentTemplate [Attribute]
+atUserAttributesForFindings = lens _atUserAttributesForFindings (\ s a -> s{_atUserAttributesForFindings = a}) . _Coerce;
+
+-- | The time at which the assessment template is created.
+atCreatedAt :: Lens' AssessmentTemplate UTCTime
+atCreatedAt = lens _atCreatedAt (\ s a -> s{_atCreatedAt = a}) . _Time;
+
+instance FromJSON AssessmentTemplate where
+        parseJSON
+          = withObject "AssessmentTemplate"
+              (\ x ->
+                 AssessmentTemplate' <$>
+                   (x .: "arn") <*> (x .: "name") <*>
+                     (x .: "assessmentTargetArn")
+                     <*> (x .: "durationInSeconds")
+                     <*> (x .:? "rulesPackageArns" .!= mempty)
+                     <*> (x .:? "userAttributesForFindings" .!= mempty)
+                     <*> (x .: "createdAt"))
+
+instance Hashable AssessmentTemplate
+
+instance NFData AssessmentTemplate
+
+-- | Used as the request parameter in the < ListAssessmentTemplates> action.
+--
+-- /See:/ 'assessmentTemplateFilter' smart constructor.
+data AssessmentTemplateFilter = AssessmentTemplateFilter'
+    { _atfNamePattern      :: !(Maybe Text)
+    , _atfRulesPackageARNs :: !(Maybe [Text])
+    , _atfDurationRange    :: !(Maybe DurationRange)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssessmentTemplateFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'atfNamePattern'
+--
+-- * 'atfRulesPackageARNs'
+--
+-- * 'atfDurationRange'
+assessmentTemplateFilter
+    :: AssessmentTemplateFilter
+assessmentTemplateFilter =
+    AssessmentTemplateFilter'
+    { _atfNamePattern = Nothing
+    , _atfRulesPackageARNs = Nothing
+    , _atfDurationRange = Nothing
+    }
+
+-- | For a record to match a filter, an explicit value or a string that
+-- contains a wildcard that is specified for this data type property must
+-- match the value of the __assessmentTemplateName__ property of the
+-- < AssessmentTemplate> data type.
+atfNamePattern :: Lens' AssessmentTemplateFilter (Maybe Text)
+atfNamePattern = lens _atfNamePattern (\ s a -> s{_atfNamePattern = a});
+
+-- | For a record to match a filter, the values that are specified for this
+-- data type property must be contained in the list of values of the
+-- __rulesPackageArns__ property of the < AssessmentTemplate> data type.
+atfRulesPackageARNs :: Lens' AssessmentTemplateFilter [Text]
+atfRulesPackageARNs = lens _atfRulesPackageARNs (\ s a -> s{_atfRulesPackageARNs = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, the value specified for this data type
+-- property must inclusively match any value between the specified minimum
+-- and maximum values of the __durationInSeconds__ property of the
+-- < AssessmentTemplate> data type.
+atfDurationRange :: Lens' AssessmentTemplateFilter (Maybe DurationRange)
+atfDurationRange = lens _atfDurationRange (\ s a -> s{_atfDurationRange = a});
+
+instance Hashable AssessmentTemplateFilter
+
+instance NFData AssessmentTemplateFilter
+
+instance ToJSON AssessmentTemplateFilter where
+        toJSON AssessmentTemplateFilter'{..}
+          = object
+              (catMaybes
+                 [("namePattern" .=) <$> _atfNamePattern,
+                  ("rulesPackageArns" .=) <$> _atfRulesPackageARNs,
+                  ("durationRange" .=) <$> _atfDurationRange])
+
+-- | A collection of attributes of the host from which the finding is
+-- generated.
+--
+-- /See:/ 'assetAttributes' smart constructor.
+data AssetAttributes = AssetAttributes'
+    { _aaHostname         :: !(Maybe Text)
+    , _aaAutoScalingGroup :: !(Maybe Text)
+    , _aaIpv4Addresses    :: !(Maybe [Text])
+    , _aaAgentId          :: !(Maybe Text)
+    , _aaAmiId            :: !(Maybe Text)
+    , _aaSchemaVersion    :: !Nat
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'AssetAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aaHostname'
+--
+-- * 'aaAutoScalingGroup'
+--
+-- * 'aaIpv4Addresses'
+--
+-- * 'aaAgentId'
+--
+-- * 'aaAmiId'
+--
+-- * 'aaSchemaVersion'
+assetAttributes
+    :: Natural -- ^ 'aaSchemaVersion'
+    -> AssetAttributes
+assetAttributes pSchemaVersion_ =
+    AssetAttributes'
+    { _aaHostname = Nothing
+    , _aaAutoScalingGroup = Nothing
+    , _aaIpv4Addresses = Nothing
+    , _aaAgentId = Nothing
+    , _aaAmiId = Nothing
+    , _aaSchemaVersion = _Nat # pSchemaVersion_
+    }
+
+-- | The hostname of the EC2 instance where the finding is generated.
+aaHostname :: Lens' AssetAttributes (Maybe Text)
+aaHostname = lens _aaHostname (\ s a -> s{_aaHostname = a});
+
+-- | The Auto Scaling group of the EC2 instance where the finding is
+-- generated.
+aaAutoScalingGroup :: Lens' AssetAttributes (Maybe Text)
+aaAutoScalingGroup = lens _aaAutoScalingGroup (\ s a -> s{_aaAutoScalingGroup = a});
+
+-- | The list of IP v4 addresses of the EC2 instance where the finding is
+-- generated.
+aaIpv4Addresses :: Lens' AssetAttributes [Text]
+aaIpv4Addresses = lens _aaIpv4Addresses (\ s a -> s{_aaIpv4Addresses = a}) . _Default . _Coerce;
+
+-- | The ID of the agent that is installed on the EC2 instance where the
+-- finding is generated.
+aaAgentId :: Lens' AssetAttributes (Maybe Text)
+aaAgentId = lens _aaAgentId (\ s a -> s{_aaAgentId = a});
+
+-- | The ID of the Amazon Machine Image (AMI) that is installed on the EC2
+-- instance where the finding is generated.
+aaAmiId :: Lens' AssetAttributes (Maybe Text)
+aaAmiId = lens _aaAmiId (\ s a -> s{_aaAmiId = a});
+
+-- | The schema version of this data type.
+aaSchemaVersion :: Lens' AssetAttributes Natural
+aaSchemaVersion = lens _aaSchemaVersion (\ s a -> s{_aaSchemaVersion = a}) . _Nat;
+
+instance FromJSON AssetAttributes where
+        parseJSON
+          = withObject "AssetAttributes"
+              (\ x ->
+                 AssetAttributes' <$>
+                   (x .:? "hostname") <*> (x .:? "autoScalingGroup") <*>
+                     (x .:? "ipv4Addresses" .!= mempty)
+                     <*> (x .:? "agentId")
+                     <*> (x .:? "amiId")
+                     <*> (x .: "schemaVersion"))
+
+instance Hashable AssetAttributes
+
+instance NFData AssetAttributes
+
+-- | This data type is used as a request parameter in the
+-- < AddAttributesToFindings> and < CreateAssessmentTemplate> actions.
+--
+-- /See:/ 'attribute' smart constructor.
+data Attribute = Attribute'
+    { _aValue :: !(Maybe Text)
+    , _aKey   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Attribute' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'aValue'
+--
+-- * 'aKey'
+attribute
+    :: Text -- ^ 'aKey'
+    -> Attribute
+attribute pKey_ =
+    Attribute'
+    { _aValue = Nothing
+    , _aKey = pKey_
+    }
+
+-- | The value assigned to the attribute key.
+aValue :: Lens' Attribute (Maybe Text)
+aValue = lens _aValue (\ s a -> s{_aValue = a});
+
+-- | The attribute key.
+aKey :: Lens' Attribute Text
+aKey = lens _aKey (\ s a -> s{_aKey = a});
+
+instance FromJSON Attribute where
+        parseJSON
+          = withObject "Attribute"
+              (\ x ->
+                 Attribute' <$> (x .:? "value") <*> (x .: "key"))
+
+instance Hashable Attribute
+
+instance NFData Attribute
+
+instance ToJSON Attribute where
+        toJSON Attribute'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _aValue, Just ("key" .= _aKey)])
+
+-- | This data type is used in the < AssessmentTemplateFilter> data type.
+--
+-- /See:/ 'durationRange' smart constructor.
+data DurationRange = DurationRange'
+    { _drMinSeconds :: !(Maybe Nat)
+    , _drMaxSeconds :: !(Maybe Nat)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'DurationRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'drMinSeconds'
+--
+-- * 'drMaxSeconds'
+durationRange
+    :: DurationRange
+durationRange =
+    DurationRange'
+    { _drMinSeconds = Nothing
+    , _drMaxSeconds = Nothing
+    }
+
+-- | The minimum value of the duration range. Must be greater than zero.
+drMinSeconds :: Lens' DurationRange (Maybe Natural)
+drMinSeconds = lens _drMinSeconds (\ s a -> s{_drMinSeconds = a}) . mapping _Nat;
+
+-- | The maximum value of the duration range. Must be less than or equal to
+-- 604800 seconds (1 week).
+drMaxSeconds :: Lens' DurationRange (Maybe Natural)
+drMaxSeconds = lens _drMaxSeconds (\ s a -> s{_drMaxSeconds = a}) . mapping _Nat;
+
+instance Hashable DurationRange
+
+instance NFData DurationRange
+
+instance ToJSON DurationRange where
+        toJSON DurationRange'{..}
+          = object
+              (catMaybes
+                 [("minSeconds" .=) <$> _drMinSeconds,
+                  ("maxSeconds" .=) <$> _drMaxSeconds])
+
+-- | This data type is used in the < Subscription> data type.
+--
+-- /See:/ 'eventSubscription' smart constructor.
+data EventSubscription = EventSubscription'
+    { _esEvent        :: !InspectorEvent
+    , _esSubscribedAt :: !POSIX
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'EventSubscription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'esEvent'
+--
+-- * 'esSubscribedAt'
+eventSubscription
+    :: InspectorEvent -- ^ 'esEvent'
+    -> UTCTime -- ^ 'esSubscribedAt'
+    -> EventSubscription
+eventSubscription pEvent_ pSubscribedAt_ =
+    EventSubscription'
+    { _esEvent = pEvent_
+    , _esSubscribedAt = _Time # pSubscribedAt_
+    }
+
+-- | The event for which Amazon Simple Notification Service (SNS)
+-- notifications are sent.
+esEvent :: Lens' EventSubscription InspectorEvent
+esEvent = lens _esEvent (\ s a -> s{_esEvent = a});
+
+-- | The time at which < SubscribeToEvent> is called.
+esSubscribedAt :: Lens' EventSubscription UTCTime
+esSubscribedAt = lens _esSubscribedAt (\ s a -> s{_esSubscribedAt = a}) . _Time;
+
+instance FromJSON EventSubscription where
+        parseJSON
+          = withObject "EventSubscription"
+              (\ x ->
+                 EventSubscription' <$>
+                   (x .: "event") <*> (x .: "subscribedAt"))
+
+instance Hashable EventSubscription
+
+instance NFData EventSubscription
+
+-- | Includes details about the failed items.
+--
+-- /See:/ 'failedItemDetails' smart constructor.
+data FailedItemDetails = FailedItemDetails'
+    { _fidFailureCode :: !FailedItemErrorCode
+    , _fidRetryable   :: !Bool
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FailedItemDetails' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fidFailureCode'
+--
+-- * 'fidRetryable'
+failedItemDetails
+    :: FailedItemErrorCode -- ^ 'fidFailureCode'
+    -> Bool -- ^ 'fidRetryable'
+    -> FailedItemDetails
+failedItemDetails pFailureCode_ pRetryable_ =
+    FailedItemDetails'
+    { _fidFailureCode = pFailureCode_
+    , _fidRetryable = pRetryable_
+    }
+
+-- | The status code of a failed item.
+fidFailureCode :: Lens' FailedItemDetails FailedItemErrorCode
+fidFailureCode = lens _fidFailureCode (\ s a -> s{_fidFailureCode = a});
+
+-- | Indicates whether you can immediately retry a request for this item for
+-- a specified resource.
+fidRetryable :: Lens' FailedItemDetails Bool
+fidRetryable = lens _fidRetryable (\ s a -> s{_fidRetryable = a});
+
+instance FromJSON FailedItemDetails where
+        parseJSON
+          = withObject "FailedItemDetails"
+              (\ x ->
+                 FailedItemDetails' <$>
+                   (x .: "failureCode") <*> (x .: "retryable"))
+
+instance Hashable FailedItemDetails
+
+instance NFData FailedItemDetails
+
+-- | Contains information about an Amazon Inspector finding. This data type
+-- is used as the response element in the < DescribeFindings> action.
+--
+-- /See:/ 'finding' smart constructor.
+data Finding = Finding'
+    { _fService               :: !(Maybe Text)
+    , _fSeverity              :: !(Maybe Severity)
+    , _fSchemaVersion         :: !(Maybe Nat)
+    , _fConfidence            :: !(Maybe Nat)
+    , _fAssetAttributes       :: !(Maybe AssetAttributes)
+    , _fServiceAttributes     :: !(Maybe InspectorServiceAttributes)
+    , _fId                    :: !(Maybe Text)
+    , _fNumericSeverity       :: !(Maybe Double)
+    , _fAssetType             :: !(Maybe AssetType)
+    , _fTitle                 :: !(Maybe Text)
+    , _fIndicatorOfCompromise :: !(Maybe Bool)
+    , _fDescription           :: !(Maybe Text)
+    , _fRecommendation        :: !(Maybe Text)
+    , _fArn                   :: !Text
+    , _fAttributes            :: ![Attribute]
+    , _fUserAttributes        :: ![Attribute]
+    , _fCreatedAt             :: !POSIX
+    , _fUpdatedAt             :: !POSIX
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Finding' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'fService'
+--
+-- * 'fSeverity'
+--
+-- * 'fSchemaVersion'
+--
+-- * 'fConfidence'
+--
+-- * 'fAssetAttributes'
+--
+-- * 'fServiceAttributes'
+--
+-- * 'fId'
+--
+-- * 'fNumericSeverity'
+--
+-- * 'fAssetType'
+--
+-- * 'fTitle'
+--
+-- * 'fIndicatorOfCompromise'
+--
+-- * 'fDescription'
+--
+-- * 'fRecommendation'
+--
+-- * 'fArn'
+--
+-- * 'fAttributes'
+--
+-- * 'fUserAttributes'
+--
+-- * 'fCreatedAt'
+--
+-- * 'fUpdatedAt'
+finding
+    :: Text -- ^ 'fArn'
+    -> UTCTime -- ^ 'fCreatedAt'
+    -> UTCTime -- ^ 'fUpdatedAt'
+    -> Finding
+finding pArn_ pCreatedAt_ pUpdatedAt_ =
+    Finding'
+    { _fService = Nothing
+    , _fSeverity = Nothing
+    , _fSchemaVersion = Nothing
+    , _fConfidence = Nothing
+    , _fAssetAttributes = Nothing
+    , _fServiceAttributes = Nothing
+    , _fId = Nothing
+    , _fNumericSeverity = Nothing
+    , _fAssetType = Nothing
+    , _fTitle = Nothing
+    , _fIndicatorOfCompromise = Nothing
+    , _fDescription = Nothing
+    , _fRecommendation = Nothing
+    , _fArn = pArn_
+    , _fAttributes = mempty
+    , _fUserAttributes = mempty
+    , _fCreatedAt = _Time # pCreatedAt_
+    , _fUpdatedAt = _Time # pUpdatedAt_
+    }
+
+-- | The data element is set to \"Inspector\".
+fService :: Lens' Finding (Maybe Text)
+fService = lens _fService (\ s a -> s{_fService = a});
+
+-- | The finding severity. Values can be set to High, Medium, Low, and
+-- Informational.
+fSeverity :: Lens' Finding (Maybe Severity)
+fSeverity = lens _fSeverity (\ s a -> s{_fSeverity = a});
+
+-- | The schema version of this data type.
+fSchemaVersion :: Lens' Finding (Maybe Natural)
+fSchemaVersion = lens _fSchemaVersion (\ s a -> s{_fSchemaVersion = a}) . mapping _Nat;
+
+-- | This data element is currently not used.
+fConfidence :: Lens' Finding (Maybe Natural)
+fConfidence = lens _fConfidence (\ s a -> s{_fConfidence = a}) . mapping _Nat;
+
+-- | A collection of attributes of the host from which the finding is
+-- generated.
+fAssetAttributes :: Lens' Finding (Maybe AssetAttributes)
+fAssetAttributes = lens _fAssetAttributes (\ s a -> s{_fAssetAttributes = a});
+
+-- | Undocumented member.
+fServiceAttributes :: Lens' Finding (Maybe InspectorServiceAttributes)
+fServiceAttributes = lens _fServiceAttributes (\ s a -> s{_fServiceAttributes = a});
+
+-- | The ID of the finding.
+fId :: Lens' Finding (Maybe Text)
+fId = lens _fId (\ s a -> s{_fId = a});
+
+-- | The numeric value of the finding severity.
+fNumericSeverity :: Lens' Finding (Maybe Double)
+fNumericSeverity = lens _fNumericSeverity (\ s a -> s{_fNumericSeverity = a});
+
+-- | The type of the host from which the finding is generated.
+fAssetType :: Lens' Finding (Maybe AssetType)
+fAssetType = lens _fAssetType (\ s a -> s{_fAssetType = a});
+
+-- | The name of the finding.
+fTitle :: Lens' Finding (Maybe Text)
+fTitle = lens _fTitle (\ s a -> s{_fTitle = a});
+
+-- | This data element is currently not used.
+fIndicatorOfCompromise :: Lens' Finding (Maybe Bool)
+fIndicatorOfCompromise = lens _fIndicatorOfCompromise (\ s a -> s{_fIndicatorOfCompromise = a});
+
+-- | The description of the finding.
+fDescription :: Lens' Finding (Maybe Text)
+fDescription = lens _fDescription (\ s a -> s{_fDescription = a});
+
+-- | The recommendation for the finding.
+fRecommendation :: Lens' Finding (Maybe Text)
+fRecommendation = lens _fRecommendation (\ s a -> s{_fRecommendation = a});
+
+-- | The ARN that specifies the finding.
+fArn :: Lens' Finding Text
+fArn = lens _fArn (\ s a -> s{_fArn = a});
+
+-- | The system-defined attributes for the finding.
+fAttributes :: Lens' Finding [Attribute]
+fAttributes = lens _fAttributes (\ s a -> s{_fAttributes = a}) . _Coerce;
+
+-- | The user-defined attributes that are assigned to the finding.
+fUserAttributes :: Lens' Finding [Attribute]
+fUserAttributes = lens _fUserAttributes (\ s a -> s{_fUserAttributes = a}) . _Coerce;
+
+-- | The time when the finding was generated.
+fCreatedAt :: Lens' Finding UTCTime
+fCreatedAt = lens _fCreatedAt (\ s a -> s{_fCreatedAt = a}) . _Time;
+
+-- | The time when < AddAttributesToFindings> is called.
+fUpdatedAt :: Lens' Finding UTCTime
+fUpdatedAt = lens _fUpdatedAt (\ s a -> s{_fUpdatedAt = a}) . _Time;
+
+instance FromJSON Finding where
+        parseJSON
+          = withObject "Finding"
+              (\ x ->
+                 Finding' <$>
+                   (x .:? "service") <*> (x .:? "severity") <*>
+                     (x .:? "schemaVersion")
+                     <*> (x .:? "confidence")
+                     <*> (x .:? "assetAttributes")
+                     <*> (x .:? "serviceAttributes")
+                     <*> (x .:? "id")
+                     <*> (x .:? "numericSeverity")
+                     <*> (x .:? "assetType")
+                     <*> (x .:? "title")
+                     <*> (x .:? "indicatorOfCompromise")
+                     <*> (x .:? "description")
+                     <*> (x .:? "recommendation")
+                     <*> (x .: "arn")
+                     <*> (x .:? "attributes" .!= mempty)
+                     <*> (x .:? "userAttributes" .!= mempty)
+                     <*> (x .: "createdAt")
+                     <*> (x .: "updatedAt"))
+
+instance Hashable Finding
+
+instance NFData Finding
+
+-- | This data type is used as a request parameter in the < ListFindings>
+-- action.
+--
+-- /See:/ 'findingFilter' smart constructor.
+data FindingFilter = FindingFilter'
+    { _ffAgentIds          :: !(Maybe [Text])
+    , _ffRuleNames         :: !(Maybe [Text])
+    , _ffUserAttributes    :: !(Maybe [Attribute])
+    , _ffRulesPackageARNs  :: !(Maybe [Text])
+    , _ffAttributes        :: !(Maybe [Attribute])
+    , _ffSeverities        :: !(Maybe [Severity])
+    , _ffCreationTimeRange :: !(Maybe TimestampRange)
+    , _ffAutoScalingGroups :: !(Maybe [Text])
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'FindingFilter' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ffAgentIds'
+--
+-- * 'ffRuleNames'
+--
+-- * 'ffUserAttributes'
+--
+-- * 'ffRulesPackageARNs'
+--
+-- * 'ffAttributes'
+--
+-- * 'ffSeverities'
+--
+-- * 'ffCreationTimeRange'
+--
+-- * 'ffAutoScalingGroups'
+findingFilter
+    :: FindingFilter
+findingFilter =
+    FindingFilter'
+    { _ffAgentIds = Nothing
+    , _ffRuleNames = Nothing
+    , _ffUserAttributes = Nothing
+    , _ffRulesPackageARNs = Nothing
+    , _ffAttributes = Nothing
+    , _ffSeverities = Nothing
+    , _ffCreationTimeRange = Nothing
+    , _ffAutoScalingGroups = Nothing
+    }
+
+-- | For a record to match a filter, one of the values that is specified for
+-- this data type property must be the exact match of the value of the
+-- __agentId__ property of the < Finding> data type.
+ffAgentIds :: Lens' FindingFilter [Text]
+ffAgentIds = lens _ffAgentIds (\ s a -> s{_ffAgentIds = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, one of the values that is specified for
+-- this data type property must be the exact match of the value of the
+-- __ruleName__ property of the < Finding> data type.
+ffRuleNames :: Lens' FindingFilter [Text]
+ffRuleNames = lens _ffRuleNames (\ s a -> s{_ffRuleNames = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, the value that is specified for this
+-- data type property must be contained in the list of values of the
+-- __userAttributes__ property of the < Finding> data type.
+ffUserAttributes :: Lens' FindingFilter [Attribute]
+ffUserAttributes = lens _ffUserAttributes (\ s a -> s{_ffUserAttributes = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, one of the values that is specified for
+-- this data type property must be the exact match of the value of the
+-- __rulesPackageArn__ property of the < Finding> data type.
+ffRulesPackageARNs :: Lens' FindingFilter [Text]
+ffRulesPackageARNs = lens _ffRulesPackageARNs (\ s a -> s{_ffRulesPackageARNs = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, the list of values that are specified
+-- for this data type property must be contained in the list of values of
+-- the __attributes__ property of the < Finding> data type.
+ffAttributes :: Lens' FindingFilter [Attribute]
+ffAttributes = lens _ffAttributes (\ s a -> s{_ffAttributes = a}) . _Default . _Coerce;
+
+-- | For a record to match a filter, one of the values that is specified for
+-- this data type property must be the exact match of the value of the
+-- __severity__ property of the < Finding> data type.
+ffSeverities :: Lens' FindingFilter [Severity]
+ffSeverities = lens _ffSeverities (\ s a -> s{_ffSeverities = a}) . _Default . _Coerce;
+
+-- | The time range during which the finding is generated.
+ffCreationTimeRange :: Lens' FindingFilter (Maybe TimestampRange)
+ffCreationTimeRange = lens _ffCreationTimeRange (\ s a -> s{_ffCreationTimeRange = a});
+
+-- | For a record to match a filter, one of the values that is specified for
+-- this data type property must be the exact match of the value of the
+-- __autoScalingGroup__ property of the < Finding> data type.
+ffAutoScalingGroups :: Lens' FindingFilter [Text]
+ffAutoScalingGroups = lens _ffAutoScalingGroups (\ s a -> s{_ffAutoScalingGroups = a}) . _Default . _Coerce;
+
+instance Hashable FindingFilter
+
+instance NFData FindingFilter
+
+instance ToJSON FindingFilter where
+        toJSON FindingFilter'{..}
+          = object
+              (catMaybes
+                 [("agentIds" .=) <$> _ffAgentIds,
+                  ("ruleNames" .=) <$> _ffRuleNames,
+                  ("userAttributes" .=) <$> _ffUserAttributes,
+                  ("rulesPackageArns" .=) <$> _ffRulesPackageARNs,
+                  ("attributes" .=) <$> _ffAttributes,
+                  ("severities" .=) <$> _ffSeverities,
+                  ("creationTimeRange" .=) <$> _ffCreationTimeRange,
+                  ("autoScalingGroups" .=) <$> _ffAutoScalingGroups])
+
+-- | This data type is used in the < Finding> data type.
+--
+-- /See:/ 'inspectorServiceAttributes' smart constructor.
+data InspectorServiceAttributes = InspectorServiceAttributes'
+    { _isaRulesPackageARN  :: !(Maybe Text)
+    , _isaAssessmentRunARN :: !(Maybe Text)
+    , _isaSchemaVersion    :: !Nat
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'InspectorServiceAttributes' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'isaRulesPackageARN'
+--
+-- * 'isaAssessmentRunARN'
+--
+-- * 'isaSchemaVersion'
+inspectorServiceAttributes
+    :: Natural -- ^ 'isaSchemaVersion'
+    -> InspectorServiceAttributes
+inspectorServiceAttributes pSchemaVersion_ =
+    InspectorServiceAttributes'
+    { _isaRulesPackageARN = Nothing
+    , _isaAssessmentRunARN = Nothing
+    , _isaSchemaVersion = _Nat # pSchemaVersion_
+    }
+
+-- | The ARN of the rules package that is used to generate the finding.
+isaRulesPackageARN :: Lens' InspectorServiceAttributes (Maybe Text)
+isaRulesPackageARN = lens _isaRulesPackageARN (\ s a -> s{_isaRulesPackageARN = a});
+
+-- | The ARN of the assessment run during which the finding is generated.
+isaAssessmentRunARN :: Lens' InspectorServiceAttributes (Maybe Text)
+isaAssessmentRunARN = lens _isaAssessmentRunARN (\ s a -> s{_isaAssessmentRunARN = a});
+
+-- | The schema version of this data type.
+isaSchemaVersion :: Lens' InspectorServiceAttributes Natural
+isaSchemaVersion = lens _isaSchemaVersion (\ s a -> s{_isaSchemaVersion = a}) . _Nat;
+
+instance FromJSON InspectorServiceAttributes where
+        parseJSON
+          = withObject "InspectorServiceAttributes"
+              (\ x ->
+                 InspectorServiceAttributes' <$>
+                   (x .:? "rulesPackageArn") <*>
+                     (x .:? "assessmentRunArn")
+                     <*> (x .: "schemaVersion"))
+
+instance Hashable InspectorServiceAttributes
+
+instance NFData InspectorServiceAttributes
+
+-- | Contains information about a resource group. The resource group defines
+-- a set of tags that, when queried, identify the AWS resources that make
+-- up the assessment target. This data type is used as the response element
+-- in the < DescribeResourceGroups> action.
+--
+-- /See:/ 'resourceGroup' smart constructor.
+data ResourceGroup = ResourceGroup'
+    { _rgArn       :: !Text
+    , _rgTags      :: !(List1 ResourceGroupTag)
+    , _rgCreatedAt :: !POSIX
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceGroup' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rgArn'
+--
+-- * 'rgTags'
+--
+-- * 'rgCreatedAt'
+resourceGroup
+    :: Text -- ^ 'rgArn'
+    -> NonEmpty ResourceGroupTag -- ^ 'rgTags'
+    -> UTCTime -- ^ 'rgCreatedAt'
+    -> ResourceGroup
+resourceGroup pArn_ pTags_ pCreatedAt_ =
+    ResourceGroup'
+    { _rgArn = pArn_
+    , _rgTags = _List1 # pTags_
+    , _rgCreatedAt = _Time # pCreatedAt_
+    }
+
+-- | The ARN of the resource group.
+rgArn :: Lens' ResourceGroup Text
+rgArn = lens _rgArn (\ s a -> s{_rgArn = a});
+
+-- | The tags (key and value pairs) of the resource group. This data type
+-- property is used in the < CreateResourceGroup> action.
+rgTags :: Lens' ResourceGroup (NonEmpty ResourceGroupTag)
+rgTags = lens _rgTags (\ s a -> s{_rgTags = a}) . _List1;
+
+-- | The time at which resource group is created.
+rgCreatedAt :: Lens' ResourceGroup UTCTime
+rgCreatedAt = lens _rgCreatedAt (\ s a -> s{_rgCreatedAt = a}) . _Time;
+
+instance FromJSON ResourceGroup where
+        parseJSON
+          = withObject "ResourceGroup"
+              (\ x ->
+                 ResourceGroup' <$>
+                   (x .: "arn") <*> (x .: "tags") <*>
+                     (x .: "createdAt"))
+
+instance Hashable ResourceGroup
+
+instance NFData ResourceGroup
+
+-- | This data type is used as one of the elements of the < ResourceGroup>
+-- data type.
+--
+-- /See:/ 'resourceGroupTag' smart constructor.
+data ResourceGroupTag = ResourceGroupTag'
+    { _rgtValue :: !(Maybe Text)
+    , _rgtKey   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'ResourceGroupTag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rgtValue'
+--
+-- * 'rgtKey'
+resourceGroupTag
+    :: Text -- ^ 'rgtKey'
+    -> ResourceGroupTag
+resourceGroupTag pKey_ =
+    ResourceGroupTag'
+    { _rgtValue = Nothing
+    , _rgtKey = pKey_
+    }
+
+-- | The value assigned to a tag key.
+rgtValue :: Lens' ResourceGroupTag (Maybe Text)
+rgtValue = lens _rgtValue (\ s a -> s{_rgtValue = a});
+
+-- | A tag key.
+rgtKey :: Lens' ResourceGroupTag Text
+rgtKey = lens _rgtKey (\ s a -> s{_rgtKey = a});
+
+instance FromJSON ResourceGroupTag where
+        parseJSON
+          = withObject "ResourceGroupTag"
+              (\ x ->
+                 ResourceGroupTag' <$>
+                   (x .:? "value") <*> (x .: "key"))
+
+instance Hashable ResourceGroupTag
+
+instance NFData ResourceGroupTag
+
+instance ToJSON ResourceGroupTag where
+        toJSON ResourceGroupTag'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _rgtValue,
+                  Just ("key" .= _rgtKey)])
+
+-- | Contains information about an Amazon Inspector rules package. This data
+-- type is used as the response element in the < DescribeRulesPackages>
+-- action.
+--
+-- /See:/ 'rulesPackage' smart constructor.
+data RulesPackage = RulesPackage'
+    { _rpDescription :: !(Maybe Text)
+    , _rpArn         :: !Text
+    , _rpName        :: !Text
+    , _rpVersion     :: !Text
+    , _rpProvider    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'RulesPackage' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'rpDescription'
+--
+-- * 'rpArn'
+--
+-- * 'rpName'
+--
+-- * 'rpVersion'
+--
+-- * 'rpProvider'
+rulesPackage
+    :: Text -- ^ 'rpArn'
+    -> Text -- ^ 'rpName'
+    -> Text -- ^ 'rpVersion'
+    -> Text -- ^ 'rpProvider'
+    -> RulesPackage
+rulesPackage pArn_ pName_ pVersion_ pProvider_ =
+    RulesPackage'
+    { _rpDescription = Nothing
+    , _rpArn = pArn_
+    , _rpName = pName_
+    , _rpVersion = pVersion_
+    , _rpProvider = pProvider_
+    }
+
+-- | The description of the rules package.
+rpDescription :: Lens' RulesPackage (Maybe Text)
+rpDescription = lens _rpDescription (\ s a -> s{_rpDescription = a});
+
+-- | The ARN of the rules package.
+rpArn :: Lens' RulesPackage Text
+rpArn = lens _rpArn (\ s a -> s{_rpArn = a});
+
+-- | The name of the rules package.
+rpName :: Lens' RulesPackage Text
+rpName = lens _rpName (\ s a -> s{_rpName = a});
+
+-- | The version ID of the rules package.
+rpVersion :: Lens' RulesPackage Text
+rpVersion = lens _rpVersion (\ s a -> s{_rpVersion = a});
+
+-- | The provider of the rules package.
+rpProvider :: Lens' RulesPackage Text
+rpProvider = lens _rpProvider (\ s a -> s{_rpProvider = a});
+
+instance FromJSON RulesPackage where
+        parseJSON
+          = withObject "RulesPackage"
+              (\ x ->
+                 RulesPackage' <$>
+                   (x .:? "description") <*> (x .: "arn") <*>
+                     (x .: "name")
+                     <*> (x .: "version")
+                     <*> (x .: "provider"))
+
+instance Hashable RulesPackage
+
+instance NFData RulesPackage
+
+-- | This data type is used as a response element in the
+-- < ListEventSubscriptions> action.
+--
+-- /See:/ 'subscription' smart constructor.
+data Subscription = Subscription'
+    { _sResourceARN        :: !Text
+    , _sTopicARN           :: !Text
+    , _sEventSubscriptions :: !(List1 EventSubscription)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Subscription' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'sResourceARN'
+--
+-- * 'sTopicARN'
+--
+-- * 'sEventSubscriptions'
+subscription
+    :: Text -- ^ 'sResourceARN'
+    -> Text -- ^ 'sTopicARN'
+    -> NonEmpty EventSubscription -- ^ 'sEventSubscriptions'
+    -> Subscription
+subscription pResourceARN_ pTopicARN_ pEventSubscriptions_ =
+    Subscription'
+    { _sResourceARN = pResourceARN_
+    , _sTopicARN = pTopicARN_
+    , _sEventSubscriptions = _List1 # pEventSubscriptions_
+    }
+
+-- | The ARN of the assessment template that is used during the event for
+-- which the SNS notification is sent.
+sResourceARN :: Lens' Subscription Text
+sResourceARN = lens _sResourceARN (\ s a -> s{_sResourceARN = a});
+
+-- | The ARN of the Amazon Simple Notification Service (SNS) topic to which
+-- the SNS notifications are sent.
+sTopicARN :: Lens' Subscription Text
+sTopicARN = lens _sTopicARN (\ s a -> s{_sTopicARN = a});
+
+-- | The list of existing event subscriptions.
+sEventSubscriptions :: Lens' Subscription (NonEmpty EventSubscription)
+sEventSubscriptions = lens _sEventSubscriptions (\ s a -> s{_sEventSubscriptions = a}) . _List1;
+
+instance FromJSON Subscription where
+        parseJSON
+          = withObject "Subscription"
+              (\ x ->
+                 Subscription' <$>
+                   (x .: "resourceArn") <*> (x .: "topicArn") <*>
+                     (x .: "eventSubscriptions"))
+
+instance Hashable Subscription
+
+instance NFData Subscription
+
+-- | A key and value pair. This data type is used as a request parameter in
+-- the < SetTagsForResource> action and a response element in the
+-- < ListTagsForResource> action.
+--
+-- /See:/ 'tag' smart constructor.
+data Tag = Tag'
+    { _tagValue :: !(Maybe Text)
+    , _tagKey   :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'Tag' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tagValue'
+--
+-- * 'tagKey'
+tag
+    :: Text -- ^ 'tagKey'
+    -> Tag
+tag pKey_ =
+    Tag'
+    { _tagValue = Nothing
+    , _tagKey = pKey_
+    }
+
+-- | A value assigned to a tag key.
+tagValue :: Lens' Tag (Maybe Text)
+tagValue = lens _tagValue (\ s a -> s{_tagValue = a});
+
+-- | A tag key.
+tagKey :: Lens' Tag Text
+tagKey = lens _tagKey (\ s a -> s{_tagKey = a});
+
+instance FromJSON Tag where
+        parseJSON
+          = withObject "Tag"
+              (\ x -> Tag' <$> (x .:? "value") <*> (x .: "key"))
+
+instance Hashable Tag
+
+instance NFData Tag
+
+instance ToJSON Tag where
+        toJSON Tag'{..}
+          = object
+              (catMaybes
+                 [("value" .=) <$> _tagValue,
+                  Just ("key" .= _tagKey)])
+
+-- | The metadata about the Amazon Inspector application data metrics
+-- collected by the agent. This data type is used as the response element
+-- in the < GetTelemetryMetadata> action.
+--
+-- /See:/ 'telemetryMetadata' smart constructor.
+data TelemetryMetadata = TelemetryMetadata'
+    { _tmDataSize    :: !(Maybe Integer)
+    , _tmMessageType :: !Text
+    , _tmCount       :: !Integer
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TelemetryMetadata' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'tmDataSize'
+--
+-- * 'tmMessageType'
+--
+-- * 'tmCount'
+telemetryMetadata
+    :: Text -- ^ 'tmMessageType'
+    -> Integer -- ^ 'tmCount'
+    -> TelemetryMetadata
+telemetryMetadata pMessageType_ pCount_ =
+    TelemetryMetadata'
+    { _tmDataSize = Nothing
+    , _tmMessageType = pMessageType_
+    , _tmCount = pCount_
+    }
+
+-- | The data size of messages that the agent sends to the Amazon Inspector
+-- service.
+tmDataSize :: Lens' TelemetryMetadata (Maybe Integer)
+tmDataSize = lens _tmDataSize (\ s a -> s{_tmDataSize = a});
+
+-- | A specific type of behavioral data that is collected by the agent.
+tmMessageType :: Lens' TelemetryMetadata Text
+tmMessageType = lens _tmMessageType (\ s a -> s{_tmMessageType = a});
+
+-- | The count of messages that the agent sends to the Amazon Inspector
+-- service.
+tmCount :: Lens' TelemetryMetadata Integer
+tmCount = lens _tmCount (\ s a -> s{_tmCount = a});
+
+instance FromJSON TelemetryMetadata where
+        parseJSON
+          = withObject "TelemetryMetadata"
+              (\ x ->
+                 TelemetryMetadata' <$>
+                   (x .:? "dataSize") <*> (x .: "messageType") <*>
+                     (x .: "count"))
+
+instance Hashable TelemetryMetadata
+
+instance NFData TelemetryMetadata
+
+-- | This data type is used in the < AssessmentRunFilter> data type.
+--
+-- /See:/ 'timestampRange' smart constructor.
+data TimestampRange = TimestampRange'
+    { _trEndDate   :: !(Maybe POSIX)
+    , _trBeginDate :: !(Maybe POSIX)
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'TimestampRange' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'trEndDate'
+--
+-- * 'trBeginDate'
+timestampRange
+    :: TimestampRange
+timestampRange =
+    TimestampRange'
+    { _trEndDate = Nothing
+    , _trBeginDate = Nothing
+    }
+
+-- | The maximum value of the timestamp range.
+trEndDate :: Lens' TimestampRange (Maybe UTCTime)
+trEndDate = lens _trEndDate (\ s a -> s{_trEndDate = a}) . mapping _Time;
+
+-- | The minimum value of the timestamp range.
+trBeginDate :: Lens' TimestampRange (Maybe UTCTime)
+trBeginDate = lens _trBeginDate (\ s a -> s{_trBeginDate = a}) . mapping _Time;
+
+instance Hashable TimestampRange
+
+instance NFData TimestampRange
+
+instance ToJSON TimestampRange where
+        toJSON TimestampRange'{..}
+          = object
+              (catMaybes
+                 [("endDate" .=) <$> _trEndDate,
+                  ("beginDate" .=) <$> _trBeginDate])
diff --git a/gen/Network/AWS/Inspector/Types/Sum.hs b/gen/Network/AWS/Inspector/Types/Sum.hs
--- a/gen/Network/AWS/Inspector/Types/Sum.hs
+++ b/gen/Network/AWS/Inspector/Types/Sum.hs
@@ -18,3 +18,318 @@
 module Network.AWS.Inspector.Types.Sum where
 
 import           Network.AWS.Prelude
+
+data AgentHealth
+    = AHHealthy
+    | AHUnhealthy
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText AgentHealth where
+    parser = takeLowerText >>= \case
+        "healthy" -> pure AHHealthy
+        "unhealthy" -> pure AHUnhealthy
+        e -> fromTextError $ "Failure parsing AgentHealth from value: '" <> e
+           <> "'. Accepted values: HEALTHY, UNHEALTHY"
+
+instance ToText AgentHealth where
+    toText = \case
+        AHHealthy -> "HEALTHY"
+        AHUnhealthy -> "UNHEALTHY"
+
+instance Hashable     AgentHealth
+instance NFData       AgentHealth
+instance ToByteString AgentHealth
+instance ToQuery      AgentHealth
+instance ToHeader     AgentHealth
+
+instance ToJSON AgentHealth where
+    toJSON = toJSONText
+
+instance FromJSON AgentHealth where
+    parseJSON = parseJSONText "AgentHealth"
+
+data AgentHealthCode
+    = Idle
+    | Running
+    | Shutdown
+    | Throttled
+    | Unhealthy
+    | Unknown
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText AgentHealthCode where
+    parser = takeLowerText >>= \case
+        "idle" -> pure Idle
+        "running" -> pure Running
+        "shutdown" -> pure Shutdown
+        "throttled" -> pure Throttled
+        "unhealthy" -> pure Unhealthy
+        "unknown" -> pure Unknown
+        e -> fromTextError $ "Failure parsing AgentHealthCode from value: '" <> e
+           <> "'. Accepted values: IDLE, RUNNING, SHUTDOWN, THROTTLED, UNHEALTHY, UNKNOWN"
+
+instance ToText AgentHealthCode where
+    toText = \case
+        Idle -> "IDLE"
+        Running -> "RUNNING"
+        Shutdown -> "SHUTDOWN"
+        Throttled -> "THROTTLED"
+        Unhealthy -> "UNHEALTHY"
+        Unknown -> "UNKNOWN"
+
+instance Hashable     AgentHealthCode
+instance NFData       AgentHealthCode
+instance ToByteString AgentHealthCode
+instance ToQuery      AgentHealthCode
+instance ToHeader     AgentHealthCode
+
+instance ToJSON AgentHealthCode where
+    toJSON = toJSONText
+
+instance FromJSON AgentHealthCode where
+    parseJSON = parseJSONText "AgentHealthCode"
+
+data AssessmentRunNotificationSNSStatusCode
+    = AccessDenied
+    | InternalError
+    | Success
+    | TopicDoesNotExist
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText AssessmentRunNotificationSNSStatusCode where
+    parser = takeLowerText >>= \case
+        "access_denied" -> pure AccessDenied
+        "internal_error" -> pure InternalError
+        "success" -> pure Success
+        "topic_does_not_exist" -> pure TopicDoesNotExist
+        e -> fromTextError $ "Failure parsing AssessmentRunNotificationSNSStatusCode from value: '" <> e
+           <> "'. Accepted values: ACCESS_DENIED, INTERNAL_ERROR, SUCCESS, TOPIC_DOES_NOT_EXIST"
+
+instance ToText AssessmentRunNotificationSNSStatusCode where
+    toText = \case
+        AccessDenied -> "ACCESS_DENIED"
+        InternalError -> "INTERNAL_ERROR"
+        Success -> "SUCCESS"
+        TopicDoesNotExist -> "TOPIC_DOES_NOT_EXIST"
+
+instance Hashable     AssessmentRunNotificationSNSStatusCode
+instance NFData       AssessmentRunNotificationSNSStatusCode
+instance ToByteString AssessmentRunNotificationSNSStatusCode
+instance ToQuery      AssessmentRunNotificationSNSStatusCode
+instance ToHeader     AssessmentRunNotificationSNSStatusCode
+
+instance FromJSON AssessmentRunNotificationSNSStatusCode where
+    parseJSON = parseJSONText "AssessmentRunNotificationSNSStatusCode"
+
+data AssessmentRunState
+    = CollectingData
+    | Completed
+    | CompletedWithErrors
+    | Created
+    | DataCollected
+    | EvaluatingRules
+    | Failed
+    | StartDataCollectionInProgress
+    | StartDataCollectionPending
+    | StopDataCollectionPending
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText AssessmentRunState where
+    parser = takeLowerText >>= \case
+        "collecting_data" -> pure CollectingData
+        "completed" -> pure Completed
+        "completed_with_errors" -> pure CompletedWithErrors
+        "created" -> pure Created
+        "data_collected" -> pure DataCollected
+        "evaluating_rules" -> pure EvaluatingRules
+        "failed" -> pure Failed
+        "start_data_collection_in_progress" -> pure StartDataCollectionInProgress
+        "start_data_collection_pending" -> pure StartDataCollectionPending
+        "stop_data_collection_pending" -> pure StopDataCollectionPending
+        e -> fromTextError $ "Failure parsing AssessmentRunState from value: '" <> e
+           <> "'. Accepted values: COLLECTING_DATA, COMPLETED, COMPLETED_WITH_ERRORS, CREATED, DATA_COLLECTED, EVALUATING_RULES, FAILED, START_DATA_COLLECTION_IN_PROGRESS, START_DATA_COLLECTION_PENDING, STOP_DATA_COLLECTION_PENDING"
+
+instance ToText AssessmentRunState where
+    toText = \case
+        CollectingData -> "COLLECTING_DATA"
+        Completed -> "COMPLETED"
+        CompletedWithErrors -> "COMPLETED_WITH_ERRORS"
+        Created -> "CREATED"
+        DataCollected -> "DATA_COLLECTED"
+        EvaluatingRules -> "EVALUATING_RULES"
+        Failed -> "FAILED"
+        StartDataCollectionInProgress -> "START_DATA_COLLECTION_IN_PROGRESS"
+        StartDataCollectionPending -> "START_DATA_COLLECTION_PENDING"
+        StopDataCollectionPending -> "STOP_DATA_COLLECTION_PENDING"
+
+instance Hashable     AssessmentRunState
+instance NFData       AssessmentRunState
+instance ToByteString AssessmentRunState
+instance ToQuery      AssessmentRunState
+instance ToHeader     AssessmentRunState
+
+instance ToJSON AssessmentRunState where
+    toJSON = toJSONText
+
+instance FromJSON AssessmentRunState where
+    parseJSON = parseJSONText "AssessmentRunState"
+
+data AssetType =
+    EC2Instance
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText AssetType where
+    parser = takeLowerText >>= \case
+        "ec2-instance" -> pure EC2Instance
+        e -> fromTextError $ "Failure parsing AssetType from value: '" <> e
+           <> "'. Accepted values: ec2-instance"
+
+instance ToText AssetType where
+    toText = \case
+        EC2Instance -> "ec2-instance"
+
+instance Hashable     AssetType
+instance NFData       AssetType
+instance ToByteString AssetType
+instance ToQuery      AssetType
+instance ToHeader     AssetType
+
+instance FromJSON AssetType where
+    parseJSON = parseJSONText "AssetType"
+
+data FailedItemErrorCode
+    = FIECAccessDenied
+    | FIECDuplicateARN
+    | FIECInternalError
+    | FIECInvalidARN
+    | FIECItemDoesNotExist
+    | FIECLimitExceeded
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText FailedItemErrorCode where
+    parser = takeLowerText >>= \case
+        "access_denied" -> pure FIECAccessDenied
+        "duplicate_arn" -> pure FIECDuplicateARN
+        "internal_error" -> pure FIECInternalError
+        "invalid_arn" -> pure FIECInvalidARN
+        "item_does_not_exist" -> pure FIECItemDoesNotExist
+        "limit_exceeded" -> pure FIECLimitExceeded
+        e -> fromTextError $ "Failure parsing FailedItemErrorCode from value: '" <> e
+           <> "'. Accepted values: ACCESS_DENIED, DUPLICATE_ARN, INTERNAL_ERROR, INVALID_ARN, ITEM_DOES_NOT_EXIST, LIMIT_EXCEEDED"
+
+instance ToText FailedItemErrorCode where
+    toText = \case
+        FIECAccessDenied -> "ACCESS_DENIED"
+        FIECDuplicateARN -> "DUPLICATE_ARN"
+        FIECInternalError -> "INTERNAL_ERROR"
+        FIECInvalidARN -> "INVALID_ARN"
+        FIECItemDoesNotExist -> "ITEM_DOES_NOT_EXIST"
+        FIECLimitExceeded -> "LIMIT_EXCEEDED"
+
+instance Hashable     FailedItemErrorCode
+instance NFData       FailedItemErrorCode
+instance ToByteString FailedItemErrorCode
+instance ToQuery      FailedItemErrorCode
+instance ToHeader     FailedItemErrorCode
+
+instance FromJSON FailedItemErrorCode where
+    parseJSON = parseJSONText "FailedItemErrorCode"
+
+data InspectorEvent
+    = AssessmentRunCompleted
+    | AssessmentRunStarted
+    | AssessmentRunStateChanged
+    | FindingReported
+    | Other
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText InspectorEvent where
+    parser = takeLowerText >>= \case
+        "assessment_run_completed" -> pure AssessmentRunCompleted
+        "assessment_run_started" -> pure AssessmentRunStarted
+        "assessment_run_state_changed" -> pure AssessmentRunStateChanged
+        "finding_reported" -> pure FindingReported
+        "other" -> pure Other
+        e -> fromTextError $ "Failure parsing InspectorEvent from value: '" <> e
+           <> "'. Accepted values: ASSESSMENT_RUN_COMPLETED, ASSESSMENT_RUN_STARTED, ASSESSMENT_RUN_STATE_CHANGED, FINDING_REPORTED, OTHER"
+
+instance ToText InspectorEvent where
+    toText = \case
+        AssessmentRunCompleted -> "ASSESSMENT_RUN_COMPLETED"
+        AssessmentRunStarted -> "ASSESSMENT_RUN_STARTED"
+        AssessmentRunStateChanged -> "ASSESSMENT_RUN_STATE_CHANGED"
+        FindingReported -> "FINDING_REPORTED"
+        Other -> "OTHER"
+
+instance Hashable     InspectorEvent
+instance NFData       InspectorEvent
+instance ToByteString InspectorEvent
+instance ToQuery      InspectorEvent
+instance ToHeader     InspectorEvent
+
+instance ToJSON InspectorEvent where
+    toJSON = toJSONText
+
+instance FromJSON InspectorEvent where
+    parseJSON = parseJSONText "InspectorEvent"
+
+data Locale =
+    EnUs
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText Locale where
+    parser = takeLowerText >>= \case
+        "en_us" -> pure EnUs
+        e -> fromTextError $ "Failure parsing Locale from value: '" <> e
+           <> "'. Accepted values: EN_US"
+
+instance ToText Locale where
+    toText = \case
+        EnUs -> "EN_US"
+
+instance Hashable     Locale
+instance NFData       Locale
+instance ToByteString Locale
+instance ToQuery      Locale
+instance ToHeader     Locale
+
+instance ToJSON Locale where
+    toJSON = toJSONText
+
+data Severity
+    = High
+    | Informational
+    | Low
+    | Medium
+    | Undefined
+    deriving (Eq,Ord,Read,Show,Enum,Bounded,Data,Typeable,Generic)
+
+instance FromText Severity where
+    parser = takeLowerText >>= \case
+        "high" -> pure High
+        "informational" -> pure Informational
+        "low" -> pure Low
+        "medium" -> pure Medium
+        "undefined" -> pure Undefined
+        e -> fromTextError $ "Failure parsing Severity from value: '" <> e
+           <> "'. Accepted values: High, Informational, Low, Medium, Undefined"
+
+instance ToText Severity where
+    toText = \case
+        High -> "High"
+        Informational -> "Informational"
+        Low -> "Low"
+        Medium -> "Medium"
+        Undefined -> "Undefined"
+
+instance Hashable     Severity
+instance NFData       Severity
+instance ToByteString Severity
+instance ToQuery      Severity
+instance ToHeader     Severity
+
+instance ToJSON Severity where
+    toJSON = toJSONText
+
+instance FromJSON Severity where
+    parseJSON = parseJSONText "Severity"
diff --git a/gen/Network/AWS/Inspector/UnsubscribeFromEvent.hs b/gen/Network/AWS/Inspector/UnsubscribeFromEvent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/UnsubscribeFromEvent.hs
@@ -0,0 +1,131 @@
+{-# 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.Inspector.UnsubscribeFromEvent
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Disables the process of sending Amazon Simple Notification Service (SNS)
+-- notifications about a specified event to a specified SNS topic.
+module Network.AWS.Inspector.UnsubscribeFromEvent
+    (
+    -- * Creating a Request
+      unsubscribeFromEvent
+    , UnsubscribeFromEvent
+    -- * Request Lenses
+    , ufeResourceARN
+    , ufeEvent
+    , ufeTopicARN
+
+    -- * Destructuring the Response
+    , unsubscribeFromEventResponse
+    , UnsubscribeFromEventResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'unsubscribeFromEvent' smart constructor.
+data UnsubscribeFromEvent = UnsubscribeFromEvent'
+    { _ufeResourceARN :: !Text
+    , _ufeEvent       :: !InspectorEvent
+    , _ufeTopicARN    :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UnsubscribeFromEvent' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'ufeResourceARN'
+--
+-- * 'ufeEvent'
+--
+-- * 'ufeTopicARN'
+unsubscribeFromEvent
+    :: Text -- ^ 'ufeResourceARN'
+    -> InspectorEvent -- ^ 'ufeEvent'
+    -> Text -- ^ 'ufeTopicARN'
+    -> UnsubscribeFromEvent
+unsubscribeFromEvent pResourceARN_ pEvent_ pTopicARN_ =
+    UnsubscribeFromEvent'
+    { _ufeResourceARN = pResourceARN_
+    , _ufeEvent = pEvent_
+    , _ufeTopicARN = pTopicARN_
+    }
+
+-- | The ARN of the assessment template that is used during the event for
+-- which you want to stop receiving SNS notifications.
+ufeResourceARN :: Lens' UnsubscribeFromEvent Text
+ufeResourceARN = lens _ufeResourceARN (\ s a -> s{_ufeResourceARN = a});
+
+-- | The event for which you want to stop receiving SNS notifications.
+ufeEvent :: Lens' UnsubscribeFromEvent InspectorEvent
+ufeEvent = lens _ufeEvent (\ s a -> s{_ufeEvent = a});
+
+-- | The ARN of the SNS topic to which SNS notifications are sent.
+ufeTopicARN :: Lens' UnsubscribeFromEvent Text
+ufeTopicARN = lens _ufeTopicARN (\ s a -> s{_ufeTopicARN = a});
+
+instance AWSRequest UnsubscribeFromEvent where
+        type Rs UnsubscribeFromEvent =
+             UnsubscribeFromEventResponse
+        request = postJSON inspector
+        response = receiveNull UnsubscribeFromEventResponse'
+
+instance Hashable UnsubscribeFromEvent
+
+instance NFData UnsubscribeFromEvent
+
+instance ToHeaders UnsubscribeFromEvent where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.UnsubscribeFromEvent" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON UnsubscribeFromEvent where
+        toJSON UnsubscribeFromEvent'{..}
+          = object
+              (catMaybes
+                 [Just ("resourceArn" .= _ufeResourceARN),
+                  Just ("event" .= _ufeEvent),
+                  Just ("topicArn" .= _ufeTopicARN)])
+
+instance ToPath UnsubscribeFromEvent where
+        toPath = const "/"
+
+instance ToQuery UnsubscribeFromEvent where
+        toQuery = const mempty
+
+-- | /See:/ 'unsubscribeFromEventResponse' smart constructor.
+data UnsubscribeFromEventResponse =
+    UnsubscribeFromEventResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UnsubscribeFromEventResponse' with the minimum fields required to make a request.
+--
+unsubscribeFromEventResponse
+    :: UnsubscribeFromEventResponse
+unsubscribeFromEventResponse = UnsubscribeFromEventResponse'
+
+instance NFData UnsubscribeFromEventResponse
diff --git a/gen/Network/AWS/Inspector/UpdateApplication.hs b/gen/Network/AWS/Inspector/UpdateApplication.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/UpdateApplication.hs
+++ /dev/null
@@ -1,149 +0,0 @@
-{-# 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.Inspector.UpdateApplication
--- Copyright   : (c) 2013-2016 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)
---
--- Updates application specified by the application ARN.
-module Network.AWS.Inspector.UpdateApplication
-    (
-    -- * Creating a Request
-      updateApplication
-    , UpdateApplication
-    -- * Request Lenses
-    , uaApplicationARN
-    , uaApplicationName
-    , uaResourceGroupARN
-
-    -- * Destructuring the Response
-    , updateApplicationResponse
-    , UpdateApplicationResponse
-    -- * Response Lenses
-    , uarsMessage
-    , uarsResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'updateApplication' smart constructor.
-data UpdateApplication = UpdateApplication'
-    { _uaApplicationARN   :: !Text
-    , _uaApplicationName  :: !Text
-    , _uaResourceGroupARN :: !Text
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UpdateApplication' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uaApplicationARN'
---
--- * 'uaApplicationName'
---
--- * 'uaResourceGroupARN'
-updateApplication
-    :: Text -- ^ 'uaApplicationARN'
-    -> Text -- ^ 'uaApplicationName'
-    -> Text -- ^ 'uaResourceGroupARN'
-    -> UpdateApplication
-updateApplication pApplicationARN_ pApplicationName_ pResourceGroupARN_ =
-    UpdateApplication'
-    { _uaApplicationARN = pApplicationARN_
-    , _uaApplicationName = pApplicationName_
-    , _uaResourceGroupARN = pResourceGroupARN_
-    }
-
--- | Application ARN that you want to update.
-uaApplicationARN :: Lens' UpdateApplication Text
-uaApplicationARN = lens _uaApplicationARN (\ s a -> s{_uaApplicationARN = a});
-
--- | Application name that you want to update.
-uaApplicationName :: Lens' UpdateApplication Text
-uaApplicationName = lens _uaApplicationName (\ s a -> s{_uaApplicationName = a});
-
--- | The resource group ARN that you want to update.
-uaResourceGroupARN :: Lens' UpdateApplication Text
-uaResourceGroupARN = lens _uaResourceGroupARN (\ s a -> s{_uaResourceGroupARN = a});
-
-instance AWSRequest UpdateApplication where
-        type Rs UpdateApplication = UpdateApplicationResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateApplicationResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable UpdateApplication
-
-instance ToHeaders UpdateApplication where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.UpdateApplication" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateApplication where
-        toJSON UpdateApplication'{..}
-          = object
-              (catMaybes
-                 [Just ("applicationArn" .= _uaApplicationARN),
-                  Just ("applicationName" .= _uaApplicationName),
-                  Just ("resourceGroupArn" .= _uaResourceGroupARN)])
-
-instance ToPath UpdateApplication where
-        toPath = const "/"
-
-instance ToQuery UpdateApplication where
-        toQuery = const mempty
-
--- | /See:/ 'updateApplicationResponse' smart constructor.
-data UpdateApplicationResponse = UpdateApplicationResponse'
-    { _uarsMessage        :: !(Maybe Text)
-    , _uarsResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UpdateApplicationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uarsMessage'
---
--- * 'uarsResponseStatus'
-updateApplicationResponse
-    :: Int -- ^ 'uarsResponseStatus'
-    -> UpdateApplicationResponse
-updateApplicationResponse pResponseStatus_ =
-    UpdateApplicationResponse'
-    { _uarsMessage = Nothing
-    , _uarsResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-uarsMessage :: Lens' UpdateApplicationResponse (Maybe Text)
-uarsMessage = lens _uarsMessage (\ s a -> s{_uarsMessage = a});
-
--- | The response status code.
-uarsResponseStatus :: Lens' UpdateApplicationResponse Int
-uarsResponseStatus = lens _uarsResponseStatus (\ s a -> s{_uarsResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/UpdateAssessment.hs b/gen/Network/AWS/Inspector/UpdateAssessment.hs
deleted file mode 100644
--- a/gen/Network/AWS/Inspector/UpdateAssessment.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# 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.Inspector.UpdateAssessment
--- Copyright   : (c) 2013-2016 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)
---
--- Updates the assessment specified by the assessment ARN.
-module Network.AWS.Inspector.UpdateAssessment
-    (
-    -- * Creating a Request
-      updateAssessment
-    , UpdateAssessment
-    -- * Request Lenses
-    , uaAssessmentARN
-    , uaAssessmentName
-    , uaDurationInSeconds
-
-    -- * Destructuring the Response
-    , updateAssessmentResponse
-    , UpdateAssessmentResponse
-    -- * Response Lenses
-    , ursMessage
-    , ursResponseStatus
-    ) where
-
-import           Network.AWS.Inspector.Types
-import           Network.AWS.Inspector.Types.Product
-import           Network.AWS.Lens
-import           Network.AWS.Prelude
-import           Network.AWS.Request
-import           Network.AWS.Response
-
--- | /See:/ 'updateAssessment' smart constructor.
-data UpdateAssessment = UpdateAssessment'
-    { _uaAssessmentARN     :: !Text
-    , _uaAssessmentName    :: !Text
-    , _uaDurationInSeconds :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UpdateAssessment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uaAssessmentARN'
---
--- * 'uaAssessmentName'
---
--- * 'uaDurationInSeconds'
-updateAssessment
-    :: Text -- ^ 'uaAssessmentARN'
-    -> Text -- ^ 'uaAssessmentName'
-    -> Int -- ^ 'uaDurationInSeconds'
-    -> UpdateAssessment
-updateAssessment pAssessmentARN_ pAssessmentName_ pDurationInSeconds_ =
-    UpdateAssessment'
-    { _uaAssessmentARN = pAssessmentARN_
-    , _uaAssessmentName = pAssessmentName_
-    , _uaDurationInSeconds = pDurationInSeconds_
-    }
-
--- | Asessment ARN that you want to update.
-uaAssessmentARN :: Lens' UpdateAssessment Text
-uaAssessmentARN = lens _uaAssessmentARN (\ s a -> s{_uaAssessmentARN = a});
-
--- | Assessment name that you want to update.
-uaAssessmentName :: Lens' UpdateAssessment Text
-uaAssessmentName = lens _uaAssessmentName (\ s a -> s{_uaAssessmentName = a});
-
--- | Assessment duration in seconds that you want to update. The default
--- value is 3600 seconds (one hour). The maximum value is 86400 seconds
--- (one day).
-uaDurationInSeconds :: Lens' UpdateAssessment Int
-uaDurationInSeconds = lens _uaDurationInSeconds (\ s a -> s{_uaDurationInSeconds = a});
-
-instance AWSRequest UpdateAssessment where
-        type Rs UpdateAssessment = UpdateAssessmentResponse
-        request = postJSON inspector
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateAssessmentResponse' <$>
-                   (x .?> "message") <*> (pure (fromEnum s)))
-
-instance Hashable UpdateAssessment
-
-instance ToHeaders UpdateAssessment where
-        toHeaders
-          = const
-              (mconcat
-                 ["X-Amz-Target" =#
-                    ("InspectorService.UpdateAssessment" :: ByteString),
-                  "Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateAssessment where
-        toJSON UpdateAssessment'{..}
-          = object
-              (catMaybes
-                 [Just ("assessmentArn" .= _uaAssessmentARN),
-                  Just ("assessmentName" .= _uaAssessmentName),
-                  Just ("durationInSeconds" .= _uaDurationInSeconds)])
-
-instance ToPath UpdateAssessment where
-        toPath = const "/"
-
-instance ToQuery UpdateAssessment where
-        toQuery = const mempty
-
--- | /See:/ 'updateAssessmentResponse' smart constructor.
-data UpdateAssessmentResponse = UpdateAssessmentResponse'
-    { _ursMessage        :: !(Maybe Text)
-    , _ursResponseStatus :: !Int
-    } deriving (Eq,Read,Show,Data,Typeable,Generic)
-
--- | Creates a value of 'UpdateAssessmentResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ursMessage'
---
--- * 'ursResponseStatus'
-updateAssessmentResponse
-    :: Int -- ^ 'ursResponseStatus'
-    -> UpdateAssessmentResponse
-updateAssessmentResponse pResponseStatus_ =
-    UpdateAssessmentResponse'
-    { _ursMessage = Nothing
-    , _ursResponseStatus = pResponseStatus_
-    }
-
--- | Confirmation details of the action performed.
-ursMessage :: Lens' UpdateAssessmentResponse (Maybe Text)
-ursMessage = lens _ursMessage (\ s a -> s{_ursMessage = a});
-
--- | The response status code.
-ursResponseStatus :: Lens' UpdateAssessmentResponse Int
-ursResponseStatus = lens _ursResponseStatus (\ s a -> s{_ursResponseStatus = a});
diff --git a/gen/Network/AWS/Inspector/UpdateAssessmentTarget.hs b/gen/Network/AWS/Inspector/UpdateAssessmentTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Network/AWS/Inspector/UpdateAssessmentTarget.hs
@@ -0,0 +1,134 @@
+{-# 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.Inspector.UpdateAssessmentTarget
+-- Copyright   : (c) 2013-2016 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)
+--
+-- Updates the assessment target that is specified by the ARN of the
+-- assessment target.
+module Network.AWS.Inspector.UpdateAssessmentTarget
+    (
+    -- * Creating a Request
+      updateAssessmentTarget
+    , UpdateAssessmentTarget
+    -- * Request Lenses
+    , uatAssessmentTargetARN
+    , uatAssessmentTargetName
+    , uatResourceGroupARN
+
+    -- * Destructuring the Response
+    , updateAssessmentTargetResponse
+    , UpdateAssessmentTargetResponse
+    ) where
+
+import           Network.AWS.Inspector.Types
+import           Network.AWS.Inspector.Types.Product
+import           Network.AWS.Lens
+import           Network.AWS.Prelude
+import           Network.AWS.Request
+import           Network.AWS.Response
+
+-- | /See:/ 'updateAssessmentTarget' smart constructor.
+data UpdateAssessmentTarget = UpdateAssessmentTarget'
+    { _uatAssessmentTargetARN  :: !Text
+    , _uatAssessmentTargetName :: !Text
+    , _uatResourceGroupARN     :: !Text
+    } deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateAssessmentTarget' with the minimum fields required to make a request.
+--
+-- Use one of the following lenses to modify other fields as desired:
+--
+-- * 'uatAssessmentTargetARN'
+--
+-- * 'uatAssessmentTargetName'
+--
+-- * 'uatResourceGroupARN'
+updateAssessmentTarget
+    :: Text -- ^ 'uatAssessmentTargetARN'
+    -> Text -- ^ 'uatAssessmentTargetName'
+    -> Text -- ^ 'uatResourceGroupARN'
+    -> UpdateAssessmentTarget
+updateAssessmentTarget pAssessmentTargetARN_ pAssessmentTargetName_ pResourceGroupARN_ =
+    UpdateAssessmentTarget'
+    { _uatAssessmentTargetARN = pAssessmentTargetARN_
+    , _uatAssessmentTargetName = pAssessmentTargetName_
+    , _uatResourceGroupARN = pResourceGroupARN_
+    }
+
+-- | The ARN of the assessment target that you want to update.
+uatAssessmentTargetARN :: Lens' UpdateAssessmentTarget Text
+uatAssessmentTargetARN = lens _uatAssessmentTargetARN (\ s a -> s{_uatAssessmentTargetARN = a});
+
+-- | The name of the assessment target that you want to update.
+uatAssessmentTargetName :: Lens' UpdateAssessmentTarget Text
+uatAssessmentTargetName = lens _uatAssessmentTargetName (\ s a -> s{_uatAssessmentTargetName = a});
+
+-- | The ARN of the resource group that is used to specify the new resource
+-- group to associate with the assessment target.
+uatResourceGroupARN :: Lens' UpdateAssessmentTarget Text
+uatResourceGroupARN = lens _uatResourceGroupARN (\ s a -> s{_uatResourceGroupARN = a});
+
+instance AWSRequest UpdateAssessmentTarget where
+        type Rs UpdateAssessmentTarget =
+             UpdateAssessmentTargetResponse
+        request = postJSON inspector
+        response
+          = receiveNull UpdateAssessmentTargetResponse'
+
+instance Hashable UpdateAssessmentTarget
+
+instance NFData UpdateAssessmentTarget
+
+instance ToHeaders UpdateAssessmentTarget where
+        toHeaders
+          = const
+              (mconcat
+                 ["X-Amz-Target" =#
+                    ("InspectorService.UpdateAssessmentTarget" ::
+                       ByteString),
+                  "Content-Type" =#
+                    ("application/x-amz-json-1.1" :: ByteString)])
+
+instance ToJSON UpdateAssessmentTarget where
+        toJSON UpdateAssessmentTarget'{..}
+          = object
+              (catMaybes
+                 [Just
+                    ("assessmentTargetArn" .= _uatAssessmentTargetARN),
+                  Just
+                    ("assessmentTargetName" .= _uatAssessmentTargetName),
+                  Just ("resourceGroupArn" .= _uatResourceGroupARN)])
+
+instance ToPath UpdateAssessmentTarget where
+        toPath = const "/"
+
+instance ToQuery UpdateAssessmentTarget where
+        toQuery = const mempty
+
+-- | /See:/ 'updateAssessmentTargetResponse' smart constructor.
+data UpdateAssessmentTargetResponse =
+    UpdateAssessmentTargetResponse'
+    deriving (Eq,Read,Show,Data,Typeable,Generic)
+
+-- | Creates a value of 'UpdateAssessmentTargetResponse' with the minimum fields required to make a request.
+--
+updateAssessmentTargetResponse
+    :: UpdateAssessmentTargetResponse
+updateAssessmentTargetResponse = UpdateAssessmentTargetResponse'
+
+instance NFData UpdateAssessmentTargetResponse
diff --git a/test/Test/AWS/Gen/Inspector.hs b/test/Test/AWS/Gen/Inspector.hs
--- a/test/Test/AWS/Gen/Inspector.hs
+++ b/test/Test/AWS/Gen/Inspector.hs
@@ -28,18 +28,30 @@
 -- fixtures :: TestTree
 -- fixtures =
 --     [ testGroup "request"
---         [ testListFindings $
+--         [ testGetTelemetryMetadata $
+--             getTelemetryMetadata
+--
+--         , testListFindings $
 --             listFindings
 --
---         , testDescribeRun $
---             describeRun
+--         , testListAssessmentTemplates $
+--             listAssessmentTemplates
 --
---         , testDescribeApplication $
---             describeApplication
+--         , testSubscribeToEvent $
+--             subscribeToEvent
 --
---         , testRunAssessment $
---             runAssessment
+--         , testListAssessmentRunAgents $
+--             listAssessmentRunAgents
 --
+--         , testStartAssessmentRun $
+--             startAssessmentRun
+--
+--         , testDeleteAssessmentTemplate $
+--             deleteAssessmentTemplate
+--
+--         , testCreateAssessmentTemplate $
+--             createAssessmentTemplate
+--
 --         , testListTagsForResource $
 --             listTagsForResource
 --
@@ -49,108 +61,96 @@
 --         , testDescribeCrossAccountAccessRole $
 --             describeCrossAccountAccessRole
 --
---         , testListAttachedAssessments $
---             listAttachedAssessments
---
---         , testDescribeFinding $
---             describeFinding
---
---         , testDeleteRun $
---             deleteRun
---
---         , testListRuns $
---             listRuns
---
---         , testDeleteApplication $
---             deleteApplication
+--         , testDescribeAssessmentTemplates $
+--             describeAssessmentTemplates
 --
---         , testUpdateApplication $
---             updateApplication
+--         , testDescribeResourceGroups $
+--             describeResourceGroups
 --
---         , testStartDataCollection $
---             startDataCollection
+--         , testCreateAssessmentTarget $
+--             createAssessmentTarget
 --
---         , testLocalizeText $
---             localizeText
+--         , testListEventSubscriptions $
+--             listEventSubscriptions
 --
 --         , testRegisterCrossAccountAccessRole $
 --             registerCrossAccountAccessRole
 --
---         , testCreateApplication $
---             createApplication
+--         , testListAssessmentTargets $
+--             listAssessmentTargets
 --
 --         , testCreateResourceGroup $
 --             createResourceGroup
 --
---         , testListAttachedRulesPackages $
---             listAttachedRulesPackages
---
---         , testDeleteAssessment $
---             deleteAssessment
---
---         , testUpdateAssessment $
---             updateAssessment
---
---         , testGetAssessmentTelemetry $
---             getAssessmentTelemetry
---
---         , testListAssessments $
---             listAssessments
---
---         , testDescribeRulesPackage $
---             describeRulesPackage
---
---         , testCreateAssessment $
---             createAssessment
---
---         , testDetachAssessmentAndRulesPackage $
---             detachAssessmentAndRulesPackage
+--         , testDescribeRulesPackages $
+--             describeRulesPackages
 --
---         , testDescribeResourceGroup $
---             describeResourceGroup
+--         , testStopAssessmentRun $
+--             stopAssessmentRun
 --
---         , testListApplications $
---             listApplications
+--         , testPreviewAgents $
+--             previewAgents
 --
---         , testDescribeAssessment $
---             describeAssessment
+--         , testDescribeFindings $
+--             describeFindings
 --
 --         , testAddAttributesToFindings $
 --             addAttributesToFindings
 --
---         , testStopDataCollection $
---             stopDataCollection
+--         , testUpdateAssessmentTarget $
+--             updateAssessmentTarget
 --
---         , testPreviewAgentsForResourceGroup $
---             previewAgentsForResourceGroup
+--         , testDeleteAssessmentTarget $
+--             deleteAssessmentTarget
 --
---         , testListAssessmentAgents $
---             listAssessmentAgents
+--         , testDeleteAssessmentRun $
+--             deleteAssessmentRun
 --
+--         , testListAssessmentRuns $
+--             listAssessmentRuns
+--
 --         , testListRulesPackages $
 --             listRulesPackages
 --
+--         , testDescribeAssessmentRuns $
+--             describeAssessmentRuns
+--
+--         , testUnsubscribeFromEvent $
+--             unsubscribeFromEvent
+--
 --         , testRemoveAttributesFromFindings $
 --             removeAttributesFromFindings
 --
---         , testAttachAssessmentAndRulesPackage $
---             attachAssessmentAndRulesPackage
+--         , testDescribeAssessmentTargets $
+--             describeAssessmentTargets
 --
 --           ]
 
 --     , testGroup "response"
---         [ testListFindingsResponse $
+--         [ testGetTelemetryMetadataResponse $
+--             getTelemetryMetadataResponse
+--
+--         , testListFindingsResponse $
 --             listFindingsResponse
 --
---         , testDescribeRunResponse $
---             describeRunResponse
+--         , testListAssessmentTemplatesResponse $
+--             listAssessmentTemplatesResponse
 --
---         , testDescribeApplicationResponse $
---             describeApplicationResponse
+--         , testSubscribeToEventResponse $
+--             subscribeToEventResponse
 --
---         , testRunAssessmentResponse $
---             runAssessmentResponse
+--         , testListAssessmentRunAgentsResponse $
+--             listAssessmentRunAgentsResponse
 --
+--         , testStartAssessmentRunResponse $
+--             startAssessmentRunResponse
+--
+--         , testDeleteAssessmentTemplateResponse $
+--             deleteAssessmentTemplateResponse
+--
+--         , testCreateAssessmentTemplateResponse $
+--             createAssessmentTemplateResponse
+--
 --         , testListTagsForResourceResponse $
 --             listTagsForResourceResponse
 --
@@ -160,118 +160,114 @@
 --         , testDescribeCrossAccountAccessRoleResponse $
 --             describeCrossAccountAccessRoleResponse
 --
---         , testListAttachedAssessmentsResponse $
---             listAttachedAssessmentsResponse
---
---         , testDescribeFindingResponse $
---             describeFindingResponse
---
---         , testDeleteRunResponse $
---             deleteRunResponse
---
---         , testListRunsResponse $
---             listRunsResponse
---
---         , testDeleteApplicationResponse $
---             deleteApplicationResponse
+--         , testDescribeAssessmentTemplatesResponse $
+--             describeAssessmentTemplatesResponse
 --
---         , testUpdateApplicationResponse $
---             updateApplicationResponse
+--         , testDescribeResourceGroupsResponse $
+--             describeResourceGroupsResponse
 --
---         , testStartDataCollectionResponse $
---             startDataCollectionResponse
+--         , testCreateAssessmentTargetResponse $
+--             createAssessmentTargetResponse
 --
---         , testLocalizeTextResponse $
---             localizeTextResponse
+--         , testListEventSubscriptionsResponse $
+--             listEventSubscriptionsResponse
 --
 --         , testRegisterCrossAccountAccessRoleResponse $
 --             registerCrossAccountAccessRoleResponse
 --
---         , testCreateApplicationResponse $
---             createApplicationResponse
+--         , testListAssessmentTargetsResponse $
+--             listAssessmentTargetsResponse
 --
 --         , testCreateResourceGroupResponse $
 --             createResourceGroupResponse
 --
---         , testListAttachedRulesPackagesResponse $
---             listAttachedRulesPackagesResponse
---
---         , testDeleteAssessmentResponse $
---             deleteAssessmentResponse
---
---         , testUpdateAssessmentResponse $
---             updateAssessmentResponse
---
---         , testGetAssessmentTelemetryResponse $
---             getAssessmentTelemetryResponse
---
---         , testListAssessmentsResponse $
---             listAssessmentsResponse
---
---         , testDescribeRulesPackageResponse $
---             describeRulesPackageResponse
---
---         , testCreateAssessmentResponse $
---             createAssessmentResponse
---
---         , testDetachAssessmentAndRulesPackageResponse $
---             detachAssessmentAndRulesPackageResponse
+--         , testDescribeRulesPackagesResponse $
+--             describeRulesPackagesResponse
 --
---         , testDescribeResourceGroupResponse $
---             describeResourceGroupResponse
+--         , testStopAssessmentRunResponse $
+--             stopAssessmentRunResponse
 --
---         , testListApplicationsResponse $
---             listApplicationsResponse
+--         , testPreviewAgentsResponse $
+--             previewAgentsResponse
 --
---         , testDescribeAssessmentResponse $
---             describeAssessmentResponse
+--         , testDescribeFindingsResponse $
+--             describeFindingsResponse
 --
 --         , testAddAttributesToFindingsResponse $
 --             addAttributesToFindingsResponse
 --
---         , testStopDataCollectionResponse $
---             stopDataCollectionResponse
+--         , testUpdateAssessmentTargetResponse $
+--             updateAssessmentTargetResponse
 --
---         , testPreviewAgentsForResourceGroupResponse $
---             previewAgentsForResourceGroupResponse
+--         , testDeleteAssessmentTargetResponse $
+--             deleteAssessmentTargetResponse
 --
---         , testListAssessmentAgentsResponse $
---             listAssessmentAgentsResponse
+--         , testDeleteAssessmentRunResponse $
+--             deleteAssessmentRunResponse
 --
+--         , testListAssessmentRunsResponse $
+--             listAssessmentRunsResponse
+--
 --         , testListRulesPackagesResponse $
 --             listRulesPackagesResponse
 --
+--         , testDescribeAssessmentRunsResponse $
+--             describeAssessmentRunsResponse
+--
+--         , testUnsubscribeFromEventResponse $
+--             unsubscribeFromEventResponse
+--
 --         , testRemoveAttributesFromFindingsResponse $
 --             removeAttributesFromFindingsResponse
 --
---         , testAttachAssessmentAndRulesPackageResponse $
---             attachAssessmentAndRulesPackageResponse
+--         , testDescribeAssessmentTargetsResponse $
+--             describeAssessmentTargetsResponse
 --
 --           ]
 --     ]
 
 -- Requests
 
+testGetTelemetryMetadata :: GetTelemetryMetadata -> TestTree
+testGetTelemetryMetadata = req
+    "GetTelemetryMetadata"
+    "fixture/GetTelemetryMetadata.yaml"
+
 testListFindings :: ListFindings -> TestTree
 testListFindings = req
     "ListFindings"
     "fixture/ListFindings.yaml"
 
-testDescribeRun :: DescribeRun -> TestTree
-testDescribeRun = req
-    "DescribeRun"
-    "fixture/DescribeRun.yaml"
+testListAssessmentTemplates :: ListAssessmentTemplates -> TestTree
+testListAssessmentTemplates = req
+    "ListAssessmentTemplates"
+    "fixture/ListAssessmentTemplates.yaml"
 
-testDescribeApplication :: DescribeApplication -> TestTree
-testDescribeApplication = req
-    "DescribeApplication"
-    "fixture/DescribeApplication.yaml"
+testSubscribeToEvent :: SubscribeToEvent -> TestTree
+testSubscribeToEvent = req
+    "SubscribeToEvent"
+    "fixture/SubscribeToEvent.yaml"
 
-testRunAssessment :: RunAssessment -> TestTree
-testRunAssessment = req
-    "RunAssessment"
-    "fixture/RunAssessment.yaml"
+testListAssessmentRunAgents :: ListAssessmentRunAgents -> TestTree
+testListAssessmentRunAgents = req
+    "ListAssessmentRunAgents"
+    "fixture/ListAssessmentRunAgents.yaml"
 
+testStartAssessmentRun :: StartAssessmentRun -> TestTree
+testStartAssessmentRun = req
+    "StartAssessmentRun"
+    "fixture/StartAssessmentRun.yaml"
+
+testDeleteAssessmentTemplate :: DeleteAssessmentTemplate -> TestTree
+testDeleteAssessmentTemplate = req
+    "DeleteAssessmentTemplate"
+    "fixture/DeleteAssessmentTemplate.yaml"
+
+testCreateAssessmentTemplate :: CreateAssessmentTemplate -> TestTree
+testCreateAssessmentTemplate = req
+    "CreateAssessmentTemplate"
+    "fixture/CreateAssessmentTemplate.yaml"
+
 testListTagsForResource :: ListTagsForResource -> TestTree
 testListTagsForResource = req
     "ListTagsForResource"
@@ -287,153 +283,120 @@
     "DescribeCrossAccountAccessRole"
     "fixture/DescribeCrossAccountAccessRole.yaml"
 
-testListAttachedAssessments :: ListAttachedAssessments -> TestTree
-testListAttachedAssessments = req
-    "ListAttachedAssessments"
-    "fixture/ListAttachedAssessments.yaml"
-
-testDescribeFinding :: DescribeFinding -> TestTree
-testDescribeFinding = req
-    "DescribeFinding"
-    "fixture/DescribeFinding.yaml"
-
-testDeleteRun :: DeleteRun -> TestTree
-testDeleteRun = req
-    "DeleteRun"
-    "fixture/DeleteRun.yaml"
-
-testListRuns :: ListRuns -> TestTree
-testListRuns = req
-    "ListRuns"
-    "fixture/ListRuns.yaml"
-
-testDeleteApplication :: DeleteApplication -> TestTree
-testDeleteApplication = req
-    "DeleteApplication"
-    "fixture/DeleteApplication.yaml"
+testDescribeAssessmentTemplates :: DescribeAssessmentTemplates -> TestTree
+testDescribeAssessmentTemplates = req
+    "DescribeAssessmentTemplates"
+    "fixture/DescribeAssessmentTemplates.yaml"
 
-testUpdateApplication :: UpdateApplication -> TestTree
-testUpdateApplication = req
-    "UpdateApplication"
-    "fixture/UpdateApplication.yaml"
+testDescribeResourceGroups :: DescribeResourceGroups -> TestTree
+testDescribeResourceGroups = req
+    "DescribeResourceGroups"
+    "fixture/DescribeResourceGroups.yaml"
 
-testStartDataCollection :: StartDataCollection -> TestTree
-testStartDataCollection = req
-    "StartDataCollection"
-    "fixture/StartDataCollection.yaml"
+testCreateAssessmentTarget :: CreateAssessmentTarget -> TestTree
+testCreateAssessmentTarget = req
+    "CreateAssessmentTarget"
+    "fixture/CreateAssessmentTarget.yaml"
 
-testLocalizeText :: LocalizeText -> TestTree
-testLocalizeText = req
-    "LocalizeText"
-    "fixture/LocalizeText.yaml"
+testListEventSubscriptions :: ListEventSubscriptions -> TestTree
+testListEventSubscriptions = req
+    "ListEventSubscriptions"
+    "fixture/ListEventSubscriptions.yaml"
 
 testRegisterCrossAccountAccessRole :: RegisterCrossAccountAccessRole -> TestTree
 testRegisterCrossAccountAccessRole = req
     "RegisterCrossAccountAccessRole"
     "fixture/RegisterCrossAccountAccessRole.yaml"
 
-testCreateApplication :: CreateApplication -> TestTree
-testCreateApplication = req
-    "CreateApplication"
-    "fixture/CreateApplication.yaml"
+testListAssessmentTargets :: ListAssessmentTargets -> TestTree
+testListAssessmentTargets = req
+    "ListAssessmentTargets"
+    "fixture/ListAssessmentTargets.yaml"
 
 testCreateResourceGroup :: CreateResourceGroup -> TestTree
 testCreateResourceGroup = req
     "CreateResourceGroup"
     "fixture/CreateResourceGroup.yaml"
 
-testListAttachedRulesPackages :: ListAttachedRulesPackages -> TestTree
-testListAttachedRulesPackages = req
-    "ListAttachedRulesPackages"
-    "fixture/ListAttachedRulesPackages.yaml"
-
-testDeleteAssessment :: DeleteAssessment -> TestTree
-testDeleteAssessment = req
-    "DeleteAssessment"
-    "fixture/DeleteAssessment.yaml"
-
-testUpdateAssessment :: UpdateAssessment -> TestTree
-testUpdateAssessment = req
-    "UpdateAssessment"
-    "fixture/UpdateAssessment.yaml"
-
-testGetAssessmentTelemetry :: GetAssessmentTelemetry -> TestTree
-testGetAssessmentTelemetry = req
-    "GetAssessmentTelemetry"
-    "fixture/GetAssessmentTelemetry.yaml"
-
-testListAssessments :: ListAssessments -> TestTree
-testListAssessments = req
-    "ListAssessments"
-    "fixture/ListAssessments.yaml"
-
-testDescribeRulesPackage :: DescribeRulesPackage -> TestTree
-testDescribeRulesPackage = req
-    "DescribeRulesPackage"
-    "fixture/DescribeRulesPackage.yaml"
-
-testCreateAssessment :: CreateAssessment -> TestTree
-testCreateAssessment = req
-    "CreateAssessment"
-    "fixture/CreateAssessment.yaml"
-
-testDetachAssessmentAndRulesPackage :: DetachAssessmentAndRulesPackage -> TestTree
-testDetachAssessmentAndRulesPackage = req
-    "DetachAssessmentAndRulesPackage"
-    "fixture/DetachAssessmentAndRulesPackage.yaml"
+testDescribeRulesPackages :: DescribeRulesPackages -> TestTree
+testDescribeRulesPackages = req
+    "DescribeRulesPackages"
+    "fixture/DescribeRulesPackages.yaml"
 
-testDescribeResourceGroup :: DescribeResourceGroup -> TestTree
-testDescribeResourceGroup = req
-    "DescribeResourceGroup"
-    "fixture/DescribeResourceGroup.yaml"
+testStopAssessmentRun :: StopAssessmentRun -> TestTree
+testStopAssessmentRun = req
+    "StopAssessmentRun"
+    "fixture/StopAssessmentRun.yaml"
 
-testListApplications :: ListApplications -> TestTree
-testListApplications = req
-    "ListApplications"
-    "fixture/ListApplications.yaml"
+testPreviewAgents :: PreviewAgents -> TestTree
+testPreviewAgents = req
+    "PreviewAgents"
+    "fixture/PreviewAgents.yaml"
 
-testDescribeAssessment :: DescribeAssessment -> TestTree
-testDescribeAssessment = req
-    "DescribeAssessment"
-    "fixture/DescribeAssessment.yaml"
+testDescribeFindings :: DescribeFindings -> TestTree
+testDescribeFindings = req
+    "DescribeFindings"
+    "fixture/DescribeFindings.yaml"
 
 testAddAttributesToFindings :: AddAttributesToFindings -> TestTree
 testAddAttributesToFindings = req
     "AddAttributesToFindings"
     "fixture/AddAttributesToFindings.yaml"
 
-testStopDataCollection :: StopDataCollection -> TestTree
-testStopDataCollection = req
-    "StopDataCollection"
-    "fixture/StopDataCollection.yaml"
+testUpdateAssessmentTarget :: UpdateAssessmentTarget -> TestTree
+testUpdateAssessmentTarget = req
+    "UpdateAssessmentTarget"
+    "fixture/UpdateAssessmentTarget.yaml"
 
-testPreviewAgentsForResourceGroup :: PreviewAgentsForResourceGroup -> TestTree
-testPreviewAgentsForResourceGroup = req
-    "PreviewAgentsForResourceGroup"
-    "fixture/PreviewAgentsForResourceGroup.yaml"
+testDeleteAssessmentTarget :: DeleteAssessmentTarget -> TestTree
+testDeleteAssessmentTarget = req
+    "DeleteAssessmentTarget"
+    "fixture/DeleteAssessmentTarget.yaml"
 
-testListAssessmentAgents :: ListAssessmentAgents -> TestTree
-testListAssessmentAgents = req
-    "ListAssessmentAgents"
-    "fixture/ListAssessmentAgents.yaml"
+testDeleteAssessmentRun :: DeleteAssessmentRun -> TestTree
+testDeleteAssessmentRun = req
+    "DeleteAssessmentRun"
+    "fixture/DeleteAssessmentRun.yaml"
 
+testListAssessmentRuns :: ListAssessmentRuns -> TestTree
+testListAssessmentRuns = req
+    "ListAssessmentRuns"
+    "fixture/ListAssessmentRuns.yaml"
+
 testListRulesPackages :: ListRulesPackages -> TestTree
 testListRulesPackages = req
     "ListRulesPackages"
     "fixture/ListRulesPackages.yaml"
 
+testDescribeAssessmentRuns :: DescribeAssessmentRuns -> TestTree
+testDescribeAssessmentRuns = req
+    "DescribeAssessmentRuns"
+    "fixture/DescribeAssessmentRuns.yaml"
+
+testUnsubscribeFromEvent :: UnsubscribeFromEvent -> TestTree
+testUnsubscribeFromEvent = req
+    "UnsubscribeFromEvent"
+    "fixture/UnsubscribeFromEvent.yaml"
+
 testRemoveAttributesFromFindings :: RemoveAttributesFromFindings -> TestTree
 testRemoveAttributesFromFindings = req
     "RemoveAttributesFromFindings"
     "fixture/RemoveAttributesFromFindings.yaml"
 
-testAttachAssessmentAndRulesPackage :: AttachAssessmentAndRulesPackage -> TestTree
-testAttachAssessmentAndRulesPackage = req
-    "AttachAssessmentAndRulesPackage"
-    "fixture/AttachAssessmentAndRulesPackage.yaml"
+testDescribeAssessmentTargets :: DescribeAssessmentTargets -> TestTree
+testDescribeAssessmentTargets = req
+    "DescribeAssessmentTargets"
+    "fixture/DescribeAssessmentTargets.yaml"
 
 -- Responses
 
+testGetTelemetryMetadataResponse :: GetTelemetryMetadataResponse -> TestTree
+testGetTelemetryMetadataResponse = res
+    "GetTelemetryMetadataResponse"
+    "fixture/GetTelemetryMetadataResponse.proto"
+    inspector
+    (Proxy :: Proxy GetTelemetryMetadata)
+
 testListFindingsResponse :: ListFindingsResponse -> TestTree
 testListFindingsResponse = res
     "ListFindingsResponse"
@@ -441,27 +404,48 @@
     inspector
     (Proxy :: Proxy ListFindings)
 
-testDescribeRunResponse :: DescribeRunResponse -> TestTree
-testDescribeRunResponse = res
-    "DescribeRunResponse"
-    "fixture/DescribeRunResponse.proto"
+testListAssessmentTemplatesResponse :: ListAssessmentTemplatesResponse -> TestTree
+testListAssessmentTemplatesResponse = res
+    "ListAssessmentTemplatesResponse"
+    "fixture/ListAssessmentTemplatesResponse.proto"
     inspector
-    (Proxy :: Proxy DescribeRun)
+    (Proxy :: Proxy ListAssessmentTemplates)
 
-testDescribeApplicationResponse :: DescribeApplicationResponse -> TestTree
-testDescribeApplicationResponse = res
-    "DescribeApplicationResponse"
-    "fixture/DescribeApplicationResponse.proto"
+testSubscribeToEventResponse :: SubscribeToEventResponse -> TestTree
+testSubscribeToEventResponse = res
+    "SubscribeToEventResponse"
+    "fixture/SubscribeToEventResponse.proto"
     inspector
-    (Proxy :: Proxy DescribeApplication)
+    (Proxy :: Proxy SubscribeToEvent)
 
-testRunAssessmentResponse :: RunAssessmentResponse -> TestTree
-testRunAssessmentResponse = res
-    "RunAssessmentResponse"
-    "fixture/RunAssessmentResponse.proto"
+testListAssessmentRunAgentsResponse :: ListAssessmentRunAgentsResponse -> TestTree
+testListAssessmentRunAgentsResponse = res
+    "ListAssessmentRunAgentsResponse"
+    "fixture/ListAssessmentRunAgentsResponse.proto"
     inspector
-    (Proxy :: Proxy RunAssessment)
+    (Proxy :: Proxy ListAssessmentRunAgents)
 
+testStartAssessmentRunResponse :: StartAssessmentRunResponse -> TestTree
+testStartAssessmentRunResponse = res
+    "StartAssessmentRunResponse"
+    "fixture/StartAssessmentRunResponse.proto"
+    inspector
+    (Proxy :: Proxy StartAssessmentRun)
+
+testDeleteAssessmentTemplateResponse :: DeleteAssessmentTemplateResponse -> TestTree
+testDeleteAssessmentTemplateResponse = res
+    "DeleteAssessmentTemplateResponse"
+    "fixture/DeleteAssessmentTemplateResponse.proto"
+    inspector
+    (Proxy :: Proxy DeleteAssessmentTemplate)
+
+testCreateAssessmentTemplateResponse :: CreateAssessmentTemplateResponse -> TestTree
+testCreateAssessmentTemplateResponse = res
+    "CreateAssessmentTemplateResponse"
+    "fixture/CreateAssessmentTemplateResponse.proto"
+    inspector
+    (Proxy :: Proxy CreateAssessmentTemplate)
+
 testListTagsForResourceResponse :: ListTagsForResourceResponse -> TestTree
 testListTagsForResourceResponse = res
     "ListTagsForResourceResponse"
@@ -483,61 +467,33 @@
     inspector
     (Proxy :: Proxy DescribeCrossAccountAccessRole)
 
-testListAttachedAssessmentsResponse :: ListAttachedAssessmentsResponse -> TestTree
-testListAttachedAssessmentsResponse = res
-    "ListAttachedAssessmentsResponse"
-    "fixture/ListAttachedAssessmentsResponse.proto"
-    inspector
-    (Proxy :: Proxy ListAttachedAssessments)
-
-testDescribeFindingResponse :: DescribeFindingResponse -> TestTree
-testDescribeFindingResponse = res
-    "DescribeFindingResponse"
-    "fixture/DescribeFindingResponse.proto"
-    inspector
-    (Proxy :: Proxy DescribeFinding)
-
-testDeleteRunResponse :: DeleteRunResponse -> TestTree
-testDeleteRunResponse = res
-    "DeleteRunResponse"
-    "fixture/DeleteRunResponse.proto"
-    inspector
-    (Proxy :: Proxy DeleteRun)
-
-testListRunsResponse :: ListRunsResponse -> TestTree
-testListRunsResponse = res
-    "ListRunsResponse"
-    "fixture/ListRunsResponse.proto"
-    inspector
-    (Proxy :: Proxy ListRuns)
-
-testDeleteApplicationResponse :: DeleteApplicationResponse -> TestTree
-testDeleteApplicationResponse = res
-    "DeleteApplicationResponse"
-    "fixture/DeleteApplicationResponse.proto"
+testDescribeAssessmentTemplatesResponse :: DescribeAssessmentTemplatesResponse -> TestTree
+testDescribeAssessmentTemplatesResponse = res
+    "DescribeAssessmentTemplatesResponse"
+    "fixture/DescribeAssessmentTemplatesResponse.proto"
     inspector
-    (Proxy :: Proxy DeleteApplication)
+    (Proxy :: Proxy DescribeAssessmentTemplates)
 
-testUpdateApplicationResponse :: UpdateApplicationResponse -> TestTree
-testUpdateApplicationResponse = res
-    "UpdateApplicationResponse"
-    "fixture/UpdateApplicationResponse.proto"
+testDescribeResourceGroupsResponse :: DescribeResourceGroupsResponse -> TestTree
+testDescribeResourceGroupsResponse = res
+    "DescribeResourceGroupsResponse"
+    "fixture/DescribeResourceGroupsResponse.proto"
     inspector
-    (Proxy :: Proxy UpdateApplication)
+    (Proxy :: Proxy DescribeResourceGroups)
 
-testStartDataCollectionResponse :: StartDataCollectionResponse -> TestTree
-testStartDataCollectionResponse = res
-    "StartDataCollectionResponse"
-    "fixture/StartDataCollectionResponse.proto"
+testCreateAssessmentTargetResponse :: CreateAssessmentTargetResponse -> TestTree
+testCreateAssessmentTargetResponse = res
+    "CreateAssessmentTargetResponse"
+    "fixture/CreateAssessmentTargetResponse.proto"
     inspector
-    (Proxy :: Proxy StartDataCollection)
+    (Proxy :: Proxy CreateAssessmentTarget)
 
-testLocalizeTextResponse :: LocalizeTextResponse -> TestTree
-testLocalizeTextResponse = res
-    "LocalizeTextResponse"
-    "fixture/LocalizeTextResponse.proto"
+testListEventSubscriptionsResponse :: ListEventSubscriptionsResponse -> TestTree
+testListEventSubscriptionsResponse = res
+    "ListEventSubscriptionsResponse"
+    "fixture/ListEventSubscriptionsResponse.proto"
     inspector
-    (Proxy :: Proxy LocalizeText)
+    (Proxy :: Proxy ListEventSubscriptions)
 
 testRegisterCrossAccountAccessRoleResponse :: RegisterCrossAccountAccessRoleResponse -> TestTree
 testRegisterCrossAccountAccessRoleResponse = res
@@ -546,12 +502,12 @@
     inspector
     (Proxy :: Proxy RegisterCrossAccountAccessRole)
 
-testCreateApplicationResponse :: CreateApplicationResponse -> TestTree
-testCreateApplicationResponse = res
-    "CreateApplicationResponse"
-    "fixture/CreateApplicationResponse.proto"
+testListAssessmentTargetsResponse :: ListAssessmentTargetsResponse -> TestTree
+testListAssessmentTargetsResponse = res
+    "ListAssessmentTargetsResponse"
+    "fixture/ListAssessmentTargetsResponse.proto"
     inspector
-    (Proxy :: Proxy CreateApplication)
+    (Proxy :: Proxy ListAssessmentTargets)
 
 testCreateResourceGroupResponse :: CreateResourceGroupResponse -> TestTree
 testCreateResourceGroupResponse = res
@@ -560,82 +516,33 @@
     inspector
     (Proxy :: Proxy CreateResourceGroup)
 
-testListAttachedRulesPackagesResponse :: ListAttachedRulesPackagesResponse -> TestTree
-testListAttachedRulesPackagesResponse = res
-    "ListAttachedRulesPackagesResponse"
-    "fixture/ListAttachedRulesPackagesResponse.proto"
-    inspector
-    (Proxy :: Proxy ListAttachedRulesPackages)
-
-testDeleteAssessmentResponse :: DeleteAssessmentResponse -> TestTree
-testDeleteAssessmentResponse = res
-    "DeleteAssessmentResponse"
-    "fixture/DeleteAssessmentResponse.proto"
-    inspector
-    (Proxy :: Proxy DeleteAssessment)
-
-testUpdateAssessmentResponse :: UpdateAssessmentResponse -> TestTree
-testUpdateAssessmentResponse = res
-    "UpdateAssessmentResponse"
-    "fixture/UpdateAssessmentResponse.proto"
-    inspector
-    (Proxy :: Proxy UpdateAssessment)
-
-testGetAssessmentTelemetryResponse :: GetAssessmentTelemetryResponse -> TestTree
-testGetAssessmentTelemetryResponse = res
-    "GetAssessmentTelemetryResponse"
-    "fixture/GetAssessmentTelemetryResponse.proto"
-    inspector
-    (Proxy :: Proxy GetAssessmentTelemetry)
-
-testListAssessmentsResponse :: ListAssessmentsResponse -> TestTree
-testListAssessmentsResponse = res
-    "ListAssessmentsResponse"
-    "fixture/ListAssessmentsResponse.proto"
-    inspector
-    (Proxy :: Proxy ListAssessments)
-
-testDescribeRulesPackageResponse :: DescribeRulesPackageResponse -> TestTree
-testDescribeRulesPackageResponse = res
-    "DescribeRulesPackageResponse"
-    "fixture/DescribeRulesPackageResponse.proto"
-    inspector
-    (Proxy :: Proxy DescribeRulesPackage)
-
-testCreateAssessmentResponse :: CreateAssessmentResponse -> TestTree
-testCreateAssessmentResponse = res
-    "CreateAssessmentResponse"
-    "fixture/CreateAssessmentResponse.proto"
-    inspector
-    (Proxy :: Proxy CreateAssessment)
-
-testDetachAssessmentAndRulesPackageResponse :: DetachAssessmentAndRulesPackageResponse -> TestTree
-testDetachAssessmentAndRulesPackageResponse = res
-    "DetachAssessmentAndRulesPackageResponse"
-    "fixture/DetachAssessmentAndRulesPackageResponse.proto"
+testDescribeRulesPackagesResponse :: DescribeRulesPackagesResponse -> TestTree
+testDescribeRulesPackagesResponse = res
+    "DescribeRulesPackagesResponse"
+    "fixture/DescribeRulesPackagesResponse.proto"
     inspector
-    (Proxy :: Proxy DetachAssessmentAndRulesPackage)
+    (Proxy :: Proxy DescribeRulesPackages)
 
-testDescribeResourceGroupResponse :: DescribeResourceGroupResponse -> TestTree
-testDescribeResourceGroupResponse = res
-    "DescribeResourceGroupResponse"
-    "fixture/DescribeResourceGroupResponse.proto"
+testStopAssessmentRunResponse :: StopAssessmentRunResponse -> TestTree
+testStopAssessmentRunResponse = res
+    "StopAssessmentRunResponse"
+    "fixture/StopAssessmentRunResponse.proto"
     inspector
-    (Proxy :: Proxy DescribeResourceGroup)
+    (Proxy :: Proxy StopAssessmentRun)
 
-testListApplicationsResponse :: ListApplicationsResponse -> TestTree
-testListApplicationsResponse = res
-    "ListApplicationsResponse"
-    "fixture/ListApplicationsResponse.proto"
+testPreviewAgentsResponse :: PreviewAgentsResponse -> TestTree
+testPreviewAgentsResponse = res
+    "PreviewAgentsResponse"
+    "fixture/PreviewAgentsResponse.proto"
     inspector
-    (Proxy :: Proxy ListApplications)
+    (Proxy :: Proxy PreviewAgents)
 
-testDescribeAssessmentResponse :: DescribeAssessmentResponse -> TestTree
-testDescribeAssessmentResponse = res
-    "DescribeAssessmentResponse"
-    "fixture/DescribeAssessmentResponse.proto"
+testDescribeFindingsResponse :: DescribeFindingsResponse -> TestTree
+testDescribeFindingsResponse = res
+    "DescribeFindingsResponse"
+    "fixture/DescribeFindingsResponse.proto"
     inspector
-    (Proxy :: Proxy DescribeAssessment)
+    (Proxy :: Proxy DescribeFindings)
 
 testAddAttributesToFindingsResponse :: AddAttributesToFindingsResponse -> TestTree
 testAddAttributesToFindingsResponse = res
@@ -644,27 +551,34 @@
     inspector
     (Proxy :: Proxy AddAttributesToFindings)
 
-testStopDataCollectionResponse :: StopDataCollectionResponse -> TestTree
-testStopDataCollectionResponse = res
-    "StopDataCollectionResponse"
-    "fixture/StopDataCollectionResponse.proto"
+testUpdateAssessmentTargetResponse :: UpdateAssessmentTargetResponse -> TestTree
+testUpdateAssessmentTargetResponse = res
+    "UpdateAssessmentTargetResponse"
+    "fixture/UpdateAssessmentTargetResponse.proto"
     inspector
-    (Proxy :: Proxy StopDataCollection)
+    (Proxy :: Proxy UpdateAssessmentTarget)
 
-testPreviewAgentsForResourceGroupResponse :: PreviewAgentsForResourceGroupResponse -> TestTree
-testPreviewAgentsForResourceGroupResponse = res
-    "PreviewAgentsForResourceGroupResponse"
-    "fixture/PreviewAgentsForResourceGroupResponse.proto"
+testDeleteAssessmentTargetResponse :: DeleteAssessmentTargetResponse -> TestTree
+testDeleteAssessmentTargetResponse = res
+    "DeleteAssessmentTargetResponse"
+    "fixture/DeleteAssessmentTargetResponse.proto"
     inspector
-    (Proxy :: Proxy PreviewAgentsForResourceGroup)
+    (Proxy :: Proxy DeleteAssessmentTarget)
 
-testListAssessmentAgentsResponse :: ListAssessmentAgentsResponse -> TestTree
-testListAssessmentAgentsResponse = res
-    "ListAssessmentAgentsResponse"
-    "fixture/ListAssessmentAgentsResponse.proto"
+testDeleteAssessmentRunResponse :: DeleteAssessmentRunResponse -> TestTree
+testDeleteAssessmentRunResponse = res
+    "DeleteAssessmentRunResponse"
+    "fixture/DeleteAssessmentRunResponse.proto"
     inspector
-    (Proxy :: Proxy ListAssessmentAgents)
+    (Proxy :: Proxy DeleteAssessmentRun)
 
+testListAssessmentRunsResponse :: ListAssessmentRunsResponse -> TestTree
+testListAssessmentRunsResponse = res
+    "ListAssessmentRunsResponse"
+    "fixture/ListAssessmentRunsResponse.proto"
+    inspector
+    (Proxy :: Proxy ListAssessmentRuns)
+
 testListRulesPackagesResponse :: ListRulesPackagesResponse -> TestTree
 testListRulesPackagesResponse = res
     "ListRulesPackagesResponse"
@@ -672,6 +586,20 @@
     inspector
     (Proxy :: Proxy ListRulesPackages)
 
+testDescribeAssessmentRunsResponse :: DescribeAssessmentRunsResponse -> TestTree
+testDescribeAssessmentRunsResponse = res
+    "DescribeAssessmentRunsResponse"
+    "fixture/DescribeAssessmentRunsResponse.proto"
+    inspector
+    (Proxy :: Proxy DescribeAssessmentRuns)
+
+testUnsubscribeFromEventResponse :: UnsubscribeFromEventResponse -> TestTree
+testUnsubscribeFromEventResponse = res
+    "UnsubscribeFromEventResponse"
+    "fixture/UnsubscribeFromEventResponse.proto"
+    inspector
+    (Proxy :: Proxy UnsubscribeFromEvent)
+
 testRemoveAttributesFromFindingsResponse :: RemoveAttributesFromFindingsResponse -> TestTree
 testRemoveAttributesFromFindingsResponse = res
     "RemoveAttributesFromFindingsResponse"
@@ -679,9 +607,9 @@
     inspector
     (Proxy :: Proxy RemoveAttributesFromFindings)
 
-testAttachAssessmentAndRulesPackageResponse :: AttachAssessmentAndRulesPackageResponse -> TestTree
-testAttachAssessmentAndRulesPackageResponse = res
-    "AttachAssessmentAndRulesPackageResponse"
-    "fixture/AttachAssessmentAndRulesPackageResponse.proto"
+testDescribeAssessmentTargetsResponse :: DescribeAssessmentTargetsResponse -> TestTree
+testDescribeAssessmentTargetsResponse = res
+    "DescribeAssessmentTargetsResponse"
+    "fixture/DescribeAssessmentTargetsResponse.proto"
     inspector
-    (Proxy :: Proxy AttachAssessmentAndRulesPackage)
+    (Proxy :: Proxy DescribeAssessmentTargets)
