-- 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.IoTDataPlane</a> or <a>the AWS documentation</a> to
--   get started.
@package amazonka-iot-dataplane
@version 1.4.5


module Network.AWS.IoTDataPlane.Types

-- | API version <tt>2015-05-28</tt> of the Amazon IoT Data Plane SDK
--   configuration.
ioTDataPlane :: 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


-- | 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.IoTDataPlane.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 -> HashMap Text Value -> 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 (HashMap Text Value)

-- | 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 (HashMap Text Value))

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


module Network.AWS.IoTDataPlane.Waiters


-- | Publishes state information.
--   
--   For more information, see <a>HTTP Protocol</a> in the <i>AWS IoT
--   Developer Guide</i> .
module Network.AWS.IoTDataPlane.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 (HashMap Text Value))

-- | 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.IoTDataPlane.Publish.PublishResponse
instance Data.Data.Data Network.AWS.IoTDataPlane.Publish.PublishResponse
instance GHC.Show.Show Network.AWS.IoTDataPlane.Publish.PublishResponse
instance GHC.Read.Read Network.AWS.IoTDataPlane.Publish.PublishResponse
instance GHC.Classes.Eq Network.AWS.IoTDataPlane.Publish.PublishResponse
instance GHC.Generics.Generic Network.AWS.IoTDataPlane.Publish.Publish
instance Data.Data.Data Network.AWS.IoTDataPlane.Publish.Publish
instance GHC.Show.Show Network.AWS.IoTDataPlane.Publish.Publish
instance GHC.Classes.Eq Network.AWS.IoTDataPlane.Publish.Publish
instance Network.AWS.Types.AWSRequest Network.AWS.IoTDataPlane.Publish.Publish
instance Data.Hashable.Class.Hashable Network.AWS.IoTDataPlane.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.IoTDataPlane.Publish.Publish
instance Network.AWS.Data.Body.ToBody Network.AWS.IoTDataPlane.Publish.Publish
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTDataPlane.Publish.Publish
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTDataPlane.Publish.Publish
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTDataPlane.Publish.Publish
instance Control.DeepSeq.NFData Network.AWS.IoTDataPlane.Publish.PublishResponse


-- | 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.IoTDataPlane.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 (HashMap Text Value))

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


-- | 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.IoTDataPlane.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 -> HashMap Text Value -> 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 (HashMap Text Value)
instance GHC.Generics.Generic Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadowResponse
instance Data.Data.Data Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Show.Show Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Classes.Eq Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadowResponse
instance GHC.Generics.Generic Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Data.Data.Data Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance GHC.Show.Show Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance GHC.Read.Read Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance GHC.Classes.Eq Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Types.AWSRequest Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Data.Hashable.Class.Hashable Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Path.ToPath Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadow
instance Control.DeepSeq.NFData Network.AWS.IoTDataPlane.DeleteThingShadow.DeleteThingShadowResponse


-- | <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.IoTDataPlane

-- | API version <tt>2015-05-28</tt> of the Amazon IoT Data Plane SDK
--   configuration.
ioTDataPlane :: 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
