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


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


module Network.AWS.IoT.Types

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

-- | Unable to verify the CA certificate used to sign the device
--   certificate you are attempting to register. This is happens when you
--   have registered more than one CA certificate that has the same subject
--   field and public key.
_CertificateConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The Rule-SQL expression can't be parsed correctly.
_SqlParseException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | You can't transfer the certificate because authorization policies are
--   still attached.
_TransferConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The certificate operation is not allowed.
_CertificateStateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The registration code is invalid.
_RegistrationCodeValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The policy documentation is not valid.
_MalformedPolicyException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You can't delete the resource because it is attached to one or more
--   resources.
_DeleteConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The resource already exists.
_ResourceAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The certificate is invalid.
_CertificateValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You can't revert the certificate transfer because the transfer is
--   already complete.
_TransferAlreadyCompletedException :: AsError a => Getting (First ServiceError) a ServiceError

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

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

-- | The number of policy versions exceeds the limit.
_VersionsLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

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

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

-- | An exception thrown when the version of a thing passed to a command is
--   different than the version specified with the --version parameter.
_VersionConflictException :: 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 number of attached entities exceeds the limit.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AutoRegistrationStatus
Disable :: AutoRegistrationStatus
Enable :: AutoRegistrationStatus
data CACertificateStatus
CACSActive :: CACertificateStatus
CACSInactive :: CACertificateStatus
data CannedAccessControlList
AWSExecRead :: CannedAccessControlList
AuthenticatedRead :: CannedAccessControlList
BucketOwnerFullControl :: CannedAccessControlList
BucketOwnerRead :: CannedAccessControlList
LogDeliveryWrite :: CannedAccessControlList
Private :: CannedAccessControlList
PublicRead :: CannedAccessControlList
PublicReadWrite :: CannedAccessControlList
data CertificateStatus
Active :: CertificateStatus
Inactive :: CertificateStatus
PendingActivation :: CertificateStatus
PendingTransfer :: CertificateStatus
RegisterInactive :: CertificateStatus
Revoked :: CertificateStatus
data DynamoKeyType
Number :: DynamoKeyType
String :: DynamoKeyType
data LogLevel
Debug :: LogLevel
Disabled :: LogLevel
Error' :: LogLevel
Info :: LogLevel
Warn :: LogLevel
data MessageFormat
JSON :: MessageFormat
Raw :: MessageFormat

-- | Describes the actions associated with a rule.
--   
--   <i>See:</i> <a>action</a> smart constructor.
data Action

-- | Creates a value of <a>Action</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>aCloudwatchMetric</a> - Capture a CloudWatch metric.</li>
--   <li><a>aDynamoDBv2</a> - Write to a DynamoDB table. This is a new
--   version of the DynamoDB action. It allows you to write each attribute
--   in an MQTT message payload into a separate DynamoDB column.</li>
--   <li><a>aCloudwatchAlarm</a> - Change the state of a CloudWatch
--   alarm.</li>
--   <li><a>aSns</a> - Publish to an Amazon SNS topic.</li>
--   <li><a>aDynamoDB</a> - Write to a DynamoDB table.</li>
--   <li><a>aFirehose</a> - Write to an Amazon Kinesis Firehose
--   stream.</li>
--   <li><a>aLambda</a> - Invoke a Lambda function.</li>
--   <li><a>aKinesis</a> - Write data to an Amazon Kinesis stream.</li>
--   <li><a>aS3</a> - Write to an Amazon S3 bucket.</li>
--   <li><a>aElasticsearch</a> - Write data to an Amazon Elasticsearch
--   Service domain.</li>
--   <li><a>aRepublish</a> - Publish to another MQTT topic.</li>
--   <li><a>aSqs</a> - Publish to an Amazon SQS queue.</li>
--   </ul>
action :: Action

-- | Capture a CloudWatch metric.
aCloudwatchMetric :: Lens' Action (Maybe CloudwatchMetricAction)

-- | Write to a DynamoDB table. This is a new version of the DynamoDB
--   action. It allows you to write each attribute in an MQTT message
--   payload into a separate DynamoDB column.
aDynamoDBv2 :: Lens' Action (Maybe DynamoDBv2Action)

-- | Change the state of a CloudWatch alarm.
aCloudwatchAlarm :: Lens' Action (Maybe CloudwatchAlarmAction)

-- | Publish to an Amazon SNS topic.
aSns :: Lens' Action (Maybe SNSAction)

-- | Write to a DynamoDB table.
aDynamoDB :: Lens' Action (Maybe DynamoDBAction)

-- | Write to an Amazon Kinesis Firehose stream.
aFirehose :: Lens' Action (Maybe FirehoseAction)

-- | Invoke a Lambda function.
aLambda :: Lens' Action (Maybe LambdaAction)

-- | Write data to an Amazon Kinesis stream.
aKinesis :: Lens' Action (Maybe KinesisAction)

-- | Write to an Amazon S3 bucket.
aS3 :: Lens' Action (Maybe S3Action)

-- | Write data to an Amazon Elasticsearch Service domain.
aElasticsearch :: Lens' Action (Maybe ElasticsearchAction)

-- | Publish to another MQTT topic.
aRepublish :: Lens' Action (Maybe RepublishAction)

-- | Publish to an Amazon SQS queue.
aSqs :: Lens' Action (Maybe SqsAction)

-- | The attribute payload.
--   
--   <i>See:</i> <a>attributePayload</a> smart constructor.
data AttributePayload

-- | Creates a value of <a>AttributePayload</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>apAttributes</a> - A JSON string containing up to three
--   key-value pair in JSON format. For example:
--   <tt>{"attributes":{"string1":"string2"}})</tt></li>
--   <li><a>apMerge</a> - Specifies whether the list of attributes provided
--   in the <tt>AttributePayload</tt> is merged with the attributes stored
--   in the registry, instead of overwriting them. To remove an attribute,
--   call <tt>UpdateThing</tt> with an empty attribute value.</li>
--   </ul>
attributePayload :: AttributePayload

-- | A JSON string containing up to three key-value pair in JSON format.
--   For example: <tt>{"attributes":{"string1":"string2"}})</tt>
apAttributes :: Lens' AttributePayload (HashMap Text Text)

-- | Specifies whether the list of attributes provided in the
--   <tt>AttributePayload</tt> is merged with the attributes stored in the
--   registry, instead of overwriting them. To remove an attribute, call
--   <tt>UpdateThing</tt> with an empty attribute value.
apMerge :: Lens' AttributePayload (Maybe Bool)

-- | A CA certificate.
--   
--   <i>See:</i> <a>cACertificate</a> smart constructor.
data CACertificate

-- | Creates a value of <a>CACertificate</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>cacStatus</a> - The status of the CA certificate. The status
--   value REGISTER_INACTIVE is deprecated and should not be used.</li>
--   <li><a>cacCertificateARN</a> - The ARN of the CA certificate.</li>
--   <li><a>cacCertificateId</a> - The ID of the CA certificate.</li>
--   <li><a>cacCreationDate</a> - The date the CA certificate was
--   created.</li>
--   </ul>
cACertificate :: CACertificate

-- | The status of the CA certificate. The status value REGISTER_INACTIVE
--   is deprecated and should not be used.
cacStatus :: Lens' CACertificate (Maybe CACertificateStatus)

-- | The ARN of the CA certificate.
cacCertificateARN :: Lens' CACertificate (Maybe Text)

-- | The ID of the CA certificate.
cacCertificateId :: Lens' CACertificate (Maybe Text)

-- | The date the CA certificate was created.
cacCreationDate :: Lens' CACertificate (Maybe UTCTime)

-- | Describes a CA certificate.
--   
--   <i>See:</i> <a>cACertificateDescription</a> smart constructor.
data CACertificateDescription

-- | Creates a value of <a>CACertificateDescription</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>cacdStatus</a> - The status of a CA certificate.</li>
--   <li><a>cacdOwnedBy</a> - The owner of the CA certificate.</li>
--   <li><a>cacdCertificatePem</a> - The CA certificate data, in PEM
--   format.</li>
--   <li><a>cacdCertificateARN</a> - The CA certificate ARN.</li>
--   <li><a>cacdCertificateId</a> - The CA certificate ID.</li>
--   <li><a>cacdAutoRegistrationStatus</a> - Whether the CA certificate
--   configured for auto registration of device certificates. Valid values
--   are <a>ENABLE</a> and <a>DISABLE</a></li>
--   <li><a>cacdCreationDate</a> - The date the CA certificate was
--   created.</li>
--   </ul>
cACertificateDescription :: CACertificateDescription

-- | The status of a CA certificate.
cacdStatus :: Lens' CACertificateDescription (Maybe CACertificateStatus)

-- | The owner of the CA certificate.
cacdOwnedBy :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate data, in PEM format.
cacdCertificatePem :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate ARN.
cacdCertificateARN :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate ID.
cacdCertificateId :: Lens' CACertificateDescription (Maybe Text)

-- | Whether the CA certificate configured for auto registration of device
--   certificates. Valid values are <a>ENABLE</a> and <a>DISABLE</a>
cacdAutoRegistrationStatus :: Lens' CACertificateDescription (Maybe AutoRegistrationStatus)

-- | The date the CA certificate was created.
cacdCreationDate :: Lens' CACertificateDescription (Maybe UTCTime)

-- | Information about a certificate.
--   
--   <i>See:</i> <a>certificate</a> smart constructor.
data Certificate

-- | Creates a value of <a>Certificate</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>cStatus</a> - The status of the certificate. The status value
--   REGISTER_INACTIVE is deprecated and should not be used.</li>
--   <li><a>cCertificateARN</a> - The ARN of the certificate.</li>
--   <li><a>cCertificateId</a> - The ID of the certificate.</li>
--   <li><a>cCreationDate</a> - The date and time the certificate was
--   created.</li>
--   </ul>
certificate :: Certificate

-- | The status of the certificate. The status value REGISTER_INACTIVE is
--   deprecated and should not be used.
cStatus :: Lens' Certificate (Maybe CertificateStatus)

-- | The ARN of the certificate.
cCertificateARN :: Lens' Certificate (Maybe Text)

-- | The ID of the certificate.
cCertificateId :: Lens' Certificate (Maybe Text)

-- | The date and time the certificate was created.
cCreationDate :: Lens' Certificate (Maybe UTCTime)

-- | Describes a certificate.
--   
--   <i>See:</i> <a>certificateDescription</a> smart constructor.
data CertificateDescription

-- | Creates a value of <a>CertificateDescription</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>cdStatus</a> - The status of the certificate.</li>
--   <li><a>cdOwnedBy</a> - The ID of the AWS account that owns the
--   certificate.</li>
--   <li><a>cdLastModifiedDate</a> - The date and time the certificate was
--   last modified.</li>
--   <li><a>cdCaCertificateId</a> - The certificate ID of the CA
--   certificate used to sign this certificate.</li>
--   <li><a>cdPreviousOwnedBy</a> - The ID of the AWS account of the
--   previous owner of the certificate.</li>
--   <li><a>cdCertificatePem</a> - The certificate data, in PEM
--   format.</li>
--   <li><a>cdCertificateARN</a> - The ARN of the certificate.</li>
--   <li><a>cdCertificateId</a> - The ID of the certificate.</li>
--   <li><a>cdCreationDate</a> - The date and time the certificate was
--   created.</li>
--   <li><a>cdTransferData</a> - The transfer data.</li>
--   </ul>
certificateDescription :: CertificateDescription

-- | The status of the certificate.
cdStatus :: Lens' CertificateDescription (Maybe CertificateStatus)

-- | The ID of the AWS account that owns the certificate.
cdOwnedBy :: Lens' CertificateDescription (Maybe Text)

-- | The date and time the certificate was last modified.
cdLastModifiedDate :: Lens' CertificateDescription (Maybe UTCTime)

-- | The certificate ID of the CA certificate used to sign this
--   certificate.
cdCaCertificateId :: Lens' CertificateDescription (Maybe Text)

-- | The ID of the AWS account of the previous owner of the certificate.
cdPreviousOwnedBy :: Lens' CertificateDescription (Maybe Text)

-- | The certificate data, in PEM format.
cdCertificatePem :: Lens' CertificateDescription (Maybe Text)

-- | The ARN of the certificate.
cdCertificateARN :: Lens' CertificateDescription (Maybe Text)

-- | The ID of the certificate.
cdCertificateId :: Lens' CertificateDescription (Maybe Text)

-- | The date and time the certificate was created.
cdCreationDate :: Lens' CertificateDescription (Maybe UTCTime)

-- | The transfer data.
cdTransferData :: Lens' CertificateDescription (Maybe TransferData)

-- | Describes an action that updates a CloudWatch alarm.
--   
--   <i>See:</i> <a>cloudwatchAlarmAction</a> smart constructor.
data CloudwatchAlarmAction

-- | Creates a value of <a>CloudwatchAlarmAction</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>caaRoleARN</a> - The IAM role that allows access to the
--   CloudWatch alarm.</li>
--   <li><a>caaAlarmName</a> - The CloudWatch alarm name.</li>
--   <li><a>caaStateReason</a> - The reason for the alarm change.</li>
--   <li><a>caaStateValue</a> - The value of the alarm state. Acceptable
--   values are: OK, ALARM, INSUFFICIENT_DATA.</li>
--   </ul>
cloudwatchAlarmAction :: Text -> Text -> Text -> Text -> CloudwatchAlarmAction

-- | The IAM role that allows access to the CloudWatch alarm.
caaRoleARN :: Lens' CloudwatchAlarmAction Text

-- | The CloudWatch alarm name.
caaAlarmName :: Lens' CloudwatchAlarmAction Text

-- | The reason for the alarm change.
caaStateReason :: Lens' CloudwatchAlarmAction Text

-- | The value of the alarm state. Acceptable values are: OK, ALARM,
--   INSUFFICIENT_DATA.
caaStateValue :: Lens' CloudwatchAlarmAction Text

-- | Describes an action that captures a CloudWatch metric.
--   
--   <i>See:</i> <a>cloudwatchMetricAction</a> smart constructor.
data CloudwatchMetricAction

-- | Creates a value of <a>CloudwatchMetricAction</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>cmaMetricTimestamp</a> - An optional <a>Unix timestamp</a>
--   .</li>
--   <li><a>cmaRoleARN</a> - The IAM role that allows access to the
--   CloudWatch metric.</li>
--   <li><a>cmaMetricNamespace</a> - The CloudWatch metric namespace
--   name.</li>
--   <li><a>cmaMetricName</a> - The CloudWatch metric name.</li>
--   <li><a>cmaMetricValue</a> - The CloudWatch metric value.</li>
--   <li><a>cmaMetricUnit</a> - The <a>metric unit</a> supported by
--   CloudWatch.</li>
--   </ul>
cloudwatchMetricAction :: Text -> Text -> Text -> Text -> Text -> CloudwatchMetricAction

-- | An optional <a>Unix timestamp</a> .
cmaMetricTimestamp :: Lens' CloudwatchMetricAction (Maybe Text)

-- | The IAM role that allows access to the CloudWatch metric.
cmaRoleARN :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric namespace name.
cmaMetricNamespace :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric name.
cmaMetricName :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric value.
cmaMetricValue :: Lens' CloudwatchMetricAction Text

-- | The <a>metric unit</a> supported by CloudWatch.
cmaMetricUnit :: Lens' CloudwatchMetricAction Text

-- | Describes an action to write to a DynamoDB table.
--   
--   The <tt>tableName</tt> , <tt>hashKeyField</tt> , and
--   <tt>rangeKeyField</tt> values must match the values used when you
--   created the table.
--   
--   The <tt>hashKeyValue</tt> and <tt>rangeKeyvalue</tt> fields use a
--   substitution template syntax. These templates provide data at runtime.
--   The syntax is as follows: ${<i>sql-expression</i> }.
--   
--   You can specify any valid expression in a WHERE or SELECT clause,
--   including JSON properties, comparisons, calculations, and functions.
--   For example, the following field uses the third level of the topic:
--   
--   <pre>
--   "hashKeyValue": "${topic(3)}"
--   </pre>
--   
--   The following field uses the timestamp:
--   
--   <pre>
--   "rangeKeyValue": "${timestamp()}"
--   </pre>
--   
--   <i>See:</i> <a>dynamoDBAction</a> smart constructor.
data DynamoDBAction

-- | Creates a value of <a>DynamoDBAction</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>ddbaHashKeyType</a> - The hash key type. Valid values are
--   <a>STRING</a> or <a>NUMBER</a></li>
--   <li><a>ddbaOperation</a> - The type of operation to be performed. This
--   follows the substitution template, so it can be <tt>&gt;
--   {operation}</tt> , but the substitution must result in one of the
--   following: <tt>INSERT</tt> , <tt>UPDATE</tt> , or <tt>DELETE</tt>
--   .</li>
--   <li><a>ddbaRangeKeyType</a> - The range key type. Valid values are
--   <a>STRING</a> or <a>NUMBER</a></li>
--   <li><a>ddbaPayloadField</a> - The action payload. This name can be
--   customized.</li>
--   <li><a>ddbaRangeKeyField</a> - The range key name.</li>
--   <li><a>ddbaRangeKeyValue</a> - The range key value.</li>
--   <li><a>ddbaTableName</a> - The name of the DynamoDB table.</li>
--   <li><a>ddbaRoleARN</a> - The ARN of the IAM role that grants access to
--   the DynamoDB table.</li>
--   <li><a>ddbaHashKeyField</a> - The hash key name.</li>
--   <li><a>ddbaHashKeyValue</a> - The hash key value.</li>
--   </ul>
dynamoDBAction :: Text -> Text -> Text -> Text -> DynamoDBAction

-- | The hash key type. Valid values are <a>STRING</a> or <a>NUMBER</a>
ddbaHashKeyType :: Lens' DynamoDBAction (Maybe DynamoKeyType)

-- | The type of operation to be performed. This follows the substitution
--   template, so it can be <tt>&gt; {operation}</tt> , but the
--   substitution must result in one of the following: <tt>INSERT</tt> ,
--   <tt>UPDATE</tt> , or <tt>DELETE</tt> .
ddbaOperation :: Lens' DynamoDBAction (Maybe Text)

-- | The range key type. Valid values are <a>STRING</a> or <a>NUMBER</a>
ddbaRangeKeyType :: Lens' DynamoDBAction (Maybe DynamoKeyType)

-- | The action payload. This name can be customized.
ddbaPayloadField :: Lens' DynamoDBAction (Maybe Text)

-- | The range key name.
ddbaRangeKeyField :: Lens' DynamoDBAction (Maybe Text)

-- | The range key value.
ddbaRangeKeyValue :: Lens' DynamoDBAction (Maybe Text)

-- | The name of the DynamoDB table.
ddbaTableName :: Lens' DynamoDBAction Text

-- | The ARN of the IAM role that grants access to the DynamoDB table.
ddbaRoleARN :: Lens' DynamoDBAction Text

-- | The hash key name.
ddbaHashKeyField :: Lens' DynamoDBAction Text

-- | The hash key value.
ddbaHashKeyValue :: Lens' DynamoDBAction Text

-- | Describes an action to write to a DynamoDB table.
--   
--   This DynamoDB action writes each attribute in the message payload into
--   it's own column in the DynamoDB table.
--   
--   <i>See:</i> <a>dynamoDBv2Action</a> smart constructor.
data DynamoDBv2Action

-- | Creates a value of <a>DynamoDBv2Action</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>ddaPutItem</a> - Specifies the DynamoDB table to which the
--   message data will be written. For example: <tt>{ "dynamoDBv2": {
--   "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
--   "my-table" } } }</tt> Each attribute in the message payload will be
--   written to a separate column in the DynamoDB database.</li>
--   <li><a>ddaRoleARN</a> - The ARN of the IAM role that grants access to
--   the DynamoDB table.</li>
--   </ul>
dynamoDBv2Action :: DynamoDBv2Action

-- | Specifies the DynamoDB table to which the message data will be
--   written. For example: <tt>{ "dynamoDBv2": { "roleArn":
--   "aws:iam:12341251:my-role" "putItem": { "tableName": "my-table" } }
--   }</tt> Each attribute in the message payload will be written to a
--   separate column in the DynamoDB database.
ddaPutItem :: Lens' DynamoDBv2Action (Maybe PutItemInput)

-- | The ARN of the IAM role that grants access to the DynamoDB table.
ddaRoleARN :: Lens' DynamoDBv2Action (Maybe Text)

-- | Describes an action that writes data to an Amazon Elasticsearch
--   Service domain.
--   
--   <i>See:</i> <a>elasticsearchAction</a> smart constructor.
data ElasticsearchAction

