module Network.AWS.IoT.Types.Product where
import Network.AWS.IoT.Types.Sum
import Network.AWS.Prelude
data Action = Action'
{ _aSns :: !(Maybe SNSAction)
, _aDynamoDB :: !(Maybe DynamoDBAction)
, _aFirehose :: !(Maybe FirehoseAction)
, _aLambda :: !(Maybe LambdaAction)
, _aKinesis :: !(Maybe KinesisAction)
, _aS3 :: !(Maybe S3Action)
, _aRepublish :: !(Maybe RepublishAction)
, _aSqs :: !(Maybe SqsAction)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
action
:: Action
action =
Action'
{ _aSns = Nothing
, _aDynamoDB = Nothing
, _aFirehose = Nothing
, _aLambda = Nothing
, _aKinesis = Nothing
, _aS3 = Nothing
, _aRepublish = Nothing
, _aSqs = Nothing
}
aSns :: Lens' Action (Maybe SNSAction)
aSns = lens _aSns (\ s a -> s{_aSns = a});
aDynamoDB :: Lens' Action (Maybe DynamoDBAction)
aDynamoDB = lens _aDynamoDB (\ s a -> s{_aDynamoDB = a});
aFirehose :: Lens' Action (Maybe FirehoseAction)
aFirehose = lens _aFirehose (\ s a -> s{_aFirehose = a});
aLambda :: Lens' Action (Maybe LambdaAction)
aLambda = lens _aLambda (\ s a -> s{_aLambda = a});
aKinesis :: Lens' Action (Maybe KinesisAction)
aKinesis = lens _aKinesis (\ s a -> s{_aKinesis = a});
aS3 :: Lens' Action (Maybe S3Action)
aS3 = lens _aS3 (\ s a -> s{_aS3 = a});
aRepublish :: Lens' Action (Maybe RepublishAction)
aRepublish = lens _aRepublish (\ s a -> s{_aRepublish = a});
aSqs :: Lens' Action (Maybe SqsAction)
aSqs = lens _aSqs (\ s a -> s{_aSqs = a});
instance FromJSON Action where
parseJSON
= withObject "Action"
(\ x ->
Action' <$>
(x .:? "sns") <*> (x .:? "dynamoDB") <*>
(x .:? "firehose")
<*> (x .:? "lambda")
<*> (x .:? "kinesis")
<*> (x .:? "s3")
<*> (x .:? "republish")
<*> (x .:? "sqs"))
instance ToJSON Action where
toJSON Action'{..}
= object
(catMaybes
[("sns" .=) <$> _aSns,
("dynamoDB" .=) <$> _aDynamoDB,
("firehose" .=) <$> _aFirehose,
("lambda" .=) <$> _aLambda,
("kinesis" .=) <$> _aKinesis, ("s3" .=) <$> _aS3,
("republish" .=) <$> _aRepublish,
("sqs" .=) <$> _aSqs])
newtype AttributePayload = AttributePayload'
{ _apAttributes :: Maybe (Map Text Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
attributePayload
:: AttributePayload
attributePayload =
AttributePayload'
{ _apAttributes = Nothing
}
apAttributes :: Lens' AttributePayload (HashMap Text Text)
apAttributes = lens _apAttributes (\ s a -> s{_apAttributes = a}) . _Default . _Map;
instance ToJSON AttributePayload where
toJSON AttributePayload'{..}
= object
(catMaybes [("attributes" .=) <$> _apAttributes])
data Certificate = Certificate'
{ _cStatus :: !(Maybe CertificateStatus)
, _cCertificateARN :: !(Maybe Text)
, _cCertificateId :: !(Maybe Text)
, _cCreationDate :: !(Maybe POSIX)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
certificate
:: Certificate
certificate =
Certificate'
{ _cStatus = Nothing
, _cCertificateARN = Nothing
, _cCertificateId = Nothing
, _cCreationDate = Nothing
}
cStatus :: Lens' Certificate (Maybe CertificateStatus)
cStatus = lens _cStatus (\ s a -> s{_cStatus = a});
cCertificateARN :: Lens' Certificate (Maybe Text)
cCertificateARN = lens _cCertificateARN (\ s a -> s{_cCertificateARN = a});
cCertificateId :: Lens' Certificate (Maybe Text)
cCertificateId = lens _cCertificateId (\ s a -> s{_cCertificateId = a});
cCreationDate :: Lens' Certificate (Maybe UTCTime)
cCreationDate = lens _cCreationDate (\ s a -> s{_cCreationDate = a}) . mapping _Time;
instance FromJSON Certificate where
parseJSON
= withObject "Certificate"
(\ x ->
Certificate' <$>
(x .:? "status") <*> (x .:? "certificateArn") <*>
(x .:? "certificateId")
<*> (x .:? "creationDate"))
data CertificateDescription = CertificateDescription'
{ _cdStatus :: !(Maybe CertificateStatus)
, _cdOwnedBy :: !(Maybe Text)
, _cdLastModifiedDate :: !(Maybe POSIX)
, _cdCertificatePem :: !(Maybe Text)
, _cdCertificateARN :: !(Maybe Text)
, _cdCertificateId :: !(Maybe Text)
, _cdCreationDate :: !(Maybe POSIX)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
certificateDescription
:: CertificateDescription
certificateDescription =
CertificateDescription'
{ _cdStatus = Nothing
, _cdOwnedBy = Nothing
, _cdLastModifiedDate = Nothing
, _cdCertificatePem = Nothing
, _cdCertificateARN = Nothing
, _cdCertificateId = Nothing
, _cdCreationDate = Nothing
}
cdStatus :: Lens' CertificateDescription (Maybe CertificateStatus)
cdStatus = lens _cdStatus (\ s a -> s{_cdStatus = a});
cdOwnedBy :: Lens' CertificateDescription (Maybe Text)
cdOwnedBy = lens _cdOwnedBy (\ s a -> s{_cdOwnedBy = a});
cdLastModifiedDate :: Lens' CertificateDescription (Maybe UTCTime)
cdLastModifiedDate = lens _cdLastModifiedDate (\ s a -> s{_cdLastModifiedDate = a}) . mapping _Time;
cdCertificatePem :: Lens' CertificateDescription (Maybe Text)
cdCertificatePem = lens _cdCertificatePem (\ s a -> s{_cdCertificatePem = a});
cdCertificateARN :: Lens' CertificateDescription (Maybe Text)
cdCertificateARN = lens _cdCertificateARN (\ s a -> s{_cdCertificateARN = a});
cdCertificateId :: Lens' CertificateDescription (Maybe Text)
cdCertificateId = lens _cdCertificateId (\ s a -> s{_cdCertificateId = a});
cdCreationDate :: Lens' CertificateDescription (Maybe UTCTime)
cdCreationDate = lens _cdCreationDate (\ s a -> s{_cdCreationDate = a}) . mapping _Time;
instance FromJSON CertificateDescription where
parseJSON
= withObject "CertificateDescription"
(\ x ->
CertificateDescription' <$>
(x .:? "status") <*> (x .:? "ownedBy") <*>
(x .:? "lastModifiedDate")
<*> (x .:? "certificatePem")
<*> (x .:? "certificateArn")
<*> (x .:? "certificateId")
<*> (x .:? "creationDate"))
data DynamoDBAction = DynamoDBAction'
{ _ddaPayloadField :: !(Maybe Text)
, _ddaTableName :: !Text
, _ddaRoleARN :: !Text
, _ddaHashKeyField :: !Text
, _ddaHashKeyValue :: !Text
, _ddaRangeKeyField :: !Text
, _ddaRangeKeyValue :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
dynamoDBAction
:: Text
-> Text
-> Text
-> Text
-> Text
-> Text
-> DynamoDBAction
dynamoDBAction pTableName_ pRoleARN_ pHashKeyField_ pHashKeyValue_ pRangeKeyField_ pRangeKeyValue_ =
DynamoDBAction'
{ _ddaPayloadField = Nothing
, _ddaTableName = pTableName_
, _ddaRoleARN = pRoleARN_
, _ddaHashKeyField = pHashKeyField_
, _ddaHashKeyValue = pHashKeyValue_
, _ddaRangeKeyField = pRangeKeyField_
, _ddaRangeKeyValue = pRangeKeyValue_
}
ddaPayloadField :: Lens' DynamoDBAction (Maybe Text)
ddaPayloadField = lens _ddaPayloadField (\ s a -> s{_ddaPayloadField = a});
ddaTableName :: Lens' DynamoDBAction Text
ddaTableName = lens _ddaTableName (\ s a -> s{_ddaTableName = a});
ddaRoleARN :: Lens' DynamoDBAction Text
ddaRoleARN = lens _ddaRoleARN (\ s a -> s{_ddaRoleARN = a});
ddaHashKeyField :: Lens' DynamoDBAction Text
ddaHashKeyField = lens _ddaHashKeyField (\ s a -> s{_ddaHashKeyField = a});
ddaHashKeyValue :: Lens' DynamoDBAction Text
ddaHashKeyValue = lens _ddaHashKeyValue (\ s a -> s{_ddaHashKeyValue = a});
ddaRangeKeyField :: Lens' DynamoDBAction Text
ddaRangeKeyField = lens _ddaRangeKeyField (\ s a -> s{_ddaRangeKeyField = a});
ddaRangeKeyValue :: Lens' DynamoDBAction Text
ddaRangeKeyValue = lens _ddaRangeKeyValue (\ s a -> s{_ddaRangeKeyValue = a});
instance FromJSON DynamoDBAction where
parseJSON
= withObject "DynamoDBAction"
(\ x ->
DynamoDBAction' <$>
(x .:? "payloadField") <*> (x .: "tableName") <*>
(x .: "roleArn")
<*> (x .: "hashKeyField")
<*> (x .: "hashKeyValue")
<*> (x .: "rangeKeyField")
<*> (x .: "rangeKeyValue"))
instance ToJSON DynamoDBAction where
toJSON DynamoDBAction'{..}
= object
(catMaybes
[("payloadField" .=) <$> _ddaPayloadField,
Just ("tableName" .= _ddaTableName),
Just ("roleArn" .= _ddaRoleARN),
Just ("hashKeyField" .= _ddaHashKeyField),
Just ("hashKeyValue" .= _ddaHashKeyValue),
Just ("rangeKeyField" .= _ddaRangeKeyField),
Just ("rangeKeyValue" .= _ddaRangeKeyValue)])
data FirehoseAction = FirehoseAction'
{ _faRoleARN :: !Text
, _faDeliveryStreamName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
firehoseAction
:: Text
-> Text
-> FirehoseAction
firehoseAction pRoleARN_ pDeliveryStreamName_ =
FirehoseAction'
{ _faRoleARN = pRoleARN_
, _faDeliveryStreamName = pDeliveryStreamName_
}
faRoleARN :: Lens' FirehoseAction Text
faRoleARN = lens _faRoleARN (\ s a -> s{_faRoleARN = a});
faDeliveryStreamName :: Lens' FirehoseAction Text
faDeliveryStreamName = lens _faDeliveryStreamName (\ s a -> s{_faDeliveryStreamName = a});
instance FromJSON FirehoseAction where
parseJSON
= withObject "FirehoseAction"
(\ x ->
FirehoseAction' <$>
(x .: "roleArn") <*> (x .: "deliveryStreamName"))
instance ToJSON FirehoseAction where
toJSON FirehoseAction'{..}
= object
(catMaybes
[Just ("roleArn" .= _faRoleARN),
Just
("deliveryStreamName" .= _faDeliveryStreamName)])
data KeyPair = KeyPair'
{ _kpPrivateKey :: !(Maybe Text)
, _kpPublicKey :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
keyPair
:: KeyPair
keyPair =
KeyPair'
{ _kpPrivateKey = Nothing
, _kpPublicKey = Nothing
}
kpPrivateKey :: Lens' KeyPair (Maybe Text)
kpPrivateKey = lens _kpPrivateKey (\ s a -> s{_kpPrivateKey = a});
kpPublicKey :: Lens' KeyPair (Maybe Text)
kpPublicKey = lens _kpPublicKey (\ s a -> s{_kpPublicKey = a});
instance FromJSON KeyPair where
parseJSON
= withObject "KeyPair"
(\ x ->
KeyPair' <$>
(x .:? "PrivateKey") <*> (x .:? "PublicKey"))
data KinesisAction = KinesisAction'
{ _kaPartitionKey :: !(Maybe Text)
, _kaRoleARN :: !Text
, _kaStreamName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
kinesisAction
:: Text
-> Text
-> KinesisAction
kinesisAction pRoleARN_ pStreamName_ =
KinesisAction'
{ _kaPartitionKey = Nothing
, _kaRoleARN = pRoleARN_
, _kaStreamName = pStreamName_
}
kaPartitionKey :: Lens' KinesisAction (Maybe Text)
kaPartitionKey = lens _kaPartitionKey (\ s a -> s{_kaPartitionKey = a});
kaRoleARN :: Lens' KinesisAction Text
kaRoleARN = lens _kaRoleARN (\ s a -> s{_kaRoleARN = a});
kaStreamName :: Lens' KinesisAction Text
kaStreamName = lens _kaStreamName (\ s a -> s{_kaStreamName = a});
instance FromJSON KinesisAction where
parseJSON
= withObject "KinesisAction"
(\ x ->
KinesisAction' <$>
(x .:? "partitionKey") <*> (x .: "roleArn") <*>
(x .: "streamName"))
instance ToJSON KinesisAction where
toJSON KinesisAction'{..}
= object
(catMaybes
[("partitionKey" .=) <$> _kaPartitionKey,
Just ("roleArn" .= _kaRoleARN),
Just ("streamName" .= _kaStreamName)])
newtype LambdaAction = LambdaAction'
{ _laFunctionARN :: Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
lambdaAction
:: Text
-> LambdaAction
lambdaAction pFunctionARN_ =
LambdaAction'
{ _laFunctionARN = pFunctionARN_
}
laFunctionARN :: Lens' LambdaAction Text
laFunctionARN = lens _laFunctionARN (\ s a -> s{_laFunctionARN = a});
instance FromJSON LambdaAction where
parseJSON
= withObject "LambdaAction"
(\ x -> LambdaAction' <$> (x .: "functionArn"))
instance ToJSON LambdaAction where
toJSON LambdaAction'{..}
= object
(catMaybes [Just ("functionArn" .= _laFunctionARN)])
data LoggingOptionsPayload = LoggingOptionsPayload'
{ _lopLogLevel :: !(Maybe LogLevel)
, _lopRoleARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
loggingOptionsPayload
:: Text
-> LoggingOptionsPayload
loggingOptionsPayload pRoleARN_ =
LoggingOptionsPayload'
{ _lopLogLevel = Nothing
, _lopRoleARN = pRoleARN_
}
lopLogLevel :: Lens' LoggingOptionsPayload (Maybe LogLevel)
lopLogLevel = lens _lopLogLevel (\ s a -> s{_lopLogLevel = a});
lopRoleARN :: Lens' LoggingOptionsPayload Text
lopRoleARN = lens _lopRoleARN (\ s a -> s{_lopRoleARN = a});
instance ToJSON LoggingOptionsPayload where
toJSON LoggingOptionsPayload'{..}
= object
(catMaybes
[("logLevel" .=) <$> _lopLogLevel,
Just ("roleArn" .= _lopRoleARN)])
data Policy = Policy'
{ _pPolicyName :: !(Maybe Text)
, _pPolicyARN :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
policy
:: Policy
policy =
Policy'
{ _pPolicyName = Nothing
, _pPolicyARN = Nothing
}
pPolicyName :: Lens' Policy (Maybe Text)
pPolicyName = lens _pPolicyName (\ s a -> s{_pPolicyName = a});
pPolicyARN :: Lens' Policy (Maybe Text)
pPolicyARN = lens _pPolicyARN (\ s a -> s{_pPolicyARN = a});
instance FromJSON Policy where
parseJSON
= withObject "Policy"
(\ x ->
Policy' <$>
(x .:? "policyName") <*> (x .:? "policyArn"))
data PolicyVersion = PolicyVersion'
{ _pvVersionId :: !(Maybe Text)
, _pvCreateDate :: !(Maybe POSIX)
, _pvIsDefaultVersion :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
policyVersion
:: PolicyVersion
policyVersion =
PolicyVersion'
{ _pvVersionId = Nothing
, _pvCreateDate = Nothing
, _pvIsDefaultVersion = Nothing
}
pvVersionId :: Lens' PolicyVersion (Maybe Text)
pvVersionId = lens _pvVersionId (\ s a -> s{_pvVersionId = a});
pvCreateDate :: Lens' PolicyVersion (Maybe UTCTime)
pvCreateDate = lens _pvCreateDate (\ s a -> s{_pvCreateDate = a}) . mapping _Time;
pvIsDefaultVersion :: Lens' PolicyVersion (Maybe Bool)
pvIsDefaultVersion = lens _pvIsDefaultVersion (\ s a -> s{_pvIsDefaultVersion = a});
instance FromJSON PolicyVersion where
parseJSON
= withObject "PolicyVersion"
(\ x ->
PolicyVersion' <$>
(x .:? "versionId") <*> (x .:? "createDate") <*>
(x .:? "isDefaultVersion"))
data RepublishAction = RepublishAction'
{ _raRoleARN :: !Text
, _raTopic :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
republishAction
:: Text
-> Text
-> RepublishAction
republishAction pRoleARN_ pTopic_ =
RepublishAction'
{ _raRoleARN = pRoleARN_
, _raTopic = pTopic_
}
raRoleARN :: Lens' RepublishAction Text
raRoleARN = lens _raRoleARN (\ s a -> s{_raRoleARN = a});
raTopic :: Lens' RepublishAction Text
raTopic = lens _raTopic (\ s a -> s{_raTopic = a});
instance FromJSON RepublishAction where
parseJSON
= withObject "RepublishAction"
(\ x ->
RepublishAction' <$>
(x .: "roleArn") <*> (x .: "topic"))
instance ToJSON RepublishAction where
toJSON RepublishAction'{..}
= object
(catMaybes
[Just ("roleArn" .= _raRoleARN),
Just ("topic" .= _raTopic)])
data S3Action = S3Action'
{ _sRoleARN :: !Text
, _sBucketName :: !Text
, _sKey :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
s3Action
:: Text
-> Text
-> Text
-> S3Action
s3Action pRoleARN_ pBucketName_ pKey_ =
S3Action'
{ _sRoleARN = pRoleARN_
, _sBucketName = pBucketName_
, _sKey = pKey_
}
sRoleARN :: Lens' S3Action Text
sRoleARN = lens _sRoleARN (\ s a -> s{_sRoleARN = a});
sBucketName :: Lens' S3Action Text
sBucketName = lens _sBucketName (\ s a -> s{_sBucketName = a});
sKey :: Lens' S3Action Text
sKey = lens _sKey (\ s a -> s{_sKey = a});
instance FromJSON S3Action where
parseJSON
= withObject "S3Action"
(\ x ->
S3Action' <$>
(x .: "roleArn") <*> (x .: "bucketName") <*>
(x .: "key"))
instance ToJSON S3Action where
toJSON S3Action'{..}
= object
(catMaybes
[Just ("roleArn" .= _sRoleARN),
Just ("bucketName" .= _sBucketName),
Just ("key" .= _sKey)])
data SNSAction = SNSAction'
{ _snsaTargetARN :: !Text
, _snsaRoleARN :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
snsAction
:: Text
-> Text
-> SNSAction
snsAction pTargetARN_ pRoleARN_ =
SNSAction'
{ _snsaTargetARN = pTargetARN_
, _snsaRoleARN = pRoleARN_
}
snsaTargetARN :: Lens' SNSAction Text
snsaTargetARN = lens _snsaTargetARN (\ s a -> s{_snsaTargetARN = a});
snsaRoleARN :: Lens' SNSAction Text
snsaRoleARN = lens _snsaRoleARN (\ s a -> s{_snsaRoleARN = a});
instance FromJSON SNSAction where
parseJSON
= withObject "SNSAction"
(\ x ->
SNSAction' <$>
(x .: "targetArn") <*> (x .: "roleArn"))
instance ToJSON SNSAction where
toJSON SNSAction'{..}
= object
(catMaybes
[Just ("targetArn" .= _snsaTargetARN),
Just ("roleArn" .= _snsaRoleARN)])
data SqsAction = SqsAction'
{ _saUseBase64 :: !(Maybe Bool)
, _saRoleARN :: !Text
, _saQueueURL :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
sqsAction
:: Text
-> Text
-> SqsAction
sqsAction pRoleARN_ pQueueURL_ =
SqsAction'
{ _saUseBase64 = Nothing
, _saRoleARN = pRoleARN_
, _saQueueURL = pQueueURL_
}
saUseBase64 :: Lens' SqsAction (Maybe Bool)
saUseBase64 = lens _saUseBase64 (\ s a -> s{_saUseBase64 = a});
saRoleARN :: Lens' SqsAction Text
saRoleARN = lens _saRoleARN (\ s a -> s{_saRoleARN = a});
saQueueURL :: Lens' SqsAction Text
saQueueURL = lens _saQueueURL (\ s a -> s{_saQueueURL = a});
instance FromJSON SqsAction where
parseJSON
= withObject "SqsAction"
(\ x ->
SqsAction' <$>
(x .:? "useBase64") <*> (x .: "roleArn") <*>
(x .: "queueUrl"))
instance ToJSON SqsAction where
toJSON SqsAction'{..}
= object
(catMaybes
[("useBase64" .=) <$> _saUseBase64,
Just ("roleArn" .= _saRoleARN),
Just ("queueUrl" .= _saQueueURL)])
data ThingAttribute = ThingAttribute'
{ _taAttributes :: !(Maybe (Map Text Text))
, _taThingName :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
thingAttribute
:: ThingAttribute
thingAttribute =
ThingAttribute'
{ _taAttributes = Nothing
, _taThingName = Nothing
}
taAttributes :: Lens' ThingAttribute (HashMap Text Text)
taAttributes = lens _taAttributes (\ s a -> s{_taAttributes = a}) . _Default . _Map;
taThingName :: Lens' ThingAttribute (Maybe Text)
taThingName = lens _taThingName (\ s a -> s{_taThingName = a});
instance FromJSON ThingAttribute where
parseJSON
= withObject "ThingAttribute"
(\ x ->
ThingAttribute' <$>
(x .:? "attributes" .!= mempty) <*>
(x .:? "thingName"))
data TopicRule = TopicRule'
{ _trCreatedAt :: !(Maybe POSIX)
, _trActions :: !(Maybe [Action])
, _trRuleDisabled :: !(Maybe Bool)
, _trRuleName :: !(Maybe Text)
, _trSql :: !(Maybe Text)
, _trDescription :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
topicRule
:: TopicRule
topicRule =
TopicRule'
{ _trCreatedAt = Nothing
, _trActions = Nothing
, _trRuleDisabled = Nothing
, _trRuleName = Nothing
, _trSql = Nothing
, _trDescription = Nothing
}
trCreatedAt :: Lens' TopicRule (Maybe UTCTime)
trCreatedAt = lens _trCreatedAt (\ s a -> s{_trCreatedAt = a}) . mapping _Time;
trActions :: Lens' TopicRule [Action]
trActions = lens _trActions (\ s a -> s{_trActions = a}) . _Default . _Coerce;
trRuleDisabled :: Lens' TopicRule (Maybe Bool)
trRuleDisabled = lens _trRuleDisabled (\ s a -> s{_trRuleDisabled = a});
trRuleName :: Lens' TopicRule (Maybe Text)
trRuleName = lens _trRuleName (\ s a -> s{_trRuleName = a});
trSql :: Lens' TopicRule (Maybe Text)
trSql = lens _trSql (\ s a -> s{_trSql = a});
trDescription :: Lens' TopicRule (Maybe Text)
trDescription = lens _trDescription (\ s a -> s{_trDescription = a});
instance FromJSON TopicRule where
parseJSON
= withObject "TopicRule"
(\ x ->
TopicRule' <$>
(x .:? "createdAt") <*> (x .:? "actions" .!= mempty)
<*> (x .:? "ruleDisabled")
<*> (x .:? "ruleName")
<*> (x .:? "sql")
<*> (x .:? "description"))
data TopicRuleListItem = TopicRuleListItem'
{ _trliCreatedAt :: !(Maybe POSIX)
, _trliRuleDisabled :: !(Maybe Bool)
, _trliRuleName :: !(Maybe Text)
, _trliTopicPattern :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
topicRuleListItem
:: TopicRuleListItem
topicRuleListItem =
TopicRuleListItem'
{ _trliCreatedAt = Nothing
, _trliRuleDisabled = Nothing
, _trliRuleName = Nothing
, _trliTopicPattern = Nothing
}
trliCreatedAt :: Lens' TopicRuleListItem (Maybe UTCTime)
trliCreatedAt = lens _trliCreatedAt (\ s a -> s{_trliCreatedAt = a}) . mapping _Time;
trliRuleDisabled :: Lens' TopicRuleListItem (Maybe Bool)
trliRuleDisabled = lens _trliRuleDisabled (\ s a -> s{_trliRuleDisabled = a});
trliRuleName :: Lens' TopicRuleListItem (Maybe Text)
trliRuleName = lens _trliRuleName (\ s a -> s{_trliRuleName = a});
trliTopicPattern :: Lens' TopicRuleListItem (Maybe Text)
trliTopicPattern = lens _trliTopicPattern (\ s a -> s{_trliTopicPattern = a});
instance FromJSON TopicRuleListItem where
parseJSON
= withObject "TopicRuleListItem"
(\ x ->
TopicRuleListItem' <$>
(x .:? "createdAt") <*> (x .:? "ruleDisabled") <*>
(x .:? "ruleName")
<*> (x .:? "topicPattern"))
data TopicRulePayload = TopicRulePayload'
{ _trpRuleDisabled :: !(Maybe Bool)
, _trpDescription :: !(Maybe Text)
, _trpSql :: !Text
, _trpActions :: ![Action]
} deriving (Eq,Read,Show,Data,Typeable,Generic)
topicRulePayload
:: Text
-> TopicRulePayload
topicRulePayload pSql_ =
TopicRulePayload'
{ _trpRuleDisabled = Nothing
, _trpDescription = Nothing
, _trpSql = pSql_
, _trpActions = mempty
}
trpRuleDisabled :: Lens' TopicRulePayload (Maybe Bool)
trpRuleDisabled = lens _trpRuleDisabled (\ s a -> s{_trpRuleDisabled = a});
trpDescription :: Lens' TopicRulePayload (Maybe Text)
trpDescription = lens _trpDescription (\ s a -> s{_trpDescription = a});
trpSql :: Lens' TopicRulePayload Text
trpSql = lens _trpSql (\ s a -> s{_trpSql = a});
trpActions :: Lens' TopicRulePayload [Action]
trpActions = lens _trpActions (\ s a -> s{_trpActions = a}) . _Coerce;
instance ToJSON TopicRulePayload where
toJSON TopicRulePayload'{..}
= object
(catMaybes
[("ruleDisabled" .=) <$> _trpRuleDisabled,
("description" .=) <$> _trpDescription,
Just ("sql" .= _trpSql),
Just ("actions" .= _trpActions)])