amazonka-config 0.0.1 → 0.0.2
raw patch · 12 files changed
+139/−110 lines, 12 filesdep ~amazonka-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: amazonka-core
API changes (from Hackage documentation)
Files
- README.md +7/−1
- amazonka-config.cabal +9/−10
- gen/Network/AWS/Config.hs +3/−4
- gen/Network/AWS/Config/DeleteDeliveryChannel.hs +5/−4
- gen/Network/AWS/Config/DeliverConfigSnapshot.hs +7/−6
- gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs +2/−2
- gen/Network/AWS/Config/GetResourceConfigHistory.hs +13/−13
- gen/Network/AWS/Config/PutConfigurationRecorder.hs +4/−3
- gen/Network/AWS/Config/PutDeliveryChannel.hs +6/−5
- gen/Network/AWS/Config/StartConfigurationRecorder.hs +6/−4
- gen/Network/AWS/Config/StopConfigurationRecorder.hs +2/−2
- gen/Network/AWS/Config/Types.hs +75/−56
README.md view
@@ -8,7 +8,13 @@ ## Description -Amazon Config is a fully managed service that provides you with an Amazon resource inventory, configuration history, and configuration change notifications to enable security and governance. With Amazon Config you can discover existing Amazon resources, export a complete inventory of your Amazon resources with all configuration details, and determine how a resource was configured at any point in time. These capabilities enable compliance auditing, security analysis, resource change tracking, and troubleshooting.+ Amazon Config is a fully managed service that provides you with an Amazon+ resource inventory, configuration history, and configuration change+ notifications to enable security and governance. With Amazon Config you can+ discover existing Amazon resources, export a complete inventory of your+ Amazon resources with all configuration details, and determine how a resource+ was configured at any point in time. These capabilities enable compliance+ auditing, security analysis, resource change tracking, and troubleshooting. Documentation is available via [Hackage](http://hackage.haskell.org/package/amazonka-config) and [AWS API Reference](http://docs.aws.amazon.com/config/latest/APIReference/Welcome.html).
amazonka-config.cabal view
@@ -1,5 +1,5 @@ name: amazonka-config-version: 0.0.1+version: 0.0.2 synopsis: Amazon Config SDK. homepage: https://github.com/brendanhay/amazonka license: OtherLicense@@ -13,14 +13,13 @@ cabal-version: >= 1.10 description:- Amazon Config is a fully managed service that provides you with an- Amazon resource inventory, configuration history, and configuration- change notifications to enable security and governance. With Amazon- Config you can discover existing Amazon resources, export a complete- inventory of your Amazon resources with all configuration details, and- determine how a resource was configured at any point in time. These- capabilities enable compliance auditing, security analysis, resource- change tracking, and troubleshooting.+ Amazon Config is a fully managed service that provides you with an Amazon+ resource inventory, configuration history, and configuration change+ notifications to enable security and governance. With Amazon Config you can+ discover existing Amazon resources, export a complete inventory of your+ Amazon resources with all configuration details, and determine how a resource+ was configured at any point in time. These capabilities enable compliance+ auditing, security analysis, resource change tracking, and troubleshooting. . /See:/ <http://docs.aws.amazon.com/config/latest/APIReference/Welcome.html AWS API Reference> .@@ -55,5 +54,5 @@ other-modules: build-depends:- amazonka-core == 0.0.1.*+ amazonka-core == 0.0.2.* , base >= 4.7 && < 5
gen/Network/AWS/Config.hs view
@@ -12,10 +12,9 @@ -- resource inventory, configuration history, and configuration change -- notifications to enable security and governance. With Amazon Config you can -- discover existing Amazon resources, export a complete inventory of your--- Amazon resources with all configuration details, and determine how a--- resource was configured at any point in time. These capabilities enable--- compliance auditing, security analysis, resource change tracking, and--- troubleshooting.+-- Amazon resources with all configuration details, and determine how a resource+-- was configured at any point in time. These capabilities enable compliance+-- auditing, security analysis, resource change tracking, and troubleshooting. module Network.AWS.Config ( module Network.AWS.Config.DeleteDeliveryChannel , module Network.AWS.Config.DeliverConfigSnapshot
gen/Network/AWS/Config/DeleteDeliveryChannel.hs view
@@ -20,10 +20,11 @@ -- Stability : experimental -- Portability : non-portable (GHC extensions) --- | Deletes the specified delivery channel. The delivery channel cannot be--- deleted if it is the only delivery channel and the configuration recorder--- is still running. To delete the delivery channel, stop the running--- configuration recorder using the StopConfigurationRecorder action.+-- | Deletes the specified delivery channel.+--+-- The delivery channel cannot be deleted if it is the only delivery channel+-- and the configuration recorder is still running. To delete the delivery+-- channel, stop the running configuration recorder using the 'StopConfigurationRecorder' action. -- -- <http://docs.aws.amazon.com/config/latest/APIReference/API_DeleteDeliveryChannel.html> module Network.AWS.Config.DeleteDeliveryChannel
gen/Network/AWS/Config/DeliverConfigSnapshot.hs view
@@ -20,12 +20,13 @@ -- Stability : experimental -- Portability : non-portable (GHC extensions) --- | Schedules delivery of a configuration snapshot to the Amazon S3 bucket in--- the specified delivery channel. After the delivery has started, AWS Config--- sends following notifications using an Amazon SNS topic that you have--- specified. Notification of starting the delivery. Notification of delivery--- completed, if the delivery was successfully completed. Notification of--- delivery failure, if the delivery failed to complete.+-- | Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the+-- specified delivery channel. After the delivery has started, AWS Config sends+-- following notifications using an Amazon SNS topic that you have specified.+--+-- Notification of starting the delivery. Notification of delivery completed,+-- if the delivery was successfully completed. Notification of delivery failure,+-- if the delivery failed to complete. -- -- <http://docs.aws.amazon.com/config/latest/APIReference/API_DeliverConfigSnapshot.html> module Network.AWS.Config.DeliverConfigSnapshot
gen/Network/AWS/Config/DescribeConfigurationRecorderStatus.hs view
@@ -68,8 +68,8 @@ { _dcrsConfigurationRecorderNames = mempty } --- | The name(s) of the configuration recorder. If the name is not specified,--- the action returns the current status of all the configuration recorders+-- | The name(s) of the configuration recorder. If the name is not specified, the+-- action returns the current status of all the configuration recorders -- associated with the account. dcrsConfigurationRecorderNames :: Lens' DescribeConfigurationRecorderStatus [Text] dcrsConfigurationRecorderNames =
gen/Network/AWS/Config/GetResourceConfigHistory.hs view
@@ -22,9 +22,9 @@ -- | Returns a list of configuration items for the specified resource. The list -- contains details about each state of the resource during the specified time--- interval. You can specify a limit on the number of results returned on the--- page. If a limit is specified, a nextToken is returned as part of the--- result that you can use to continue this request.+-- interval. You can specify a 'limit' on the number of results returned on the+-- page. If a limit is specified, a 'nextToken' is returned as part of the result+-- that you can use to continue this request. -- -- <http://docs.aws.amazon.com/config/latest/APIReference/API_GetResourceConfigHistory.html> module Network.AWS.Config.GetResourceConfigHistory@@ -58,8 +58,8 @@ data GetResourceConfigHistory = GetResourceConfigHistory { _grchChronologicalOrder :: Maybe ChronologicalOrder- , _grchEarlierTime :: Maybe RFC822- , _grchLaterTime :: Maybe RFC822+ , _grchEarlierTime :: Maybe ISO8601+ , _grchLaterTime :: Maybe ISO8601 , _grchLimit :: Maybe Nat , _grchNextToken :: Maybe Text , _grchResourceId :: Text@@ -103,19 +103,19 @@ grchChronologicalOrder = lens _grchChronologicalOrder (\s a -> s { _grchChronologicalOrder = a }) --- | The time stamp that indicates an earlier time. If not specified, the--- action returns paginated results that contain configuration items that--- start from when the first configuration item was recorded.+-- | The time stamp that indicates an earlier time. If not specified, the action+-- returns paginated results that contain configuration items that start from+-- when the first configuration item was recorded. grchEarlierTime :: Lens' GetResourceConfigHistory (Maybe UTCTime) grchEarlierTime = lens _grchEarlierTime (\s a -> s { _grchEarlierTime = a }) . mapping _Time --- | The time stamp that indicates a later time. If not specified, current--- time is taken.+-- | The time stamp that indicates a later time. If not specified, current time is+-- taken. grchLaterTime :: Lens' GetResourceConfigHistory (Maybe UTCTime) grchLaterTime = lens _grchLaterTime (\s a -> s { _grchLaterTime = a }) . mapping _Time --- | The maximum number of configuration items returned in each page. The--- default is 10. You cannot specify a limit greater than 100.+-- | The maximum number of configuration items returned in each page. The default+-- is 10. You cannot specify a limit greater than 100. grchLimit :: Lens' GetResourceConfigHistory (Maybe Natural) grchLimit = lens _grchLimit (\s a -> s { _grchLimit = a }) . mapping _Nat @@ -123,7 +123,7 @@ grchNextToken :: Lens' GetResourceConfigHistory (Maybe Text) grchNextToken = lens _grchNextToken (\s a -> s { _grchNextToken = a }) --- | The ID of the resource (for example., sg-xxxxxx).+-- | The ID of the resource (for example., 'sg-xxxxxx'). grchResourceId :: Lens' GetResourceConfigHistory Text grchResourceId = lens _grchResourceId (\s a -> s { _grchResourceId = a })
gen/Network/AWS/Config/PutConfigurationRecorder.hs view
@@ -21,7 +21,8 @@ -- Portability : non-portable (GHC extensions) -- | Creates a new configuration recorder to record the resource configurations.--- You can use this action to change the role (roleARN) of an existing+--+-- You can use this action to change the role ('roleARN') of an existing -- recorder. To change the role, call the action on the existing configuration -- recorder and specify a role. --@@ -62,8 +63,8 @@ { _pcrConfigurationRecorder = p1 } --- | The configuration recorder object that records each configuration change--- made to the resources.+-- | The configuration recorder object that records each configuration change made+-- to the resources. pcrConfigurationRecorder :: Lens' PutConfigurationRecorder ConfigurationRecorder pcrConfigurationRecorder = lens _pcrConfigurationRecorder
gen/Network/AWS/Config/PutDeliveryChannel.hs view
@@ -21,11 +21,12 @@ -- Portability : non-portable (GHC extensions) -- | Creates a new delivery channel object to deliver the configuration--- information to an Amazon S3 bucket, and to an Amazon SNS topic. You can use--- this action to change the Amazon S3 bucket or an Amazon SNS topic of the--- existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS--- topic, call this action and specify the changed values for the S3 bucket--- and the SNS topic. If you specify a different value for either the S3+-- information to an Amazon S3 bucket, and to an Amazon SNS topic.+--+-- You can use this action to change the Amazon S3 bucket or an Amazon SNS+-- topic of the existing delivery channel. To change the Amazon S3 bucket or an+-- Amazon SNS topic, call this action and specify the changed values for the S3+-- bucket and the SNS topic. If you specify a different value for either the S3 -- bucket or the SNS topic, this action will keep the existing value for the -- parameter that is not changed. --
gen/Network/AWS/Config/StartConfigurationRecorder.hs view
@@ -21,9 +21,11 @@ -- Portability : non-portable (GHC extensions) -- | Starts recording configurations of all the resources associated with the--- account. You must have created at least one delivery channel to--- successfully start the configuration recorder.+-- account. --+-- You must have created at least one delivery channel to successfully start+-- the configuration recorder.+-- -- <http://docs.aws.amazon.com/config/latest/APIReference/API_StartConfigurationRecorder.html> module Network.AWS.Config.StartConfigurationRecorder (@@ -61,8 +63,8 @@ { _scr1ConfigurationRecorderName = p1 } --- | The name of the recorder object that records each configuration change--- made to the resources.+-- | The name of the recorder object that records each configuration change made+-- to the resources. scr1ConfigurationRecorderName :: Lens' StartConfigurationRecorder Text scr1ConfigurationRecorderName = lens _scr1ConfigurationRecorderName
gen/Network/AWS/Config/StopConfigurationRecorder.hs view
@@ -60,8 +60,8 @@ { _scrConfigurationRecorderName = p1 } --- | The name of the recorder object that records each configuration change--- made to the resources.+-- | The name of the recorder object that records each configuration change made+-- to the resources. scrConfigurationRecorderName :: Lens' StopConfigurationRecorder Text scrConfigurationRecorderName = lens _scrConfigurationRecorderName
gen/Network/AWS/Config/Types.hs view
@@ -145,11 +145,11 @@ handle = jsonError statusSuccess data ConfigExportDeliveryInfo = ConfigExportDeliveryInfo- { _cediLastAttemptTime :: Maybe RFC822+ { _cediLastAttemptTime :: Maybe ISO8601 , _cediLastErrorCode :: Maybe Text , _cediLastErrorMessage :: Maybe Text , _cediLastStatus :: Maybe DeliveryStatus- , _cediLastSuccessfulTime :: Maybe RFC822+ , _cediLastSuccessfulTime :: Maybe ISO8601 } deriving (Eq, Show) -- | 'ConfigExportDeliveryInfo' constructor.@@ -222,7 +222,7 @@ { _csdiLastErrorCode :: Maybe Text , _csdiLastErrorMessage :: Maybe Text , _csdiLastStatus :: Maybe DeliveryStatus- , _csdiLastStatusChangeTime :: Maybe RFC822+ , _csdiLastStatusChangeTime :: Maybe ISO8601 } deriving (Eq, Show) -- | 'ConfigStreamDeliveryInfo' constructor.@@ -309,7 +309,7 @@ rRelationshipName = lens _rRelationshipName (\s a -> s { _rRelationshipName = a }) --- | The resource ID of the related resource (for example, sg-xxxxxx.+-- | The resource ID of the related resource (for example, 'sg-xxxxxx'. rResourceId :: Lens' Relationship (Maybe Text) rResourceId = lens _rResourceId (\s a -> s { _rResourceId = a }) @@ -363,8 +363,8 @@ dcName :: Lens' DeliveryChannel (Maybe Text) dcName = lens _dcName (\s a -> s { _dcName = a }) --- | The name of the Amazon S3 bucket used to store configuration history for--- the delivery channel.+-- | The name of the Amazon S3 bucket used to store configuration history for the+-- delivery channel. dcS3BucketName :: Lens' DeliveryChannel (Maybe Text) dcS3BucketName = lens _dcS3BucketName (\s a -> s { _dcS3BucketName = a }) @@ -372,8 +372,8 @@ dcS3KeyPrefix :: Lens' DeliveryChannel (Maybe Text) dcS3KeyPrefix = lens _dcS3KeyPrefix (\s a -> s { _dcS3KeyPrefix = a }) --- | The Amazon Resource Name (ARN) of the IAM role used for accessing the--- Amazon S3 bucket and the Amazon SNS topic.+-- | The Amazon Resource Name (ARN) of the IAM role used for accessing the Amazon+-- S3 bucket and the Amazon SNS topic. dcSnsTopicARN :: Lens' DeliveryChannel (Maybe Text) dcSnsTopicARN = lens _dcSnsTopicARN (\s a -> s { _dcSnsTopicARN = a }) @@ -400,8 +400,11 @@ instance Hashable ChronologicalOrder instance FromText ChronologicalOrder where- parser = match "Forward" Forward- <|> match "Reverse" Reverse+ parser = takeText >>= \case+ "Forward" -> pure Forward+ "Reverse" -> pure Reverse+ e -> fail $+ "Failure parsing ChronologicalOrder from " ++ show e instance ToText ChronologicalOrder where toText = \case@@ -438,20 +441,23 @@ instance Hashable ResourceType instance FromText ResourceType where- parser = match "AWS::CloudTrail::Trail" AWSCloudTrailTrail- <|> match "AWS::EC2::CustomerGateway" AWSEC2CustomerGateway- <|> match "AWS::EC2::EIP" AWSEC2EIP- <|> match "AWS::EC2::Instance" AWSEC2Instance- <|> match "AWS::EC2::InternetGateway" AWSEC2InternetGateway- <|> match "AWS::EC2::NetworkAcl" AWSEC2NetworkAcl- <|> match "AWS::EC2::NetworkInterface" AWSEC2NetworkInterface- <|> match "AWS::EC2::RouteTable" AWSEC2RouteTable- <|> match "AWS::EC2::SecurityGroup" AWSEC2SecurityGroup- <|> match "AWS::EC2::Subnet" AWSEC2Subnet- <|> match "AWS::EC2::VPC" AWSEC2VPC- <|> match "AWS::EC2::VPNConnection" AWSEC2VPNConnection- <|> match "AWS::EC2::VPNGateway" AWSEC2VPNGateway- <|> match "AWS::EC2::Volume" AWSEC2Volume+ parser = takeText >>= \case+ "AWS::CloudTrail::Trail" -> pure AWSCloudTrailTrail+ "AWS::EC2::CustomerGateway" -> pure AWSEC2CustomerGateway+ "AWS::EC2::EIP" -> pure AWSEC2EIP+ "AWS::EC2::Instance" -> pure AWSEC2Instance+ "AWS::EC2::InternetGateway" -> pure AWSEC2InternetGateway+ "AWS::EC2::NetworkAcl" -> pure AWSEC2NetworkAcl+ "AWS::EC2::NetworkInterface" -> pure AWSEC2NetworkInterface+ "AWS::EC2::RouteTable" -> pure AWSEC2RouteTable+ "AWS::EC2::SecurityGroup" -> pure AWSEC2SecurityGroup+ "AWS::EC2::Subnet" -> pure AWSEC2Subnet+ "AWS::EC2::VPC" -> pure AWSEC2VPC+ "AWS::EC2::VPNConnection" -> pure AWSEC2VPNConnection+ "AWS::EC2::VPNGateway" -> pure AWSEC2VPNGateway+ "AWS::EC2::Volume" -> pure AWSEC2Volume+ e -> fail $+ "Failure parsing ResourceType from " ++ show e instance ToText ResourceType where toText = \case@@ -485,13 +491,13 @@ , _ciArn :: Maybe Text , _ciAvailabilityZone :: Maybe Text , _ciConfiguration :: Maybe Text- , _ciConfigurationItemCaptureTime :: Maybe RFC822+ , _ciConfigurationItemCaptureTime :: Maybe ISO8601 , _ciConfigurationItemMD5Hash :: Maybe Text , _ciConfigurationItemStatus :: Maybe ConfigurationItemStatus , _ciConfigurationStateId :: Maybe Text , _ciRelatedEvents :: List "relatedEvents" Text , _ciRelationships :: List "relationships" Relationship- , _ciResourceCreationTime :: Maybe RFC822+ , _ciResourceCreationTime :: Maybe ISO8601 , _ciResourceId :: Maybe Text , _ciResourceType :: Maybe ResourceType , _ciTags :: Map Text Text@@ -575,9 +581,10 @@ (\s a -> s { _ciConfigurationItemCaptureTime = a }) . mapping _Time --- | Unique MD5 hash that represents the configuration item's state. You can--- use MD5 hash to compare the states of two or more configuration items--- that are associated with the same resource.+-- | Unique MD5 hash that represents the configuration item's state.+--+-- You can use MD5 hash to compare the states of two or more configuration+-- items that are associated with the same resource. ciConfigurationItemMD5Hash :: Lens' ConfigurationItem (Maybe Text) ciConfigurationItemMD5Hash = lens _ciConfigurationItemMD5Hash@@ -595,11 +602,14 @@ ciConfigurationStateId = lens _ciConfigurationStateId (\s a -> s { _ciConfigurationStateId = a }) --- | A list of CloudTrail event IDs. A populated field indicates that the--- current configuration was initiated by the events recorded in the--- CloudTrail log. For more information about CloudTrail, see What is AWS--- CloudTrail?. An empty field indicates that the current configuration was--- not initiated by any event.+-- | A list of CloudTrail event IDs.+--+-- A populated field indicates that the current configuration was initiated by+-- the events recorded in the CloudTrail log. For more information about+-- CloudTrail, see <http://docs.aws.amazon.com/awscloudtrail/latest/userguide/what_is_cloud_trail_top_level.html What is AWS CloudTrail?>.+--+-- An empty field indicates that the current configuration was not initiated by+-- any event. ciRelatedEvents :: Lens' ConfigurationItem [Text] ciRelatedEvents = lens _ciRelatedEvents (\s a -> s { _ciRelatedEvents = a }) . _List @@ -613,7 +623,7 @@ lens _ciResourceCreationTime (\s a -> s { _ciResourceCreationTime = a }) . mapping _Time --- | The ID of the resource (for example., sg-xxxxxx).+-- | The ID of the resource (for example., 'sg-xxxxxx'). ciResourceId :: Lens' ConfigurationItem (Maybe Text) ciResourceId = lens _ciResourceId (\s a -> s { _ciResourceId = a }) @@ -674,8 +684,11 @@ instance Hashable DeliveryStatus instance FromText DeliveryStatus where- parser = match "Failure" Failure- <|> match "Success" Success+ parser = takeText >>= \case+ "Failure" -> pure Failure+ "Success" -> pure Success+ e -> fail $+ "Failure parsing DeliveryStatus from " ++ show e instance ToText DeliveryStatus where toText = \case@@ -719,15 +732,15 @@ , _dcsConfigStreamDeliveryInfo = Nothing } --- | A list that contains the status of the delivery of the configuration--- history to the specified Amazon S3 bucket.+-- | A list that contains the status of the delivery of the configuration history+-- to the specified Amazon S3 bucket. dcsConfigHistoryDeliveryInfo :: Lens' DeliveryChannelStatus (Maybe ConfigExportDeliveryInfo) dcsConfigHistoryDeliveryInfo = lens _dcsConfigHistoryDeliveryInfo (\s a -> s { _dcsConfigHistoryDeliveryInfo = a }) --- | A list containing the status of the delivery of the snapshot to the--- specified Amazon S3 bucket.+-- | A list containing the status of the delivery of the snapshot to the specified+-- Amazon S3 bucket. dcsConfigSnapshotDeliveryInfo :: Lens' DeliveryChannelStatus (Maybe ConfigExportDeliveryInfo) dcsConfigSnapshotDeliveryInfo = lens _dcsConfigSnapshotDeliveryInfo@@ -762,10 +775,10 @@ data ConfigurationRecorderStatus = ConfigurationRecorderStatus { _crsLastErrorCode :: Maybe Text , _crsLastErrorMessage :: Maybe Text- , _crsLastStartTime :: Maybe RFC822+ , _crsLastStartTime :: Maybe ISO8601 , _crsLastStatus :: Maybe RecorderStatus- , _crsLastStatusChangeTime :: Maybe RFC822- , _crsLastStopTime :: Maybe RFC822+ , _crsLastStatusChangeTime :: Maybe ISO8601+ , _crsLastStopTime :: Maybe ISO8601 , _crsName :: Maybe Text , _crsRecording :: Maybe Bool } deriving (Eq, Show)@@ -870,10 +883,13 @@ instance Hashable ConfigurationItemStatus instance FromText ConfigurationItemStatus where- parser = match "Deleted" Deleted- <|> match "Discovered" Discovered- <|> match "Failed" Failed- <|> match "Ok" Ok+ parser = takeText >>= \case+ "Deleted" -> pure Deleted+ "Discovered" -> pure Discovered+ "Failed" -> pure Failed+ "Ok" -> pure Ok+ e -> fail $+ "Failure parsing ConfigurationItemStatus from " ++ show e instance ToText ConfigurationItemStatus where toText = \case@@ -911,14 +927,14 @@ , _crRoleARN = Nothing } --- | The name of the recorder. By default, AWS Config automatically assigns--- the name "default" when creating the configuration recorder. You cannot--- change the assigned name.+-- | The name of the recorder. By default, AWS Config automatically assigns the+-- name "default" when creating the configuration recorder. You cannot change+-- the assigned name. crName :: Lens' ConfigurationRecorder (Maybe Text) crName = lens _crName (\s a -> s { _crName = a }) --- | Amazon Resource Name (ARN) of the IAM role used to describe the AWS--- resources associated with the account.+-- | Amazon Resource Name (ARN) of the IAM role used to describe the AWS resources+-- associated with the account. crRoleARN :: Lens' ConfigurationRecorder (Maybe Text) crRoleARN = lens _crRoleARN (\s a -> s { _crRoleARN = a }) @@ -942,9 +958,12 @@ instance Hashable RecorderStatus instance FromText RecorderStatus where- parser = match "Failure" RSFailure- <|> match "Pending" RSPending- <|> match "Success" RSSuccess+ parser = takeText >>= \case+ "Failure" -> pure RSFailure+ "Pending" -> pure RSPending+ "Success" -> pure RSSuccess+ e -> fail $+ "Failure parsing RecorderStatus from " ++ show e instance ToText RecorderStatus where toText = \case