-- | Creates a value of <a>ElasticsearchAction</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>eaRoleARN</a> - The IAM role ARN that has access to
--   Elasticsearch.</li>
--   <li><a>eaEndpoint</a> - The endpoint of your Elasticsearch
--   domain.</li>
--   <li><a>eaIndex</a> - The Elasticsearch index where you want to store
--   your data.</li>
--   <li><a>eaType</a> - The type of document you are storing.</li>
--   <li><a>eaId</a> - The unique identifier for the document you are
--   storing.</li>
--   </ul>
elasticsearchAction :: Text -> Text -> Text -> Text -> Text -> ElasticsearchAction

-- | The IAM role ARN that has access to Elasticsearch.
eaRoleARN :: Lens' ElasticsearchAction Text

-- | The endpoint of your Elasticsearch domain.
eaEndpoint :: Lens' ElasticsearchAction Text

-- | The Elasticsearch index where you want to store your data.
eaIndex :: Lens' ElasticsearchAction Text

-- | The type of document you are storing.
eaType :: Lens' ElasticsearchAction Text

-- | The unique identifier for the document you are storing.
eaId :: Lens' ElasticsearchAction Text

-- | Describes an action that writes data to an Amazon Kinesis Firehose
--   stream.
--   
--   <i>See:</i> <a>firehoseAction</a> smart constructor.
data FirehoseAction

-- | Creates a value of <a>FirehoseAction</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>faSeparator</a> - A character separator that will be used to
--   separate records written to the Firehose stream. Valid values are:
--   '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ','
--   (comma).</li>
--   <li><a>faRoleARN</a> - The IAM role that grants access to the Amazon
--   Kinesis Firehost stream.</li>
--   <li><a>faDeliveryStreamName</a> - The delivery stream name.</li>
--   </ul>
firehoseAction :: Text -> Text -> FirehoseAction

-- | A character separator that will be used to separate records written to
--   the Firehose stream. Valid values are: '\n' (newline), '\t' (tab),
--   '\r\n' (Windows newline), ',' (comma).
faSeparator :: Lens' FirehoseAction (Maybe Text)

-- | The IAM role that grants access to the Amazon Kinesis Firehost stream.
faRoleARN :: Lens' FirehoseAction Text

-- | The delivery stream name.
faDeliveryStreamName :: Lens' FirehoseAction Text

-- | Describes a key pair.
--   
--   <i>See:</i> <a>keyPair</a> smart constructor.
data KeyPair

-- | Creates a value of <a>KeyPair</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>kpPrivateKey</a> - The private key.</li>
--   <li><a>kpPublicKey</a> - The public key.</li>
--   </ul>
keyPair :: KeyPair

-- | The private key.
kpPrivateKey :: Lens' KeyPair (Maybe Text)

-- | The public key.
kpPublicKey :: Lens' KeyPair (Maybe Text)

-- | Describes an action to write data to an Amazon Kinesis stream.
--   
--   <i>See:</i> <a>kinesisAction</a> smart constructor.
data KinesisAction

-- | Creates a value of <a>KinesisAction</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>kaPartitionKey</a> - The partition key.</li>
--   <li><a>kaRoleARN</a> - The ARN of the IAM role that grants access to
--   the Amazon Kinesis stream.</li>
--   <li><a>kaStreamName</a> - The name of the Amazon Kinesis stream.</li>
--   </ul>
kinesisAction :: Text -> Text -> KinesisAction

-- | The partition key.
kaPartitionKey :: Lens' KinesisAction (Maybe Text)

-- | The ARN of the IAM role that grants access to the Amazon Kinesis
--   stream.
kaRoleARN :: Lens' KinesisAction Text

-- | The name of the Amazon Kinesis stream.
kaStreamName :: Lens' KinesisAction Text

-- | Describes an action to invoke a Lambda function.
--   
--   <i>See:</i> <a>lambdaAction</a> smart constructor.
data LambdaAction

-- | Creates a value of <a>LambdaAction</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>laFunctionARN</a> - The ARN of the Lambda function.</li>
--   </ul>
lambdaAction :: Text -> LambdaAction

-- | The ARN of the Lambda function.
laFunctionARN :: Lens' LambdaAction Text

-- | Describes the logging options payload.
--   
--   <i>See:</i> <a>loggingOptionsPayload</a> smart constructor.
data LoggingOptionsPayload

-- | Creates a value of <a>LoggingOptionsPayload</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>lopLogLevel</a> - The logging level.</li>
--   <li><a>lopRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   </ul>
loggingOptionsPayload :: Text -> LoggingOptionsPayload

-- | The logging level.
lopLogLevel :: Lens' LoggingOptionsPayload (Maybe LogLevel)

-- | The ARN of the IAM role that grants access.
lopRoleARN :: Lens' LoggingOptionsPayload Text

-- | A certificate that has been transfered but not yet accepted.
--   
--   <i>See:</i> <a>outgoingCertificate</a> smart constructor.
data OutgoingCertificate

-- | Creates a value of <a>OutgoingCertificate</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>ocTransferDate</a> - The date the transfer was initiated.</li>
--   <li><a>ocCertificateARN</a> - The certificate ARN.</li>
--   <li><a>ocCertificateId</a> - The certificate ID.</li>
--   <li><a>ocTransferredTo</a> - The AWS account to which the transfer was
--   made.</li>
--   <li><a>ocCreationDate</a> - The certificate creation date.</li>
--   <li><a>ocTransferMessage</a> - The transfer message.</li>
--   </ul>
outgoingCertificate :: OutgoingCertificate

-- | The date the transfer was initiated.
ocTransferDate :: Lens' OutgoingCertificate (Maybe UTCTime)

-- | The certificate ARN.
ocCertificateARN :: Lens' OutgoingCertificate (Maybe Text)

-- | The certificate ID.
ocCertificateId :: Lens' OutgoingCertificate (Maybe Text)

-- | The AWS account to which the transfer was made.
ocTransferredTo :: Lens' OutgoingCertificate (Maybe Text)

-- | The certificate creation date.
ocCreationDate :: Lens' OutgoingCertificate (Maybe UTCTime)

-- | The transfer message.
ocTransferMessage :: Lens' OutgoingCertificate (Maybe Text)

-- | Describes an AWS IoT policy.
--   
--   <i>See:</i> <a>policy</a> smart constructor.
data Policy

-- | Creates a value of <a>Policy</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>pPolicyName</a> - The policy name.</li>
--   <li><a>pPolicyARN</a> - The policy ARN.</li>
--   </ul>
policy :: Policy

-- | The policy name.
pPolicyName :: Lens' Policy (Maybe Text)

-- | The policy ARN.
pPolicyARN :: Lens' Policy (Maybe Text)

-- | Describes a policy version.
--   
--   <i>See:</i> <a>policyVersion</a> smart constructor.
data PolicyVersion

-- | Creates a value of <a>PolicyVersion</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>pvVersionId</a> - The policy version ID.</li>
--   <li><a>pvCreateDate</a> - The date and time the policy was
--   created.</li>
--   <li><a>pvIsDefaultVersion</a> - Specifies whether the policy version
--   is the default.</li>
--   </ul>
policyVersion :: PolicyVersion

-- | The policy version ID.
pvVersionId :: Lens' PolicyVersion (Maybe Text)

-- | The date and time the policy was created.
pvCreateDate :: Lens' PolicyVersion (Maybe UTCTime)

-- | Specifies whether the policy version is the default.
pvIsDefaultVersion :: Lens' PolicyVersion (Maybe Bool)

-- | The input for the DynamoActionVS action that specifies the DynamoDB
--   table to which the message data will be written.
--   
--   <i>See:</i> <a>putItemInput</a> smart constructor.
data PutItemInput

-- | Creates a value of <a>PutItemInput</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>piiTableName</a> - The table where the message data will be
--   written</li>
--   </ul>
putItemInput :: Text -> PutItemInput

-- | The table where the message data will be written
piiTableName :: Lens' PutItemInput Text

-- | Describes an action to republish to another topic.
--   
--   <i>See:</i> <a>republishAction</a> smart constructor.
data RepublishAction

-- | Creates a value of <a>RepublishAction</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>raRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   <li><a>raTopic</a> - The name of the MQTT topic.</li>
--   </ul>
republishAction :: Text -> Text -> RepublishAction

-- | The ARN of the IAM role that grants access.
raRoleARN :: Lens' RepublishAction Text

-- | The name of the MQTT topic.
raTopic :: Lens' RepublishAction Text

-- | Describes an action to write data to an Amazon S3 bucket.
--   
--   <i>See:</i> <a>s3Action</a> smart constructor.
data S3Action

-- | Creates a value of <a>S3Action</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>sCannedACL</a> - The Amazon S3 canned ACL that controls access
--   to the object identified by the object key. For more information, see
--   <a>S3 canned ACLs</a> .</li>
--   <li><a>sRoleARN</a> - The ARN of the IAM role that grants access.</li>
--   <li><a>sBucketName</a> - The Amazon S3 bucket.</li>
--   <li><a>sKey</a> - The object key.</li>
--   </ul>
s3Action :: Text -> Text -> Text -> S3Action

-- | The Amazon S3 canned ACL that controls access to the object identified
--   by the object key. For more information, see <a>S3 canned ACLs</a> .
sCannedACL :: Lens' S3Action (Maybe CannedAccessControlList)

-- | The ARN of the IAM role that grants access.
sRoleARN :: Lens' S3Action Text

-- | The Amazon S3 bucket.
sBucketName :: Lens' S3Action Text

-- | The object key.
sKey :: Lens' S3Action Text

-- | Describes an action to publish to an Amazon SNS topic.
--   
--   <i>See:</i> <a>snsAction</a> smart constructor.
data SNSAction

-- | Creates a value of <a>SNSAction</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>snsaMessageFormat</a> - The message format of the message to
--   publish. Optional. Accepted values are <a>JSON</a> and <a>RAW</a>. The
--   default value of the attribute is <a>RAW</a>. SNS uses this setting to
--   determine if the payload should be parsed and relevant
--   platform-specific bits of the payload should be extracted. To read
--   more about SNS message formats, see
--   <a>http://docs.aws.amazon.com/sns/latest/dg/json-formats.html</a>
--   refer to their official documentation.</li>
--   <li><a>snsaTargetARN</a> - The ARN of the SNS topic.</li>
--   <li><a>snsaRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   </ul>
snsAction :: Text -> Text -> SNSAction

-- | The message format of the message to publish. Optional. Accepted
--   values are <a>JSON</a> and <a>RAW</a>. The default value of the
--   attribute is <a>RAW</a>. SNS uses this setting to determine if the
--   payload should be parsed and relevant platform-specific bits of the
--   payload should be extracted. To read more about SNS message formats,
--   see <a>http://docs.aws.amazon.com/sns/latest/dg/json-formats.html</a>
--   refer to their official documentation.
snsaMessageFormat :: Lens' SNSAction (Maybe MessageFormat)

-- | The ARN of the SNS topic.
snsaTargetARN :: Lens' SNSAction Text

-- | The ARN of the IAM role that grants access.
snsaRoleARN :: Lens' SNSAction Text

-- | Describes an action to publish data to an Amazon SQS queue.
--   
--   <i>See:</i> <a>sqsAction</a> smart constructor.
data SqsAction

-- | Creates a value of <a>SqsAction</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>saUseBase64</a> - Specifies whether to use Base64
--   encoding.</li>
--   <li><a>saRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   <li><a>saQueueURL</a> - The URL of the Amazon SQS queue.</li>
--   </ul>
sqsAction :: Text -> Text -> SqsAction

-- | Specifies whether to use Base64 encoding.
saUseBase64 :: Lens' SqsAction (Maybe Bool)

-- | The ARN of the IAM role that grants access.
saRoleARN :: Lens' SqsAction Text

-- | The URL of the Amazon SQS queue.
saQueueURL :: Lens' SqsAction Text

-- | The properties of the thing, including thing name, thing type name,
--   and a list of thing attributes.
--   
--   <i>See:</i> <a>thingAttribute</a> smart constructor.
data ThingAttribute

-- | Creates a value of <a>ThingAttribute</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>taThingTypeName</a> - The name of the thing type, if the thing
--   has been associated with a type.</li>
--   <li><a>taAttributes</a> - A list of thing attributes which are
--   name-value pairs.</li>
--   <li><a>taVersion</a> - The version of the thing record in the
--   registry.</li>
--   <li><a>taThingName</a> - The name of the thing.</li>
--   </ul>
thingAttribute :: ThingAttribute

-- | The name of the thing type, if the thing has been associated with a
--   type.
taThingTypeName :: Lens' ThingAttribute (Maybe Text)

-- | A list of thing attributes which are name-value pairs.
taAttributes :: Lens' ThingAttribute (HashMap Text Text)

-- | The version of the thing record in the registry.
taVersion :: Lens' ThingAttribute (Maybe Integer)

-- | The name of the thing.
taThingName :: Lens' ThingAttribute (Maybe Text)

-- | The definition of the thing type, including thing type name and
--   description.
--   
--   <i>See:</i> <a>thingTypeDefinition</a> smart constructor.
data ThingTypeDefinition

-- | Creates a value of <a>ThingTypeDefinition</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>ttdThingTypeProperties</a> - The ThingTypeProperties for the
--   thing type.</li>
--   <li><a>ttdThingTypeName</a> - The name of the thing type.</li>
--   <li><a>ttdThingTypeMetadata</a> - Undocumented member.</li>
--   </ul>
thingTypeDefinition :: ThingTypeDefinition

-- | The ThingTypeProperties for the thing type.
ttdThingTypeProperties :: Lens' ThingTypeDefinition (Maybe ThingTypeProperties)

-- | The name of the thing type.
ttdThingTypeName :: Lens' ThingTypeDefinition (Maybe Text)

-- | Undocumented member.
ttdThingTypeMetadata :: Lens' ThingTypeDefinition (Maybe ThingTypeMetadata)

-- | The ThingTypeMetadata contains additional information about the thing
--   type including: creation date and time, a value indicating whether the
--   thing type is deprecated, and a date and time when time was
--   deprecated.
--   
--   <i>See:</i> <a>thingTypeMetadata</a> smart constructor.
data ThingTypeMetadata

-- | Creates a value of <a>ThingTypeMetadata</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>ttmDeprecationDate</a> - The date and time when the thing type
--   was deprecated.</li>
--   <li><a>ttmCreationDate</a> - The date and time when the thing type was
--   created.</li>
--   <li><a>ttmDeprecated</a> - Whether the thing type is deprecated. If
--   <b>true</b> , no new things could be associated with this type.</li>
--   </ul>
thingTypeMetadata :: ThingTypeMetadata

-- | The date and time when the thing type was deprecated.
ttmDeprecationDate :: Lens' ThingTypeMetadata (Maybe UTCTime)

-- | The date and time when the thing type was created.
ttmCreationDate :: Lens' ThingTypeMetadata (Maybe UTCTime)

-- | Whether the thing type is deprecated. If <b>true</b> , no new things
--   could be associated with this type.
ttmDeprecated :: Lens' ThingTypeMetadata (Maybe Bool)

-- | The ThingTypeProperties contains information about the thing type
--   including: a thing type description, and a list of searchable thing
--   attribute names.
--   
--   <i>See:</i> <a>thingTypeProperties</a> smart constructor.
data ThingTypeProperties

-- | Creates a value of <a>ThingTypeProperties</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>ttpSearchableAttributes</a> - A list of searchable thing
--   attribute names.</li>
--   <li><a>ttpThingTypeDescription</a> - The description of the thing
--   type.</li>
--   </ul>
thingTypeProperties :: ThingTypeProperties

-- | A list of searchable thing attribute names.
ttpSearchableAttributes :: Lens' ThingTypeProperties [Text]

-- | The description of the thing type.
ttpThingTypeDescription :: Lens' ThingTypeProperties (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRule</a> smart constructor.
data TopicRule

-- | Creates a value of <a>TopicRule</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>trCreatedAt</a> - The date and time the rule was created.</li>
--   <li><a>trActions</a> - The actions associated with the rule.</li>
--   <li><a>trAwsIotSqlVersion</a> - The version of the SQL rules engine to
--   use when evaluating the rule.</li>
--   <li><a>trRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trRuleName</a> - The name of the rule.</li>
--   <li><a>trSql</a> - The SQL statement used to query the topic. When
--   using a SQL query with multiple lines, be sure to escape the newline
--   characters.</li>
--   <li><a>trDescription</a> - The description of the rule.</li>
--   </ul>
topicRule :: TopicRule

-- | The date and time the rule was created.
trCreatedAt :: Lens' TopicRule (Maybe UTCTime)

-- | The actions associated with the rule.
trActions :: Lens' TopicRule [Action]

-- | The version of the SQL rules engine to use when evaluating the rule.
trAwsIotSqlVersion :: Lens' TopicRule (Maybe Text)

-- | Specifies whether the rule is disabled.
trRuleDisabled :: Lens' TopicRule (Maybe Bool)

-- | The name of the rule.
trRuleName :: Lens' TopicRule (Maybe Text)

-- | The SQL statement used to query the topic. When using a SQL query with
--   multiple lines, be sure to escape the newline characters.
trSql :: Lens' TopicRule (Maybe Text)

-- | The description of the rule.
trDescription :: Lens' TopicRule (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRuleListItem</a> smart constructor.
data TopicRuleListItem

-- | Creates a value of <a>TopicRuleListItem</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>trliCreatedAt</a> - The date and time the rule was
--   created.</li>
--   <li><a>trliRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trliRuleName</a> - The name of the rule.</li>
--   <li><a>trliRuleARN</a> - The rule ARN.</li>
--   <li><a>trliTopicPattern</a> - The pattern for the topic names that
--   apply.</li>
--   </ul>
topicRuleListItem :: TopicRuleListItem

-- | The date and time the rule was created.
trliCreatedAt :: Lens' TopicRuleListItem (Maybe UTCTime)

-- | Specifies whether the rule is disabled.
trliRuleDisabled :: Lens' TopicRuleListItem (Maybe Bool)

-- | The name of the rule.
trliRuleName :: Lens' TopicRuleListItem (Maybe Text)

-- | The rule ARN.
trliRuleARN :: Lens' TopicRuleListItem (Maybe Text)

-- | The pattern for the topic names that apply.
trliTopicPattern :: Lens' TopicRuleListItem (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRulePayload</a> smart constructor.
data TopicRulePayload

-- | Creates a value of <a>TopicRulePayload</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>trpAwsIotSqlVersion</a> - The version of the SQL rules engine
--   to use when evaluating the rule.</li>
--   <li><a>trpRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trpDescription</a> - The description of the rule.</li>
--   <li><a>trpSql</a> - The SQL statement used to query the topic. For
--   more information, see <a>AWS IoT SQL Reference</a> in the <i>AWS IoT
--   Developer Guide</i> .</li>
--   <li><a>trpActions</a> - The actions associated with the rule.</li>
--   </ul>
topicRulePayload :: Text -> TopicRulePayload

-- | The version of the SQL rules engine to use when evaluating the rule.
trpAwsIotSqlVersion :: Lens' TopicRulePayload (Maybe Text)

-- | Specifies whether the rule is disabled.
trpRuleDisabled :: Lens' TopicRulePayload (Maybe Bool)

-- | The description of the rule.
trpDescription :: Lens' TopicRulePayload (Maybe Text)

-- | The SQL statement used to query the topic. For more information, see
--   <a>AWS IoT SQL Reference</a> in the <i>AWS IoT Developer Guide</i> .
trpSql :: Lens' TopicRulePayload Text

-- | The actions associated with the rule.
trpActions :: Lens' TopicRulePayload [Action]

-- | Data used to transfer a certificate to an AWS account.
--   
--   <i>See:</i> <a>transferData</a> smart constructor.
data TransferData

-- | Creates a value of <a>TransferData</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>tdTransferDate</a> - The date the transfer took place.</li>
--   <li><a>tdAcceptDate</a> - The date the transfer was accepted.</li>
--   <li><a>tdTransferMessage</a> - The transfer message.</li>
--   <li><a>tdRejectDate</a> - The date the transfer was rejected.</li>
--   <li><a>tdRejectReason</a> - The reason why the transfer was
--   rejected.</li>
--   </ul>
transferData :: TransferData

-- | The date the transfer took place.
tdTransferDate :: Lens' TransferData (Maybe UTCTime)

-- | The date the transfer was accepted.
tdAcceptDate :: Lens' TransferData (Maybe UTCTime)

-- | The transfer message.
tdTransferMessage :: Lens' TransferData (Maybe Text)

-- | The date the transfer was rejected.
tdRejectDate :: Lens' TransferData (Maybe UTCTime)

-- | The reason why the transfer was rejected.
tdRejectReason :: Lens' TransferData (Maybe Text)


-- | Updates a registered CA certificate.
module Network.AWS.IoT.UpdateCACertificate

-- | Creates a value of <a>UpdateCACertificate</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>ucacNewStatus</a> - The updated status of the CA certificate.
--   <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and
--   should not be used.</li>
--   <li><a>ucacNewAutoRegistrationStatus</a> - The new value for the auto
--   registration status. Valid values are: <a>ENABLE</a> or
--   <a>DISABLE</a>.</li>
--   <li><a>ucacCertificateId</a> - The CA certificate identifier.</li>
--   </ul>
updateCACertificate :: Text -> UpdateCACertificate

