-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon IoT Data Plane SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.IoTData</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-iot-dataplane
@version 1.6.0


module Network.AWS.IoTData.Types

-- | API version <tt>2015-05-28</tt> of the Amazon IoT Data Plane SDK
--   configuration.
ioTData :: Service

-- | The request is not valid.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified version does not match the version of the document.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The payload exceeds the maximum size allowed.
_RequestEntityTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The rate exceeds the limit.
_ThrottlingException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified combination of HTTP verb and URI is not supported.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An unexpected error has occurred.
_InternalFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is temporarily unavailable.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You are not authorized to perform this operation.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified resource does not exist.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The document encoding is not supported.
_UnsupportedDocumentEncodingException :: AsError a => Getting (First ServiceError) a ServiceError


-- | Publishes state information.
--   
--   For more information, see <a>HTTP Protocol</a> in the <i>AWS IoT
--   Developer Guide</i> .
module Network.AWS.IoTData.Publish

-- | Creates a value of <a>Publish</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>pPayload</a> - The state information, in JSON format.</li>
--   <li><a>pQos</a> - The Quality of Service (QoS) level.</li>
--   <li><a>pTopic</a> - The name of the MQTT topic.</li>
--   </ul>
publish :: Text -> Publish

-- | The input for the Publish operation.
--   
--   <i>See:</i> <a>publish</a> smart constructor.
data Publish

-- | The state information, in JSON format.
pPayload :: Lens' Publish (Maybe ByteString)

-- | The Quality of Service (QoS) level.
pQos :: Lens' Publish (Maybe Natural)

-- | The name of the MQTT topic.
pTopic :: Lens' Publish Text

-- | Creates a value of <a>PublishResponse</a> with the minimum fields
--   required to make a request.
publishResponse :: PublishResponse

-- | <i>See:</i> <a>publishResponse</a> smart constructor.
data PublishResponse
instance GHC.Generics.Generic Network.AWS.IoTData.Publish.PublishResponse
instance Data.Data.Data Network.AWS.IoTData.Publish.PublishResponse
instance GHC.Show.Show Network.AWS.IoTData.Publish.PublishResponse
instance GHC.Read.Read Network.AWS.IoTData.Publish.PublishResponse
instance GHC.Classes.Eq Network.AWS.IoTData.Publish.PublishResponse
instance GHC.Generics.Generic Network.AWS.IoTData.Publish.Publish
instance Data.Data.Data Network.AWS.IoTData.Publish.Publish
instance GHC.Show.Show Network.AWS.IoTData.Publish.Publish
instance GHC.Classes.Eq Network.AWS.IoTData.Publish.Publish
instance Network.AWS.Types.AWSRequest Network.AWS.IoTData.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.IoTData.Publish.PublishResponse
instance Data.Hashable.Class.Hashable Network.AWS.IoTData.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.IoTData.Publish.Publish
instance Network.AWS.Data.Body.ToBody Network.AWS.IoTData.Publish.Publish
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTData.Publish.Publish
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTData.Publish.Publish
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTData.Publish.Publish


-- | Gets the thing shadow for the specified thing.
--   
--   For more information, see <a>GetThingShadow</a> in the <i>AWS IoT
--   Developer Guide</i> .
module Network.AWS.IoTData.GetThingShadow

-- | Creates a value of <a>GetThingShadow</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtsThingName</a> - The name of the thing.</li>
--   </ul>
getThingShadow :: Text -> GetThingShadow

-- | The input for the GetThingShadow operation.
--   
--   <i>See:</i> <a>getThingShadow</a> smart constructor.
data GetThingShadow

-- | The name of the thing.
gtsThingName :: Lens' GetThingShadow Text

-- | Creates a value of <a>GetThingShadowResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>gtsrsPayload</a> - The state information, in JSON format.</li>
--   <li><a>gtsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getThingShadowResponse :: Int -> GetThingShadowResponse

-- | The output from the GetThingShadow operation.
--   
--   <i>See:</i> <a>getThingShadowResponse</a> smart constructor.
data GetThingShadowResponse

-- | The state information, in JSON format.
gtsrsPayload :: Lens' GetThingShadowResponse (Maybe ByteString)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
gtsrsResponseStatus :: Lens' GetThingShadowResponse Int
instance GHC.Generics.Generic Network.AWS.IoTData.GetThingShadow.GetThingShadowResponse
instance Data.Data.Data Network.AWS.IoTData.GetThingShadow.GetThingShadowResponse
instance GHC.Show.Show Network.AWS.IoTData.GetThingShadow.GetThingShadowResponse
instance GHC.Classes.Eq Network.AWS.IoTData.GetThingShadow.GetThingShadowResponse
instance GHC.Generics.Generic Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Data.Data.Data Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance GHC.Show.Show Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance GHC.Read.Read Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance GHC.Classes.Eq Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Network.AWS.Types.AWSRequest Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.GetThingShadow.GetThingShadowResponse
instance Data.Hashable.Class.Hashable Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTData.GetThingShadow.GetThingShadow
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTData.GetThingShadow.GetThingShadow