-- | The input to the UpdateCACertificate operation.
--   
--   <i>See:</i> <a>updateCACertificate</a> smart constructor.
data UpdateCACertificate

-- | The updated status of the CA certificate. <b>Note:</b> The status
--   value REGISTER_INACTIVE is deprecated and should not be used.
ucacNewStatus :: Lens' UpdateCACertificate (Maybe CACertificateStatus)

-- | The new value for the auto registration status. Valid values are:
--   <a>ENABLE</a> or <a>DISABLE</a>.
ucacNewAutoRegistrationStatus :: Lens' UpdateCACertificate (Maybe AutoRegistrationStatus)

-- | The CA certificate identifier.
ucacCertificateId :: Lens' UpdateCACertificate Text

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

-- | <i>See:</i> <a>updateCACertificateResponse</a> smart constructor.
data UpdateCACertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
instance Data.Data.Data Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
instance GHC.Show.Show Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
instance GHC.Read.Read Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
instance GHC.Classes.Eq Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Data.Data.Data Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance GHC.Show.Show Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance GHC.Read.Read Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance GHC.Classes.Eq Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Data.Hashable.Class.Hashable Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.UpdateCACertificate.UpdateCACertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse


-- | Updates the status of the specified certificate. This operation is
--   idempotent.
--   
--   Moving a certificate from the ACTIVE state (including REVOKED) will
--   not disconnect currently connected devices, but these devices will be
--   unable to reconnect.
--   
--   The ACTIVE state is required to authenticate devices connecting to AWS
--   IoT using a certificate.
module Network.AWS.IoT.UpdateCertificate

-- | Creates a value of <a>UpdateCertificate</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>ucCertificateId</a> - The ID of the certificate.</li>
--   <li><a>ucNewStatus</a> - The new status. <b>Note:</b> Setting the
--   status to PENDING_TRANSFER will result in an exception being thrown.
--   PENDING_TRANSFER is a status used internally by AWS IoT. It is not
--   intended for developer use. <b>Note:</b> The status value
--   REGISTER_INACTIVE is deprecated and should not be used.</li>
--   </ul>
updateCertificate :: Text -> CertificateStatus -> UpdateCertificate

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

-- | The ID of the certificate.
ucCertificateId :: Lens' UpdateCertificate Text

-- | The new status. <b>Note:</b> Setting the status to PENDING_TRANSFER
--   will result in an exception being thrown. PENDING_TRANSFER is a status
--   used internally by AWS IoT. It is not intended for developer use.
--   <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and
--   should not be used.
ucNewStatus :: Lens' UpdateCertificate CertificateStatus

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

-- | <i>See:</i> <a>updateCertificateResponse</a> smart constructor.
data UpdateCertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
instance Data.Data.Data Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
instance GHC.Show.Show Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
instance GHC.Read.Read Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
instance GHC.Classes.Eq Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Data.Data.Data Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance GHC.Show.Show Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance GHC.Read.Read Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance GHC.Classes.Eq Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Data.Hashable.Class.Hashable Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.UpdateCertificate.UpdateCertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse


-- | Updates the data for a thing.
module Network.AWS.IoT.UpdateThing

-- | Creates a value of <a>UpdateThing</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>utRemoveThingType</a> - Remove a thing type association. If
--   <b>true</b> , the assocation is removed.</li>
--   <li><a>utThingTypeName</a> - The name of the thing type.</li>
--   <li><a>utExpectedVersion</a> - The expected version of the thing
--   record in the registry. If the version of the record in the registry
--   does not match the expected version specified in the request, the
--   <tt>UpdateThing</tt> request is rejected with a
--   <tt>VersionConflictException</tt> .</li>
--   <li><a>utAttributePayload</a> - A list of thing attributes, a JSON
--   string containing name-value pairs. For example:
--   <tt>{"attributes":{"name1":"value2"}})</tt> This data is used to add
--   new attributes or update existing attributes.</li>
--   <li><a>utThingName</a> - The name of the thing to update.</li>
--   </ul>
updateThing :: Text -> UpdateThing

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

-- | Remove a thing type association. If <b>true</b> , the assocation is
--   removed.
utRemoveThingType :: Lens' UpdateThing (Maybe Bool)

-- | The name of the thing type.
utThingTypeName :: Lens' UpdateThing (Maybe Text)

-- | The expected version of the thing record in the registry. If the
--   version of the record in the registry does not match the expected
--   version specified in the request, the <tt>UpdateThing</tt> request is
--   rejected with a <tt>VersionConflictException</tt> .
utExpectedVersion :: Lens' UpdateThing (Maybe Integer)

-- | A list of thing attributes, a JSON string containing name-value pairs.
--   For example: <tt>{"attributes":{"name1":"value2"}})</tt> This data is
--   used to add new attributes or update existing attributes.
utAttributePayload :: Lens' UpdateThing (Maybe AttributePayload)

-- | The name of the thing to update.
utThingName :: Lens' UpdateThing Text

-- | Creates a value of <a>UpdateThingResponse</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>utrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateThingResponse :: Int -> UpdateThingResponse

-- | The output from the UpdateThing operation.
--   
--   <i>See:</i> <a>updateThingResponse</a> smart constructor.
data UpdateThingResponse

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


module Network.AWS.IoT.Waiters


-- | Transfers the specified certificate to the specified AWS account.
--   
--   You can cancel the transfer until it is acknowledged by the recipient.
--   
--   No notification is sent to the transfer destination's account. It is
--   up to the caller to notify the transfer target.
--   
--   The certificate being transferred must not be in the ACTIVE state. You
--   can use the UpdateCertificate API to deactivate it.
--   
--   The certificate must not have any policies attached to it. You can use
--   the DetachPrincipalPolicy API to detach them.
module Network.AWS.IoT.TransferCertificate

-- | Creates a value of <a>TransferCertificate</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>tcTransferMessage</a> - The transfer message.</li>
--   <li><a>tcCertificateId</a> - The ID of the certificate.</li>
--   <li><a>tcTargetAWSAccount</a> - The AWS account.</li>
--   </ul>
transferCertificate :: Text -> Text -> TransferCertificate

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

-- | The transfer message.
tcTransferMessage :: Lens' TransferCertificate (Maybe Text)

-- | The ID of the certificate.
tcCertificateId :: Lens' TransferCertificate Text

-- | The AWS account.
tcTargetAWSAccount :: Lens' TransferCertificate Text

-- | Creates a value of <a>TransferCertificateResponse</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>tcrsTransferredCertificateARN</a> - The ARN of the
--   certificate.</li>
--   <li><a>tcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
transferCertificateResponse :: Int -> TransferCertificateResponse

-- | The output from the TransferCertificate operation.
--   
--   <i>See:</i> <a>transferCertificateResponse</a> smart constructor.
data TransferCertificateResponse

-- | The ARN of the certificate.
tcrsTransferredCertificateARN :: Lens' TransferCertificateResponse (Maybe Text)

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


-- | Sets the logging options.
module Network.AWS.IoT.SetLoggingOptions

-- | Creates a value of <a>SetLoggingOptions</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>sloLoggingOptionsPayload</a> - The logging options
--   payload.</li>
--   </ul>
setLoggingOptions :: LoggingOptionsPayload -> SetLoggingOptions

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

-- | The logging options payload.
sloLoggingOptionsPayload :: Lens' SetLoggingOptions LoggingOptionsPayload

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

-- | <i>See:</i> <a>setLoggingOptionsResponse</a> smart constructor.
data SetLoggingOptionsResponse
instance GHC.Generics.Generic Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
instance Data.Data.Data Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
instance GHC.Show.Show Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
instance GHC.Read.Read Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
instance GHC.Classes.Eq Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
instance GHC.Generics.Generic Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Data.Data.Data Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance GHC.Show.Show Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance GHC.Read.Read Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance GHC.Classes.Eq Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Data.Hashable.Class.Hashable Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Control.DeepSeq.NFData Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.SetLoggingOptions.SetLoggingOptions
instance Control.DeepSeq.NFData Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse


-- | Sets the specified version of the specified policy as the policy's
--   default (operative) version. This action affects all certificates to
--   which the policy is attached. To list the principals the policy is
--   attached to, use the ListPrincipalPolicy API.
module Network.AWS.IoT.SetDefaultPolicyVersion

-- | Creates a value of <a>SetDefaultPolicyVersion</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>sdpvPolicyName</a> - The policy name.</li>
--   <li><a>sdpvPolicyVersionId</a> - The policy version ID.</li>
--   </ul>
setDefaultPolicyVersion :: Text -> Text -> SetDefaultPolicyVersion

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

-- | The policy name.
sdpvPolicyName :: Lens' SetDefaultPolicyVersion Text

-- | The policy version ID.
sdpvPolicyVersionId :: Lens' SetDefaultPolicyVersion Text

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

-- | <i>See:</i> <a>setDefaultPolicyVersionResponse</a> smart constructor.
data SetDefaultPolicyVersionResponse
instance GHC.Generics.Generic Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
instance Data.Data.Data Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
instance GHC.Show.Show Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
instance GHC.Read.Read Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
instance GHC.Classes.Eq Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
instance GHC.Generics.Generic Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Data.Data.Data Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance GHC.Show.Show Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance GHC.Read.Read Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance GHC.Classes.Eq Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Data.Hashable.Class.Hashable Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Control.DeepSeq.NFData Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersion
instance Control.DeepSeq.NFData Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse


-- | Replaces the specified rule. You must specify all parameters for the
--   new rule. Creating rules is an administrator-level action. Any user
--   who has permission to create rules will be able to access data
--   processed by the rule.
module Network.AWS.IoT.ReplaceTopicRule

-- | Creates a value of <a>ReplaceTopicRule</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>rtrRuleName</a> - The name of the rule.</li>
--   <li><a>rtrTopicRulePayload</a> - The rule payload.</li>
--   </ul>
replaceTopicRule :: Text -> TopicRulePayload -> ReplaceTopicRule

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

-- | The name of the rule.
rtrRuleName :: Lens' ReplaceTopicRule Text

-- | The rule payload.
rtrTopicRulePayload :: Lens' ReplaceTopicRule TopicRulePayload

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

-- | <i>See:</i> <a>replaceTopicRuleResponse</a> smart constructor.
data ReplaceTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
instance Data.Data.Data Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
instance GHC.Show.Show Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
instance GHC.Read.Read Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
instance GHC.Classes.Eq Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Data.Data.Data Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance GHC.Show.Show Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance GHC.Read.Read Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance GHC.Classes.Eq Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Data.Hashable.Class.Hashable Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse


-- | Rejects a pending certificate transfer. After AWS IoT rejects a
--   certificate transfer, the certificate status changes from
--   <b>PENDING_TRANSFER</b> to <b>INACTIVE</b> .
--   
--   To check for pending certificate transfers, call
--   <tt>ListCertificates</tt> to enumerate your certificates.
--   
--   This operation can only be called by the transfer destination. After
--   it is called, the certificate will be returned to the source's account
--   in the INACTIVE state.
module Network.AWS.IoT.RejectCertificateTransfer

-- | Creates a value of <a>RejectCertificateTransfer</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>rctRejectReason</a> - The reason the certificate transfer was
--   rejected.</li>
--   <li><a>rctCertificateId</a> - The ID of the certificate.</li>
--   </ul>
rejectCertificateTransfer :: Text -> RejectCertificateTransfer

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

-- | The reason the certificate transfer was rejected.
rctRejectReason :: Lens' RejectCertificateTransfer (Maybe Text)

-- | The ID of the certificate.
rctCertificateId :: Lens' RejectCertificateTransfer Text

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

-- | <i>See:</i> <a>rejectCertificateTransferResponse</a> smart
--   constructor.
data RejectCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
instance Data.Data.Data Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
instance GHC.Show.Show Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
instance GHC.Read.Read Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
instance GHC.Classes.Eq Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Data.Data.Data Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance GHC.Show.Show Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance GHC.Read.Read Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance GHC.Classes.Eq Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Data.Hashable.Class.Hashable Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse


-- | Registers a device certificate with AWS IoT. If you have more than one
--   CA certificate that has the same subject field, you must specify the
--   CA certificate that was used to sign the device certificate being
--   registered.
module Network.AWS.IoT.RegisterCertificate

-- | Creates a value of <a>RegisterCertificate</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>rcStatus</a> - Undocumented member.</li>
--   <li><a>rcCaCertificatePem</a> - The CA certificate used to sign the
--   device certificate being registered.</li>
--   <li><a>rcSetAsActive</a> - A boolean value that specifies if the CA
--   certificate is set to active.</li>
--   <li><a>rcCertificatePem</a> - The certificate data, in PEM
--   format.</li>
--   </ul>
registerCertificate :: Text -> RegisterCertificate

-- | The input to the RegisterCertificate operation.
--   
--   <i>See:</i> <a>registerCertificate</a> smart constructor.
data RegisterCertificate

-- | Undocumented member.
rcStatus :: Lens' RegisterCertificate (Maybe CertificateStatus)

-- | The CA certificate used to sign the device certificate being
--   registered.
rcCaCertificatePem :: Lens' RegisterCertificate (Maybe Text)

-- | A boolean value that specifies if the CA certificate is set to active.
rcSetAsActive :: Lens' RegisterCertificate (Maybe Bool)

-- | The certificate data, in PEM format.
rcCertificatePem :: Lens' RegisterCertificate Text

-- | Creates a value of <a>RegisterCertificateResponse</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>rcrsCertificateARN</a> - The certificate ARN.</li>
--   <li><a>rcrsCertificateId</a> - The certificate identifier.</li>
--   <li><a>rcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerCertificateResponse :: Int -> RegisterCertificateResponse

-- | The output from the RegisterCertificate operation.
--   
--   <i>See:</i> <a>registerCertificateResponse</a> smart constructor.
data RegisterCertificateResponse

-- | The certificate ARN.
rcrsCertificateARN :: Lens' RegisterCertificateResponse (Maybe Text)

-- | The certificate identifier.
rcrsCertificateId :: Lens' RegisterCertificateResponse (Maybe Text)

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


-- | Registers a CA certificate with AWS IoT. This CA certificate can then
--   be used to sign device certificates, which can be then registered with
--   AWS IoT. You can register up to 10 CA certificates per AWS account
--   that have the same subject field and public key. This enables you to
--   have up to 10 certificate authorities sign your device certificates.
--   If you have more than one CA certificate registered, make sure you
--   pass the CA certificate when you register your device certificates
--   with the RegisterCertificate API.
module Network.AWS.IoT.RegisterCACertificate

-- | Creates a value of <a>RegisterCACertificate</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>rcacSetAsActive</a> - A boolean value that specifies if the CA
--   certificate is set to active.</li>
--   <li><a>rcacAllowAutoRegistration</a> - Allows this CA certificate to
--   be used for auto registration of device certificates.</li>
--   <li><a>rcacCaCertificate</a> - The CA certificate.</li>
--   <li><a>rcacVerificationCertificate</a> - The private key verification
--   certificate.</li>
--   </ul>
registerCACertificate :: Text -> Text -> RegisterCACertificate

-- | The input to the RegisterCACertificate operation.
--   
--   <i>See:</i> <a>registerCACertificate</a> smart constructor.
data RegisterCACertificate

-- | A boolean value that specifies if the CA certificate is set to active.
rcacSetAsActive :: Lens' RegisterCACertificate (Maybe Bool)

-- | Allows this CA certificate to be used for auto registration of device
--   certificates.
rcacAllowAutoRegistration :: Lens' RegisterCACertificate (Maybe Bool)

-- | The CA certificate.
rcacCaCertificate :: Lens' RegisterCACertificate Text

-- | The private key verification certificate.
rcacVerificationCertificate :: Lens' RegisterCACertificate Text

-- | Creates a value of <a>RegisterCACertificateResponse</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>rcacrsCertificateARN</a> - The CA certificate ARN.</li>
--   <li><a>rcacrsCertificateId</a> - The CA certificate identifier.</li>
--   <li><a>rcacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerCACertificateResponse :: Int -> RegisterCACertificateResponse

-- | The output from the RegisterCACertificateResponse operation.
--   
--   <i>See:</i> <a>registerCACertificateResponse</a> smart constructor.
data RegisterCACertificateResponse

-- | The CA certificate ARN.
rcacrsCertificateARN :: Lens' RegisterCACertificateResponse (Maybe Text)

-- | The CA certificate identifier.
rcacrsCertificateId :: Lens' RegisterCACertificateResponse (Maybe Text)

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


-- | Lists the rules for the specific topic.
module Network.AWS.IoT.ListTopicRules

-- | Creates a value of <a>ListTopicRules</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>ltrRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>ltrTopic</a> - The topic.</li>
--   <li><a>ltrNextToken</a> - A token used to retrieve the next
--   value.</li>
--   <li><a>ltrMaxResults</a> - The maximum number of results to
--   return.</li>
--   </ul>
listTopicRules :: ListTopicRules

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

-- | Specifies whether the rule is disabled.
ltrRuleDisabled :: Lens' ListTopicRules (Maybe Bool)

-- | The topic.
ltrTopic :: Lens' ListTopicRules (Maybe Text)

-- | A token used to retrieve the next value.
ltrNextToken :: Lens' ListTopicRules (Maybe Text)

-- | The maximum number of results to return.
ltrMaxResults :: Lens' ListTopicRules (Maybe Natural)

-- | Creates a value of <a>ListTopicRulesResponse</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>ltrrsRules</a> - The rules.</li>
--   <li><a>ltrrsNextToken</a> - A token used to retrieve the next
--   value.</li>
--   <li><a>ltrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTopicRulesResponse :: Int -> ListTopicRulesResponse

-- | The output from the ListTopicRules operation.
--   
--   <i>See:</i> <a>listTopicRulesResponse</a> smart constructor.
data ListTopicRulesResponse

-- | The rules.
ltrrsRules :: Lens' ListTopicRulesResponse [TopicRuleListItem]

-- | A token used to retrieve the next value.
ltrrsNextToken :: Lens' ListTopicRulesResponse (Maybe Text)

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


-- | Lists your things. Use the <b>attributeName</b> and
--   <b>attributeValue</b> parameters to filter your things. For example,
--   calling <tt>ListThings</tt> with attributeName=Color and
--   attributeValue=Red retrieves all things in the registry that contain
--   an attribute <b>Color</b> with the value <b>Red</b> .
module Network.AWS.IoT.ListThings

-- | Creates a value of <a>ListThings</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>ltAttributeValue</a> - The attribute value used to search for
--   things.</li>
--   <li><a>ltThingTypeName</a> - The name of the thing type used to search
--   for things.</li>
--   <li><a>ltNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>ltAttributeName</a> - The attribute name used to search for
--   things.</li>
--   <li><a>ltMaxResults</a> - The maximum number of results to return in
--   this operation.</li>
--   </ul>
listThings :: ListThings

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

-- | The attribute value used to search for things.
ltAttributeValue :: Lens' ListThings (Maybe Text)

-- | The name of the thing type used to search for things.
ltThingTypeName :: Lens' ListThings (Maybe Text)

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
ltNextToken :: Lens' ListThings (Maybe Text)

-- | The attribute name used to search for things.
ltAttributeName :: Lens' ListThings (Maybe Text)

-- | The maximum number of results to return in this operation.
ltMaxResults :: Lens' ListThings (Maybe Natural)

-- | Creates a value of <a>ListThingsResponse</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>ltrsNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>ltrsThings</a> - The things.</li>
--   <li><a>ltrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingsResponse :: Int -> ListThingsResponse

-- | The output from the ListThings operation.
--   
--   <i>See:</i> <a>listThingsResponse</a> smart constructor.
data ListThingsResponse

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
ltrsNextToken :: Lens' ListThingsResponse (Maybe Text)

-- | The things.
ltrsThings :: Lens' ListThingsResponse [ThingAttribute]

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


-- | Lists the existing thing types.
module Network.AWS.IoT.ListThingTypes

-- | Creates a value of <a>ListThingTypes</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>lttThingTypeName</a> - The name of the thing type.</li>
--   <li><a>lttNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>lttMaxResults</a> - The maximum number of results to return in
--   this operation.</li>
--   </ul>
listThingTypes :: ListThingTypes

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

-- | The name of the thing type.
lttThingTypeName :: Lens' ListThingTypes (Maybe Text)

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
lttNextToken :: Lens' ListThingTypes (Maybe Text)

-- | The maximum number of results to return in this operation.
lttMaxResults :: Lens' ListThingTypes (Maybe Natural)

-- | Creates a value of <a>ListThingTypesResponse</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>lttrsThingTypes</a> - The thing types.</li>
--   <li><a>lttrsNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>lttrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingTypesResponse :: Int -> ListThingTypesResponse

-- | The output for the ListThingTypes operation.
--   
--   <i>See:</i> <a>listThingTypesResponse</a> smart constructor.
data ListThingTypesResponse

-- | The thing types.
lttrsThingTypes :: Lens' ListThingTypesResponse [ThingTypeDefinition]

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
lttrsNextToken :: Lens' ListThingTypesResponse (Maybe Text)

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


-- | Lists the principals associated with the specified thing.
module Network.AWS.IoT.ListThingPrincipals

-- | Creates a value of <a>ListThingPrincipals</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>ltpThingName</a> - The name of the thing.</li>
--   </ul>
listThingPrincipals :: Text -> ListThingPrincipals

-- | The input for the ListThingPrincipal operation.
--   
--   <i>See:</i> <a>listThingPrincipals</a> smart constructor.
data ListThingPrincipals

-- | The name of the thing.
ltpThingName :: Lens' ListThingPrincipals Text

-- | Creates a value of <a>ListThingPrincipalsResponse</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>ltprsPrincipals</a> - The principals associated with the
--   thing.</li>
--   <li><a>ltprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingPrincipalsResponse :: Int -> ListThingPrincipalsResponse

-- | The output from the ListThingPrincipals operation.
--   
--   <i>See:</i> <a>listThingPrincipalsResponse</a> smart constructor.
data ListThingPrincipalsResponse

-- | The principals associated with the thing.
ltprsPrincipals :: Lens' ListThingPrincipalsResponse [Text]

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


-- | Lists the things associated with the specified principal.
module Network.AWS.IoT.ListPrincipalThings

-- | Creates a value of <a>ListPrincipalThings</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>lptNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>lptMaxResults</a> - The maximum number of results to return in
--   this operation.</li>
--   <li><a>lptPrincipal</a> - The principal.</li>
--   </ul>
listPrincipalThings :: Text -> ListPrincipalThings

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

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
lptNextToken :: Lens' ListPrincipalThings (Maybe Text)

-- | The maximum number of results to return in this operation.
lptMaxResults :: Lens' ListPrincipalThings (Maybe Natural)

-- | The principal.
lptPrincipal :: Lens' ListPrincipalThings Text

-- | Creates a value of <a>ListPrincipalThingsResponse</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>lptrsNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>lptrsThings</a> - The things.</li>
--   <li><a>lptrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPrincipalThingsResponse :: Int -> ListPrincipalThingsResponse

-- | The output from the ListPrincipalThings operation.
--   
--   <i>See:</i> <a>listPrincipalThingsResponse</a> smart constructor.
data ListPrincipalThingsResponse

-- | The token for the next set of results, or <b>null</b> if there are no
--   additional results.
lptrsNextToken :: Lens' ListPrincipalThingsResponse (Maybe Text)

-- | The things.
lptrsThings :: Lens' ListPrincipalThingsResponse [Text]

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


-- | Lists the policies attached to the specified principal. If you use an
--   Cognito identity, the ID must be in <a>AmazonCognito Identity
--   format</a> .
module Network.AWS.IoT.ListPrincipalPolicies

-- | Creates a value of <a>ListPrincipalPolicies</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>lppMarker</a> - The marker for the next set of results.</li>
--   <li><a>lppAscendingOrder</a> - Specifies the order for results. If
--   true, results are returned in ascending creation order.</li>
--   <li><a>lppPageSize</a> - The result page size.</li>
--   <li><a>lppPrincipal</a> - The principal.</li>
--   </ul>
listPrincipalPolicies :: Text -> ListPrincipalPolicies

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

-- | The marker for the next set of results.
lppMarker :: Lens' ListPrincipalPolicies (Maybe Text)

-- | Specifies the order for results. If true, results are returned in
--   ascending creation order.
lppAscendingOrder :: Lens' ListPrincipalPolicies (Maybe Bool)

-- | The result page size.
lppPageSize :: Lens' ListPrincipalPolicies (Maybe Natural)

-- | The principal.
lppPrincipal :: Lens' ListPrincipalPolicies Text

-- | Creates a value of <a>ListPrincipalPoliciesResponse</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>lpprsNextMarker</a> - The marker for the next set of results,
--   or null if there are no additional results.</li>
--   <li><a>lpprsPolicies</a> - The policies.</li>
--   <li><a>lpprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPrincipalPoliciesResponse :: Int -> ListPrincipalPoliciesResponse

-- | The output from the ListPrincipalPolicies operation.
--   
--   <i>See:</i> <a>listPrincipalPoliciesResponse</a> smart constructor.
data ListPrincipalPoliciesResponse

-- | The marker for the next set of results, or null if there are no
--   additional results.
lpprsNextMarker :: Lens' ListPrincipalPoliciesResponse (Maybe Text)

-- | The policies.
lpprsPolicies :: Lens' ListPrincipalPoliciesResponse [Policy]

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


-- | Lists the versions of the specified policy and identifies the default
--   version.
module Network.AWS.IoT.ListPolicyVersions

-- | Creates a value of <a>ListPolicyVersions</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>lpvPolicyName</a> - The policy name.</li>
--   </ul>
listPolicyVersions :: Text -> ListPolicyVersions

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

-- | The policy name.
lpvPolicyName :: Lens' ListPolicyVersions Text

-- | Creates a value of <a>ListPolicyVersionsResponse</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>lpvrsPolicyVersions</a> - The policy versions.</li>
--   <li><a>lpvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPolicyVersionsResponse :: Int -> ListPolicyVersionsResponse

-- | The output from the ListPolicyVersions operation.
--   
--   <i>See:</i> <a>listPolicyVersionsResponse</a> smart constructor.
data ListPolicyVersionsResponse

-- | The policy versions.
lpvrsPolicyVersions :: Lens' ListPolicyVersionsResponse [PolicyVersion]

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


-- | Lists the principals associated with the specified policy.
module Network.AWS.IoT.ListPolicyPrincipals

-- | Creates a value of <a>ListPolicyPrincipals</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>lMarker</a> - The marker for the next set of results.</li>
--   <li><a>lAscendingOrder</a> - Specifies the order for results. If true,
--   the results are returned in ascending creation order.</li>
--   <li><a>lPageSize</a> - The result page size.</li>
--   <li><a>lPolicyName</a> - The policy name.</li>
--   </ul>
listPolicyPrincipals :: Text -> ListPolicyPrincipals

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

-- | The marker for the next set of results.
lMarker :: Lens' ListPolicyPrincipals (Maybe Text)

-- | Specifies the order for results. If true, the results are returned in
--   ascending creation order.
lAscendingOrder :: Lens' ListPolicyPrincipals (Maybe Bool)

-- | The result page size.
lPageSize :: Lens' ListPolicyPrincipals (Maybe Natural)

-- | The policy name.
lPolicyName :: Lens' ListPolicyPrincipals Text

-- | Creates a value of <a>ListPolicyPrincipalsResponse</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>lrsPrincipals</a> - The descriptions of the principals.</li>
--   <li><a>lrsNextMarker</a> - The marker for the next set of results, or
--   null if there are no additional results.</li>
--   <li><a>lrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPolicyPrincipalsResponse :: Int -> ListPolicyPrincipalsResponse

-- | The output from the ListPolicyPrincipals operation.
--   
--   <i>See:</i> <a>listPolicyPrincipalsResponse</a> smart constructor.
data ListPolicyPrincipalsResponse

-- | The descriptions of the principals.
lrsPrincipals :: Lens' ListPolicyPrincipalsResponse [Text]

-- | The marker for the next set of results, or null if there are no
--   additional results.
lrsNextMarker :: Lens' ListPolicyPrincipalsResponse (Maybe Text)

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


-- | Lists your policies.
module Network.AWS.IoT.ListPolicies

-- | Creates a value of <a>ListPolicies</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>lpMarker</a> - The marker for the next set of results.</li>
--   <li><a>lpAscendingOrder</a> - Specifies the order for results. If
--   true, the results are returned in ascending creation order.</li>
--   <li><a>lpPageSize</a> - The result page size.</li>
--   </ul>
listPolicies :: ListPolicies

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

-- | The marker for the next set of results.
lpMarker :: Lens' ListPolicies (Maybe Text)

-- | Specifies the order for results. If true, the results are returned in
--   ascending creation order.
lpAscendingOrder :: Lens' ListPolicies (Maybe Bool)

-- | The result page size.
lpPageSize :: Lens' ListPolicies (Maybe Natural)

-- | Creates a value of <a>ListPoliciesResponse</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>lprsNextMarker</a> - The marker for the next set of results, or
--   null if there are no additional results.</li>
--   <li><a>lprsPolicies</a> - The descriptions of the policies.</li>
--   <li><a>lprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listPoliciesResponse :: Int -> ListPoliciesResponse

-- | The output from the ListPolicies operation.
--   
--   <i>See:</i> <a>listPoliciesResponse</a> smart constructor.
data ListPoliciesResponse

-- | The marker for the next set of results, or null if there are no
--   additional results.
lprsNextMarker :: Lens' ListPoliciesResponse (Maybe Text)

-- | The descriptions of the policies.
lprsPolicies :: Lens' ListPoliciesResponse [Policy]

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


-- | Lists certificates that are being transfered but not yet accepted.
module Network.AWS.IoT.ListOutgoingCertificates

-- | Creates a value of <a>ListOutgoingCertificates</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>locMarker</a> - The marker for the next set of results.</li>
--   <li><a>locAscendingOrder</a> - Specifies the order for results. If
--   True, the results are returned in ascending order, based on the
--   creation date.</li>
--   <li><a>locPageSize</a> - The result page size.</li>
--   </ul>
listOutgoingCertificates :: ListOutgoingCertificates

-- | The input to the ListOutgoingCertificates operation.
--   
--   <i>See:</i> <a>listOutgoingCertificates</a> smart constructor.
data ListOutgoingCertificates

-- | The marker for the next set of results.
locMarker :: Lens' ListOutgoingCertificates (Maybe Text)

-- | Specifies the order for results. If True, the results are returned in
--   ascending order, based on the creation date.
locAscendingOrder :: Lens' ListOutgoingCertificates (Maybe Bool)

-- | The result page size.
locPageSize :: Lens' ListOutgoingCertificates (Maybe Natural)

-- | Creates a value of <a>ListOutgoingCertificatesResponse</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>locrsNextMarker</a> - The marker for the next set of
--   results.</li>
--   <li><a>locrsOutgoingCertificates</a> - The certificates that are being
--   transfered but not yet accepted.</li>
--   <li><a>locrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listOutgoingCertificatesResponse :: Int -> ListOutgoingCertificatesResponse

-- | The output from the ListOutgoingCertificates operation.
--   
--   <i>See:</i> <a>listOutgoingCertificatesResponse</a> smart constructor.
data ListOutgoingCertificatesResponse

-- | The marker for the next set of results.
locrsNextMarker :: Lens' ListOutgoingCertificatesResponse (Maybe Text)

-- | The certificates that are being transfered but not yet accepted.
locrsOutgoingCertificates :: Lens' ListOutgoingCertificatesResponse [OutgoingCertificate]

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


-- | List the device certificates signed by the specified CA certificate.
module Network.AWS.IoT.ListCertificatesByCA

-- | Creates a value of <a>ListCertificatesByCA</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>lcbcaMarker</a> - The marker for the next set of results.</li>
--   <li><a>lcbcaAscendingOrder</a> - Specifies the order for results. If
--   True, the results are returned in ascending order, based on the
--   creation date.</li>
--   <li><a>lcbcaPageSize</a> - The result page size.</li>
--   <li><a>lcbcaCaCertificateId</a> - The ID of the CA certificate. This
--   operation will list all registered device certificate that were signed
--   by this CA certificate.</li>
--   </ul>
listCertificatesByCA :: Text -> ListCertificatesByCA

-- | The input to the ListCertificatesByCA operation.
--   
--   <i>See:</i> <a>listCertificatesByCA</a> smart constructor.
data ListCertificatesByCA

-- | The marker for the next set of results.
lcbcaMarker :: Lens' ListCertificatesByCA (Maybe Text)

-- | Specifies the order for results. If True, the results are returned in
--   ascending order, based on the creation date.
lcbcaAscendingOrder :: Lens' ListCertificatesByCA (Maybe Bool)

-- | The result page size.
lcbcaPageSize :: Lens' ListCertificatesByCA (Maybe Natural)

-- | The ID of the CA certificate. This operation will list all registered
--   device certificate that were signed by this CA certificate.
lcbcaCaCertificateId :: Lens' ListCertificatesByCA Text

-- | Creates a value of <a>ListCertificatesByCAResponse</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>lcbcarsCertificates</a> - The device certificates signed by the
--   specified CA certificate.</li>
--   <li><a>lcbcarsNextMarker</a> - The marker for the next set of results,
--   or null if there are no additional results.</li>
--   <li><a>lcbcarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listCertificatesByCAResponse :: Int -> ListCertificatesByCAResponse

-- | The output of the ListCertificatesByCA operation.
--   
--   <i>See:</i> <a>listCertificatesByCAResponse</a> smart constructor.
data ListCertificatesByCAResponse

-- | The device certificates signed by the specified CA certificate.
lcbcarsCertificates :: Lens' ListCertificatesByCAResponse [Certificate]

-- | The marker for the next set of results, or null if there are no
--   additional results.
lcbcarsNextMarker :: Lens' ListCertificatesByCAResponse (Maybe Text)

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


-- | Lists the certificates registered in your AWS account.
--   
--   The results are paginated with a default page size of 25. You can use
--   the returned marker to retrieve additional results.
module Network.AWS.IoT.ListCertificates

-- | Creates a value of <a>ListCertificates</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>lcMarker</a> - The marker for the next set of results.</li>
--   <li><a>lcAscendingOrder</a> - Specifies the order for results. If
--   True, the results are returned in ascending order, based on the
--   creation date.</li>
--   <li><a>lcPageSize</a> - The result page size.</li>
--   </ul>
listCertificates :: ListCertificates

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

-- | The marker for the next set of results.
lcMarker :: Lens' ListCertificates (Maybe Text)

-- | Specifies the order for results. If True, the results are returned in
--   ascending order, based on the creation date.
lcAscendingOrder :: Lens' ListCertificates (Maybe Bool)

-- | The result page size.
lcPageSize :: Lens' ListCertificates (Maybe Natural)

-- | Creates a value of <a>ListCertificatesResponse</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>lcrsCertificates</a> - The descriptions of the
--   certificates.</li>
--   <li><a>lcrsNextMarker</a> - The marker for the next set of results, or
--   null if there are no additional results.</li>
--   <li><a>lcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listCertificatesResponse :: Int -> ListCertificatesResponse

-- | The output of the ListCertificates operation.
--   
--   <i>See:</i> <a>listCertificatesResponse</a> smart constructor.
data ListCertificatesResponse

-- | The descriptions of the certificates.
lcrsCertificates :: Lens' ListCertificatesResponse [Certificate]

-- | The marker for the next set of results, or null if there are no
--   additional results.
lcrsNextMarker :: Lens' ListCertificatesResponse (Maybe Text)

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


-- | Lists the CA certificates registered for your AWS account.
--   
--   The results are paginated with a default page size of 25. You can use
--   the returned marker to retrieve additional results.
module Network.AWS.IoT.ListCACertificates

-- | Creates a value of <a>ListCACertificates</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>lcacMarker</a> - The marker for the next set of results.</li>
--   <li><a>lcacAscendingOrder</a> - Determines the order of the
--   results.</li>
--   <li><a>lcacPageSize</a> - The result page size.</li>
--   </ul>
listCACertificates :: ListCACertificates

-- | Input for the ListCACertificates operation.
--   
--   <i>See:</i> <a>listCACertificates</a> smart constructor.
data ListCACertificates

-- | The marker for the next set of results.
lcacMarker :: Lens' ListCACertificates (Maybe Text)

-- | Determines the order of the results.
lcacAscendingOrder :: Lens' ListCACertificates (Maybe Bool)

-- | The result page size.
lcacPageSize :: Lens' ListCACertificates (Maybe Natural)

-- | Creates a value of <a>ListCACertificatesResponse</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>lcacrsCertificates</a> - The CA certificates registered in your
--   AWS account.</li>
--   <li><a>lcacrsNextMarker</a> - The current position within the list of
--   CA certificates.</li>
--   <li><a>lcacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listCACertificatesResponse :: Int -> ListCACertificatesResponse

-- | The output from the ListCACertificates operation.
--   
--   <i>See:</i> <a>listCACertificatesResponse</a> smart constructor.
data ListCACertificatesResponse

-- | The CA certificates registered in your AWS account.
lcacrsCertificates :: Lens' ListCACertificatesResponse [CACertificate]

-- | The current position within the list of CA certificates.
lcacrsNextMarker :: Lens' ListCACertificatesResponse (Maybe Text)

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


-- | Gets information about the specified rule.
module Network.AWS.IoT.GetTopicRule

-- | Creates a value of <a>GetTopicRule</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>gtrRuleName</a> - The name of the rule.</li>
--   </ul>
getTopicRule :: Text -> GetTopicRule

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

-- | The name of the rule.
gtrRuleName :: Lens' GetTopicRule Text

-- | Creates a value of <a>GetTopicRuleResponse</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>gtrrsRule</a> - The rule.</li>
--   <li><a>gtrrsRuleARN</a> - The rule ARN.</li>
--   <li><a>gtrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getTopicRuleResponse :: Int -> GetTopicRuleResponse

-- | The output from the GetTopicRule operation.
--   
--   <i>See:</i> <a>getTopicRuleResponse</a> smart constructor.
data GetTopicRuleResponse

-- | The rule.
gtrrsRule :: Lens' GetTopicRuleResponse (Maybe TopicRule)

-- | The rule ARN.
gtrrsRuleARN :: Lens' GetTopicRuleResponse (Maybe Text)

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


-- | Gets a registration code used to register a CA certificate with AWS
--   IoT.
module Network.AWS.IoT.GetRegistrationCode

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

-- | The input to the GetRegistrationCode operation.
--   
--   <i>See:</i> <a>getRegistrationCode</a> smart constructor.
data GetRegistrationCode

-- | Creates a value of <a>GetRegistrationCodeResponse</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>grcrsRegistrationCode</a> - The CA certificate registration
--   code.</li>
--   <li><a>grcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getRegistrationCodeResponse :: Int -> GetRegistrationCodeResponse

-- | The output from the GetRegistrationCode operation.
--   
--   <i>See:</i> <a>getRegistrationCodeResponse</a> smart constructor.
data GetRegistrationCodeResponse

-- | The CA certificate registration code.
grcrsRegistrationCode :: Lens' GetRegistrationCodeResponse (Maybe Text)

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


-- | Gets information about the specified policy version.
module Network.AWS.IoT.GetPolicyVersion

-- | Creates a value of <a>GetPolicyVersion</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>gpvPolicyName</a> - The name of the policy.</li>
--   <li><a>gpvPolicyVersionId</a> - The policy version ID.</li>
--   </ul>
getPolicyVersion :: Text -> Text -> GetPolicyVersion

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

-- | The name of the policy.
gpvPolicyName :: Lens' GetPolicyVersion Text

-- | The policy version ID.
gpvPolicyVersionId :: Lens' GetPolicyVersion Text

-- | Creates a value of <a>GetPolicyVersionResponse</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>gpvrsPolicyName</a> - The policy name.</li>
--   <li><a>gpvrsPolicyDocument</a> - The JSON document that describes the
--   policy.</li>
--   <li><a>gpvrsPolicyVersionId</a> - The policy version ID.</li>
--   <li><a>gpvrsPolicyARN</a> - The policy ARN.</li>
--   <li><a>gpvrsIsDefaultVersion</a> - Specifies whether the policy
--   version is the default.</li>
--   <li><a>gpvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getPolicyVersionResponse :: Int -> GetPolicyVersionResponse

-- | The output from the GetPolicyVersion operation.
--   
--   <i>See:</i> <a>getPolicyVersionResponse</a> smart constructor.
data GetPolicyVersionResponse

-- | The policy name.
gpvrsPolicyName :: Lens' GetPolicyVersionResponse (Maybe Text)

-- | The JSON document that describes the policy.
gpvrsPolicyDocument :: Lens' GetPolicyVersionResponse (Maybe Text)

-- | The policy version ID.
gpvrsPolicyVersionId :: Lens' GetPolicyVersionResponse (Maybe Text)

-- | The policy ARN.
gpvrsPolicyARN :: Lens' GetPolicyVersionResponse (Maybe Text)

-- | Specifies whether the policy version is the default.
gpvrsIsDefaultVersion :: Lens' GetPolicyVersionResponse (Maybe Bool)

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


-- | Gets information about the specified policy with the policy document
--   of the default version.
module Network.AWS.IoT.GetPolicy

-- | Creates a value of <a>GetPolicy</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>gpPolicyName</a> - The name of the policy.</li>
--   </ul>
getPolicy :: Text -> GetPolicy

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