-- | Deletes the thing shadow for the specified thing.
--   
--   For more information, see <a>DeleteThingShadow</a> in the <i>AWS IoT
--   Developer Guide</i> .
module Network.AWS.IoTData.DeleteThingShadow

-- | Creates a value of <a>DeleteThingShadow</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtsThingName</a> - The name of the thing.</li>
--   </ul>
deleteThingShadow :: Text -> DeleteThingShadow

-- | The input for the DeleteThingShadow operation.
--   
--   <i>See:</i> <a>deleteThingShadow</a> smart constructor.
data DeleteThingShadow

-- | The name of the thing.
dtsThingName :: Lens' DeleteThingShadow Text

-- | Creates a value of <a>DeleteThingShadowResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dtsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>dtsrsPayload</a> - The state information, in JSON format.</li>
--   </ul>
deleteThingShadowResponse :: Int -> ByteString -> DeleteThingShadowResponse

-- | The output from the DeleteThingShadow operation.
--   
--   <i>See:</i> <a>deleteThingShadowResponse</a> smart constructor.
data DeleteThingShadowResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dtsrsResponseStatus :: Lens' DeleteThingShadowResponse Int

-- | The state information, in JSON format.
dtsrsPayload :: Lens' DeleteThingShadowResponse ByteString
instance GHC.Generics.Generic Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadowResponse
instance Data.Data.Data Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Show.Show Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Classes.Eq Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Generics.Generic Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Data.Data.Data Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance GHC.Show.Show Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance GHC.Read.Read Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance GHC.Classes.Eq Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Types.AWSRequest Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadowResponse
instance Data.Hashable.Class.Hashable Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTData.DeleteThingShadow.DeleteThingShadow


-- | Updates the thing shadow for the specified thing.
--   
--   For more information, see <a>UpdateThingShadow</a> in the <i>AWS IoT
--   Developer Guide</i> .
module Network.AWS.IoTData.UpdateThingShadow

-- | Creates a value of <a>UpdateThingShadow</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utsThingName</a> - The name of the thing.</li>
--   <li><a>utsPayload</a> - The state information, in JSON format.</li>
--   </ul>
updateThingShadow :: Text -> ByteString -> UpdateThingShadow

-- | The input for the UpdateThingShadow operation.
--   
--   <i>See:</i> <a>updateThingShadow</a> smart constructor.
data UpdateThingShadow

-- | The name of the thing.
utsThingName :: Lens' UpdateThingShadow Text

-- | The state information, in JSON format.
utsPayload :: Lens' UpdateThingShadow ByteString

-- | Creates a value of <a>UpdateThingShadowResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>utsrsPayload</a> - The state information, in JSON format.</li>
--   <li><a>utsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateThingShadowResponse :: Int -> UpdateThingShadowResponse

-- | The output from the UpdateThingShadow operation.
--   
--   <i>See:</i> <a>updateThingShadowResponse</a> smart constructor.
data UpdateThingShadowResponse

-- | The state information, in JSON format.
utsrsPayload :: Lens' UpdateThingShadowResponse (Maybe ByteString)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
utsrsResponseStatus :: Lens' UpdateThingShadowResponse Int
instance GHC.Generics.Generic Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadowResponse
instance Data.Data.Data Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadowResponse
instance GHC.Show.Show Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadowResponse
instance GHC.Classes.Eq Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadowResponse
instance GHC.Generics.Generic Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Data.Data.Data Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance GHC.Show.Show Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance GHC.Classes.Eq Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Network.AWS.Types.AWSRequest Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadowResponse
instance Data.Hashable.Class.Hashable Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Network.AWS.Data.Body.ToBody Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTData.UpdateThingShadow.UpdateThingShadow


module Network.AWS.IoTData.Waiters


-- | <b>AWS IoT</b>
--   
--   AWS IoT-Data enables secure, bi-directional communication between
--   Internet-connected things (such as sensors, actuators, embedded
--   devices, or smart appliances) and the AWS cloud. It implements a
--   broker for applications and things to publish messages over HTTP
--   (Publish) and retrieve, update, and delete thing shadows. A thing
--   shadow is a persistent representation of your things and their state
--   in the AWS cloud.
module Network.AWS.IoTData

-- | API version <tt>2015-05-28</tt> of the Amazon IoT Data Plane SDK
--   configuration.
ioTData :: Service

-- | The request is not valid.
_InvalidRequestException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified version does not match the version of the document.
_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The payload exceeds the maximum size allowed.
_RequestEntityTooLargeException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The rate exceeds the limit.
_ThrottlingException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified combination of HTTP verb and URI is not supported.
_MethodNotAllowedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | An unexpected error has occurred.
_InternalFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is temporarily unavailable.
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You are not authorized to perform this operation.
_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified resource does not exist.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The document encoding is not supported.
_UnsupportedDocumentEncodingException :: AsError a => Getting (First ServiceError) a ServiceError