-- | The name of the policy.
gpPolicyName :: Lens' GetPolicy Text

-- | Creates a value of <a>GetPolicyResponse</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>gprsPolicyName</a> - The policy name.</li>
--   <li><a>gprsPolicyDocument</a> - The JSON document that describes the
--   policy.</li>
--   <li><a>gprsDefaultVersionId</a> - The default policy version ID.</li>
--   <li><a>gprsPolicyARN</a> - The policy ARN.</li>
--   <li><a>gprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getPolicyResponse :: Int -> GetPolicyResponse

-- | The output from the GetPolicy operation.
--   
--   <i>See:</i> <a>getPolicyResponse</a> smart constructor.
data GetPolicyResponse

-- | The policy name.
gprsPolicyName :: Lens' GetPolicyResponse (Maybe Text)

-- | The JSON document that describes the policy.
gprsPolicyDocument :: Lens' GetPolicyResponse (Maybe Text)

-- | The default policy version ID.
gprsDefaultVersionId :: Lens' GetPolicyResponse (Maybe Text)

-- | The policy ARN.
gprsPolicyARN :: Lens' GetPolicyResponse (Maybe Text)

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


-- | Gets the logging options.
module Network.AWS.IoT.GetLoggingOptions

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

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

-- | Creates a value of <a>GetLoggingOptionsResponse</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>glorsLogLevel</a> - The logging level.</li>
--   <li><a>glorsRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   <li><a>glorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getLoggingOptionsResponse :: Int -> GetLoggingOptionsResponse

-- | The output from the GetLoggingOptions operation.
--   
--   <i>See:</i> <a>getLoggingOptionsResponse</a> smart constructor.
data GetLoggingOptionsResponse

-- | The logging level.
glorsLogLevel :: Lens' GetLoggingOptionsResponse (Maybe LogLevel)

-- | The ARN of the IAM role that grants access.
glorsRoleARN :: Lens' GetLoggingOptionsResponse (Maybe Text)

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


-- | Enables the specified rule.
module Network.AWS.IoT.EnableTopicRule

-- | Creates a value of <a>EnableTopicRule</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>etrRuleName</a> - The name of the topic rule to enable.</li>
--   </ul>
enableTopicRule :: Text -> EnableTopicRule

-- | The input for the EnableTopicRuleRequest operation.
--   
--   <i>See:</i> <a>enableTopicRule</a> smart constructor.
data EnableTopicRule

-- | The name of the topic rule to enable.
etrRuleName :: Lens' EnableTopicRule Text

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

-- | <i>See:</i> <a>enableTopicRuleResponse</a> smart constructor.
data EnableTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
instance Data.Data.Data Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
instance GHC.Show.Show Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
instance GHC.Read.Read Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
instance GHC.Classes.Eq Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Data.Data.Data Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance GHC.Show.Show Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance GHC.Read.Read Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance GHC.Classes.Eq Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Data.Hashable.Class.Hashable Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.EnableTopicRule.EnableTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse


-- | Disables the specified rule.
module Network.AWS.IoT.DisableTopicRule

-- | Creates a value of <a>DisableTopicRule</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>dtrRuleName</a> - The name of the rule to disable.</li>
--   </ul>
disableTopicRule :: Text -> DisableTopicRule

-- | The input for the DisableTopicRuleRequest operation.
--   
--   <i>See:</i> <a>disableTopicRule</a> smart constructor.
data DisableTopicRule

-- | The name of the rule to disable.
dtrRuleName :: Lens' DisableTopicRule Text

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

-- | <i>See:</i> <a>disableTopicRuleResponse</a> smart constructor.
data DisableTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
instance Data.Data.Data Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
instance GHC.Show.Show Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
instance GHC.Read.Read Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
instance GHC.Classes.Eq Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Data.Data.Data Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance GHC.Show.Show Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance GHC.Read.Read Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance GHC.Classes.Eq Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DisableTopicRule.DisableTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse


-- | Detaches the specified principal from the specified thing.
module Network.AWS.IoT.DetachThingPrincipal

-- | Creates a value of <a>DetachThingPrincipal</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>dtpThingName</a> - The name of the thing.</li>
--   <li><a>dtpPrincipal</a> - If the principal is a certificate, this
--   value must be ARN of the certificate. If the principal is an Amazon
--   Cognito identity, this value must be the ID of the Amazon Cognito
--   identity.</li>
--   </ul>
detachThingPrincipal :: Text -> Text -> DetachThingPrincipal

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

-- | The name of the thing.
dtpThingName :: Lens' DetachThingPrincipal Text

-- | If the principal is a certificate, this value must be ARN of the
--   certificate. If the principal is an Amazon Cognito identity, this
--   value must be the ID of the Amazon Cognito identity.
dtpPrincipal :: Lens' DetachThingPrincipal Text

-- | Creates a value of <a>DetachThingPrincipalResponse</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>dtprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
detachThingPrincipalResponse :: Int -> DetachThingPrincipalResponse

-- | The output from the DetachThingPrincipal operation.
--   
--   <i>See:</i> <a>detachThingPrincipalResponse</a> smart constructor.
data DetachThingPrincipalResponse

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


-- | Removes the specified policy from the specified certificate.
module Network.AWS.IoT.DetachPrincipalPolicy

-- | Creates a value of <a>DetachPrincipalPolicy</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>dppPolicyName</a> - The name of the policy to detach.</li>
--   <li><a>dppPrincipal</a> - The principal. If the principal is a
--   certificate, specify the certificate ARN. If the principal is an
--   Amazon Cognito identity, specify the identity ID.</li>
--   </ul>
detachPrincipalPolicy :: Text -> Text -> DetachPrincipalPolicy

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

-- | The name of the policy to detach.
dppPolicyName :: Lens' DetachPrincipalPolicy Text

-- | The principal. If the principal is a certificate, specify the
--   certificate ARN. If the principal is an Amazon Cognito identity,
--   specify the identity ID.
dppPrincipal :: Lens' DetachPrincipalPolicy Text

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

-- | <i>See:</i> <a>detachPrincipalPolicyResponse</a> smart constructor.
data DetachPrincipalPolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse
instance Data.Data.Data Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse
instance GHC.Show.Show Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse
instance GHC.Read.Read Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse
instance GHC.Classes.Eq Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Data.Data.Data Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance GHC.Show.Show Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance GHC.Read.Read Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance GHC.Classes.Eq Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.DetachPrincipalPolicy.DetachPrincipalPolicyResponse


-- | Gets information about the specified thing type.
module Network.AWS.IoT.DescribeThingType

-- | Creates a value of <a>DescribeThingType</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>dThingTypeName</a> - The name of the thing type.</li>
--   </ul>
describeThingType :: Text -> DescribeThingType

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

-- | The name of the thing type.
dThingTypeName :: Lens' DescribeThingType Text

-- | Creates a value of <a>DescribeThingTypeResponse</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>drsThingTypeProperties</a> - The ThingTypeProperties contains
--   information about the thing type including description, and a list of
--   searchable thing attribute names.</li>
--   <li><a>drsThingTypeName</a> - The name of the thing type.</li>
--   <li><a>drsThingTypeMetadata</a> - Undocumented member.</li>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeThingTypeResponse :: Int -> DescribeThingTypeResponse

-- | The output for the DescribeThingType operation.
--   
--   <i>See:</i> <a>describeThingTypeResponse</a> smart constructor.
data DescribeThingTypeResponse

-- | The ThingTypeProperties contains information about the thing type
--   including description, and a list of searchable thing attribute names.
drsThingTypeProperties :: Lens' DescribeThingTypeResponse (Maybe ThingTypeProperties)

-- | The name of the thing type.
drsThingTypeName :: Lens' DescribeThingTypeResponse (Maybe Text)

-- | Undocumented member.
drsThingTypeMetadata :: Lens' DescribeThingTypeResponse (Maybe ThingTypeMetadata)

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


-- | Gets information about the specified thing.
module Network.AWS.IoT.DescribeThing

-- | Creates a value of <a>DescribeThing</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>dThingName</a> - The name of the thing.</li>
--   </ul>
describeThing :: Text -> DescribeThing

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

-- | The name of the thing.
dThingName :: Lens' DescribeThing Text

-- | Creates a value of <a>DescribeThingResponse</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>dtrsDefaultClientId</a> - The default client ID.</li>
--   <li><a>dtrsThingTypeName</a> - The thing type name.</li>
--   <li><a>dtrsAttributes</a> - The thing attributes.</li>
--   <li><a>dtrsVersion</a> - The current version of the thing record in
--   the registry.</li>
--   <li><a>dtrsThingName</a> - The name of the thing.</li>
--   <li><a>dtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeThingResponse :: Int -> DescribeThingResponse

-- | The output from the DescribeThing operation.
--   
--   <i>See:</i> <a>describeThingResponse</a> smart constructor.
data DescribeThingResponse

-- | The default client ID.
dtrsDefaultClientId :: Lens' DescribeThingResponse (Maybe Text)

-- | The thing type name.
dtrsThingTypeName :: Lens' DescribeThingResponse (Maybe Text)

-- | The thing attributes.
dtrsAttributes :: Lens' DescribeThingResponse (HashMap Text Text)

-- | The current version of the thing record in the registry.
dtrsVersion :: Lens' DescribeThingResponse (Maybe Integer)

-- | The name of the thing.
dtrsThingName :: Lens' DescribeThingResponse (Maybe Text)

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


-- | Returns a unique endpoint specific to the AWS account making the call.
module Network.AWS.IoT.DescribeEndpoint

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

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

-- | Creates a value of <a>DescribeEndpointResponse</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>dersEndpointAddress</a> - The endpoint. The format of the
--   endpoint is as follows: <i>identifier</i> .iot.<i>region</i>
--   .amazonaws.com.</li>
--   <li><a>dersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEndpointResponse :: Int -> DescribeEndpointResponse

-- | The output from the DescribeEndpoint operation.
--   
--   <i>See:</i> <a>describeEndpointResponse</a> smart constructor.
data DescribeEndpointResponse

-- | The endpoint. The format of the endpoint is as follows:
--   <i>identifier</i> .iot.<i>region</i> .amazonaws.com.
dersEndpointAddress :: Lens' DescribeEndpointResponse (Maybe Text)

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


-- | Gets information about the specified certificate.
module Network.AWS.IoT.DescribeCertificate

-- | Creates a value of <a>DescribeCertificate</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>desCertificateId</a> - The ID of the certificate.</li>
--   </ul>
describeCertificate :: Text -> DescribeCertificate

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

-- | The ID of the certificate.
desCertificateId :: Lens' DescribeCertificate Text

-- | Creates a value of <a>DescribeCertificateResponse</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>dcrsCertificateDescription</a> - The description of the
--   certificate.</li>
--   <li><a>dcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeCertificateResponse :: Int -> DescribeCertificateResponse

-- | The output of the DescribeCertificate operation.
--   
--   <i>See:</i> <a>describeCertificateResponse</a> smart constructor.
data DescribeCertificateResponse

-- | The description of the certificate.
dcrsCertificateDescription :: Lens' DescribeCertificateResponse (Maybe CertificateDescription)

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


-- | Describes a registered CA certificate.
module Network.AWS.IoT.DescribeCACertificate

-- | Creates a value of <a>DescribeCACertificate</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>dCertificateId</a> - The CA certificate identifier.</li>
--   </ul>
describeCACertificate :: Text -> DescribeCACertificate

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

-- | The CA certificate identifier.
dCertificateId :: Lens' DescribeCACertificate Text

-- | Creates a value of <a>DescribeCACertificateResponse</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>desrsCertificateDescription</a> - The CA certificate
--   description.</li>
--   <li><a>desrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeCACertificateResponse :: Int -> DescribeCACertificateResponse

-- | The output from the DescribeCACertificate operation.
--   
--   <i>See:</i> <a>describeCACertificateResponse</a> smart constructor.
data DescribeCACertificateResponse

-- | The CA certificate description.
desrsCertificateDescription :: Lens' DescribeCACertificateResponse (Maybe CACertificateDescription)

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


-- | Deprecates a thing type. You can not associate new things with
--   deprecated thing type.
module Network.AWS.IoT.DeprecateThingType

-- | Creates a value of <a>DeprecateThingType</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>depUndoDeprecate</a> - Whether to undeprecate a deprecated
--   thing type. If <b>true</b> , the thing type will not be deprecated
--   anymore and you can associate it with things.</li>
--   <li><a>depThingTypeName</a> - The name of the thing type to
--   deprecate.</li>
--   </ul>
deprecateThingType :: Text -> DeprecateThingType

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

-- | Whether to undeprecate a deprecated thing type. If <b>true</b> , the
--   thing type will not be deprecated anymore and you can associate it
--   with things.
depUndoDeprecate :: Lens' DeprecateThingType (Maybe Bool)

-- | The name of the thing type to deprecate.
depThingTypeName :: Lens' DeprecateThingType Text

-- | Creates a value of <a>DeprecateThingTypeResponse</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>deprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deprecateThingTypeResponse :: Int -> DeprecateThingTypeResponse

-- | The output for the DeprecateThingType operation.
--   
--   <i>See:</i> <a>deprecateThingTypeResponse</a> smart constructor.
data DeprecateThingTypeResponse

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


-- | Deletes the specified rule.
module Network.AWS.IoT.DeleteTopicRule

-- | Creates a value of <a>DeleteTopicRule</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>dRuleName</a> - The name of the rule.</li>
--   </ul>
deleteTopicRule :: Text -> DeleteTopicRule

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

-- | The name of the rule.
dRuleName :: Lens' DeleteTopicRule Text

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

-- | <i>See:</i> <a>deleteTopicRuleResponse</a> smart constructor.
data DeleteTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
instance Data.Data.Data Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
instance GHC.Show.Show Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
instance GHC.Read.Read Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
instance GHC.Classes.Eq Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Data.Data.Data Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance GHC.Show.Show Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance GHC.Read.Read Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance GHC.Classes.Eq Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DeleteTopicRule.DeleteTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse


-- | Deletes the specified thing type . You cannot delete a thing type if
--   it has things associated with it. To delete a thing type, first mark
--   it as deprecated by calling <tt>DeprecateThingType</tt> , then remove
--   any associated things by calling <tt>UpdateThing</tt> to change the
--   thing type on any associated thing, and finally use
--   <a>DeleteThingType</a> to delete the thing type.
module Network.AWS.IoT.DeleteThingType

-- | Creates a value of <a>DeleteThingType</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>dttThingTypeName</a> - The name of the thing type.</li>
--   </ul>
deleteThingType :: Text -> DeleteThingType

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

-- | The name of the thing type.
dttThingTypeName :: Lens' DeleteThingType Text

-- | Creates a value of <a>DeleteThingTypeResponse</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>dttrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteThingTypeResponse :: Int -> DeleteThingTypeResponse

-- | The output for the DeleteThingType operation.
--   
--   <i>See:</i> <a>deleteThingTypeResponse</a> smart constructor.
data DeleteThingTypeResponse

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


-- | Deletes the specified thing.
module Network.AWS.IoT.DeleteThing

-- | Creates a value of <a>DeleteThing</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>dtExpectedVersion</a> - The expected version of the thing
--   record in the registry. If the version of the record in the registry
--   does not match the expected version specified in the request, the
--   <tt>DeleteThing</tt> request is rejected with a
--   <tt>VersionConflictException</tt> .</li>
--   <li><a>dtThingName</a> - The name of the thing to delete.</li>
--   </ul>
deleteThing :: Text -> DeleteThing

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

-- | The expected version of the thing record in the registry. If the
--   version of the record in the registry does not match the expected
--   version specified in the request, the <tt>DeleteThing</tt> request is
--   rejected with a <tt>VersionConflictException</tt> .
dtExpectedVersion :: Lens' DeleteThing (Maybe Integer)

-- | The name of the thing to delete.
dtThingName :: Lens' DeleteThing Text

-- | Creates a value of <a>DeleteThingResponse</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>delrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteThingResponse :: Int -> DeleteThingResponse

-- | The output of the DeleteThing operation.
--   
--   <i>See:</i> <a>deleteThingResponse</a> smart constructor.
data DeleteThingResponse

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


-- | Deletes a CA certificate registration code.
module Network.AWS.IoT.DeleteRegistrationCode

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

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

-- | Creates a value of <a>DeleteRegistrationCodeResponse</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>drcrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteRegistrationCodeResponse :: Int -> DeleteRegistrationCodeResponse

-- | The output for the DeleteRegistrationCode operation.
--   
--   <i>See:</i> <a>deleteRegistrationCodeResponse</a> smart constructor.
data DeleteRegistrationCodeResponse

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


-- | Deletes the specified version of the specified policy. You cannot
--   delete the default version of a policy using this API. To delete the
--   default version of a policy, use <tt>DeletePolicy</tt> . To find out
--   which version of a policy is marked as the default version, use
--   ListPolicyVersions.
module Network.AWS.IoT.DeletePolicyVersion

-- | Creates a value of <a>DeletePolicyVersion</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>dpvPolicyName</a> - The name of the policy.</li>
--   <li><a>dpvPolicyVersionId</a> - The policy version ID.</li>
--   </ul>
deletePolicyVersion :: Text -> Text -> DeletePolicyVersion

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

-- | The name of the policy.
dpvPolicyName :: Lens' DeletePolicyVersion Text

-- | The policy version ID.
dpvPolicyVersionId :: Lens' DeletePolicyVersion Text

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

-- | <i>See:</i> <a>deletePolicyVersionResponse</a> smart constructor.
data DeletePolicyVersionResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
instance Data.Data.Data Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
instance GHC.Show.Show Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
instance GHC.Read.Read Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
instance GHC.Classes.Eq Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Data.Data.Data Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance GHC.Show.Show Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance GHC.Read.Read Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance GHC.Classes.Eq Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersion
instance Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse


-- | Deletes the specified policy.
--   
--   A policy cannot be deleted if it has non-default versions or it is
--   attached to any certificate.
--   
--   To delete a policy, use the DeletePolicyVersion API to delete all
--   non-default versions of the policy; use the DetachPrincipalPolicy API
--   to detach the policy from any certificate; and then use the
--   DeletePolicy API to delete the policy.
--   
--   When a policy is deleted using DeletePolicy, its default version is
--   deleted with it.
module Network.AWS.IoT.DeletePolicy

-- | Creates a value of <a>DeletePolicy</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>dpPolicyName</a> - The name of the policy to delete.</li>
--   </ul>
deletePolicy :: Text -> DeletePolicy

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

-- | The name of the policy to delete.
dpPolicyName :: Lens' DeletePolicy Text

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

-- | <i>See:</i> <a>deletePolicyResponse</a> smart constructor.
data DeletePolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
instance Data.Data.Data Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
instance GHC.Show.Show Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
instance GHC.Read.Read Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
instance GHC.Classes.Eq Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Data.Data.Data Network.AWS.IoT.DeletePolicy.DeletePolicy
instance GHC.Show.Show Network.AWS.IoT.DeletePolicy.DeletePolicy
instance GHC.Read.Read Network.AWS.IoT.DeletePolicy.DeletePolicy
instance GHC.Classes.Eq Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DeletePolicy.DeletePolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicy.DeletePolicyResponse


-- | Deletes the specified certificate.
--   
--   A certificate cannot be deleted if it has a policy attached to it or
--   if its status is set to ACTIVE. To delete a certificate, first use the
--   <tt>DetachPrincipalPolicy</tt> API to detach all policies. Next, use
--   the <tt>UpdateCertificate</tt> API to set the certificate to the
--   INACTIVE status.
module Network.AWS.IoT.DeleteCertificate

-- | Creates a value of <a>DeleteCertificate</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>dcCertificateId</a> - The ID of the certificate.</li>
--   </ul>
deleteCertificate :: Text -> DeleteCertificate

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

-- | The ID of the certificate.
dcCertificateId :: Lens' DeleteCertificate Text

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

-- | <i>See:</i> <a>deleteCertificateResponse</a> smart constructor.
data DeleteCertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
instance Data.Data.Data Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
instance GHC.Show.Show Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
instance GHC.Read.Read Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
instance GHC.Classes.Eq Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
instance GHC.Generics.Generic Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Data.Data.Data Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance GHC.Show.Show Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance GHC.Read.Read Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance GHC.Classes.Eq Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Data.Hashable.Class.Hashable Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.DeleteCertificate.DeleteCertificate
instance Control.DeepSeq.NFData Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse


-- | Deletes a registered CA certificate.
module Network.AWS.IoT.DeleteCACertificate

-- | Creates a value of <a>DeleteCACertificate</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>dcacCertificateId</a> - The ID of the certificate to
--   delete.</li>
--   </ul>
deleteCACertificate :: Text -> DeleteCACertificate

-- | Input for the DeleteCACertificate operation.
--   
--   <i>See:</i> <a>deleteCACertificate</a> smart constructor.
data DeleteCACertificate

-- | The ID of the certificate to delete.
dcacCertificateId :: Lens' DeleteCACertificate Text

-- | Creates a value of <a>DeleteCACertificateResponse</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>dcacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteCACertificateResponse :: Int -> DeleteCACertificateResponse

-- | The output for the DeleteCACertificate operation.
--   
--   <i>See:</i> <a>deleteCACertificateResponse</a> smart constructor.
data DeleteCACertificateResponse

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


-- | Creates a rule. Creating rules is an administrator-level action. Any
--   user who has permission to create rules will be able to access data
--   processed by the rule.
module Network.AWS.IoT.CreateTopicRule

-- | Creates a value of <a>CreateTopicRule</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>ctrRuleName</a> - The name of the rule.</li>
--   <li><a>ctrTopicRulePayload</a> - The rule payload.</li>
--   </ul>
createTopicRule :: Text -> TopicRulePayload -> CreateTopicRule

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

-- | The name of the rule.
ctrRuleName :: Lens' CreateTopicRule Text

-- | The rule payload.
ctrTopicRulePayload :: Lens' CreateTopicRule TopicRulePayload

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

-- | <i>See:</i> <a>createTopicRuleResponse</a> smart constructor.
data CreateTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
instance Data.Data.Data Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
instance GHC.Show.Show Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
instance GHC.Read.Read Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
instance GHC.Classes.Eq Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
instance GHC.Generics.Generic Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Data.Data.Data Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance GHC.Show.Show Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance GHC.Read.Read Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance GHC.Classes.Eq Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Data.Hashable.Class.Hashable Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.CreateTopicRule.CreateTopicRule
instance Control.DeepSeq.NFData Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse


-- | Creates a new thing type.
module Network.AWS.IoT.CreateThingType

-- | Creates a value of <a>CreateThingType</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>cttThingTypeProperties</a> - The ThingTypeProperties for the
--   thing type to create. It contains information about the new thing type
--   including a description, and a list of searchable thing attribute
--   names.</li>
--   <li><a>cttThingTypeName</a> - The name of the thing type.</li>
--   </ul>
createThingType :: Text -> CreateThingType

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

-- | The ThingTypeProperties for the thing type to create. It contains
--   information about the new thing type including a description, and a
--   list of searchable thing attribute names.
cttThingTypeProperties :: Lens' CreateThingType (Maybe ThingTypeProperties)

-- | The name of the thing type.
cttThingTypeName :: Lens' CreateThingType Text

-- | Creates a value of <a>CreateThingTypeResponse</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>cttrsThingTypeName</a> - The name of the thing type.</li>
--   <li><a>cttrsThingTypeARN</a> - The Amazon Resource Name (ARN) of the
--   thing type.</li>
--   <li><a>cttrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createThingTypeResponse :: Int -> CreateThingTypeResponse

-- | The output of the CreateThingType operation.
--   
--   <i>See:</i> <a>createThingTypeResponse</a> smart constructor.
data CreateThingTypeResponse

-- | The name of the thing type.
cttrsThingTypeName :: Lens' CreateThingTypeResponse (Maybe Text)

-- | The Amazon Resource Name (ARN) of the thing type.
cttrsThingTypeARN :: Lens' CreateThingTypeResponse (Maybe Text)

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


-- | Creates a thing record in the thing registry.
module Network.AWS.IoT.CreateThing

-- | Creates a value of <a>CreateThing</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>ctThingTypeName</a> - The name of the thing type associated
--   with the new thing.</li>
--   <li><a>ctAttributePayload</a> - The attribute payload, which consists
--   of up to three name/value pairs in a JSON document. For example:
--   <tt>{"attributes":{"string1":"string2"}})</tt></li>
--   <li><a>ctThingName</a> - The name of the thing to create.</li>
--   </ul>
createThing :: Text -> CreateThing

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

-- | The name of the thing type associated with the new thing.
ctThingTypeName :: Lens' CreateThing (Maybe Text)

-- | The attribute payload, which consists of up to three name/value pairs
--   in a JSON document. For example:
--   <tt>{"attributes":{"string1":"string2"}})</tt>
ctAttributePayload :: Lens' CreateThing (Maybe AttributePayload)

-- | The name of the thing to create.
ctThingName :: Lens' CreateThing Text

-- | Creates a value of <a>CreateThingResponse</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>ctrsThingARN</a> - The ARN of the new thing.</li>
--   <li><a>ctrsThingName</a> - The name of the new thing.</li>
--   <li><a>ctrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createThingResponse :: Int -> CreateThingResponse

-- | The output of the CreateThing operation.
--   
--   <i>See:</i> <a>createThingResponse</a> smart constructor.
data CreateThingResponse

-- | The ARN of the new thing.
ctrsThingARN :: Lens' CreateThingResponse (Maybe Text)

-- | The name of the new thing.
ctrsThingName :: Lens' CreateThingResponse (Maybe Text)

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


-- | Creates a new version of the specified AWS IoT policy. To update a
--   policy, create a new policy version. A managed policy can have up to
--   five versions. If the policy has five versions, you must use
--   <tt>DeletePolicyVersion</tt> to delete an existing version before you
--   create a new one.
--   
--   Optionally, you can set the new version as the policy's default
--   version. The default version is the operative version (that is, the
--   version that is in effect for the certificates to which the policy is
--   attached).
module Network.AWS.IoT.CreatePolicyVersion

-- | Creates a value of <a>CreatePolicyVersion</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>cpvSetAsDefault</a> - Specifies whether the policy version is
--   set as the default. When this parameter is true, the new policy
--   version becomes the operative version (that is, the version that is in
--   effect for the certificates to which the policy is attached).</li>
--   <li><a>cpvPolicyName</a> - The policy name.</li>
--   <li><a>cpvPolicyDocument</a> - The JSON document that describes the
--   policy. Minimum length of 1. Maximum length of 2048, excluding
--   whitespaces</li>
--   </ul>
createPolicyVersion :: Text -> Text -> CreatePolicyVersion

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

-- | Specifies whether the policy version is set as the default. When this
--   parameter is true, the new policy version becomes the operative
--   version (that is, the version that is in effect for the certificates
--   to which the policy is attached).
cpvSetAsDefault :: Lens' CreatePolicyVersion (Maybe Bool)

-- | The policy name.
cpvPolicyName :: Lens' CreatePolicyVersion Text

-- | The JSON document that describes the policy. Minimum length of 1.
--   Maximum length of 2048, excluding whitespaces
cpvPolicyDocument :: Lens' CreatePolicyVersion Text

-- | Creates a value of <a>CreatePolicyVersionResponse</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>cpvrsPolicyDocument</a> - The JSON document that describes the
--   policy.</li>
--   <li><a>cpvrsPolicyVersionId</a> - The policy version ID.</li>
--   <li><a>cpvrsPolicyARN</a> - The policy ARN.</li>
--   <li><a>cpvrsIsDefaultVersion</a> - Specifies whether the policy
--   version is the default.</li>
--   <li><a>cpvrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPolicyVersionResponse :: Int -> CreatePolicyVersionResponse

-- | The output of the CreatePolicyVersion operation.
--   
--   <i>See:</i> <a>createPolicyVersionResponse</a> smart constructor.
data CreatePolicyVersionResponse

-- | The JSON document that describes the policy.
cpvrsPolicyDocument :: Lens' CreatePolicyVersionResponse (Maybe Text)

-- | The policy version ID.
cpvrsPolicyVersionId :: Lens' CreatePolicyVersionResponse (Maybe Text)

-- | The policy ARN.
cpvrsPolicyARN :: Lens' CreatePolicyVersionResponse (Maybe Text)

-- | Specifies whether the policy version is the default.
cpvrsIsDefaultVersion :: Lens' CreatePolicyVersionResponse (Maybe Bool)

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


-- | Creates an AWS IoT policy.
--   
--   The created policy is the default version for the policy. This
--   operation creates a policy version with a version identifier of
--   <b>1</b> and sets <b>1</b> as the policy's default version.
module Network.AWS.IoT.CreatePolicy

-- | Creates a value of <a>CreatePolicy</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>cpPolicyName</a> - The policy name.</li>
--   <li><a>cpPolicyDocument</a> - The JSON document that describes the
--   policy. <b>policyDocument</b> must have a minimum length of 1, with a
--   maximum length of 2048, excluding whitespace.</li>
--   </ul>
createPolicy :: Text -> Text -> CreatePolicy

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

-- | The policy name.
cpPolicyName :: Lens' CreatePolicy Text

-- | The JSON document that describes the policy. <b>policyDocument</b>
--   must have a minimum length of 1, with a maximum length of 2048,
--   excluding whitespace.
cpPolicyDocument :: Lens' CreatePolicy Text

-- | Creates a value of <a>CreatePolicyResponse</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>cprsPolicyName</a> - The policy name.</li>
--   <li><a>cprsPolicyDocument</a> - The JSON document that describes the
--   policy.</li>
--   <li><a>cprsPolicyVersionId</a> - The policy version ID.</li>
--   <li><a>cprsPolicyARN</a> - The policy ARN.</li>
--   <li><a>cprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createPolicyResponse :: Int -> CreatePolicyResponse

-- | The output from the CreatePolicy operation.
--   
--   <i>See:</i> <a>createPolicyResponse</a> smart constructor.
data CreatePolicyResponse

-- | The policy name.
cprsPolicyName :: Lens' CreatePolicyResponse (Maybe Text)

-- | The JSON document that describes the policy.
cprsPolicyDocument :: Lens' CreatePolicyResponse (Maybe Text)

-- | The policy version ID.
cprsPolicyVersionId :: Lens' CreatePolicyResponse (Maybe Text)

-- | The policy ARN.
cprsPolicyARN :: Lens' CreatePolicyResponse (Maybe Text)

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


-- | Creates a 2048-bit RSA key pair and issues an X.509 certificate using
--   the issued public key.
--   
--   <b>Note</b> This is the only time AWS IoT issues the private key for
--   this certificate, so it is important to keep it in a secure location.
module Network.AWS.IoT.CreateKeysAndCertificate

-- | Creates a value of <a>CreateKeysAndCertificate</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>ckacSetAsActive</a> - Specifies whether the certificate is
--   active.</li>
--   </ul>
createKeysAndCertificate :: CreateKeysAndCertificate

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

-- | Specifies whether the certificate is active.
ckacSetAsActive :: Lens' CreateKeysAndCertificate (Maybe Bool)

-- | Creates a value of <a>CreateKeysAndCertificateResponse</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>ckacrsKeyPair</a> - The generated key pair.</li>
--   <li><a>ckacrsCertificatePem</a> - The certificate data, in PEM
--   format.</li>
--   <li><a>ckacrsCertificateARN</a> - The ARN of the certificate.</li>
--   <li><a>ckacrsCertificateId</a> - The ID of the certificate. AWS IoT
--   issues a default subject name for the certificate (for example, AWS
--   IoT Certificate).</li>
--   <li><a>ckacrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createKeysAndCertificateResponse :: Int -> CreateKeysAndCertificateResponse

-- | The output of the CreateKeysAndCertificate operation.
--   
--   <i>See:</i> <a>createKeysAndCertificateResponse</a> smart constructor.
data CreateKeysAndCertificateResponse

-- | The generated key pair.
ckacrsKeyPair :: Lens' CreateKeysAndCertificateResponse (Maybe KeyPair)

-- | The certificate data, in PEM format.
ckacrsCertificatePem :: Lens' CreateKeysAndCertificateResponse (Maybe Text)

-- | The ARN of the certificate.
ckacrsCertificateARN :: Lens' CreateKeysAndCertificateResponse (Maybe Text)

-- | The ID of the certificate. AWS IoT issues a default subject name for
--   the certificate (for example, AWS IoT Certificate).
ckacrsCertificateId :: Lens' CreateKeysAndCertificateResponse (Maybe Text)

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


-- | Creates an X.509 certificate using the specified certificate signing
--   request.
--   
--   <b>Note</b> Reusing the same certificate signing request (CSR) results
--   in a distinct certificate.
--   
--   You can create multiple certificates in a batch by creating a
--   directory, copying multiple .csr files into that directory, and then
--   specifying that directory on the command line. The following commands
--   show how to create a batch of certificates given a batch of CSRs.
--   
--   Assuming a set of CSRs are located inside of the directory
--   my-csr-directory:
--   
--   On Linux and OS X, the command is:
--   
--   <pre>
--   ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}
--   </pre>
--   
--   This command lists all of the CSRs in my-csr-directory and pipes each
--   CSR file name to the aws iot create-certificate-from-csr AWS CLI
--   command to create a certificate for the corresponding CSR.
--   
--   The aws iot create-certificate-from-csr part of the command can also
--   be run in parallel to speed up the certificate creation process:
--   
--   <pre>
--   ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}
--   </pre>
--   
--   On Windows PowerShell, the command to create certificates for all CSRs
--   in my-csr-directory is:
--   
--   <pre>
--   ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}
--   </pre>
--   
--   On a Windows command prompt, the command to create certificates for
--   all CSRs in my-csr-directory is:
--   
--   <pre>
--   forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path"
--   </pre>
module Network.AWS.IoT.CreateCertificateFromCSR

-- | Creates a value of <a>CreateCertificateFromCSR</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>ccfcsrSetAsActive</a> - Specifies whether the certificate is
--   active.</li>
--   <li><a>ccfcsrCertificateSigningRequest</a> - The certificate signing
--   request (CSR).</li>
--   </ul>
createCertificateFromCSR :: Text -> CreateCertificateFromCSR

-- | The input for the CreateCertificateFromCsr operation.
--   
--   <i>See:</i> <a>createCertificateFromCSR</a> smart constructor.
data CreateCertificateFromCSR

-- | Specifies whether the certificate is active.
ccfcsrSetAsActive :: Lens' CreateCertificateFromCSR (Maybe Bool)

-- | The certificate signing request (CSR).
ccfcsrCertificateSigningRequest :: Lens' CreateCertificateFromCSR Text

-- | Creates a value of <a>CreateCertificateFromCSRResponse</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>ccfcsrrsCertificatePem</a> - The certificate data, in PEM
--   format.</li>
--   <li><a>ccfcsrrsCertificateARN</a> - The Amazon Resource Name (ARN) of
--   the certificate. You can use the ARN as a principal for policy
--   operations.</li>
--   <li><a>ccfcsrrsCertificateId</a> - The ID of the certificate.
--   Certificate management operations only take a certificateId.</li>
--   <li><a>ccfcsrrsResponseStatus</a> - -- | The response status
--   code.</li>
--   </ul>
createCertificateFromCSRResponse :: Int -> CreateCertificateFromCSRResponse

-- | The output from the CreateCertificateFromCsr operation.
--   
--   <i>See:</i> <a>createCertificateFromCSRResponse</a> smart constructor.
data CreateCertificateFromCSRResponse

-- | The certificate data, in PEM format.
ccfcsrrsCertificatePem :: Lens' CreateCertificateFromCSRResponse (Maybe Text)

-- | The Amazon Resource Name (ARN) of the certificate. You can use the ARN
--   as a principal for policy operations.
ccfcsrrsCertificateARN :: Lens' CreateCertificateFromCSRResponse (Maybe Text)

-- | The ID of the certificate. Certificate management operations only take
--   a certificateId.
ccfcsrrsCertificateId :: Lens' CreateCertificateFromCSRResponse (Maybe Text)

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


-- | Cancels a pending transfer for the specified certificate.
--   
--   <b>Note</b> Only the transfer source account can use this operation to
--   cancel a transfer. (Transfer destinations can use
--   <tt>RejectCertificateTransfer</tt> instead.) After transfer, AWS IoT
--   returns the certificate to the source account in the INACTIVE state.
--   After the destination account has accepted the transfer, the transfer
--   cannot be cancelled.
--   
--   After a certificate transfer is cancelled, the status of the
--   certificate changes from PENDING_TRANSFER to INACTIVE.
module Network.AWS.IoT.CancelCertificateTransfer

-- | Creates a value of <a>CancelCertificateTransfer</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>cctCertificateId</a> - The ID of the certificate.</li>
--   </ul>
cancelCertificateTransfer :: Text -> CancelCertificateTransfer

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

-- | The ID of the certificate.
cctCertificateId :: Lens' CancelCertificateTransfer Text

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

-- | <i>See:</i> <a>cancelCertificateTransferResponse</a> smart
--   constructor.
data CancelCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
instance Data.Data.Data Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
instance GHC.Show.Show Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
instance GHC.Read.Read Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
instance GHC.Classes.Eq Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Data.Data.Data Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance GHC.Show.Show Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance GHC.Read.Read Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance GHC.Classes.Eq Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Data.Hashable.Class.Hashable Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse


-- | Attaches the specified principal to the specified thing.
module Network.AWS.IoT.AttachThingPrincipal

-- | Creates a value of <a>AttachThingPrincipal</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>atpThingName</a> - The name of the thing.</li>
--   <li><a>atpPrincipal</a> - The principal, such as a certificate or
--   other credential.</li>
--   </ul>
attachThingPrincipal :: Text -> Text -> AttachThingPrincipal

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

-- | The name of the thing.
atpThingName :: Lens' AttachThingPrincipal Text

-- | The principal, such as a certificate or other credential.
atpPrincipal :: Lens' AttachThingPrincipal Text

-- | Creates a value of <a>AttachThingPrincipalResponse</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>atprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
attachThingPrincipalResponse :: Int -> AttachThingPrincipalResponse

-- | The output from the AttachThingPrincipal operation.
--   
--   <i>See:</i> <a>attachThingPrincipalResponse</a> smart constructor.
data AttachThingPrincipalResponse

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


-- | Attaches the specified policy to the specified principal (certificate
--   or other credential).
module Network.AWS.IoT.AttachPrincipalPolicy

-- | Creates a value of <a>AttachPrincipalPolicy</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>appPolicyName</a> - The policy name.</li>
--   <li><a>appPrincipal</a> - The principal, which can be a certificate
--   ARN (as returned from the CreateCertificate operation) or an Amazon
--   Cognito ID.</li>
--   </ul>
attachPrincipalPolicy :: Text -> Text -> AttachPrincipalPolicy

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

-- | The policy name.
appPolicyName :: Lens' AttachPrincipalPolicy Text

-- | The principal, which can be a certificate ARN (as returned from the
--   CreateCertificate operation) or an Amazon Cognito ID.
appPrincipal :: Lens' AttachPrincipalPolicy Text

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

-- | <i>See:</i> <a>attachPrincipalPolicyResponse</a> smart constructor.
data AttachPrincipalPolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse
instance Data.Data.Data Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse
instance GHC.Show.Show Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse
instance GHC.Read.Read Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse
instance GHC.Classes.Eq Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse
instance GHC.Generics.Generic Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Data.Data.Data Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance GHC.Show.Show Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance GHC.Read.Read Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance GHC.Classes.Eq Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Data.Hashable.Class.Hashable Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicy
instance Control.DeepSeq.NFData Network.AWS.IoT.AttachPrincipalPolicy.AttachPrincipalPolicyResponse


-- | Accepts a pending certificate transfer. The default state of the
--   certificate is INACTIVE.
--   
--   To check for pending certificate transfers, call
--   <tt>ListCertificates</tt> to enumerate your certificates.
module Network.AWS.IoT.AcceptCertificateTransfer

-- | Creates a value of <a>AcceptCertificateTransfer</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>actSetAsActive</a> - Specifies whether the certificate is
--   active.</li>
--   <li><a>actCertificateId</a> - The ID of the certificate.</li>
--   </ul>
acceptCertificateTransfer :: Text -> AcceptCertificateTransfer

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

-- | Specifies whether the certificate is active.
actSetAsActive :: Lens' AcceptCertificateTransfer (Maybe Bool)

-- | The ID of the certificate.
actCertificateId :: Lens' AcceptCertificateTransfer Text

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

-- | <i>See:</i> <a>acceptCertificateTransferResponse</a> smart
--   constructor.
data AcceptCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
instance Data.Data.Data Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
instance GHC.Show.Show Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
instance GHC.Read.Read Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
instance GHC.Classes.Eq Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
instance GHC.Generics.Generic Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Data.Data.Data Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance GHC.Show.Show Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance GHC.Read.Read Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance GHC.Classes.Eq Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Network.AWS.Types.AWSRequest Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Data.Hashable.Class.Hashable Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Network.AWS.Data.Path.ToPath Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Network.AWS.Data.Query.ToQuery Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransfer
instance Control.DeepSeq.NFData Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse


-- | <b>AWS IoT</b>
--   
--   AWS IoT provides secure, bi-directional communication between
--   Internet-connected things (such as sensors, actuators, embedded
--   devices, or smart appliances) and the AWS cloud. You can discover your
--   custom IoT-Data endpoint to communicate with, configure rules for data
--   processing and integration with other services, organize resources
--   associated with each thing (Thing Registry), configure logging, and
--   create and manage policies and credentials to authenticate things.
--   
--   For more information about how AWS IoT works, see the <a>Developer
--   Guide</a> .
module Network.AWS.IoT

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

-- | Unable to verify the CA certificate used to sign the device
--   certificate you are attempting to register. This is happens when you
--   have registered more than one CA certificate that has the same subject
--   field and public key.
_CertificateConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The Rule-SQL expression can't be parsed correctly.
_SqlParseException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | You can't transfer the certificate because authorization policies are
--   still attached.
_TransferConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The certificate operation is not allowed.
_CertificateStateException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The registration code is invalid.
_RegistrationCodeValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The policy documentation is not valid.
_MalformedPolicyException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You can't delete the resource because it is attached to one or more
--   resources.
_DeleteConflictException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The resource already exists.
_ResourceAlreadyExistsException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The certificate is invalid.
_CertificateValidationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You can't revert the certificate transfer because the transfer is
--   already complete.
_TransferAlreadyCompletedException :: AsError a => Getting (First ServiceError) a ServiceError

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

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

-- | The number of policy versions exceeds the limit.
_VersionsLimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

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

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

-- | An exception thrown when the version of a thing passed to a command is
--   different than the version specified with the --version parameter.
_VersionConflictException :: 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 number of attached entities exceeds the limit.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError
data AutoRegistrationStatus
Disable :: AutoRegistrationStatus
Enable :: AutoRegistrationStatus
data CACertificateStatus
CACSActive :: CACertificateStatus
CACSInactive :: CACertificateStatus
data CannedAccessControlList
AWSExecRead :: CannedAccessControlList
AuthenticatedRead :: CannedAccessControlList
BucketOwnerFullControl :: CannedAccessControlList
BucketOwnerRead :: CannedAccessControlList
LogDeliveryWrite :: CannedAccessControlList
Private :: CannedAccessControlList
PublicRead :: CannedAccessControlList
PublicReadWrite :: CannedAccessControlList
data CertificateStatus
Active :: CertificateStatus
Inactive :: CertificateStatus
PendingActivation :: CertificateStatus
PendingTransfer :: CertificateStatus
RegisterInactive :: CertificateStatus
Revoked :: CertificateStatus
data DynamoKeyType
Number :: DynamoKeyType
String :: DynamoKeyType
data LogLevel
Debug :: LogLevel
Disabled :: LogLevel
Error' :: LogLevel
Info :: LogLevel
Warn :: LogLevel
data MessageFormat
JSON :: MessageFormat
Raw :: MessageFormat

-- | Describes the actions associated with a rule.
--   
--   <i>See:</i> <a>action</a> smart constructor.
data Action

-- | Creates a value of <a>Action</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>aCloudwatchMetric</a> - Capture a CloudWatch metric.</li>
--   <li><a>aDynamoDBv2</a> - Write to a DynamoDB table. This is a new
--   version of the DynamoDB action. It allows you to write each attribute
--   in an MQTT message payload into a separate DynamoDB column.</li>
--   <li><a>aCloudwatchAlarm</a> - Change the state of a CloudWatch
--   alarm.</li>
--   <li><a>aSns</a> - Publish to an Amazon SNS topic.</li>
--   <li><a>aDynamoDB</a> - Write to a DynamoDB table.</li>
--   <li><a>aFirehose</a> - Write to an Amazon Kinesis Firehose
--   stream.</li>
--   <li><a>aLambda</a> - Invoke a Lambda function.</li>
--   <li><a>aKinesis</a> - Write data to an Amazon Kinesis stream.</li>
--   <li><a>aS3</a> - Write to an Amazon S3 bucket.</li>
--   <li><a>aElasticsearch</a> - Write data to an Amazon Elasticsearch
--   Service domain.</li>
--   <li><a>aRepublish</a> - Publish to another MQTT topic.</li>
--   <li><a>aSqs</a> - Publish to an Amazon SQS queue.</li>
--   </ul>
action :: Action

-- | Capture a CloudWatch metric.
aCloudwatchMetric :: Lens' Action (Maybe CloudwatchMetricAction)

-- | Write to a DynamoDB table. This is a new version of the DynamoDB
--   action. It allows you to write each attribute in an MQTT message
--   payload into a separate DynamoDB column.
aDynamoDBv2 :: Lens' Action (Maybe DynamoDBv2Action)

-- | Change the state of a CloudWatch alarm.
aCloudwatchAlarm :: Lens' Action (Maybe CloudwatchAlarmAction)

-- | Publish to an Amazon SNS topic.
aSns :: Lens' Action (Maybe SNSAction)

-- | Write to a DynamoDB table.
aDynamoDB :: Lens' Action (Maybe DynamoDBAction)

-- | Write to an Amazon Kinesis Firehose stream.
aFirehose :: Lens' Action (Maybe FirehoseAction)

-- | Invoke a Lambda function.
aLambda :: Lens' Action (Maybe LambdaAction)

-- | Write data to an Amazon Kinesis stream.
aKinesis :: Lens' Action (Maybe KinesisAction)

-- | Write to an Amazon S3 bucket.
aS3 :: Lens' Action (Maybe S3Action)

-- | Write data to an Amazon Elasticsearch Service domain.
aElasticsearch :: Lens' Action (Maybe ElasticsearchAction)

-- | Publish to another MQTT topic.
aRepublish :: Lens' Action (Maybe RepublishAction)

-- | Publish to an Amazon SQS queue.
aSqs :: Lens' Action (Maybe SqsAction)

-- | The attribute payload.
--   
--   <i>See:</i> <a>attributePayload</a> smart constructor.
data AttributePayload

-- | Creates a value of <a>AttributePayload</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>apAttributes</a> - A JSON string containing up to three
--   key-value pair in JSON format. For example:
--   <tt>{"attributes":{"string1":"string2"}})</tt></li>
--   <li><a>apMerge</a> - Specifies whether the list of attributes provided
--   in the <tt>AttributePayload</tt> is merged with the attributes stored
--   in the registry, instead of overwriting them. To remove an attribute,
--   call <tt>UpdateThing</tt> with an empty attribute value.</li>
--   </ul>
attributePayload :: AttributePayload

-- | A JSON string containing up to three key-value pair in JSON format.
--   For example: <tt>{"attributes":{"string1":"string2"}})</tt>
apAttributes :: Lens' AttributePayload (HashMap Text Text)

-- | Specifies whether the list of attributes provided in the
--   <tt>AttributePayload</tt> is merged with the attributes stored in the
--   registry, instead of overwriting them. To remove an attribute, call
--   <tt>UpdateThing</tt> with an empty attribute value.
apMerge :: Lens' AttributePayload (Maybe Bool)

-- | A CA certificate.
--   
--   <i>See:</i> <a>cACertificate</a> smart constructor.
data CACertificate

-- | Creates a value of <a>CACertificate</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>cacStatus</a> - The status of the CA certificate. The status
--   value REGISTER_INACTIVE is deprecated and should not be used.</li>
--   <li><a>cacCertificateARN</a> - The ARN of the CA certificate.</li>
--   <li><a>cacCertificateId</a> - The ID of the CA certificate.</li>
--   <li><a>cacCreationDate</a> - The date the CA certificate was
--   created.</li>
--   </ul>
cACertificate :: CACertificate

-- | The status of the CA certificate. The status value REGISTER_INACTIVE
--   is deprecated and should not be used.
cacStatus :: Lens' CACertificate (Maybe CACertificateStatus)

-- | The ARN of the CA certificate.
cacCertificateARN :: Lens' CACertificate (Maybe Text)

-- | The ID of the CA certificate.
cacCertificateId :: Lens' CACertificate (Maybe Text)

-- | The date the CA certificate was created.
cacCreationDate :: Lens' CACertificate (Maybe UTCTime)

-- | Describes a CA certificate.
--   
--   <i>See:</i> <a>cACertificateDescription</a> smart constructor.
data CACertificateDescription

-- | Creates a value of <a>CACertificateDescription</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>cacdStatus</a> - The status of a CA certificate.</li>
--   <li><a>cacdOwnedBy</a> - The owner of the CA certificate.</li>
--   <li><a>cacdCertificatePem</a> - The CA certificate data, in PEM
--   format.</li>
--   <li><a>cacdCertificateARN</a> - The CA certificate ARN.</li>
--   <li><a>cacdCertificateId</a> - The CA certificate ID.</li>
--   <li><a>cacdAutoRegistrationStatus</a> - Whether the CA certificate
--   configured for auto registration of device certificates. Valid values
--   are <a>ENABLE</a> and <a>DISABLE</a></li>
--   <li><a>cacdCreationDate</a> - The date the CA certificate was
--   created.</li>
--   </ul>
cACertificateDescription :: CACertificateDescription

-- | The status of a CA certificate.
cacdStatus :: Lens' CACertificateDescription (Maybe CACertificateStatus)

-- | The owner of the CA certificate.
cacdOwnedBy :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate data, in PEM format.
cacdCertificatePem :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate ARN.
cacdCertificateARN :: Lens' CACertificateDescription (Maybe Text)

-- | The CA certificate ID.
cacdCertificateId :: Lens' CACertificateDescription (Maybe Text)

-- | Whether the CA certificate configured for auto registration of device
--   certificates. Valid values are <a>ENABLE</a> and <a>DISABLE</a>
cacdAutoRegistrationStatus :: Lens' CACertificateDescription (Maybe AutoRegistrationStatus)

-- | The date the CA certificate was created.
cacdCreationDate :: Lens' CACertificateDescription (Maybe UTCTime)

-- | Information about a certificate.
--   
--   <i>See:</i> <a>certificate</a> smart constructor.
data Certificate

-- | Creates a value of <a>Certificate</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>cStatus</a> - The status of the certificate. The status value
--   REGISTER_INACTIVE is deprecated and should not be used.</li>
--   <li><a>cCertificateARN</a> - The ARN of the certificate.</li>
--   <li><a>cCertificateId</a> - The ID of the certificate.</li>
--   <li><a>cCreationDate</a> - The date and time the certificate was
--   created.</li>
--   </ul>
certificate :: Certificate

-- | The status of the certificate. The status value REGISTER_INACTIVE is
--   deprecated and should not be used.
cStatus :: Lens' Certificate (Maybe CertificateStatus)

-- | The ARN of the certificate.
cCertificateARN :: Lens' Certificate (Maybe Text)

-- | The ID of the certificate.
cCertificateId :: Lens' Certificate (Maybe Text)

-- | The date and time the certificate was created.
cCreationDate :: Lens' Certificate (Maybe UTCTime)

-- | Describes a certificate.
--   
--   <i>See:</i> <a>certificateDescription</a> smart constructor.
data CertificateDescription

-- | Creates a value of <a>CertificateDescription</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>cdStatus</a> - The status of the certificate.</li>
--   <li><a>cdOwnedBy</a> - The ID of the AWS account that owns the
--   certificate.</li>
--   <li><a>cdLastModifiedDate</a> - The date and time the certificate was
--   last modified.</li>
--   <li><a>cdCaCertificateId</a> - The certificate ID of the CA
--   certificate used to sign this certificate.</li>
--   <li><a>cdPreviousOwnedBy</a> - The ID of the AWS account of the
--   previous owner of the certificate.</li>
--   <li><a>cdCertificatePem</a> - The certificate data, in PEM
--   format.</li>
--   <li><a>cdCertificateARN</a> - The ARN of the certificate.</li>
--   <li><a>cdCertificateId</a> - The ID of the certificate.</li>
--   <li><a>cdCreationDate</a> - The date and time the certificate was
--   created.</li>
--   <li><a>cdTransferData</a> - The transfer data.</li>
--   </ul>
certificateDescription :: CertificateDescription

-- | The status of the certificate.
cdStatus :: Lens' CertificateDescription (Maybe CertificateStatus)

-- | The ID of the AWS account that owns the certificate.
cdOwnedBy :: Lens' CertificateDescription (Maybe Text)

-- | The date and time the certificate was last modified.
cdLastModifiedDate :: Lens' CertificateDescription (Maybe UTCTime)

-- | The certificate ID of the CA certificate used to sign this
--   certificate.
cdCaCertificateId :: Lens' CertificateDescription (Maybe Text)

-- | The ID of the AWS account of the previous owner of the certificate.
cdPreviousOwnedBy :: Lens' CertificateDescription (Maybe Text)

-- | The certificate data, in PEM format.
cdCertificatePem :: Lens' CertificateDescription (Maybe Text)

-- | The ARN of the certificate.
cdCertificateARN :: Lens' CertificateDescription (Maybe Text)

-- | The ID of the certificate.
cdCertificateId :: Lens' CertificateDescription (Maybe Text)

-- | The date and time the certificate was created.
cdCreationDate :: Lens' CertificateDescription (Maybe UTCTime)

-- | The transfer data.
cdTransferData :: Lens' CertificateDescription (Maybe TransferData)

-- | Describes an action that updates a CloudWatch alarm.
--   
--   <i>See:</i> <a>cloudwatchAlarmAction</a> smart constructor.
data CloudwatchAlarmAction

-- | Creates a value of <a>CloudwatchAlarmAction</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>caaRoleARN</a> - The IAM role that allows access to the
--   CloudWatch alarm.</li>
--   <li><a>caaAlarmName</a> - The CloudWatch alarm name.</li>
--   <li><a>caaStateReason</a> - The reason for the alarm change.</li>
--   <li><a>caaStateValue</a> - The value of the alarm state. Acceptable
--   values are: OK, ALARM, INSUFFICIENT_DATA.</li>
--   </ul>
cloudwatchAlarmAction :: Text -> Text -> Text -> Text -> CloudwatchAlarmAction

-- | The IAM role that allows access to the CloudWatch alarm.
caaRoleARN :: Lens' CloudwatchAlarmAction Text

-- | The CloudWatch alarm name.
caaAlarmName :: Lens' CloudwatchAlarmAction Text

-- | The reason for the alarm change.
caaStateReason :: Lens' CloudwatchAlarmAction Text

-- | The value of the alarm state. Acceptable values are: OK, ALARM,
--   INSUFFICIENT_DATA.
caaStateValue :: Lens' CloudwatchAlarmAction Text

-- | Describes an action that captures a CloudWatch metric.
--   
--   <i>See:</i> <a>cloudwatchMetricAction</a> smart constructor.
data CloudwatchMetricAction

-- | Creates a value of <a>CloudwatchMetricAction</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>cmaMetricTimestamp</a> - An optional <a>Unix timestamp</a>
--   .</li>
--   <li><a>cmaRoleARN</a> - The IAM role that allows access to the
--   CloudWatch metric.</li>
--   <li><a>cmaMetricNamespace</a> - The CloudWatch metric namespace
--   name.</li>
--   <li><a>cmaMetricName</a> - The CloudWatch metric name.</li>
--   <li><a>cmaMetricValue</a> - The CloudWatch metric value.</li>
--   <li><a>cmaMetricUnit</a> - The <a>metric unit</a> supported by
--   CloudWatch.</li>
--   </ul>
cloudwatchMetricAction :: Text -> Text -> Text -> Text -> Text -> CloudwatchMetricAction

-- | An optional <a>Unix timestamp</a> .
cmaMetricTimestamp :: Lens' CloudwatchMetricAction (Maybe Text)

-- | The IAM role that allows access to the CloudWatch metric.
cmaRoleARN :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric namespace name.
cmaMetricNamespace :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric name.
cmaMetricName :: Lens' CloudwatchMetricAction Text

-- | The CloudWatch metric value.
cmaMetricValue :: Lens' CloudwatchMetricAction Text

-- | The <a>metric unit</a> supported by CloudWatch.
cmaMetricUnit :: Lens' CloudwatchMetricAction Text

-- | Describes an action to write to a DynamoDB table.
--   
--   The <tt>tableName</tt> , <tt>hashKeyField</tt> , and
--   <tt>rangeKeyField</tt> values must match the values used when you
--   created the table.
--   
--   The <tt>hashKeyValue</tt> and <tt>rangeKeyvalue</tt> fields use a
--   substitution template syntax. These templates provide data at runtime.
--   The syntax is as follows: ${<i>sql-expression</i> }.
--   
--   You can specify any valid expression in a WHERE or SELECT clause,
--   including JSON properties, comparisons, calculations, and functions.
--   For example, the following field uses the third level of the topic:
--   
--   <pre>
--   "hashKeyValue": "${topic(3)}"
--   </pre>
--   
--   The following field uses the timestamp:
--   
--   <pre>
--   "rangeKeyValue": "${timestamp()}"
--   </pre>
--   
--   <i>See:</i> <a>dynamoDBAction</a> smart constructor.
data DynamoDBAction

-- | Creates a value of <a>DynamoDBAction</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>ddbaHashKeyType</a> - The hash key type. Valid values are
--   <a>STRING</a> or <a>NUMBER</a></li>
--   <li><a>ddbaOperation</a> - The type of operation to be performed. This
--   follows the substitution template, so it can be <tt>&gt;
--   {operation}</tt> , but the substitution must result in one of the
--   following: <tt>INSERT</tt> , <tt>UPDATE</tt> , or <tt>DELETE</tt>
--   .</li>
--   <li><a>ddbaRangeKeyType</a> - The range key type. Valid values are
--   <a>STRING</a> or <a>NUMBER</a></li>
--   <li><a>ddbaPayloadField</a> - The action payload. This name can be
--   customized.</li>
--   <li><a>ddbaRangeKeyField</a> - The range key name.</li>
--   <li><a>ddbaRangeKeyValue</a> - The range key value.</li>
--   <li><a>ddbaTableName</a> - The name of the DynamoDB table.</li>
--   <li><a>ddbaRoleARN</a> - The ARN of the IAM role that grants access to
--   the DynamoDB table.</li>
--   <li><a>ddbaHashKeyField</a> - The hash key name.</li>
--   <li><a>ddbaHashKeyValue</a> - The hash key value.</li>
--   </ul>
dynamoDBAction :: Text -> Text -> Text -> Text -> DynamoDBAction

-- | The hash key type. Valid values are <a>STRING</a> or <a>NUMBER</a>
ddbaHashKeyType :: Lens' DynamoDBAction (Maybe DynamoKeyType)

-- | The type of operation to be performed. This follows the substitution
--   template, so it can be <tt>&gt; {operation}</tt> , but the
--   substitution must result in one of the following: <tt>INSERT</tt> ,
--   <tt>UPDATE</tt> , or <tt>DELETE</tt> .
ddbaOperation :: Lens' DynamoDBAction (Maybe Text)

-- | The range key type. Valid values are <a>STRING</a> or <a>NUMBER</a>
ddbaRangeKeyType :: Lens' DynamoDBAction (Maybe DynamoKeyType)

-- | The action payload. This name can be customized.
ddbaPayloadField :: Lens' DynamoDBAction (Maybe Text)

-- | The range key name.
ddbaRangeKeyField :: Lens' DynamoDBAction (Maybe Text)

-- | The range key value.
ddbaRangeKeyValue :: Lens' DynamoDBAction (Maybe Text)

-- | The name of the DynamoDB table.
ddbaTableName :: Lens' DynamoDBAction Text

-- | The ARN of the IAM role that grants access to the DynamoDB table.
ddbaRoleARN :: Lens' DynamoDBAction Text

-- | The hash key name.
ddbaHashKeyField :: Lens' DynamoDBAction Text

-- | The hash key value.
ddbaHashKeyValue :: Lens' DynamoDBAction Text

-- | Describes an action to write to a DynamoDB table.
--   
--   This DynamoDB action writes each attribute in the message payload into
--   it's own column in the DynamoDB table.
--   
--   <i>See:</i> <a>dynamoDBv2Action</a> smart constructor.
data DynamoDBv2Action

-- | Creates a value of <a>DynamoDBv2Action</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>ddaPutItem</a> - Specifies the DynamoDB table to which the
--   message data will be written. For example: <tt>{ "dynamoDBv2": {
--   "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
--   "my-table" } } }</tt> Each attribute in the message payload will be
--   written to a separate column in the DynamoDB database.</li>
--   <li><a>ddaRoleARN</a> - The ARN of the IAM role that grants access to
--   the DynamoDB table.</li>
--   </ul>
dynamoDBv2Action :: DynamoDBv2Action

-- | Specifies the DynamoDB table to which the message data will be
--   written. For example: <tt>{ "dynamoDBv2": { "roleArn":
--   "aws:iam:12341251:my-role" "putItem": { "tableName": "my-table" } }
--   }</tt> Each attribute in the message payload will be written to a
--   separate column in the DynamoDB database.
ddaPutItem :: Lens' DynamoDBv2Action (Maybe PutItemInput)

-- | The ARN of the IAM role that grants access to the DynamoDB table.
ddaRoleARN :: Lens' DynamoDBv2Action (Maybe Text)

-- | Describes an action that writes data to an Amazon Elasticsearch
--   Service domain.
--   
--   <i>See:</i> <a>elasticsearchAction</a> smart constructor.
data ElasticsearchAction

-- | Creates a value of <a>ElasticsearchAction</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>eaRoleARN</a> - The IAM role ARN that has access to
--   Elasticsearch.</li>
--   <li><a>eaEndpoint</a> - The endpoint of your Elasticsearch
--   domain.</li>
--   <li><a>eaIndex</a> - The Elasticsearch index where you want to store
--   your data.</li>
--   <li><a>eaType</a> - The type of document you are storing.</li>
--   <li><a>eaId</a> - The unique identifier for the document you are
--   storing.</li>
--   </ul>
elasticsearchAction :: Text -> Text -> Text -> Text -> Text -> ElasticsearchAction

-- | The IAM role ARN that has access to Elasticsearch.
eaRoleARN :: Lens' ElasticsearchAction Text

-- | The endpoint of your Elasticsearch domain.
eaEndpoint :: Lens' ElasticsearchAction Text

-- | The Elasticsearch index where you want to store your data.
eaIndex :: Lens' ElasticsearchAction Text

-- | The type of document you are storing.
eaType :: Lens' ElasticsearchAction Text

-- | The unique identifier for the document you are storing.
eaId :: Lens' ElasticsearchAction Text

-- | Describes an action that writes data to an Amazon Kinesis Firehose
--   stream.
--   
--   <i>See:</i> <a>firehoseAction</a> smart constructor.
data FirehoseAction

-- | Creates a value of <a>FirehoseAction</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>faSeparator</a> - A character separator that will be used to
--   separate records written to the Firehose stream. Valid values are:
--   '\n' (newline), '\t' (tab), '\r\n' (Windows newline), ','
--   (comma).</li>
--   <li><a>faRoleARN</a> - The IAM role that grants access to the Amazon
--   Kinesis Firehost stream.</li>
--   <li><a>faDeliveryStreamName</a> - The delivery stream name.</li>
--   </ul>
firehoseAction :: Text -> Text -> FirehoseAction

-- | A character separator that will be used to separate records written to
--   the Firehose stream. Valid values are: '\n' (newline), '\t' (tab),
--   '\r\n' (Windows newline), ',' (comma).
faSeparator :: Lens' FirehoseAction (Maybe Text)

-- | The IAM role that grants access to the Amazon Kinesis Firehost stream.
faRoleARN :: Lens' FirehoseAction Text

-- | The delivery stream name.
faDeliveryStreamName :: Lens' FirehoseAction Text

-- | Describes a key pair.
--   
--   <i>See:</i> <a>keyPair</a> smart constructor.
data KeyPair

-- | Creates a value of <a>KeyPair</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>kpPrivateKey</a> - The private key.</li>
--   <li><a>kpPublicKey</a> - The public key.</li>
--   </ul>
keyPair :: KeyPair

-- | The private key.
kpPrivateKey :: Lens' KeyPair (Maybe Text)

-- | The public key.
kpPublicKey :: Lens' KeyPair (Maybe Text)

-- | Describes an action to write data to an Amazon Kinesis stream.
--   
--   <i>See:</i> <a>kinesisAction</a> smart constructor.
data KinesisAction

-- | Creates a value of <a>KinesisAction</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>kaPartitionKey</a> - The partition key.</li>
--   <li><a>kaRoleARN</a> - The ARN of the IAM role that grants access to
--   the Amazon Kinesis stream.</li>
--   <li><a>kaStreamName</a> - The name of the Amazon Kinesis stream.</li>
--   </ul>
kinesisAction :: Text -> Text -> KinesisAction

-- | The partition key.
kaPartitionKey :: Lens' KinesisAction (Maybe Text)

-- | The ARN of the IAM role that grants access to the Amazon Kinesis
--   stream.
kaRoleARN :: Lens' KinesisAction Text

-- | The name of the Amazon Kinesis stream.
kaStreamName :: Lens' KinesisAction Text

-- | Describes an action to invoke a Lambda function.
--   
--   <i>See:</i> <a>lambdaAction</a> smart constructor.
data LambdaAction

-- | Creates a value of <a>LambdaAction</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>laFunctionARN</a> - The ARN of the Lambda function.</li>
--   </ul>
lambdaAction :: Text -> LambdaAction

-- | The ARN of the Lambda function.
laFunctionARN :: Lens' LambdaAction Text

-- | Describes the logging options payload.
--   
--   <i>See:</i> <a>loggingOptionsPayload</a> smart constructor.
data LoggingOptionsPayload

-- | Creates a value of <a>LoggingOptionsPayload</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>lopLogLevel</a> - The logging level.</li>
--   <li><a>lopRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   </ul>
loggingOptionsPayload :: Text -> LoggingOptionsPayload

-- | The logging level.
lopLogLevel :: Lens' LoggingOptionsPayload (Maybe LogLevel)

-- | The ARN of the IAM role that grants access.
lopRoleARN :: Lens' LoggingOptionsPayload Text

-- | A certificate that has been transfered but not yet accepted.
--   
--   <i>See:</i> <a>outgoingCertificate</a> smart constructor.
data OutgoingCertificate

-- | Creates a value of <a>OutgoingCertificate</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>ocTransferDate</a> - The date the transfer was initiated.</li>
--   <li><a>ocCertificateARN</a> - The certificate ARN.</li>
--   <li><a>ocCertificateId</a> - The certificate ID.</li>
--   <li><a>ocTransferredTo</a> - The AWS account to which the transfer was
--   made.</li>
--   <li><a>ocCreationDate</a> - The certificate creation date.</li>
--   <li><a>ocTransferMessage</a> - The transfer message.</li>
--   </ul>
outgoingCertificate :: OutgoingCertificate

-- | The date the transfer was initiated.
ocTransferDate :: Lens' OutgoingCertificate (Maybe UTCTime)

-- | The certificate ARN.
ocCertificateARN :: Lens' OutgoingCertificate (Maybe Text)

-- | The certificate ID.
ocCertificateId :: Lens' OutgoingCertificate (Maybe Text)

-- | The AWS account to which the transfer was made.
ocTransferredTo :: Lens' OutgoingCertificate (Maybe Text)

-- | The certificate creation date.
ocCreationDate :: Lens' OutgoingCertificate (Maybe UTCTime)

-- | The transfer message.
ocTransferMessage :: Lens' OutgoingCertificate (Maybe Text)

-- | Describes an AWS IoT policy.
--   
--   <i>See:</i> <a>policy</a> smart constructor.
data Policy

-- | Creates a value of <a>Policy</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>pPolicyName</a> - The policy name.</li>
--   <li><a>pPolicyARN</a> - The policy ARN.</li>
--   </ul>
policy :: Policy

-- | The policy name.
pPolicyName :: Lens' Policy (Maybe Text)

-- | The policy ARN.
pPolicyARN :: Lens' Policy (Maybe Text)

-- | Describes a policy version.
--   
--   <i>See:</i> <a>policyVersion</a> smart constructor.
data PolicyVersion

-- | Creates a value of <a>PolicyVersion</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>pvVersionId</a> - The policy version ID.</li>
--   <li><a>pvCreateDate</a> - The date and time the policy was
--   created.</li>
--   <li><a>pvIsDefaultVersion</a> - Specifies whether the policy version
--   is the default.</li>
--   </ul>
policyVersion :: PolicyVersion

-- | The policy version ID.
pvVersionId :: Lens' PolicyVersion (Maybe Text)

-- | The date and time the policy was created.
pvCreateDate :: Lens' PolicyVersion (Maybe UTCTime)

-- | Specifies whether the policy version is the default.
pvIsDefaultVersion :: Lens' PolicyVersion (Maybe Bool)

-- | The input for the DynamoActionVS action that specifies the DynamoDB
--   table to which the message data will be written.
--   
--   <i>See:</i> <a>putItemInput</a> smart constructor.
data PutItemInput

-- | Creates a value of <a>PutItemInput</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>piiTableName</a> - The table where the message data will be
--   written</li>
--   </ul>
putItemInput :: Text -> PutItemInput

-- | The table where the message data will be written
piiTableName :: Lens' PutItemInput Text

-- | Describes an action to republish to another topic.
--   
--   <i>See:</i> <a>republishAction</a> smart constructor.
data RepublishAction

-- | Creates a value of <a>RepublishAction</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>raRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   <li><a>raTopic</a> - The name of the MQTT topic.</li>
--   </ul>
republishAction :: Text -> Text -> RepublishAction

-- | The ARN of the IAM role that grants access.
raRoleARN :: Lens' RepublishAction Text

-- | The name of the MQTT topic.
raTopic :: Lens' RepublishAction Text

-- | Describes an action to write data to an Amazon S3 bucket.
--   
--   <i>See:</i> <a>s3Action</a> smart constructor.
data S3Action

-- | Creates a value of <a>S3Action</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>sCannedACL</a> - The Amazon S3 canned ACL that controls access
--   to the object identified by the object key. For more information, see
--   <a>S3 canned ACLs</a> .</li>
--   <li><a>sRoleARN</a> - The ARN of the IAM role that grants access.</li>
--   <li><a>sBucketName</a> - The Amazon S3 bucket.</li>
--   <li><a>sKey</a> - The object key.</li>
--   </ul>
s3Action :: Text -> Text -> Text -> S3Action

-- | The Amazon S3 canned ACL that controls access to the object identified
--   by the object key. For more information, see <a>S3 canned ACLs</a> .
sCannedACL :: Lens' S3Action (Maybe CannedAccessControlList)

-- | The ARN of the IAM role that grants access.
sRoleARN :: Lens' S3Action Text

-- | The Amazon S3 bucket.
sBucketName :: Lens' S3Action Text

-- | The object key.
sKey :: Lens' S3Action Text

-- | Describes an action to publish to an Amazon SNS topic.
--   
--   <i>See:</i> <a>snsAction</a> smart constructor.
data SNSAction

-- | Creates a value of <a>SNSAction</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>snsaMessageFormat</a> - The message format of the message to
--   publish. Optional. Accepted values are <a>JSON</a> and <a>RAW</a>. The
--   default value of the attribute is <a>RAW</a>. SNS uses this setting to
--   determine if the payload should be parsed and relevant
--   platform-specific bits of the payload should be extracted. To read
--   more about SNS message formats, see
--   <a>http://docs.aws.amazon.com/sns/latest/dg/json-formats.html</a>
--   refer to their official documentation.</li>
--   <li><a>snsaTargetARN</a> - The ARN of the SNS topic.</li>
--   <li><a>snsaRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   </ul>
snsAction :: Text -> Text -> SNSAction

-- | The message format of the message to publish. Optional. Accepted
--   values are <a>JSON</a> and <a>RAW</a>. The default value of the
--   attribute is <a>RAW</a>. SNS uses this setting to determine if the
--   payload should be parsed and relevant platform-specific bits of the
--   payload should be extracted. To read more about SNS message formats,
--   see <a>http://docs.aws.amazon.com/sns/latest/dg/json-formats.html</a>
--   refer to their official documentation.
snsaMessageFormat :: Lens' SNSAction (Maybe MessageFormat)

-- | The ARN of the SNS topic.
snsaTargetARN :: Lens' SNSAction Text

-- | The ARN of the IAM role that grants access.
snsaRoleARN :: Lens' SNSAction Text

-- | Describes an action to publish data to an Amazon SQS queue.
--   
--   <i>See:</i> <a>sqsAction</a> smart constructor.
data SqsAction

-- | Creates a value of <a>SqsAction</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>saUseBase64</a> - Specifies whether to use Base64
--   encoding.</li>
--   <li><a>saRoleARN</a> - The ARN of the IAM role that grants
--   access.</li>
--   <li><a>saQueueURL</a> - The URL of the Amazon SQS queue.</li>
--   </ul>
sqsAction :: Text -> Text -> SqsAction

-- | Specifies whether to use Base64 encoding.
saUseBase64 :: Lens' SqsAction (Maybe Bool)

-- | The ARN of the IAM role that grants access.
saRoleARN :: Lens' SqsAction Text

-- | The URL of the Amazon SQS queue.
saQueueURL :: Lens' SqsAction Text

-- | The properties of the thing, including thing name, thing type name,
--   and a list of thing attributes.
--   
--   <i>See:</i> <a>thingAttribute</a> smart constructor.
data ThingAttribute

-- | Creates a value of <a>ThingAttribute</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>taThingTypeName</a> - The name of the thing type, if the thing
--   has been associated with a type.</li>
--   <li><a>taAttributes</a> - A list of thing attributes which are
--   name-value pairs.</li>
--   <li><a>taVersion</a> - The version of the thing record in the
--   registry.</li>
--   <li><a>taThingName</a> - The name of the thing.</li>
--   </ul>
thingAttribute :: ThingAttribute

-- | The name of the thing type, if the thing has been associated with a
--   type.
taThingTypeName :: Lens' ThingAttribute (Maybe Text)

-- | A list of thing attributes which are name-value pairs.
taAttributes :: Lens' ThingAttribute (HashMap Text Text)

-- | The version of the thing record in the registry.
taVersion :: Lens' ThingAttribute (Maybe Integer)

-- | The name of the thing.
taThingName :: Lens' ThingAttribute (Maybe Text)

-- | The definition of the thing type, including thing type name and
--   description.
--   
--   <i>See:</i> <a>thingTypeDefinition</a> smart constructor.
data ThingTypeDefinition

-- | Creates a value of <a>ThingTypeDefinition</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>ttdThingTypeProperties</a> - The ThingTypeProperties for the
--   thing type.</li>
--   <li><a>ttdThingTypeName</a> - The name of the thing type.</li>
--   <li><a>ttdThingTypeMetadata</a> - Undocumented member.</li>
--   </ul>
thingTypeDefinition :: ThingTypeDefinition

-- | The ThingTypeProperties for the thing type.
ttdThingTypeProperties :: Lens' ThingTypeDefinition (Maybe ThingTypeProperties)

-- | The name of the thing type.
ttdThingTypeName :: Lens' ThingTypeDefinition (Maybe Text)

-- | Undocumented member.
ttdThingTypeMetadata :: Lens' ThingTypeDefinition (Maybe ThingTypeMetadata)

-- | The ThingTypeMetadata contains additional information about the thing
--   type including: creation date and time, a value indicating whether the
--   thing type is deprecated, and a date and time when time was
--   deprecated.
--   
--   <i>See:</i> <a>thingTypeMetadata</a> smart constructor.
data ThingTypeMetadata

-- | Creates a value of <a>ThingTypeMetadata</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>ttmDeprecationDate</a> - The date and time when the thing type
--   was deprecated.</li>
--   <li><a>ttmCreationDate</a> - The date and time when the thing type was
--   created.</li>
--   <li><a>ttmDeprecated</a> - Whether the thing type is deprecated. If
--   <b>true</b> , no new things could be associated with this type.</li>
--   </ul>
thingTypeMetadata :: ThingTypeMetadata

-- | The date and time when the thing type was deprecated.
ttmDeprecationDate :: Lens' ThingTypeMetadata (Maybe UTCTime)

-- | The date and time when the thing type was created.
ttmCreationDate :: Lens' ThingTypeMetadata (Maybe UTCTime)

-- | Whether the thing type is deprecated. If <b>true</b> , no new things
--   could be associated with this type.
ttmDeprecated :: Lens' ThingTypeMetadata (Maybe Bool)

-- | The ThingTypeProperties contains information about the thing type
--   including: a thing type description, and a list of searchable thing
--   attribute names.
--   
--   <i>See:</i> <a>thingTypeProperties</a> smart constructor.
data ThingTypeProperties

-- | Creates a value of <a>ThingTypeProperties</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>ttpSearchableAttributes</a> - A list of searchable thing
--   attribute names.</li>
--   <li><a>ttpThingTypeDescription</a> - The description of the thing
--   type.</li>
--   </ul>
thingTypeProperties :: ThingTypeProperties

-- | A list of searchable thing attribute names.
ttpSearchableAttributes :: Lens' ThingTypeProperties [Text]

-- | The description of the thing type.
ttpThingTypeDescription :: Lens' ThingTypeProperties (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRule</a> smart constructor.
data TopicRule

-- | Creates a value of <a>TopicRule</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>trCreatedAt</a> - The date and time the rule was created.</li>
--   <li><a>trActions</a> - The actions associated with the rule.</li>
--   <li><a>trAwsIotSqlVersion</a> - The version of the SQL rules engine to
--   use when evaluating the rule.</li>
--   <li><a>trRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trRuleName</a> - The name of the rule.</li>
--   <li><a>trSql</a> - The SQL statement used to query the topic. When
--   using a SQL query with multiple lines, be sure to escape the newline
--   characters.</li>
--   <li><a>trDescription</a> - The description of the rule.</li>
--   </ul>
topicRule :: TopicRule

-- | The date and time the rule was created.
trCreatedAt :: Lens' TopicRule (Maybe UTCTime)

-- | The actions associated with the rule.
trActions :: Lens' TopicRule [Action]

-- | The version of the SQL rules engine to use when evaluating the rule.
trAwsIotSqlVersion :: Lens' TopicRule (Maybe Text)

-- | Specifies whether the rule is disabled.
trRuleDisabled :: Lens' TopicRule (Maybe Bool)

-- | The name of the rule.
trRuleName :: Lens' TopicRule (Maybe Text)

-- | The SQL statement used to query the topic. When using a SQL query with
--   multiple lines, be sure to escape the newline characters.
trSql :: Lens' TopicRule (Maybe Text)

-- | The description of the rule.
trDescription :: Lens' TopicRule (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRuleListItem</a> smart constructor.
data TopicRuleListItem

-- | Creates a value of <a>TopicRuleListItem</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>trliCreatedAt</a> - The date and time the rule was
--   created.</li>
--   <li><a>trliRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trliRuleName</a> - The name of the rule.</li>
--   <li><a>trliRuleARN</a> - The rule ARN.</li>
--   <li><a>trliTopicPattern</a> - The pattern for the topic names that
--   apply.</li>
--   </ul>
topicRuleListItem :: TopicRuleListItem

-- | The date and time the rule was created.
trliCreatedAt :: Lens' TopicRuleListItem (Maybe UTCTime)

-- | Specifies whether the rule is disabled.
trliRuleDisabled :: Lens' TopicRuleListItem (Maybe Bool)

-- | The name of the rule.
trliRuleName :: Lens' TopicRuleListItem (Maybe Text)

-- | The rule ARN.
trliRuleARN :: Lens' TopicRuleListItem (Maybe Text)

-- | The pattern for the topic names that apply.
trliTopicPattern :: Lens' TopicRuleListItem (Maybe Text)

-- | Describes a rule.
--   
--   <i>See:</i> <a>topicRulePayload</a> smart constructor.
data TopicRulePayload

-- | Creates a value of <a>TopicRulePayload</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>trpAwsIotSqlVersion</a> - The version of the SQL rules engine
--   to use when evaluating the rule.</li>
--   <li><a>trpRuleDisabled</a> - Specifies whether the rule is
--   disabled.</li>
--   <li><a>trpDescription</a> - The description of the rule.</li>
--   <li><a>trpSql</a> - The SQL statement used to query the topic. For
--   more information, see <a>AWS IoT SQL Reference</a> in the <i>AWS IoT
--   Developer Guide</i> .</li>
--   <li><a>trpActions</a> - The actions associated with the rule.</li>
--   </ul>
topicRulePayload :: Text -> TopicRulePayload

-- | The version of the SQL rules engine to use when evaluating the rule.
trpAwsIotSqlVersion :: Lens' TopicRulePayload (Maybe Text)

-- | Specifies whether the rule is disabled.
trpRuleDisabled :: Lens' TopicRulePayload (Maybe Bool)

-- | The description of the rule.
trpDescription :: Lens' TopicRulePayload (Maybe Text)

-- | The SQL statement used to query the topic. For more information, see
--   <a>AWS IoT SQL Reference</a> in the <i>AWS IoT Developer Guide</i> .
trpSql :: Lens' TopicRulePayload Text

-- | The actions associated with the rule.
trpActions :: Lens' TopicRulePayload [Action]

-- | Data used to transfer a certificate to an AWS account.
--   
--   <i>See:</i> <a>transferData</a> smart constructor.
data TransferData

-- | Creates a value of <a>TransferData</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>tdTransferDate</a> - The date the transfer took place.</li>
--   <li><a>tdAcceptDate</a> - The date the transfer was accepted.</li>
--   <li><a>tdTransferMessage</a> - The transfer message.</li>
--   <li><a>tdRejectDate</a> - The date the transfer was rejected.</li>
--   <li><a>tdRejectReason</a> - The reason why the transfer was
--   rejected.</li>
--   </ul>
transferData :: TransferData

-- | The date the transfer took place.
tdTransferDate :: Lens' TransferData (Maybe UTCTime)

-- | The date the transfer was accepted.
tdAcceptDate :: Lens' TransferData (Maybe UTCTime)

-- | The transfer message.
tdTransferMessage :: Lens' TransferData (Maybe Text)

-- | The date the transfer was rejected.
tdRejectDate :: Lens' TransferData (Maybe UTCTime)

-- | The reason why the transfer was rejected.
tdRejectReason :: Lens' TransferData (Maybe Text)
