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


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 index is not ready.
_IndexNotReadyException :: 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 response is invalid.
_InvalidResponseException :: 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 resource is not configured.
_NotConfiguredException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The resource registration failed.
_ResourceRegistrationFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The query is invalid.
_InvalidQueryException :: 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

-- | A conflicting resource update exception. This exception is thrown when
--   two pending updates cause a conflict.
_ConflictingResourceUpdateException :: 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 ActionType
Connect :: ActionType
Publish :: ActionType
Receive :: ActionType
Subscribe :: ActionType
data AuthDecision
Allowed :: AuthDecision
ExplicitDeny :: AuthDecision
ImplicitDeny :: AuthDecision
data AuthorizerStatus
Active :: AuthorizerStatus
Inactive :: AuthorizerStatus
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
CSActive :: CertificateStatus
CSInactive :: CertificateStatus
CSPendingActivation :: CertificateStatus
CSPendingTransfer :: CertificateStatus
CSRegisterInactive :: CertificateStatus
CSRevoked :: CertificateStatus
data DynamoKeyType
Number :: DynamoKeyType
String :: DynamoKeyType
data EventType
Job :: EventType
JobExecution :: EventType
Thing :: EventType
ThingGroup :: EventType
ThingGroupHierarchy :: EventType
ThingGroupMembership :: EventType
ThingType :: EventType
ThingTypeAssociation :: EventType
data IndexStatus
ISActive :: IndexStatus
ISBuilding :: IndexStatus
ISRebuilding :: IndexStatus
data JobExecutionStatus
Canceled :: JobExecutionStatus
Failed :: JobExecutionStatus
InProgress :: JobExecutionStatus
Queued :: JobExecutionStatus
Rejected :: JobExecutionStatus
Removed :: JobExecutionStatus
Succeeded :: JobExecutionStatus
data JobStatus
JSCanceled :: JobStatus
JSCompleted :: JobStatus
JSInProgress :: JobStatus
data LogLevel
Debug :: LogLevel
Disabled :: LogLevel
Error' :: LogLevel
Info :: LogLevel
Warn :: LogLevel
data LogTargetType
LTTDefault :: LogTargetType
LTTThingGroup :: LogTargetType
data MessageFormat
JSON :: MessageFormat
Raw :: MessageFormat
data OTAUpdateStatus
CreateComplete :: OTAUpdateStatus
CreateFailed :: OTAUpdateStatus
CreateInProgress :: OTAUpdateStatus
CreatePending :: OTAUpdateStatus
data ReportType
Errors :: ReportType
Results :: ReportType
data TargetSelection
Continuous :: TargetSelection
Snapshot :: TargetSelection
data TaskStatus
TSCancelled :: TaskStatus
TSCancelling :: TaskStatus
TSCompleted :: TaskStatus
TSFailed :: TaskStatus
TSInProgress :: TaskStatus
data ThingIndexingMode
Off :: ThingIndexingMode
Registry :: ThingIndexingMode
RegistryAndShadow :: ThingIndexingMode

-- | 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>aIotAnalytics</a> - Sends message data to an AWS IoT Analytics
--   channel.</li>
--   <li><a>aLambda</a> - Invoke a Lambda function.</li>
--   <li><a>aSalesforce</a> - Send a message to a Salesforce IoT Cloud
--   Input Stream.</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)

-- | Sends message data to an AWS IoT Analytics channel.
aIotAnalytics :: Lens' Action (Maybe IotAnalyticsAction)

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

-- | Send a message to a Salesforce IoT Cloud Input Stream.
aSalesforce :: Lens' Action (Maybe SalesforceAction)

-- | 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)

-- | Contains information that allowed the authorization.
--   
--   <i>See:</i> <a>allowed</a> smart constructor.
data Allowed

-- | Creates a value of <a>Allowed</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>aPolicies</a> - A list of policies that allowed the
--   authentication.</li>
--   </ul>
allowed :: Allowed

-- | A list of policies that allowed the authentication.
aPolicies :: Lens' Allowed [Policy]

-- | 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 collection of authorization information.
--   
--   <i>See:</i> <a>authInfo</a> smart constructor.
data AuthInfo

-- | Creates a value of <a>AuthInfo</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>aiResources</a> - The resources for which the principal is
--   being authorized to perform the specified action.</li>
--   <li><a>aiActionType</a> - The type of action for which the principal
--   is being authorized.</li>
--   </ul>
authInfo :: AuthInfo

-- | The resources for which the principal is being authorized to perform
--   the specified action.
aiResources :: Lens' AuthInfo [Text]

-- | The type of action for which the principal is being authorized.
aiActionType :: Lens' AuthInfo (Maybe ActionType)

-- | The authorizer result.
--   
--   <i>See:</i> <a>authResult</a> smart constructor.
data AuthResult

-- | Creates a value of <a>AuthResult</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>arDenied</a> - The policies and statements that denied the
--   specified action.</li>
--   <li><a>arAuthDecision</a> - The final authorization decision of this
--   scenario. Multiple statements are taken into account when determining
--   the authorization decision. An explicit deny statement can override
--   multiple allow statements.</li>
--   <li><a>arAllowed</a> - The policies and statements that allowed the
--   specified action.</li>
--   <li><a>arMissingContextValues</a> - Contains any missing context
--   values found while evaluating policy.</li>
--   <li><a>arAuthInfo</a> - Authorization information.</li>
--   </ul>
authResult :: AuthResult

-- | The policies and statements that denied the specified action.
arDenied :: Lens' AuthResult (Maybe Denied)

-- | The final authorization decision of this scenario. Multiple statements
--   are taken into account when determining the authorization decision. An
--   explicit deny statement can override multiple allow statements.
arAuthDecision :: Lens' AuthResult (Maybe AuthDecision)

-- | The policies and statements that allowed the specified action.
arAllowed :: Lens' AuthResult (Maybe Allowed)

-- | Contains any missing context values found while evaluating policy.
arMissingContextValues :: Lens' AuthResult [Text]

-- | Authorization information.
arAuthInfo :: Lens' AuthResult (Maybe AuthInfo)

-- | The authorizer description.
--   
--   <i>See:</i> <a>authorizerDescription</a> smart constructor.
data AuthorizerDescription

-- | Creates a value of <a>AuthorizerDescription</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>adStatus</a> - The status of the authorizer.</li>
--   <li><a>adLastModifiedDate</a> - The UNIX timestamp of when the
--   authorizer was last updated.</li>
--   <li><a>adAuthorizerName</a> - The authorizer name.</li>
--   <li><a>adAuthorizerFunctionARN</a> - The authorizer's Lambda function
--   ARN.</li>
--   <li><a>adAuthorizerARN</a> - The authorizer ARN.</li>
--   <li><a>adCreationDate</a> - The UNIX timestamp of when the authorizer
--   was created.</li>
--   <li><a>adTokenSigningPublicKeys</a> - The public keys used to validate
--   the token signature returned by your custom authentication
--   service.</li>
--   <li><a>adTokenKeyName</a> - The key used to extract the token from the
--   HTTP headers.</li>
--   </ul>
authorizerDescription :: AuthorizerDescription

-- | The status of the authorizer.
adStatus :: Lens' AuthorizerDescription (Maybe AuthorizerStatus)

-- | The UNIX timestamp of when the authorizer was last updated.
adLastModifiedDate :: Lens' AuthorizerDescription (Maybe UTCTime)

-- | The authorizer name.
adAuthorizerName :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer's Lambda function ARN.
adAuthorizerFunctionARN :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer ARN.
adAuthorizerARN :: Lens' AuthorizerDescription (Maybe Text)

-- | The UNIX timestamp of when the authorizer was created.
adCreationDate :: Lens' AuthorizerDescription (Maybe UTCTime)

-- | The public keys used to validate the token signature returned by your
--   custom authentication service.
adTokenSigningPublicKeys :: Lens' AuthorizerDescription (HashMap Text Text)

-- | The key used to extract the token from the HTTP headers.
adTokenKeyName :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer summary.
--   
--   <i>See:</i> <a>authorizerSummary</a> smart constructor.
data AuthorizerSummary

-- | Creates a value of <a>AuthorizerSummary</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>asAuthorizerName</a> - The authorizer name.</li>
--   <li><a>asAuthorizerARN</a> - The authorizer ARN.</li>
--   </ul>
authorizerSummary :: AuthorizerSummary

-- | The authorizer name.
asAuthorizerName :: Lens' AuthorizerSummary (Maybe Text)

-- | The authorizer ARN.
asAuthorizerARN :: Lens' AuthorizerSummary (Maybe Text)

-- | 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>cacdLastModifiedDate</a> - The date the CA certificate was last
--   modified.</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>
--   <li><a>cacdGenerationId</a> - The generation ID of the CA
--   certificate.</li>
--   <li><a>cacdCustomerVersion</a> - The customer version of the CA
--   certificate.</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 date the CA certificate was last modified.
cacdLastModifiedDate :: Lens' CACertificateDescription (Maybe UTCTime)

-- | 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)

-- | The generation ID of the CA certificate.
cacdGenerationId :: Lens' CACertificateDescription (Maybe Text)

-- | The customer version of the CA certificate.
cacdCustomerVersion :: Lens' CACertificateDescription (Maybe Natural)

-- | 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. (The last part
--   of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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>cdGenerationId</a> - The generation ID of the certificate.</li>
--   <li><a>cdTransferData</a> - The transfer data.</li>
--   <li><a>cdCustomerVersion</a> - The customer version of the
--   certificate.</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 generation ID of the certificate.
cdGenerationId :: Lens' CertificateDescription (Maybe Text)

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

-- | The customer version of the certificate.
cdCustomerVersion :: Lens' CertificateDescription (Maybe Natural)

-- | 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 the method to use when code signing a file.
--   
--   <i>See:</i> <a>codeSigning</a> smart constructor.
data CodeSigning

-- | Creates a value of <a>CodeSigning</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>csCustomCodeSigning</a> - A custom method for code signing a
--   file.</li>
--   <li><a>csAwsSignerJobId</a> - The ID of the AWSSignerJob which was
--   created to sign the file.</li>
--   </ul>
codeSigning :: CodeSigning

-- | A custom method for code signing a file.
csCustomCodeSigning :: Lens' CodeSigning (Maybe CustomCodeSigning)

-- | The ID of the AWSSignerJob which was created to sign the file.
csAwsSignerJobId :: Lens' CodeSigning (Maybe Text)

-- | Describes the certificate chain being used when code signing a file.
--   
--   <i>See:</i> <a>codeSigningCertificateChain</a> smart constructor.
data CodeSigningCertificateChain

-- | Creates a value of <a>CodeSigningCertificateChain</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>csccStream</a> - A stream of the certificate chain files.</li>
--   <li><a>csccCertificateName</a> - The name of the certificate.</li>
--   <li><a>csccInlineDocument</a> - A base64 encoded binary representation
--   of the code signing certificate chain.</li>
--   </ul>
codeSigningCertificateChain :: CodeSigningCertificateChain

-- | A stream of the certificate chain files.
csccStream :: Lens' CodeSigningCertificateChain (Maybe Stream)

-- | The name of the certificate.
csccCertificateName :: Lens' CodeSigningCertificateChain (Maybe Text)

-- | A base64 encoded binary representation of the code signing certificate
--   chain.
csccInlineDocument :: Lens' CodeSigningCertificateChain (Maybe Text)

-- | Describes the signature for a file.
--   
--   <i>See:</i> <a>codeSigningSignature</a> smart constructor.
data CodeSigningSignature

-- | Creates a value of <a>CodeSigningSignature</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>cssStream</a> - A stream of the code signing signature.</li>
--   <li><a>cssInlineDocument</a> - A base64 encoded binary representation
--   of the code signing signature.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.</li>
--   </ul>
codeSigningSignature :: CodeSigningSignature

-- | A stream of the code signing signature.
cssStream :: Lens' CodeSigningSignature (Maybe Stream)

-- | A base64 encoded binary representation of the code signing
--   signature.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.
cssInlineDocument :: Lens' CodeSigningSignature (Maybe ByteString)

-- | Configuration.
--   
--   <i>See:</i> <a>configuration</a> smart constructor.
data Configuration

-- | Creates a value of <a>Configuration</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>cEnabled</a> - True to enable the configuration.</li>
--   </ul>
configuration :: Configuration

-- | True to enable the configuration.
cEnabled :: Lens' Configuration (Maybe Bool)

-- | Describes a custom method used to code sign a file.
--   
--   <i>See:</i> <a>customCodeSigning</a> smart constructor.
data CustomCodeSigning

-- | Creates a value of <a>CustomCodeSigning</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>ccsSignature</a> - The signature for the file.</li>
--   <li><a>ccsHashAlgorithm</a> - The hash algorithm used to code sign the
--   file.</li>
--   <li><a>ccsCertificateChain</a> - The certificate chain.</li>
--   <li><a>ccsSignatureAlgorithm</a> - The signature algorithm used to
--   code sign the file.</li>
--   </ul>
customCodeSigning :: CustomCodeSigning

-- | The signature for the file.
ccsSignature :: Lens' CustomCodeSigning (Maybe CodeSigningSignature)

-- | The hash algorithm used to code sign the file.
ccsHashAlgorithm :: Lens' CustomCodeSigning (Maybe Text)

-- | The certificate chain.
ccsCertificateChain :: Lens' CustomCodeSigning (Maybe CodeSigningCertificateChain)

-- | The signature algorithm used to code sign the file.
ccsSignatureAlgorithm :: Lens' CustomCodeSigning (Maybe Text)

-- | Contains information that denied the authorization.
--   
--   <i>See:</i> <a>denied</a> smart constructor.
data Denied

-- | Creates a value of <a>Denied</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>dImplicitDeny</a> - Information that implicitly denies the
--   authorization. When a policy doesn't explicitly deny or allow an
--   action on a resource it is considered an implicit deny.</li>
--   <li><a>dExplicitDeny</a> - Information that explicitly denies the
--   authorization.</li>
--   </ul>
denied :: Denied

-- | Information that implicitly denies the authorization. When a policy
--   doesn't explicitly deny or allow an action on a resource it is
--   considered an implicit deny.
dImplicitDeny :: Lens' Denied (Maybe ImplicitDeny)

-- | Information that explicitly denies the authorization.
dExplicitDeny :: Lens' Denied (Maybe ExplicitDeny)

-- | 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)

-- | The policy that has the effect on the authorization results.
--   
--   <i>See:</i> <a>effectivePolicy</a> smart constructor.
data EffectivePolicy

-- | Creates a value of <a>EffectivePolicy</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>epPolicyName</a> - The policy name.</li>
--   <li><a>epPolicyDocument</a> - The IAM policy document.</li>
--   <li><a>epPolicyARN</a> - The policy ARN.</li>
--   </ul>
effectivePolicy :: EffectivePolicy

-- | The policy name.
epPolicyName :: Lens' EffectivePolicy (Maybe Text)

-- | The IAM policy document.
epPolicyDocument :: Lens' EffectivePolicy (Maybe Text)

-- | The policy ARN.
epPolicyARN :: Lens' EffectivePolicy (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

-- | Error information.
--   
--   <i>See:</i> <a>errorInfo</a> smart constructor.
data ErrorInfo

-- | Creates a value of <a>ErrorInfo</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>eiCode</a> - The error code.</li>
--   <li><a>eiMessage</a> - The error message.</li>
--   </ul>
errorInfo :: ErrorInfo

-- | The error code.
eiCode :: Lens' ErrorInfo (Maybe Text)

-- | The error message.
eiMessage :: Lens' ErrorInfo (Maybe Text)

-- | Information that explicitly denies authorization.
--   
--   <i>See:</i> <a>explicitDeny</a> smart constructor.
data ExplicitDeny

-- | Creates a value of <a>ExplicitDeny</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>edPolicies</a> - The policies that denied the
--   authorization.</li>
--   </ul>
explicitDeny :: ExplicitDeny

-- | The policies that denied the authorization.
edPolicies :: Lens' ExplicitDeny [Policy]

-- | 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 Firehose 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 Firehose stream.
faRoleARN :: Lens' FirehoseAction Text

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

-- | The name and ARN of a group.
--   
--   <i>See:</i> <a>groupNameAndARN</a> smart constructor.
data GroupNameAndARN

-- | Creates a value of <a>GroupNameAndARN</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>gnaaGroupARN</a> - The group ARN.</li>
--   <li><a>gnaaGroupName</a> - The group name.</li>
--   </ul>
groupNameAndARN :: GroupNameAndARN

-- | The group ARN.
gnaaGroupARN :: Lens' GroupNameAndARN (Maybe Text)

-- | The group name.
gnaaGroupName :: Lens' GroupNameAndARN (Maybe Text)

-- | Information that implicitly denies authorization. When policy doesn't
--   explicitly deny or allow an action on a resource it is considered an
--   implicit deny.
--   
--   <i>See:</i> <a>implicitDeny</a> smart constructor.
data ImplicitDeny

-- | Creates a value of <a>ImplicitDeny</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>idPolicies</a> - Policies that don't contain a matching allow
--   or deny statement for the specified action on the specified
--   resource.</li>
--   </ul>
implicitDeny :: ImplicitDeny

-- | Policies that don't contain a matching allow or deny statement for the
--   specified action on the specified resource.
idPolicies :: Lens' ImplicitDeny [Policy]

-- | Sends message data to an AWS IoT Analytics channel.
--   
--   <i>See:</i> <a>iotAnalyticsAction</a> smart constructor.
data IotAnalyticsAction

-- | Creates a value of <a>IotAnalyticsAction</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>iaaChannelARN</a> - (deprecated) The ARN of the IoT Analytics
--   channel to which message data will be sent.</li>
--   <li><a>iaaChannelName</a> - The name of the IoT Analytics channel to
--   which message data will be sent.</li>
--   <li><a>iaaRoleARN</a> - The ARN of the role which has a policy that
--   grants IoT permission to send message data via IoT Analytics
--   (iotanalytics:BatchPutMessage).</li>
--   </ul>
iotAnalyticsAction :: IotAnalyticsAction

-- | (deprecated) The ARN of the IoT Analytics channel to which message
--   data will be sent.
iaaChannelARN :: Lens' IotAnalyticsAction (Maybe Text)

-- | The name of the IoT Analytics channel to which message data will be
--   sent.
iaaChannelName :: Lens' IotAnalyticsAction (Maybe Text)

-- | The ARN of the role which has a policy that grants IoT permission to
--   send message data via IoT Analytics (iotanalytics:BatchPutMessage).
iaaRoleARN :: Lens' IotAnalyticsAction (Maybe Text)

-- | The <tt>Job</tt> object contains details about a job.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</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>jobStatus</a> - The status of the job, one of
--   <tt>IN_PROGRESS</tt> , <tt>CANCELED</tt> , or <tt>COMPLETED</tt>
--   .</li>
--   <li><a>jobJobExecutionsRolloutConfig</a> - Allows you to create a
--   staged rollout of a job.</li>
--   <li><a>jobJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jobLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job was last updated.</li>
--   <li><a>jobJobARN</a> - An ARN identifying the job with format
--   "arn:aws:iot:region:account:job/jobId".</li>
--   <li><a>jobCreatedAt</a> - The time, in milliseconds since the epoch,
--   when the job was created.</li>
--   <li><a>jobDocumentParameters</a> - The parameters specified for the
--   job document.</li>
--   <li><a>jobJobProcessDetails</a> - Details about the job process.</li>
--   <li><a>jobPresignedURLConfig</a> - Configuration for pre-signed S3
--   URLs.</li>
--   <li><a>jobTargets</a> - A list of IoT things and thing groups to which
--   the job should be sent.</li>
--   <li><a>jobCompletedAt</a> - The time, in milliseconds since the epoch,
--   when the job was completed.</li>
--   <li><a>jobComment</a> - If the job was updated, describes the reason
--   for the update.</li>
--   <li><a>jobDescription</a> - A short text description of the job.</li>
--   <li><a>jobTargetSelection</a> - Specifies whether the job will
--   continue to run (CONTINUOUS), or will be complete after all those
--   things specified as targets have completed the job (SNAPSHOT). If
--   continuous, the job may also be run on a thing when a change is
--   detected in a target. For example, a job will run on a device when the
--   thing representing the device is added to a target group, even after
--   the job was completed by all things originally in the group.</li>
--   </ul>
job :: Job

-- | The status of the job, one of <tt>IN_PROGRESS</tt> , <tt>CANCELED</tt>
--   , or <tt>COMPLETED</tt> .
jobStatus :: Lens' Job (Maybe JobStatus)

-- | Allows you to create a staged rollout of a job.
jobJobExecutionsRolloutConfig :: Lens' Job (Maybe JobExecutionsRolloutConfig)

-- | The unique identifier you assigned to this job when it was created.
jobJobId :: Lens' Job (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was last
--   updated.
jobLastUpdatedAt :: Lens' Job (Maybe UTCTime)

-- | An ARN identifying the job with format
--   "arn:aws:iot:region:account:job/jobId".
jobJobARN :: Lens' Job (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was created.
jobCreatedAt :: Lens' Job (Maybe UTCTime)

-- | The parameters specified for the job document.
jobDocumentParameters :: Lens' Job (HashMap Text Text)

-- | Details about the job process.
jobJobProcessDetails :: Lens' Job (Maybe JobProcessDetails)

-- | Configuration for pre-signed S3 URLs.
jobPresignedURLConfig :: Lens' Job (Maybe PresignedURLConfig)

-- | A list of IoT things and thing groups to which the job should be sent.
jobTargets :: Lens' Job (Maybe (NonEmpty Text))

-- | The time, in milliseconds since the epoch, when the job was completed.
jobCompletedAt :: Lens' Job (Maybe UTCTime)

-- | If the job was updated, describes the reason for the update.
jobComment :: Lens' Job (Maybe Text)

-- | A short text description of the job.
jobDescription :: Lens' Job (Maybe Text)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a device when the thing representing the device is added to a target
--   group, even after the job was completed by all things originally in
--   the group.
jobTargetSelection :: Lens' Job (Maybe TargetSelection)

-- | The job execution object represents the execution of a job on a
--   particular device.
--   
--   <i>See:</i> <a>jobExecution</a> smart constructor.
data JobExecution

-- | Creates a value of <a>JobExecution</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>jeStatus</a> - The status of the job execution (IN_PROGRESS,
--   QUEUED, FAILED, SUCCESS, CANCELED, or REJECTED).</li>
--   <li><a>jeJobId</a> - The unique identifier you assigned to the job
--   when it was created.</li>
--   <li><a>jeLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job execution was last updated.</li>
--   <li><a>jeQueuedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution was queued.</li>
--   <li><a>jeStatusDetails</a> - A collection of name/value pairs that
--   describe the status of the job execution.</li>
--   <li><a>jeThingARN</a> - The ARN of the thing on which the job
--   execution is running.</li>
--   <li><a>jeExecutionNumber</a> - A string (consisting of the digits "0"
--   through "9") which identifies this particular job execution on this
--   particular device. It can be used in commands which return or update
--   job execution information.</li>
--   <li><a>jeStartedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution started.</li>
--   </ul>
jobExecution :: JobExecution

-- | The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS,
--   CANCELED, or REJECTED).
jeStatus :: Lens' JobExecution (Maybe JobExecutionStatus)

-- | The unique identifier you assigned to the job when it was created.
jeJobId :: Lens' JobExecution (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job execution was
--   last updated.
jeLastUpdatedAt :: Lens' JobExecution (Maybe UTCTime)

-- | The time, in milliseconds since the epoch, when the job execution was
--   queued.
jeQueuedAt :: Lens' JobExecution (Maybe UTCTime)

-- | A collection of name/value pairs that describe the status of the job
--   execution.
jeStatusDetails :: Lens' JobExecution (Maybe JobExecutionStatusDetails)

-- | The ARN of the thing on which the job execution is running.
jeThingARN :: Lens' JobExecution (Maybe Text)

-- | A string (consisting of the digits "0" through "9") which identifies
--   this particular job execution on this particular device. It can be
--   used in commands which return or update job execution information.
jeExecutionNumber :: Lens' JobExecution (Maybe Integer)

-- | The time, in milliseconds since the epoch, when the job execution
--   started.
jeStartedAt :: Lens' JobExecution (Maybe UTCTime)

-- | Details of the job execution status.
--   
--   <i>See:</i> <a>jobExecutionStatusDetails</a> smart constructor.
data JobExecutionStatusDetails

-- | Creates a value of <a>JobExecutionStatusDetails</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>jesdDetailsMap</a> - The job execution status.</li>
--   </ul>
jobExecutionStatusDetails :: JobExecutionStatusDetails

-- | The job execution status.
jesdDetailsMap :: Lens' JobExecutionStatusDetails (HashMap Text Text)

-- | The job execution summary.
--   
--   <i>See:</i> <a>jobExecutionSummary</a> smart constructor.
data JobExecutionSummary

-- | Creates a value of <a>JobExecutionSummary</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>jesStatus</a> - The status of the job execution.</li>
--   <li><a>jesLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job execution was last updated.</li>
--   <li><a>jesQueuedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution was queued.</li>
--   <li><a>jesExecutionNumber</a> - A string (consisting of the digits "0"
--   through "9") which identifies this particular job execution on this
--   particular device. It can be used later in commands which return or
--   update job execution information.</li>
--   <li><a>jesStartedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution started.</li>
--   </ul>
jobExecutionSummary :: JobExecutionSummary

-- | The status of the job execution.
jesStatus :: Lens' JobExecutionSummary (Maybe JobExecutionStatus)

-- | The time, in milliseconds since the epoch, when the job execution was
--   last updated.
jesLastUpdatedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | The time, in milliseconds since the epoch, when the job execution was
--   queued.
jesQueuedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | A string (consisting of the digits "0" through "9") which identifies
--   this particular job execution on this particular device. It can be
--   used later in commands which return or update job execution
--   information.
jesExecutionNumber :: Lens' JobExecutionSummary (Maybe Integer)

-- | The time, in milliseconds since the epoch, when the job execution
--   started.
jesStartedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | Contains a summary of information about job executions for a specific
--   job.
--   
--   <i>See:</i> <a>jobExecutionSummaryForJob</a> smart constructor.
data JobExecutionSummaryForJob

-- | Creates a value of <a>JobExecutionSummaryForJob</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>jesfjJobExecutionSummary</a> - Contains a subset of information
--   about a job execution.</li>
--   <li><a>jesfjThingARN</a> - The ARN of the thing on which the job
--   execution is running.</li>
--   </ul>
jobExecutionSummaryForJob :: JobExecutionSummaryForJob

-- | Contains a subset of information about a job execution.
jesfjJobExecutionSummary :: Lens' JobExecutionSummaryForJob (Maybe JobExecutionSummary)

-- | The ARN of the thing on which the job execution is running.
jesfjThingARN :: Lens' JobExecutionSummaryForJob (Maybe Text)

-- | The job execution summary for a thing.
--   
--   <i>See:</i> <a>jobExecutionSummaryForThing</a> smart constructor.
data JobExecutionSummaryForThing

-- | Creates a value of <a>JobExecutionSummaryForThing</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>jesftJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jesftJobExecutionSummary</a> - Contains a subset of information
--   about a job execution.</li>
--   </ul>
jobExecutionSummaryForThing :: JobExecutionSummaryForThing

-- | The unique identifier you assigned to this job when it was created.
jesftJobId :: Lens' JobExecutionSummaryForThing (Maybe Text)

-- | Contains a subset of information about a job execution.
jesftJobExecutionSummary :: Lens' JobExecutionSummaryForThing (Maybe JobExecutionSummary)

-- | Allows you to create a staged rollout of a job.
--   
--   <i>See:</i> <a>jobExecutionsRolloutConfig</a> smart constructor.
data JobExecutionsRolloutConfig

-- | Creates a value of <a>JobExecutionsRolloutConfig</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>jercMaximumPerMinute</a> - The maximum number of things that
--   will be notified of a pending job, per minute. This parameter allows
--   you to create a staged rollout.</li>
--   </ul>
jobExecutionsRolloutConfig :: JobExecutionsRolloutConfig

-- | The maximum number of things that will be notified of a pending job,
--   per minute. This parameter allows you to create a staged rollout.
jercMaximumPerMinute :: Lens' JobExecutionsRolloutConfig (Maybe Natural)

-- | The job process details.
--   
--   <i>See:</i> <a>jobProcessDetails</a> smart constructor.
data JobProcessDetails

-- | Creates a value of <a>JobProcessDetails</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>jpdNumberOfRemovedThings</a> - The number of things that are no
--   longer scheduled to execute the job because they have been deleted or
--   have been removed from the group that was a target of the job.</li>
--   <li><a>jpdNumberOfQueuedThings</a> - The number of things that are
--   awaiting execution of the job.</li>
--   <li><a>jpdNumberOfFailedThings</a> - The number of things that failed
--   executing the job.</li>
--   <li><a>jpdNumberOfSucceededThings</a> - The number of things which
--   successfully completed the job.</li>
--   <li><a>jpdNumberOfInProgressThings</a> - The number of things
--   currently executing the job.</li>
--   <li><a>jpdNumberOfCanceledThings</a> - The number of things that
--   cancelled the job.</li>
--   <li><a>jpdNumberOfRejectedThings</a> - The number of things that
--   rejected the job.</li>
--   <li><a>jpdProcessingTargets</a> - The devices on which the job is
--   executing.</li>
--   </ul>
jobProcessDetails :: JobProcessDetails

-- | The number of things that are no longer scheduled to execute the job
--   because they have been deleted or have been removed from the group
--   that was a target of the job.
jpdNumberOfRemovedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that are awaiting execution of the job.
jpdNumberOfQueuedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that failed executing the job.
jpdNumberOfFailedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things which successfully completed the job.
jpdNumberOfSucceededThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things currently executing the job.
jpdNumberOfInProgressThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that cancelled the job.
jpdNumberOfCanceledThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that rejected the job.
jpdNumberOfRejectedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The devices on which the job is executing.
jpdProcessingTargets :: Lens' JobProcessDetails [Text]

-- | The job summary.
--   
--   <i>See:</i> <a>jobSummary</a> smart constructor.
data JobSummary

-- | Creates a value of <a>JobSummary</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>jsStatus</a> - The job summary status.</li>
--   <li><a>jsJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jsLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job was last updated.</li>
--   <li><a>jsJobARN</a> - The job ARN.</li>
--   <li><a>jsCreatedAt</a> - The time, in milliseconds since the epoch,
--   when the job was created.</li>
--   <li><a>jsThingGroupId</a> - The ID of the thing group.</li>
--   <li><a>jsCompletedAt</a> - The time, in milliseconds since the epoch,
--   when the job completed.</li>
--   <li><a>jsTargetSelection</a> - Specifies whether the job will continue
--   to run (CONTINUOUS), or will be complete after all those things
--   specified as targets have completed the job (SNAPSHOT). If continuous,
--   the job may also be run on a thing when a change is detected in a
--   target. For example, a job will run on a thing when the thing is added
--   to a target group, even after the job was completed by all things
--   originally in the group.</li>
--   </ul>
jobSummary :: JobSummary

-- | The job summary status.
jsStatus :: Lens' JobSummary (Maybe JobStatus)

-- | The unique identifier you assigned to this job when it was created.
jsJobId :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was last
--   updated.
jsLastUpdatedAt :: Lens' JobSummary (Maybe UTCTime)

-- | The job ARN.
jsJobARN :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was created.
jsCreatedAt :: Lens' JobSummary (Maybe UTCTime)

-- | The ID of the thing group.
jsThingGroupId :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job completed.
jsCompletedAt :: Lens' JobSummary (Maybe UTCTime)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a thing when the thing is added to a target group, even after the job
--   was completed by all things originally in the group.
jsTargetSelection :: Lens' JobSummary (Maybe TargetSelection)

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

-- | A log target.
--   
--   <i>See:</i> <a>logTarget</a> smart constructor.
data LogTarget

-- | Creates a value of <a>LogTarget</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>ltTargetName</a> - The target name.</li>
--   <li><a>ltTargetType</a> - The target type.</li>
--   </ul>
logTarget :: LogTargetType -> LogTarget

-- | The target name.
ltTargetName :: Lens' LogTarget (Maybe Text)

-- | The target type.
ltTargetType :: Lens' LogTarget LogTargetType

-- | The target configuration.
--   
--   <i>See:</i> <a>logTargetConfiguration</a> smart constructor.
data LogTargetConfiguration

-- | Creates a value of <a>LogTargetConfiguration</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>ltcLogLevel</a> - The logging level.</li>
--   <li><a>ltcLogTarget</a> - A log target</li>
--   </ul>
logTargetConfiguration :: LogTargetConfiguration

-- | The logging level.
ltcLogLevel :: Lens' LogTargetConfiguration (Maybe LogLevel)

-- | A log target
ltcLogTarget :: Lens' LogTargetConfiguration (Maybe LogTarget)

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

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

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

-- | Describes a file to be associated with an OTA update.
--   
--   <i>See:</i> <a>oTAUpdateFile</a> smart constructor.
data OTAUpdateFile

-- | Creates a value of <a>OTAUpdateFile</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>otaufFileVersion</a> - The file version.</li>
--   <li><a>otaufAttributes</a> - A list of name/attribute pairs.</li>
--   <li><a>otaufFileSource</a> - The source of the file.</li>
--   <li><a>otaufCodeSigning</a> - The code signing method of the
--   file.</li>
--   <li><a>otaufFileName</a> - The name of the file.</li>
--   </ul>
oTAUpdateFile :: OTAUpdateFile

-- | The file version.
otaufFileVersion :: Lens' OTAUpdateFile (Maybe Text)

-- | A list of name/attribute pairs.
otaufAttributes :: Lens' OTAUpdateFile (HashMap Text Text)

-- | The source of the file.
otaufFileSource :: Lens' OTAUpdateFile (Maybe Stream)

-- | The code signing method of the file.
otaufCodeSigning :: Lens' OTAUpdateFile (Maybe CodeSigning)

-- | The name of the file.
otaufFileName :: Lens' OTAUpdateFile (Maybe Text)

-- | Information about an OTA update.
--   
--   <i>See:</i> <a>oTAUpdateInfo</a> smart constructor.
data OTAUpdateInfo

-- | Creates a value of <a>OTAUpdateInfo</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>otauiLastModifiedDate</a> - The date when the OTA update was
--   last updated.</li>
--   <li><a>otauiAwsIotJobId</a> - The AWS IoT job ID associated with the
--   OTA update.</li>
--   <li><a>otauiOtaUpdateFiles</a> - A list of files associated with the
--   OTA update.</li>
--   <li><a>otauiOtaUpdateStatus</a> - The status of the OTA update.</li>
--   <li><a>otauiTargets</a> - The targets of the OTA update.</li>
--   <li><a>otauiAwsIotJobARN</a> - The AWS IoT job ARN associated with the
--   OTA update.</li>
--   <li><a>otauiCreationDate</a> - The date when the OTA update was
--   created.</li>
--   <li><a>otauiAdditionalParameters</a> - A collection of name/value
--   pairs</li>
--   <li><a>otauiOtaUpdateId</a> - The OTA update ID.</li>
--   <li><a>otauiErrorInfo</a> - Error information associated with the OTA
--   update.</li>
--   <li><a>otauiOtaUpdateARN</a> - The OTA update ARN.</li>
--   <li><a>otauiDescription</a> - A description of the OTA update.</li>
--   <li><a>otauiTargetSelection</a> - Specifies whether the OTA update
--   will continue to run (CONTINUOUS), or will be complete after all those
--   things specified as targets have completed the OTA update (SNAPSHOT).
--   If continuous, the OTA update may also be run on a thing when a change
--   is detected in a target. For example, an OTA update will run on a
--   thing when the thing is added to a target group, even after the OTA
--   update was completed by all things originally in the group.</li>
--   </ul>
oTAUpdateInfo :: OTAUpdateInfo

-- | The date when the OTA update was last updated.
otauiLastModifiedDate :: Lens' OTAUpdateInfo (Maybe UTCTime)

-- | The AWS IoT job ID associated with the OTA update.
otauiAwsIotJobId :: Lens' OTAUpdateInfo (Maybe Text)

-- | A list of files associated with the OTA update.
otauiOtaUpdateFiles :: Lens' OTAUpdateInfo (Maybe (NonEmpty OTAUpdateFile))

-- | The status of the OTA update.
otauiOtaUpdateStatus :: Lens' OTAUpdateInfo (Maybe OTAUpdateStatus)

-- | The targets of the OTA update.
otauiTargets :: Lens' OTAUpdateInfo (Maybe (NonEmpty Text))

-- | The AWS IoT job ARN associated with the OTA update.
otauiAwsIotJobARN :: Lens' OTAUpdateInfo (Maybe Text)

-- | The date when the OTA update was created.
otauiCreationDate :: Lens' OTAUpdateInfo (Maybe UTCTime)

-- | A collection of name/value pairs
otauiAdditionalParameters :: Lens' OTAUpdateInfo (HashMap Text Text)

-- | The OTA update ID.
otauiOtaUpdateId :: Lens' OTAUpdateInfo (Maybe Text)

-- | Error information associated with the OTA update.
otauiErrorInfo :: Lens' OTAUpdateInfo (Maybe ErrorInfo)

-- | The OTA update ARN.
otauiOtaUpdateARN :: Lens' OTAUpdateInfo (Maybe Text)

-- | A description of the OTA update.
otauiDescription :: Lens' OTAUpdateInfo (Maybe Text)

-- | Specifies whether the OTA update will continue to run (CONTINUOUS), or
--   will be complete after all those things specified as targets have
--   completed the OTA update (SNAPSHOT). If continuous, the OTA update may
--   also be run on a thing when a change is detected in a target. For
--   example, an OTA update will run on a thing when the thing is added to
--   a target group, even after the OTA update was completed by all things
--   originally in the group.
otauiTargetSelection :: Lens' OTAUpdateInfo (Maybe TargetSelection)

-- | An OTA update summary.
--   
--   <i>See:</i> <a>oTAUpdateSummary</a> smart constructor.
data OTAUpdateSummary

-- | Creates a value of <a>OTAUpdateSummary</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>otausCreationDate</a> - The date when the OTA update was
--   created.</li>
--   <li><a>otausOtaUpdateId</a> - The OTA update ID.</li>
--   <li><a>otausOtaUpdateARN</a> - The OTA update ARN.</li>
--   </ul>
oTAUpdateSummary :: OTAUpdateSummary

-- | The date when the OTA update was created.
otausCreationDate :: Lens' OTAUpdateSummary (Maybe UTCTime)

-- | The OTA update ID.
otausOtaUpdateId :: Lens' OTAUpdateSummary (Maybe Text)

-- | The OTA update ARN.
otausOtaUpdateARN :: Lens' OTAUpdateSummary (Maybe Text)

-- | A certificate that has been transferred 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)

-- | Configuration for pre-signed S3 URLs.
--   
--   <i>See:</i> <a>presignedURLConfig</a> smart constructor.
data PresignedURLConfig

-- | Creates a value of <a>PresignedURLConfig</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>pucExpiresInSec</a> - How long (in seconds) pre-signed URLs are
--   valid. Valid values are 60 - 3600, the default value is 3600 seconds.
--   Pre-signed URLs are generated when Jobs receives an MQTT request for
--   the job document.</li>
--   <li><a>pucRoleARN</a> - The ARN of an IAM role that grants grants
--   permission to download files from the S3 bucket where the job
--   data/updates are stored. The role must also grant permission for IoT
--   to download the files.</li>
--   </ul>
presignedURLConfig :: PresignedURLConfig

-- | How long (in seconds) pre-signed URLs are valid. Valid values are 60 -
--   3600, the default value is 3600 seconds. Pre-signed URLs are generated
--   when Jobs receives an MQTT request for the job document.
pucExpiresInSec :: Lens' PresignedURLConfig (Maybe Natural)

-- | The ARN of an IAM role that grants grants permission to download files
--   from the S3 bucket where the job data/updates are stored. The role
--   must also grant permission for IoT to download the files.
pucRoleARN :: Lens' PresignedURLConfig (Maybe Text)

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

-- | The registration configuration.
--   
--   <i>See:</i> <a>registrationConfig</a> smart constructor.
data RegistrationConfig

-- | Creates a value of <a>RegistrationConfig</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>rcTemplateBody</a> - The template body.</li>
--   <li><a>rcRoleARN</a> - The ARN of the role.</li>
--   </ul>
registrationConfig :: RegistrationConfig

-- | The template body.
rcTemplateBody :: Lens' RegistrationConfig (Maybe Text)

-- | The ARN of the role.
rcRoleARN :: Lens' RegistrationConfig (Maybe 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

-- | Role alias description.
--   
--   <i>See:</i> <a>roleAliasDescription</a> smart constructor.
data RoleAliasDescription

-- | Creates a value of <a>RoleAliasDescription</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>radRoleAliasARN</a> - The ARN of the role alias.</li>
--   <li><a>radLastModifiedDate</a> - The UNIX timestamp of when the role
--   alias was last modified.</li>
--   <li><a>radRoleAlias</a> - The role alias.</li>
--   <li><a>radOwner</a> - The role alias owner.</li>
--   <li><a>radCreationDate</a> - The UNIX timestamp of when the role alias
--   was created.</li>
--   <li><a>radCredentialDurationSeconds</a> - The number of seconds for
--   which the credential is valid.</li>
--   <li><a>radRoleARN</a> - The role ARN.</li>
--   </ul>
roleAliasDescription :: RoleAliasDescription

-- | The ARN of the role alias.
radRoleAliasARN :: Lens' RoleAliasDescription (Maybe Text)

-- | The UNIX timestamp of when the role alias was last modified.
radLastModifiedDate :: Lens' RoleAliasDescription (Maybe UTCTime)

-- | The role alias.
radRoleAlias :: Lens' RoleAliasDescription (Maybe Text)

-- | The role alias owner.
radOwner :: Lens' RoleAliasDescription (Maybe Text)

-- | The UNIX timestamp of when the role alias was created.
radCreationDate :: Lens' RoleAliasDescription (Maybe UTCTime)

-- | The number of seconds for which the credential is valid.
radCredentialDurationSeconds :: Lens' RoleAliasDescription (Maybe Natural)

-- | The role ARN.
radRoleARN :: Lens' RoleAliasDescription (Maybe 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

-- | The location in S3 the contains the files to stream.
--   
--   <i>See:</i> <a>s3Location</a> smart constructor.
data S3Location

-- | Creates a value of <a>S3Location</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>slVersion</a> - The file version.</li>
--   <li><a>slBucket</a> - The S3 bucket that contains the file to
--   stream.</li>
--   <li><a>slKey</a> - The name of the file within the S3 bucket to
--   stream.</li>
--   </ul>
s3Location :: Text -> Text -> S3Location

-- | The file version.
slVersion :: Lens' S3Location (Maybe Text)

-- | The S3 bucket that contains the file to stream.
slBucket :: Lens' S3Location Text

-- | The name of the file within the S3 bucket to stream.
slKey :: Lens' S3Location 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 write a message to a Salesforce IoT Cloud Input
--   Stream.
--   
--   <i>See:</i> <a>salesforceAction</a> smart constructor.
data SalesforceAction

-- | Creates a value of <a>SalesforceAction</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>saToken</a> - The token used to authenticate access to the
--   Salesforce IoT Cloud Input Stream. The token is available from the
--   Salesforce IoT Cloud platform after creation of the Input Stream.</li>
--   <li><a>saUrl</a> - The URL exposed by the Salesforce IoT Cloud Input
--   Stream. The URL is available from the Salesforce IoT Cloud platform
--   after creation of the Input Stream.</li>
--   </ul>
salesforceAction :: Text -> Text -> SalesforceAction

-- | The token used to authenticate access to the Salesforce IoT Cloud
--   Input Stream. The token is available from the Salesforce IoT Cloud
--   platform after creation of the Input Stream.
saToken :: Lens' SalesforceAction Text

-- | The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is
--   available from the Salesforce IoT Cloud platform after creation of the
--   Input Stream.
saUrl :: Lens' SalesforceAction 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

-- | Describes a group of files that can be streamed.
--   
--   <i>See:</i> <a>stream</a> smart constructor.
data Stream

-- | Creates a value of <a>Stream</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>sFileId</a> - The ID of a file associated with a stream.</li>
--   <li><a>sStreamId</a> - The stream ID.</li>
--   </ul>
stream :: Stream

-- | The ID of a file associated with a stream.
sFileId :: Lens' Stream (Maybe Natural)

-- | The stream ID.
sStreamId :: Lens' Stream (Maybe Text)

-- | Represents a file to stream.
--   
--   <i>See:</i> <a>streamFile</a> smart constructor.
data StreamFile

-- | Creates a value of <a>StreamFile</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>sfS3Location</a> - The location of the file in S3.</li>
--   <li><a>sfFileId</a> - The file ID.</li>
--   </ul>
streamFile :: StreamFile

-- | The location of the file in S3.
sfS3Location :: Lens' StreamFile (Maybe S3Location)

-- | The file ID.
sfFileId :: Lens' StreamFile (Maybe Natural)

-- | Information about a stream.
--   
--   <i>See:</i> <a>streamInfo</a> smart constructor.
data StreamInfo

-- | Creates a value of <a>StreamInfo</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>siLastUpdatedAt</a> - The date when the stream was last
--   updated.</li>
--   <li><a>siCreatedAt</a> - The date when the stream was created.</li>
--   <li><a>siStreamVersion</a> - The stream version.</li>
--   <li><a>siStreamARN</a> - The stream ARN.</li>
--   <li><a>siFiles</a> - The files to stream.</li>
--   <li><a>siDescription</a> - The description of the stream.</li>
--   <li><a>siStreamId</a> - The stream ID.</li>
--   <li><a>siRoleARN</a> - An IAM role AWS IoT assumes to access your S3
--   files.</li>
--   </ul>
streamInfo :: StreamInfo

-- | The date when the stream was last updated.
siLastUpdatedAt :: Lens' StreamInfo (Maybe UTCTime)

-- | The date when the stream was created.
siCreatedAt :: Lens' StreamInfo (Maybe UTCTime)

-- | The stream version.
siStreamVersion :: Lens' StreamInfo (Maybe Natural)

-- | The stream ARN.
siStreamARN :: Lens' StreamInfo (Maybe Text)

-- | The files to stream.
siFiles :: Lens' StreamInfo (Maybe (NonEmpty StreamFile))

-- | The description of the stream.
siDescription :: Lens' StreamInfo (Maybe Text)

-- | The stream ID.
siStreamId :: Lens' StreamInfo (Maybe Text)

-- | An IAM role AWS IoT assumes to access your S3 files.
siRoleARN :: Lens' StreamInfo (Maybe Text)

-- | A summary of a stream.
--   
--   <i>See:</i> <a>streamSummary</a> smart constructor.
data StreamSummary

-- | Creates a value of <a>StreamSummary</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>ssStreamVersion</a> - The stream version.</li>
--   <li><a>ssStreamARN</a> - The stream ARN.</li>
--   <li><a>ssDescription</a> - A description of the stream.</li>
--   <li><a>ssStreamId</a> - The stream ID.</li>
--   </ul>
streamSummary :: StreamSummary

-- | The stream version.
ssStreamVersion :: Lens' StreamSummary (Maybe Natural)

-- | The stream ARN.
ssStreamARN :: Lens' StreamSummary (Maybe Text)

-- | A description of the stream.
ssDescription :: Lens' StreamSummary (Maybe Text)

-- | The stream ID.
ssStreamId :: Lens' StreamSummary (Maybe 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>taThingARN</a> - The thing ARN.</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)

-- | The thing ARN.
taThingARN :: 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 thing search index document.
--   
--   <i>See:</i> <a>thingDocument</a> smart constructor.
data ThingDocument

-- | Creates a value of <a>ThingDocument</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>tdThingGroupNames</a> - Thing group names.</li>
--   <li><a>tdThingTypeName</a> - The thing type name.</li>
--   <li><a>tdShadow</a> - The shadow.</li>
--   <li><a>tdAttributes</a> - The attributes.</li>
--   <li><a>tdThingName</a> - The thing name.</li>
--   <li><a>tdThingId</a> - The thing ID.</li>
--   </ul>
thingDocument :: ThingDocument

-- | Thing group names.
tdThingGroupNames :: Lens' ThingDocument [Text]

-- | The thing type name.
tdThingTypeName :: Lens' ThingDocument (Maybe Text)

-- | The shadow.
tdShadow :: Lens' ThingDocument (Maybe Text)

-- | The attributes.
tdAttributes :: Lens' ThingDocument (HashMap Text Text)

-- | The thing name.
tdThingName :: Lens' ThingDocument (Maybe Text)

-- | The thing ID.
tdThingId :: Lens' ThingDocument (Maybe Text)

-- | Thing group metadata.
--   
--   <i>See:</i> <a>thingGroupMetadata</a> smart constructor.
data ThingGroupMetadata

-- | Creates a value of <a>ThingGroupMetadata</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>tgmRootToParentThingGroups</a> - The root parent thing
--   group.</li>
--   <li><a>tgmParentGroupName</a> - The parent thing group name.</li>
--   <li><a>tgmCreationDate</a> - The UNIX timestamp of when the thing
--   group was created.</li>
--   </ul>
thingGroupMetadata :: ThingGroupMetadata

-- | The root parent thing group.
tgmRootToParentThingGroups :: Lens' ThingGroupMetadata [GroupNameAndARN]

-- | The parent thing group name.
tgmParentGroupName :: Lens' ThingGroupMetadata (Maybe Text)

-- | The UNIX timestamp of when the thing group was created.
tgmCreationDate :: Lens' ThingGroupMetadata (Maybe UTCTime)

-- | Thing group properties.
--   
--   <i>See:</i> <a>thingGroupProperties</a> smart constructor.
data ThingGroupProperties

-- | Creates a value of <a>ThingGroupProperties</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>tgpAttributePayload</a> - The thing group attributes in JSON
--   format.</li>
--   <li><a>tgpThingGroupDescription</a> - The thing group
--   description.</li>
--   </ul>
thingGroupProperties :: ThingGroupProperties

-- | The thing group attributes in JSON format.
tgpAttributePayload :: Lens' ThingGroupProperties (Maybe AttributePayload)

-- | The thing group description.
tgpThingGroupDescription :: Lens' ThingGroupProperties (Maybe Text)

-- | Thing indexing configuration.
--   
--   <i>See:</i> <a>thingIndexingConfiguration</a> smart constructor.
data ThingIndexingConfiguration

-- | Creates a value of <a>ThingIndexingConfiguration</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>ticThingIndexingMode</a> - Thing indexing mode. Valid values
--   are: * REGISTRY – Your thing index will contain only registry data. *
--   REGISTRY_AND_SHADOW - Your thing index will contain registry and
--   shadow data. * OFF - Thing indexing is disabled.</li>
--   </ul>
thingIndexingConfiguration :: ThingIndexingConfiguration

-- | Thing indexing mode. Valid values are: * REGISTRY – Your thing index
--   will contain only registry data. * REGISTRY_AND_SHADOW - Your thing
--   index will contain registry and shadow data. * OFF - Thing indexing is
--   disabled.
ticThingIndexingMode :: Lens' ThingIndexingConfiguration (Maybe ThingIndexingMode)

-- | 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> - 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 it was deprecated.</li>
--   <li><a>ttdThingTypeARN</a> - The thing type ARN.</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)

-- | 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 it was deprecated.
ttdThingTypeMetadata :: Lens' ThingTypeDefinition (Maybe ThingTypeMetadata)

-- | The thing type ARN.
ttdThingTypeARN :: Lens' ThingTypeDefinition (Maybe Text)

-- | 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>trErrorAction</a> - The action to perform when an error
--   occurs.</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)

-- | The action to perform when an error occurs.
trErrorAction :: Lens' TopicRule (Maybe Action)

-- | 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>trpErrorAction</a> - The action to take when an error
--   occurs.</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)

-- | The action to take when an error occurs.
trpErrorAction :: Lens' TopicRulePayload (Maybe Action)

-- | 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)


-- | 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. (The last part
--   of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.TransferCertificate.TransferCertificateResponse
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


-- | Invoke the specified custom authorizer for testing purposes.
module Network.AWS.IoT.TestInvokeAuthorizer

-- | Creates a value of <a>TestInvokeAuthorizer</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>tiaAuthorizerName</a> - The custom authorizer name.</li>
--   <li><a>tiaToken</a> - The token returned by your custom authentication
--   service.</li>
--   <li><a>tiaTokenSignature</a> - The signature made with the token and
--   your custom authentication service's private key.</li>
--   </ul>
testInvokeAuthorizer :: Text -> Text -> Text -> TestInvokeAuthorizer

-- | <i>See:</i> <a>testInvokeAuthorizer</a> smart constructor.
data TestInvokeAuthorizer

-- | The custom authorizer name.
tiaAuthorizerName :: Lens' TestInvokeAuthorizer Text

-- | The token returned by your custom authentication service.
tiaToken :: Lens' TestInvokeAuthorizer Text

-- | The signature made with the token and your custom authentication
--   service's private key.
tiaTokenSignature :: Lens' TestInvokeAuthorizer Text

-- | Creates a value of <a>TestInvokeAuthorizerResponse</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>tiarsPolicyDocuments</a> - IAM policy documents.</li>
--   <li><a>tiarsPrincipalId</a> - The principal ID.</li>
--   <li><a>tiarsDisconnectAfterInSeconds</a> - The number of seconds after
--   which the connection is terminated.</li>
--   <li><a>tiarsIsAuthenticated</a> - True if the token is authenticated,
--   otherwise false.</li>
--   <li><a>tiarsRefreshAfterInSeconds</a> - The number of seconds after
--   which the temporary credentials are refreshed.</li>
--   <li><a>tiarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
testInvokeAuthorizerResponse :: Int -> TestInvokeAuthorizerResponse

-- | <i>See:</i> <a>testInvokeAuthorizerResponse</a> smart constructor.
data TestInvokeAuthorizerResponse

-- | IAM policy documents.
tiarsPolicyDocuments :: Lens' TestInvokeAuthorizerResponse [Text]

-- | The principal ID.
tiarsPrincipalId :: Lens' TestInvokeAuthorizerResponse (Maybe Text)

-- | The number of seconds after which the connection is terminated.
tiarsDisconnectAfterInSeconds :: Lens' TestInvokeAuthorizerResponse (Maybe Int)

-- | True if the token is authenticated, otherwise false.
tiarsIsAuthenticated :: Lens' TestInvokeAuthorizerResponse (Maybe Bool)

-- | The number of seconds after which the temporary credentials are
--   refreshed.
tiarsRefreshAfterInSeconds :: Lens' TestInvokeAuthorizerResponse (Maybe Int)

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


-- | Test custom authorization.
module Network.AWS.IoT.TestAuthorization

-- | Creates a value of <a>TestAuthorization</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>taClientId</a> - The MQTT client ID.</li>
--   <li><a>taPolicyNamesToAdd</a> - When testing custom authorization, the
--   policies specified here are treated as if they are attached to the
--   principal being authorized.</li>
--   <li><a>taPrincipal</a> - The principal.</li>
--   <li><a>taCognitoIdentityPoolId</a> - The Cognito identity pool
--   ID.</li>
--   <li><a>taPolicyNamesToSkip</a> - When testing custom authorization,
--   the policies specified here are treated as if they are not attached to
--   the principal being authorized.</li>
--   <li><a>taAuthInfos</a> - A list of authorization info objects.
--   Simulating authorization will create a response for each
--   <tt>authInfo</tt> object in the list.</li>
--   </ul>
testAuthorization :: NonEmpty AuthInfo -> TestAuthorization

-- | <i>See:</i> <a>testAuthorization</a> smart constructor.
data TestAuthorization

-- | The MQTT client ID.
taClientId :: Lens' TestAuthorization (Maybe Text)

-- | When testing custom authorization, the policies specified here are
--   treated as if they are attached to the principal being authorized.
taPolicyNamesToAdd :: Lens' TestAuthorization [Text]

-- | The principal.
taPrincipal :: Lens' TestAuthorization (Maybe Text)

-- | The Cognito identity pool ID.
taCognitoIdentityPoolId :: Lens' TestAuthorization (Maybe Text)

-- | When testing custom authorization, the policies specified here are
--   treated as if they are not attached to the principal being authorized.
taPolicyNamesToSkip :: Lens' TestAuthorization [Text]

-- | A list of authorization info objects. Simulating authorization will
--   create a response for each <tt>authInfo</tt> object in the list.
taAuthInfos :: Lens' TestAuthorization (NonEmpty AuthInfo)

-- | Creates a value of <a>TestAuthorizationResponse</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>tarsAuthResults</a> - The authentication results.</li>
--   <li><a>tarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
testAuthorizationResponse :: Int -> TestAuthorizationResponse

-- | <i>See:</i> <a>testAuthorizationResponse</a> smart constructor.
data TestAuthorizationResponse

-- | The authentication results.
tarsAuthResults :: Lens' TestAuthorizationResponse [AuthResult]

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


-- | Cancels a bulk thing provisioning task.
module Network.AWS.IoT.StopThingRegistrationTask

-- | Creates a value of <a>StopThingRegistrationTask</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>strtTaskId</a> - The bulk thing provisioning task ID.</li>
--   </ul>
stopThingRegistrationTask :: Text -> StopThingRegistrationTask

-- | <i>See:</i> <a>stopThingRegistrationTask</a> smart constructor.
data StopThingRegistrationTask

-- | The bulk thing provisioning task ID.
strtTaskId :: Lens' StopThingRegistrationTask Text

-- | Creates a value of <a>StopThingRegistrationTaskResponse</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>srsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
stopThingRegistrationTaskResponse :: Int -> StopThingRegistrationTaskResponse

-- | <i>See:</i> <a>stopThingRegistrationTaskResponse</a> smart
--   constructor.
data StopThingRegistrationTaskResponse

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


-- | Creates a bulk thing provisioning task.
module Network.AWS.IoT.StartThingRegistrationTask

-- | Creates a value of <a>StartThingRegistrationTask</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>strtTemplateBody</a> - The provisioning template.</li>
--   <li><a>strtInputFileBucket</a> - The S3 bucket that contains the input
--   file.</li>
--   <li><a>strtInputFileKey</a> - The name of input file within the S3
--   bucket. This file contains a newline delimited JSON file. Each line
--   contains the parameter values to provision one device (thing).</li>
--   <li><a>strtRoleARN</a> - The IAM role ARN that grants permission the
--   input file.</li>
--   </ul>
startThingRegistrationTask :: Text -> Text -> Text -> Text -> StartThingRegistrationTask

-- | <i>See:</i> <a>startThingRegistrationTask</a> smart constructor.
data StartThingRegistrationTask

-- | The provisioning template.
strtTemplateBody :: Lens' StartThingRegistrationTask Text

-- | The S3 bucket that contains the input file.
strtInputFileBucket :: Lens' StartThingRegistrationTask Text

-- | The name of input file within the S3 bucket. This file contains a
--   newline delimited JSON file. Each line contains the parameter values
--   to provision one device (thing).
strtInputFileKey :: Lens' StartThingRegistrationTask Text

-- | The IAM role ARN that grants permission the input file.
strtRoleARN :: Lens' StartThingRegistrationTask Text

-- | Creates a value of <a>StartThingRegistrationTaskResponse</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>strtrsTaskId</a> - The bulk thing provisioning task ID.</li>
--   <li><a>strtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
startThingRegistrationTaskResponse :: Int -> StartThingRegistrationTaskResponse

-- | <i>See:</i> <a>startThingRegistrationTaskResponse</a> smart
--   constructor.
data StartThingRegistrationTaskResponse

-- | The bulk thing provisioning task ID.
strtrsTaskId :: Lens' StartThingRegistrationTaskResponse (Maybe Text)

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


-- | Sets the logging options for the V2 logging service.
module Network.AWS.IoT.SetV2LoggingOptions

-- | Creates a value of <a>SetV2LoggingOptions</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>svloDisableAllLogs</a> - Set to true to disable all logs,
--   otherwise set to false.</li>
--   <li><a>svloDefaultLogLevel</a> - The default logging level.</li>
--   <li><a>svloRoleARN</a> - The role ARN that allows IoT to write to
--   Cloudwatch logs.</li>
--   </ul>
setV2LoggingOptions :: SetV2LoggingOptions

-- | <i>See:</i> <a>setV2LoggingOptions</a> smart constructor.
data SetV2LoggingOptions

-- | Set to true to disable all logs, otherwise set to false.
svloDisableAllLogs :: Lens' SetV2LoggingOptions (Maybe Bool)

-- | The default logging level.
svloDefaultLogLevel :: Lens' SetV2LoggingOptions (Maybe LogLevel)

-- | The role ARN that allows IoT to write to Cloudwatch logs.
svloRoleARN :: Lens' SetV2LoggingOptions (Maybe Text)

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

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


-- | Sets the logging level.
module Network.AWS.IoT.SetV2LoggingLevel

-- | Creates a value of <a>SetV2LoggingLevel</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>svllLogTarget</a> - The log target.</li>
--   <li><a>svllLogLevel</a> - The log level.</li>
--   </ul>
setV2LoggingLevel :: LogTarget -> LogLevel -> SetV2LoggingLevel

-- | <i>See:</i> <a>setV2LoggingLevel</a> smart constructor.
data SetV2LoggingLevel

-- | The log target.
svllLogTarget :: Lens' SetV2LoggingLevel LogTarget

-- | The log level.
svllLogLevel :: Lens' SetV2LoggingLevel LogLevel

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

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.SetLoggingOptions.SetLoggingOptionsResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.SetDefaultPolicyVersion.SetDefaultPolicyVersionResponse
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


-- | Sets the default authorizer. This will be used if a websocket
--   connection is made without specifying an authorizer.
module Network.AWS.IoT.SetDefaultAuthorizer

-- | Creates a value of <a>SetDefaultAuthorizer</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>sdaAuthorizerName</a> - The authorizer name.</li>
--   </ul>
setDefaultAuthorizer :: Text -> SetDefaultAuthorizer

-- | <i>See:</i> <a>setDefaultAuthorizer</a> smart constructor.
data SetDefaultAuthorizer

-- | The authorizer name.
sdaAuthorizerName :: Lens' SetDefaultAuthorizer Text

-- | Creates a value of <a>SetDefaultAuthorizerResponse</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>sdarsAuthorizerName</a> - The authorizer name.</li>
--   <li><a>sdarsAuthorizerARN</a> - The authorizer ARN.</li>
--   <li><a>sdarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
setDefaultAuthorizerResponse :: Int -> SetDefaultAuthorizerResponse

-- | <i>See:</i> <a>setDefaultAuthorizerResponse</a> smart constructor.
data SetDefaultAuthorizerResponse

-- | The authorizer name.
sdarsAuthorizerName :: Lens' SetDefaultAuthorizerResponse (Maybe Text)

-- | The authorizer ARN.
sdarsAuthorizerARN :: Lens' SetDefaultAuthorizerResponse (Maybe Text)

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


-- | The query search index.
module Network.AWS.IoT.SearchIndex

-- | Creates a value of <a>SearchIndex</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>siQueryVersion</a> - The query version.</li>
--   <li><a>siNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>siMaxResults</a> - The maximum number of results to return at
--   one time.</li>
--   <li><a>siIndexName</a> - The search index name.</li>
--   <li><a>siQueryString</a> - The search query string.</li>
--   </ul>
searchIndex :: Text -> SearchIndex

-- | <i>See:</i> <a>searchIndex</a> smart constructor.
data SearchIndex

-- | The query version.
siQueryVersion :: Lens' SearchIndex (Maybe Text)

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
siNextToken :: Lens' SearchIndex (Maybe Text)

-- | The maximum number of results to return at one time.
siMaxResults :: Lens' SearchIndex (Maybe Natural)

-- | The search index name.
siIndexName :: Lens' SearchIndex (Maybe Text)

-- | The search query string.
siQueryString :: Lens' SearchIndex Text

-- | Creates a value of <a>SearchIndexResponse</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>sirsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>sirsThings</a> - The things that match the search query.</li>
--   <li><a>sirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
searchIndexResponse :: Int -> SearchIndexResponse

-- | <i>See:</i> <a>searchIndexResponse</a> smart constructor.
data SearchIndexResponse

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
sirsNextToken :: Lens' SearchIndexResponse (Maybe Text)

-- | The things that match the search query.
sirsThings :: Lens' SearchIndexResponse [ThingDocument]

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


-- | Replaces the 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 Control.DeepSeq.NFData Network.AWS.IoT.ReplaceTopicRule.ReplaceTopicRuleResponse
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


-- | Remove the specified thing from the specified group.
module Network.AWS.IoT.RemoveThingFromThingGroup

-- | Creates a value of <a>RemoveThingFromThingGroup</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>rtftgThingGroupARN</a> - The group ARN.</li>
--   <li><a>rtftgThingARN</a> - The ARN of the thing to remove from the
--   group.</li>
--   <li><a>rtftgThingGroupName</a> - The group name.</li>
--   <li><a>rtftgThingName</a> - The name of the thing to remove from the
--   group.</li>
--   </ul>
removeThingFromThingGroup :: RemoveThingFromThingGroup

-- | <i>See:</i> <a>removeThingFromThingGroup</a> smart constructor.
data RemoveThingFromThingGroup

-- | The group ARN.
rtftgThingGroupARN :: Lens' RemoveThingFromThingGroup (Maybe Text)

-- | The ARN of the thing to remove from the group.
rtftgThingARN :: Lens' RemoveThingFromThingGroup (Maybe Text)

-- | The group name.
rtftgThingGroupName :: Lens' RemoveThingFromThingGroup (Maybe Text)

-- | The name of the thing to remove from the group.
rtftgThingName :: Lens' RemoveThingFromThingGroup (Maybe Text)

-- | Creates a value of <a>RemoveThingFromThingGroupResponse</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>rtftgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
removeThingFromThingGroupResponse :: Int -> RemoveThingFromThingGroupResponse

-- | <i>See:</i> <a>removeThingFromThingGroupResponse</a> smart
--   constructor.
data RemoveThingFromThingGroupResponse

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


-- | 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. (The last
--   part of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.RejectCertificateTransfer.RejectCertificateTransferResponse
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


-- | Provisions a thing.
module Network.AWS.IoT.RegisterThing

-- | Creates a value of <a>RegisterThing</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>rtParameters</a> - The parameters for provisioning a thing. See
--   <a>Programmatic Provisioning</a> for more information.</li>
--   <li><a>rtTemplateBody</a> - The provisioning template. See
--   <a>Programmatic Provisioning</a> for more information.</li>
--   </ul>
registerThing :: Text -> RegisterThing

-- | <i>See:</i> <a>registerThing</a> smart constructor.
data RegisterThing

-- | The parameters for provisioning a thing. See <a>Programmatic
--   Provisioning</a> for more information.
rtParameters :: Lens' RegisterThing (HashMap Text Text)

-- | The provisioning template. See <a>Programmatic Provisioning</a> for
--   more information.
rtTemplateBody :: Lens' RegisterThing Text

-- | Creates a value of <a>RegisterThingResponse</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>rtrsCertificatePem</a> - Undocumented member.</li>
--   <li><a>rtrsResourceARNs</a> - ARNs for the generated resources.</li>
--   <li><a>rtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
registerThingResponse :: Int -> RegisterThingResponse

-- | <i>See:</i> <a>registerThingResponse</a> smart constructor.
data RegisterThingResponse

-- | Undocumented member.
rtrsCertificatePem :: Lens' RegisterThingResponse (Maybe Text)

-- | ARNs for the generated resources.
rtrsResourceARNs :: Lens' RegisterThingResponse (HashMap Text Text)

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


-- | 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> - The status of the register certificate
--   request.</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

-- | The status of the register certificate request.
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 Control.DeepSeq.NFData Network.AWS.IoT.RegisterCertificate.RegisterCertificateResponse
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


-- | 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. 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>rcacRegistrationConfig</a> - Information about the registration
--   configuration.</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)

-- | Information about the registration configuration.
rcacRegistrationConfig :: Lens' RegisterCACertificate (Maybe RegistrationConfig)

-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.RegisterCACertificate.RegisterCACertificateResponse
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


-- | Lists logging levels.
module Network.AWS.IoT.ListV2LoggingLevels

-- | Creates a value of <a>ListV2LoggingLevels</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>lvllTargetType</a> - The type of resource for which you are
--   configuring logging. Must be <tt>THING_Group</tt> .</li>
--   <li><a>lvllNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>lvllMaxResults</a> - The maximum number of results to return at
--   one time.</li>
--   </ul>
listV2LoggingLevels :: ListV2LoggingLevels

-- | <i>See:</i> <a>listV2LoggingLevels</a> smart constructor.
data ListV2LoggingLevels

-- | The type of resource for which you are configuring logging. Must be
--   <tt>THING_Group</tt> .
lvllTargetType :: Lens' ListV2LoggingLevels (Maybe LogTargetType)

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
lvllNextToken :: Lens' ListV2LoggingLevels (Maybe Text)

-- | The maximum number of results to return at one time.
lvllMaxResults :: Lens' ListV2LoggingLevels (Maybe Natural)

-- | Creates a value of <a>ListV2LoggingLevelsResponse</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>lvllrsLogTargetConfigurations</a> - The logging configuration
--   for a target.</li>
--   <li><a>lvllrsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>lvllrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listV2LoggingLevelsResponse :: Int -> ListV2LoggingLevelsResponse

-- | <i>See:</i> <a>listV2LoggingLevelsResponse</a> smart constructor.
data ListV2LoggingLevelsResponse

-- | The logging configuration for a target.
lvllrsLogTargetConfigurations :: Lens' ListV2LoggingLevelsResponse [LogTargetConfiguration]

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
lvllrsNextToken :: Lens' ListV2LoggingLevelsResponse (Maybe Text)

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


-- | Lists the rules for the specific topic.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.IoT.ListTopicRules.ListTopicRulesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Lists the things in the specified group.
module Network.AWS.IoT.ListThingsInThingGroup

-- | Creates a value of <a>ListThingsInThingGroup</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>ltitgNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltitgRecursive</a> - When true, list things in this thing group
--   and in all child groups as well.</li>
--   <li><a>ltitgMaxResults</a> - The maximum number of results to return
--   at one time.</li>
--   <li><a>ltitgThingGroupName</a> - The thing group name.</li>
--   </ul>
listThingsInThingGroup :: Text -> ListThingsInThingGroup

-- | <i>See:</i> <a>listThingsInThingGroup</a> smart constructor.
data ListThingsInThingGroup

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltitgNextToken :: Lens' ListThingsInThingGroup (Maybe Text)

-- | When true, list things in this thing group and in all child groups as
--   well.
ltitgRecursive :: Lens' ListThingsInThingGroup (Maybe Bool)

-- | The maximum number of results to return at one time.
ltitgMaxResults :: Lens' ListThingsInThingGroup (Maybe Natural)

-- | The thing group name.
ltitgThingGroupName :: Lens' ListThingsInThingGroup Text

-- | Creates a value of <a>ListThingsInThingGroupResponse</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>ltitgrsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltitgrsThings</a> - The things in the specified thing
--   group.</li>
--   <li><a>ltitgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingsInThingGroupResponse :: Int -> ListThingsInThingGroupResponse

-- | <i>See:</i> <a>listThingsInThingGroupResponse</a> smart constructor.
data ListThingsInThingGroupResponse

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltitgrsNextToken :: Lens' ListThingsInThingGroupResponse (Maybe Text)

-- | The things in the specified thing group.
ltitgrsThings :: Lens' ListThingsInThingGroupResponse [Text]

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


-- | 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> .
--   
--   This operation returns paginated results.
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 used to get 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 used to get 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 used to get 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 used to get 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 Control.DeepSeq.NFData Network.AWS.IoT.ListThings.ListThingsResponse
instance Network.AWS.Pager.AWSPager 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


-- | Lists the existing thing types.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.IoT.ListThingTypes.ListThingTypesResponse
instance Network.AWS.Pager.AWSPager 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


-- | List bulk thing provisioning tasks.
module Network.AWS.IoT.ListThingRegistrationTasks

-- | Creates a value of <a>ListThingRegistrationTasks</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>ltrtStatus</a> - The status of the bulk thing provisioning
--   task.</li>
--   <li><a>ltrtNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltrtMaxResults</a> - The maximum number of results to return at
--   one time.</li>
--   </ul>
listThingRegistrationTasks :: ListThingRegistrationTasks

-- | <i>See:</i> <a>listThingRegistrationTasks</a> smart constructor.
data ListThingRegistrationTasks

-- | The status of the bulk thing provisioning task.
ltrtStatus :: Lens' ListThingRegistrationTasks (Maybe TaskStatus)

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltrtNextToken :: Lens' ListThingRegistrationTasks (Maybe Text)

-- | The maximum number of results to return at one time.
ltrtMaxResults :: Lens' ListThingRegistrationTasks (Maybe Natural)

-- | Creates a value of <a>ListThingRegistrationTasksResponse</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>ltrtrsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltrtrsTaskIds</a> - A list of bulk thing provisioning task
--   IDs.</li>
--   <li><a>ltrtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingRegistrationTasksResponse :: Int -> ListThingRegistrationTasksResponse

-- | <i>See:</i> <a>listThingRegistrationTasksResponse</a> smart
--   constructor.
data ListThingRegistrationTasksResponse

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltrtrsNextToken :: Lens' ListThingRegistrationTasksResponse (Maybe Text)

-- | A list of bulk thing provisioning task IDs.
ltrtrsTaskIds :: Lens' ListThingRegistrationTasksResponse [Text]

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


-- | Information about the thing registration tasks.
module Network.AWS.IoT.ListThingRegistrationTaskReports

-- | Creates a value of <a>ListThingRegistrationTaskReports</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>ltrtrNextToken</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>ltrtrMaxResults</a> - The maximum number of results to return
--   per request.</li>
--   <li><a>ltrtrTaskId</a> - The id of the task.</li>
--   <li><a>ltrtrReportType</a> - The type of task report.</li>
--   </ul>
listThingRegistrationTaskReports :: Text -> ReportType -> ListThingRegistrationTaskReports

-- | <i>See:</i> <a>listThingRegistrationTaskReports</a> smart constructor.
data ListThingRegistrationTaskReports

-- | The token to retrieve the next set of results.
ltrtrNextToken :: Lens' ListThingRegistrationTaskReports (Maybe Text)

-- | The maximum number of results to return per request.
ltrtrMaxResults :: Lens' ListThingRegistrationTaskReports (Maybe Natural)

-- | The id of the task.
ltrtrTaskId :: Lens' ListThingRegistrationTaskReports Text

-- | The type of task report.
ltrtrReportType :: Lens' ListThingRegistrationTaskReports ReportType

-- | Creates a value of <a>ListThingRegistrationTaskReportsResponse</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>ltrtrrsResourceLinks</a> - Links to the task resources.</li>
--   <li><a>ltrtrrsNextToken</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>ltrtrrsReportType</a> - The type of task report.</li>
--   <li><a>ltrtrrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingRegistrationTaskReportsResponse :: Int -> ListThingRegistrationTaskReportsResponse

-- | <i>See:</i> <a>listThingRegistrationTaskReportsResponse</a> smart
--   constructor.
data ListThingRegistrationTaskReportsResponse

-- | Links to the task resources.
ltrtrrsResourceLinks :: Lens' ListThingRegistrationTaskReportsResponse [Text]

-- | The token to retrieve the next set of results.
ltrtrrsNextToken :: Lens' ListThingRegistrationTaskReportsResponse (Maybe Text)

-- | The type of task report.
ltrtrrsReportType :: Lens' ListThingRegistrationTaskReportsResponse (Maybe ReportType)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.ListThingPrincipals.ListThingPrincipalsResponse
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


-- | List the thing groups to which the specified thing belongs.
module Network.AWS.IoT.ListThingGroupsForThing

-- | Creates a value of <a>ListThingGroupsForThing</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>ltgftNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltgftMaxResults</a> - The maximum number of results to return
--   at one time.</li>
--   <li><a>ltgftThingName</a> - The thing name.</li>
--   </ul>
listThingGroupsForThing :: Text -> ListThingGroupsForThing

-- | <i>See:</i> <a>listThingGroupsForThing</a> smart constructor.
data ListThingGroupsForThing

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltgftNextToken :: Lens' ListThingGroupsForThing (Maybe Text)

-- | The maximum number of results to return at one time.
ltgftMaxResults :: Lens' ListThingGroupsForThing (Maybe Natural)

-- | The thing name.
ltgftThingName :: Lens' ListThingGroupsForThing Text

-- | Creates a value of <a>ListThingGroupsForThingResponse</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>ltgftrsThingGroups</a> - The thing groups.</li>
--   <li><a>ltgftrsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltgftrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingGroupsForThingResponse :: Int -> ListThingGroupsForThingResponse

-- | <i>See:</i> <a>listThingGroupsForThingResponse</a> smart constructor.
data ListThingGroupsForThingResponse

-- | The thing groups.
ltgftrsThingGroups :: Lens' ListThingGroupsForThingResponse [GroupNameAndARN]

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltgftrsNextToken :: Lens' ListThingGroupsForThingResponse (Maybe Text)

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


-- | List the thing groups in your account.
module Network.AWS.IoT.ListThingGroups

-- | Creates a value of <a>ListThingGroups</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>ltgNamePrefixFilter</a> - A filter that limits the results to
--   those with the specified name prefix.</li>
--   <li><a>ltgParentGroup</a> - A filter that limits the results to those
--   with the specified parent group.</li>
--   <li><a>ltgNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltgRecursive</a> - If true, return child groups as well.</li>
--   <li><a>ltgMaxResults</a> - The maximum number of results to return at
--   one time.</li>
--   </ul>
listThingGroups :: ListThingGroups

-- | <i>See:</i> <a>listThingGroups</a> smart constructor.
data ListThingGroups

-- | A filter that limits the results to those with the specified name
--   prefix.
ltgNamePrefixFilter :: Lens' ListThingGroups (Maybe Text)

-- | A filter that limits the results to those with the specified parent
--   group.
ltgParentGroup :: Lens' ListThingGroups (Maybe Text)

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltgNextToken :: Lens' ListThingGroups (Maybe Text)

-- | If true, return child groups as well.
ltgRecursive :: Lens' ListThingGroups (Maybe Bool)

-- | The maximum number of results to return at one time.
ltgMaxResults :: Lens' ListThingGroups (Maybe Natural)

-- | Creates a value of <a>ListThingGroupsResponse</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>ltgrsThingGroups</a> - The thing groups.</li>
--   <li><a>ltgrsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>ltgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listThingGroupsResponse :: Int -> ListThingGroupsResponse

-- | <i>See:</i> <a>listThingGroupsResponse</a> smart constructor.
data ListThingGroupsResponse

-- | The thing groups.
ltgrsThingGroups :: Lens' ListThingGroupsResponse [GroupNameAndARN]

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
ltgrsNextToken :: Lens' ListThingGroupsResponse (Maybe Text)

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


-- | List targets for the specified policy.
module Network.AWS.IoT.ListTargetsForPolicy

-- | Creates a value of <a>ListTargetsForPolicy</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>ltfpMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>ltfpPageSize</a> - The maximum number of results to return at
--   one time.</li>
--   <li><a>ltfpPolicyName</a> - The policy name.</li>
--   </ul>
listTargetsForPolicy :: Text -> ListTargetsForPolicy

-- | <i>See:</i> <a>listTargetsForPolicy</a> smart constructor.
data ListTargetsForPolicy

-- | A marker used to get the next set of results.
ltfpMarker :: Lens' ListTargetsForPolicy (Maybe Text)

-- | The maximum number of results to return at one time.
ltfpPageSize :: Lens' ListTargetsForPolicy (Maybe Natural)

-- | The policy name.
ltfpPolicyName :: Lens' ListTargetsForPolicy Text

-- | Creates a value of <a>ListTargetsForPolicyResponse</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>ltfprsTargets</a> - The policy targets.</li>
--   <li><a>ltfprsNextMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>ltfprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listTargetsForPolicyResponse :: Int -> ListTargetsForPolicyResponse

-- | <i>See:</i> <a>listTargetsForPolicyResponse</a> smart constructor.
data ListTargetsForPolicyResponse

-- | The policy targets.
ltfprsTargets :: Lens' ListTargetsForPolicyResponse [Text]

-- | A marker used to get the next set of results.
ltfprsNextMarker :: Lens' ListTargetsForPolicyResponse (Maybe Text)

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


-- | Lists all of the streams in your AWS account.
module Network.AWS.IoT.ListStreams

-- | Creates a value of <a>ListStreams</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>lsNextToken</a> - A token used to get the next set of
--   results.</li>
--   <li><a>lsAscendingOrder</a> - Set to true to return the list of
--   streams in ascending order.</li>
--   <li><a>lsMaxResults</a> - The maximum number of results to return at a
--   time.</li>
--   </ul>
listStreams :: ListStreams

-- | <i>See:</i> <a>listStreams</a> smart constructor.
data ListStreams

-- | A token used to get the next set of results.
lsNextToken :: Lens' ListStreams (Maybe Text)

-- | Set to true to return the list of streams in ascending order.
lsAscendingOrder :: Lens' ListStreams (Maybe Bool)

-- | The maximum number of results to return at a time.
lsMaxResults :: Lens' ListStreams (Maybe Natural)

-- | Creates a value of <a>ListStreamsResponse</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>lsrsNextToken</a> - A token used to get the next set of
--   results.</li>
--   <li><a>lsrsStreams</a> - A list of streams.</li>
--   <li><a>lsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listStreamsResponse :: Int -> ListStreamsResponse

-- | <i>See:</i> <a>listStreamsResponse</a> smart constructor.
data ListStreamsResponse

-- | A token used to get the next set of results.
lsrsNextToken :: Lens' ListStreamsResponse (Maybe Text)

-- | A list of streams.
lsrsStreams :: Lens' ListStreamsResponse [StreamSummary]

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


-- | Lists the role aliases registered in your account.
module Network.AWS.IoT.ListRoleAliases

-- | Creates a value of <a>ListRoleAliases</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>lraMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>lraAscendingOrder</a> - Return the list of role aliases in
--   ascending alphabetical order.</li>
--   <li><a>lraPageSize</a> - The maximum number of results to return at
--   one time.</li>
--   </ul>
listRoleAliases :: ListRoleAliases

-- | <i>See:</i> <a>listRoleAliases</a> smart constructor.
data ListRoleAliases

-- | A marker used to get the next set of results.
lraMarker :: Lens' ListRoleAliases (Maybe Text)

-- | Return the list of role aliases in ascending alphabetical order.
lraAscendingOrder :: Lens' ListRoleAliases (Maybe Bool)

-- | The maximum number of results to return at one time.
lraPageSize :: Lens' ListRoleAliases (Maybe Natural)

-- | Creates a value of <a>ListRoleAliasesResponse</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>lrarsRoleAliases</a> - The role aliases.</li>
--   <li><a>lrarsNextMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>lrarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listRoleAliasesResponse :: Int -> ListRoleAliasesResponse

-- | <i>See:</i> <a>listRoleAliasesResponse</a> smart constructor.
data ListRoleAliasesResponse

-- | The role aliases.
lrarsRoleAliases :: Lens' ListRoleAliasesResponse [Text]

-- | A marker used to get the next set of results.
lrarsNextMarker :: Lens' ListRoleAliasesResponse (Maybe Text)

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


-- | Lists the things associated with the specified principal.
--   
--   This operation returns paginated results.
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 used to get 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 used to get 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 used to get 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 used to get 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 Control.DeepSeq.NFData Network.AWS.IoT.ListPrincipalThings.ListPrincipalThingsResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.ListPolicyVersions.ListPolicyVersionsResponse
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


-- | Lists your policies.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.IoT.ListPolicies.ListPoliciesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Lists certificates that are being transferred but not yet accepted.
--   
--   This operation returns paginated results.
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
--   transferred 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 transferred 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 Control.DeepSeq.NFData Network.AWS.IoT.ListOutgoingCertificates.ListOutgoingCertificatesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Lists OTA updates.
module Network.AWS.IoT.ListOTAUpdates

-- | Creates a value of <a>ListOTAUpdates</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>lotauNextToken</a> - A token used to retrieve the next set of
--   results.</li>
--   <li><a>lotauOtaUpdateStatus</a> - The OTA update job status.</li>
--   <li><a>lotauMaxResults</a> - The maximum number of results to return
--   at one time.</li>
--   </ul>
listOTAUpdates :: ListOTAUpdates

-- | <i>See:</i> <a>listOTAUpdates</a> smart constructor.
data ListOTAUpdates

-- | A token used to retrieve the next set of results.
lotauNextToken :: Lens' ListOTAUpdates (Maybe Text)

-- | The OTA update job status.
lotauOtaUpdateStatus :: Lens' ListOTAUpdates (Maybe OTAUpdateStatus)

-- | The maximum number of results to return at one time.
lotauMaxResults :: Lens' ListOTAUpdates (Maybe Natural)

-- | Creates a value of <a>ListOTAUpdatesResponse</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>lotaursNextToken</a> - A token to use to get the next set of
--   results.</li>
--   <li><a>lotaursOtaUpdates</a> - A list of OTA update jobs.</li>
--   <li><a>lotaursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listOTAUpdatesResponse :: Int -> ListOTAUpdatesResponse

-- | <i>See:</i> <a>listOTAUpdatesResponse</a> smart constructor.
data ListOTAUpdatesResponse

-- | A token to use to get the next set of results.
lotaursNextToken :: Lens' ListOTAUpdatesResponse (Maybe Text)

-- | A list of OTA update jobs.
lotaursOtaUpdates :: Lens' ListOTAUpdatesResponse [OTAUpdateSummary]

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


-- | Lists jobs.
module Network.AWS.IoT.ListJobs

-- | Creates a value of <a>ListJobs</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>ljStatus</a> - An optional filter that lets you search for jobs
--   that have the specified status.</li>
--   <li><a>ljThingGroupId</a> - A filter that limits the returned jobs to
--   those for the specified group.</li>
--   <li><a>ljNextToken</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>ljThingGroupName</a> - A filter that limits the returned jobs
--   to those for the specified group.</li>
--   <li><a>ljMaxResults</a> - The maximum number of results to return per
--   request.</li>
--   <li><a>ljTargetSelection</a> - Specifies whether the job will continue
--   to run (CONTINUOUS), or will be complete after all those things
--   specified as targets have completed the job (SNAPSHOT). If continuous,
--   the job may also be run on a thing when a change is detected in a
--   target. For example, a job will run on a thing when the thing is added
--   to a target group, even after the job was completed by all things
--   originally in the group.</li>
--   </ul>
listJobs :: ListJobs

-- | <i>See:</i> <a>listJobs</a> smart constructor.
data ListJobs

-- | An optional filter that lets you search for jobs that have the
--   specified status.
ljStatus :: Lens' ListJobs (Maybe JobStatus)

-- | A filter that limits the returned jobs to those for the specified
--   group.
ljThingGroupId :: Lens' ListJobs (Maybe Text)

-- | The token to retrieve the next set of results.
ljNextToken :: Lens' ListJobs (Maybe Text)

-- | A filter that limits the returned jobs to those for the specified
--   group.
ljThingGroupName :: Lens' ListJobs (Maybe Text)

-- | The maximum number of results to return per request.
ljMaxResults :: Lens' ListJobs (Maybe Natural)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a thing when the thing is added to a target group, even after the job
--   was completed by all things originally in the group.
ljTargetSelection :: Lens' ListJobs (Maybe TargetSelection)

-- | Creates a value of <a>ListJobsResponse</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>ljrsJobs</a> - A list of jobs.</li>
--   <li><a>ljrsNextToken</a> - The token for the next set of results, or
--   <b>null</b> if there are no additional results.</li>
--   <li><a>ljrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listJobsResponse :: Int -> ListJobsResponse

-- | <i>See:</i> <a>listJobsResponse</a> smart constructor.
data ListJobsResponse

-- | A list of jobs.
ljrsJobs :: Lens' ListJobsResponse [JobSummary]

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

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


-- | Lists the job executions for the specified thing.
module Network.AWS.IoT.ListJobExecutionsForThing

-- | Creates a value of <a>ListJobExecutionsForThing</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>ljeftStatus</a> - An optional filter that lets you search for
--   jobs that have the specified status.</li>
--   <li><a>ljeftNextToken</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>ljeftMaxResults</a> - The maximum number of results to be
--   returned per request.</li>
--   <li><a>ljeftThingName</a> - The thing name.</li>
--   </ul>
listJobExecutionsForThing :: Text -> ListJobExecutionsForThing

-- | <i>See:</i> <a>listJobExecutionsForThing</a> smart constructor.
data ListJobExecutionsForThing

-- | An optional filter that lets you search for jobs that have the
--   specified status.
ljeftStatus :: Lens' ListJobExecutionsForThing (Maybe JobExecutionStatus)

-- | The token to retrieve the next set of results.
ljeftNextToken :: Lens' ListJobExecutionsForThing (Maybe Text)

-- | The maximum number of results to be returned per request.
ljeftMaxResults :: Lens' ListJobExecutionsForThing (Maybe Natural)

-- | The thing name.
ljeftThingName :: Lens' ListJobExecutionsForThing Text

-- | Creates a value of <a>ListJobExecutionsForThingResponse</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>ljeftrsExecutionSummaries</a> - A list of job execution
--   summaries.</li>
--   <li><a>ljeftrsNextToken</a> - The token for the next set of results,
--   or <b>null</b> if there are no additional results.</li>
--   <li><a>ljeftrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listJobExecutionsForThingResponse :: Int -> ListJobExecutionsForThingResponse

-- | <i>See:</i> <a>listJobExecutionsForThingResponse</a> smart
--   constructor.
data ListJobExecutionsForThingResponse

-- | A list of job execution summaries.
ljeftrsExecutionSummaries :: Lens' ListJobExecutionsForThingResponse [JobExecutionSummaryForThing]

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

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


-- | Lists the job executions for a job.
module Network.AWS.IoT.ListJobExecutionsForJob

-- | Creates a value of <a>ListJobExecutionsForJob</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>ljefjStatus</a> - The status of the job.</li>
--   <li><a>ljefjNextToken</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>ljefjMaxResults</a> - The maximum number of results to be
--   returned per request.</li>
--   <li><a>ljefjJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   </ul>
listJobExecutionsForJob :: Text -> ListJobExecutionsForJob

-- | <i>See:</i> <a>listJobExecutionsForJob</a> smart constructor.
data ListJobExecutionsForJob

-- | The status of the job.
ljefjStatus :: Lens' ListJobExecutionsForJob (Maybe JobExecutionStatus)

-- | The token to retrieve the next set of results.
ljefjNextToken :: Lens' ListJobExecutionsForJob (Maybe Text)

-- | The maximum number of results to be returned per request.
ljefjMaxResults :: Lens' ListJobExecutionsForJob (Maybe Natural)

-- | The unique identifier you assigned to this job when it was created.
ljefjJobId :: Lens' ListJobExecutionsForJob Text

-- | Creates a value of <a>ListJobExecutionsForJobResponse</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>ljefjrsExecutionSummaries</a> - A list of job execution
--   summaries.</li>
--   <li><a>ljefjrsNextToken</a> - The token for the next set of results,
--   or <b>null</b> if there are no additional results.</li>
--   <li><a>ljefjrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listJobExecutionsForJobResponse :: Int -> ListJobExecutionsForJobResponse

-- | <i>See:</i> <a>listJobExecutionsForJobResponse</a> smart constructor.
data ListJobExecutionsForJobResponse

-- | A list of job execution summaries.
ljefjrsExecutionSummaries :: Lens' ListJobExecutionsForJobResponse [JobExecutionSummaryForJob]

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

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


-- | Lists the search indices.
module Network.AWS.IoT.ListIndices

-- | Creates a value of <a>ListIndices</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>liNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>liMaxResults</a> - The maximum number of results to return at
--   one time.</li>
--   </ul>
listIndices :: ListIndices

-- | <i>See:</i> <a>listIndices</a> smart constructor.
data ListIndices

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
liNextToken :: Lens' ListIndices (Maybe Text)

-- | The maximum number of results to return at one time.
liMaxResults :: Lens' ListIndices (Maybe Natural)

-- | Creates a value of <a>ListIndicesResponse</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>lirsNextToken</a> - The token used to get the next set of
--   results, or <b>null</b> if there are no additional results.</li>
--   <li><a>lirsIndexNames</a> - The index names.</li>
--   <li><a>lirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listIndicesResponse :: Int -> ListIndicesResponse

-- | <i>See:</i> <a>listIndicesResponse</a> smart constructor.
data ListIndicesResponse

-- | The token used to get the next set of results, or <b>null</b> if there
--   are no additional results.
lirsNextToken :: Lens' ListIndicesResponse (Maybe Text)

-- | The index names.
lirsIndexNames :: Lens' ListIndicesResponse [Text]

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


-- | List the device certificates signed by the specified CA certificate.
--   
--   This operation returns paginated results.
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 Control.DeepSeq.NFData Network.AWS.IoT.ListCertificatesByCA.ListCertificatesByCAResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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.
--   
--   This operation returns paginated 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 Control.DeepSeq.NFData Network.AWS.IoT.ListCertificates.ListCertificatesResponse
instance Network.AWS.Pager.AWSPager 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


-- | 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.
--   
--   This operation returns paginated 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 Control.DeepSeq.NFData Network.AWS.IoT.ListCACertificates.ListCACertificatesResponse
instance Network.AWS.Pager.AWSPager 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


-- | Lists the authorizers registered in your account.
module Network.AWS.IoT.ListAuthorizers

-- | Creates a value of <a>ListAuthorizers</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>laStatus</a> - The status of the list authorizers request.</li>
--   <li><a>laMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>laAscendingOrder</a> - Return the list of authorizers in
--   ascending alphabetical order.</li>
--   <li><a>laPageSize</a> - The maximum number of results to return at one
--   time.</li>
--   </ul>
listAuthorizers :: ListAuthorizers

-- | <i>See:</i> <a>listAuthorizers</a> smart constructor.
data ListAuthorizers

-- | The status of the list authorizers request.
laStatus :: Lens' ListAuthorizers (Maybe AuthorizerStatus)

-- | A marker used to get the next set of results.
laMarker :: Lens' ListAuthorizers (Maybe Text)

-- | Return the list of authorizers in ascending alphabetical order.
laAscendingOrder :: Lens' ListAuthorizers (Maybe Bool)

-- | The maximum number of results to return at one time.
laPageSize :: Lens' ListAuthorizers (Maybe Natural)

-- | Creates a value of <a>ListAuthorizersResponse</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>larsAuthorizers</a> - The authorizers.</li>
--   <li><a>larsNextMarker</a> - A marker used to get the next set of
--   results.</li>
--   <li><a>larsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listAuthorizersResponse :: Int -> ListAuthorizersResponse

-- | <i>See:</i> <a>listAuthorizersResponse</a> smart constructor.
data ListAuthorizersResponse

-- | The authorizers.
larsAuthorizers :: Lens' ListAuthorizersResponse [AuthorizerSummary]

-- | A marker used to get the next set of results.
larsNextMarker :: Lens' ListAuthorizersResponse (Maybe Text)

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


-- | Lists the policies attached to the specified thing group.
module Network.AWS.IoT.ListAttachedPolicies

-- | Creates a value of <a>ListAttachedPolicies</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>lapMarker</a> - The token to retrieve the next set of
--   results.</li>
--   <li><a>lapRecursive</a> - When true, recursively list attached
--   policies.</li>
--   <li><a>lapPageSize</a> - The maximum number of results to be returned
--   per request.</li>
--   <li><a>lapTarget</a> - The group for which the policies will be
--   listed.</li>
--   </ul>
listAttachedPolicies :: Text -> ListAttachedPolicies

-- | <i>See:</i> <a>listAttachedPolicies</a> smart constructor.
data ListAttachedPolicies

-- | The token to retrieve the next set of results.
lapMarker :: Lens' ListAttachedPolicies (Maybe Text)

-- | When true, recursively list attached policies.
lapRecursive :: Lens' ListAttachedPolicies (Maybe Bool)

-- | The maximum number of results to be returned per request.
lapPageSize :: Lens' ListAttachedPolicies (Maybe Natural)

-- | The group for which the policies will be listed.
lapTarget :: Lens' ListAttachedPolicies Text

-- | Creates a value of <a>ListAttachedPoliciesResponse</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>laprsNextMarker</a> - The token to retrieve the next set of
--   results, or `<a>null</a>` if there are no more results.</li>
--   <li><a>laprsPolicies</a> - The policies.</li>
--   <li><a>laprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
listAttachedPoliciesResponse :: Int -> ListAttachedPoliciesResponse

-- | <i>See:</i> <a>listAttachedPoliciesResponse</a> smart constructor.
data ListAttachedPoliciesResponse

-- | The token to retrieve the next set of results, or `<a>null</a>` if
--   there are no more results.
laprsNextMarker :: Lens' ListAttachedPoliciesResponse (Maybe Text)

-- | The policies.
laprsPolicies :: Lens' ListAttachedPoliciesResponse [Policy]

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


-- | Gets the fine grained logging options.
module Network.AWS.IoT.GetV2LoggingOptions

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

-- | <i>See:</i> <a>getV2LoggingOptions</a> smart constructor.
data GetV2LoggingOptions

-- | Creates a value of <a>GetV2LoggingOptionsResponse</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>gvlorsDisableAllLogs</a> - Disables all logs.</li>
--   <li><a>gvlorsDefaultLogLevel</a> - The default log level.</li>
--   <li><a>gvlorsRoleARN</a> - The IAM role ARN AWS IoT uses to write to
--   your CloudWatch logs.</li>
--   <li><a>gvlorsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getV2LoggingOptionsResponse :: Int -> GetV2LoggingOptionsResponse

-- | <i>See:</i> <a>getV2LoggingOptionsResponse</a> smart constructor.
data GetV2LoggingOptionsResponse

-- | Disables all logs.
gvlorsDisableAllLogs :: Lens' GetV2LoggingOptionsResponse (Maybe Bool)

-- | The default log level.
gvlorsDefaultLogLevel :: Lens' GetV2LoggingOptionsResponse (Maybe LogLevel)

-- | The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
gvlorsRoleARN :: Lens' GetV2LoggingOptionsResponse (Maybe Text)

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


-- | Gets information about the 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 Control.DeepSeq.NFData Network.AWS.IoT.GetTopicRule.GetTopicRuleResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.GetRegistrationCode.GetRegistrationCodeResponse
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


-- | 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>gpvrsLastModifiedDate</a> - The date the policy version was
--   last modified.</li>
--   <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>gpvrsCreationDate</a> - The date the policy version was
--   created.</li>
--   <li><a>gpvrsGenerationId</a> - The generation ID of the policy
--   version.</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 date the policy version was last modified.
gpvrsLastModifiedDate :: Lens' GetPolicyVersionResponse (Maybe UTCTime)

-- | 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)

-- | The date the policy version was created.
gpvrsCreationDate :: Lens' GetPolicyVersionResponse (Maybe UTCTime)

-- | The generation ID of the policy version.
gpvrsGenerationId :: 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 Control.DeepSeq.NFData Network.AWS.IoT.GetPolicyVersion.GetPolicyVersionResponse
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


-- | 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>gprsLastModifiedDate</a> - The date the policy was last
--   modified.</li>
--   <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>gprsCreationDate</a> - The date the policy was created.</li>
--   <li><a>gprsGenerationId</a> - The generation ID of the policy.</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 date the policy was last modified.
gprsLastModifiedDate :: Lens' GetPolicyResponse (Maybe UTCTime)

-- | 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)

-- | The date the policy was created.
gprsCreationDate :: Lens' GetPolicyResponse (Maybe UTCTime)

-- | The generation ID of the policy.
gprsGenerationId :: 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 Control.DeepSeq.NFData Network.AWS.IoT.GetPolicy.GetPolicyResponse
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


-- | Gets an OTA update.
module Network.AWS.IoT.GetOTAUpdate

-- | Creates a value of <a>GetOTAUpdate</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>gotauOtaUpdateId</a> - The OTA update ID.</li>
--   </ul>
getOTAUpdate :: Text -> GetOTAUpdate

-- | <i>See:</i> <a>getOTAUpdate</a> smart constructor.
data GetOTAUpdate

-- | The OTA update ID.
gotauOtaUpdateId :: Lens' GetOTAUpdate Text

-- | Creates a value of <a>GetOTAUpdateResponse</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>gotaursOtaUpdateInfo</a> - The OTA update info.</li>
--   <li><a>gotaursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getOTAUpdateResponse :: Int -> GetOTAUpdateResponse

-- | <i>See:</i> <a>getOTAUpdateResponse</a> smart constructor.
data GetOTAUpdateResponse

-- | The OTA update info.
gotaursOtaUpdateInfo :: Lens' GetOTAUpdateResponse (Maybe OTAUpdateInfo)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.GetLoggingOptions.GetLoggingOptionsResponse
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


-- | Gets a job document.
module Network.AWS.IoT.GetJobDocument

-- | Creates a value of <a>GetJobDocument</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>gjdJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   </ul>
getJobDocument :: Text -> GetJobDocument

-- | <i>See:</i> <a>getJobDocument</a> smart constructor.
data GetJobDocument

-- | The unique identifier you assigned to this job when it was created.
gjdJobId :: Lens' GetJobDocument Text

-- | Creates a value of <a>GetJobDocumentResponse</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>gjdrsDocument</a> - The job document content.</li>
--   <li><a>gjdrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getJobDocumentResponse :: Int -> GetJobDocumentResponse

-- | <i>See:</i> <a>getJobDocumentResponse</a> smart constructor.
data GetJobDocumentResponse

-- | The job document content.
gjdrsDocument :: Lens' GetJobDocumentResponse (Maybe Text)

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


-- | Gets the search configuration.
module Network.AWS.IoT.GetIndexingConfiguration

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

-- | <i>See:</i> <a>getIndexingConfiguration</a> smart constructor.
data GetIndexingConfiguration

-- | Creates a value of <a>GetIndexingConfigurationResponse</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>gicrsThingIndexingConfiguration</a> - Thing indexing
--   configuration.</li>
--   <li><a>gicrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getIndexingConfigurationResponse :: Int -> GetIndexingConfigurationResponse

-- | <i>See:</i> <a>getIndexingConfigurationResponse</a> smart constructor.
data GetIndexingConfigurationResponse

-- | Thing indexing configuration.
gicrsThingIndexingConfiguration :: Lens' GetIndexingConfigurationResponse (Maybe ThingIndexingConfiguration)

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


-- | Gets effective policies.
module Network.AWS.IoT.GetEffectivePolicies

-- | Creates a value of <a>GetEffectivePolicies</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>gepPrincipal</a> - The principal.</li>
--   <li><a>gepCognitoIdentityPoolId</a> - The Cognito identity pool
--   ID.</li>
--   <li><a>gepThingName</a> - The thing name.</li>
--   </ul>
getEffectivePolicies :: GetEffectivePolicies

-- | <i>See:</i> <a>getEffectivePolicies</a> smart constructor.
data GetEffectivePolicies

-- | The principal.
gepPrincipal :: Lens' GetEffectivePolicies (Maybe Text)

-- | The Cognito identity pool ID.
gepCognitoIdentityPoolId :: Lens' GetEffectivePolicies (Maybe Text)

-- | The thing name.
gepThingName :: Lens' GetEffectivePolicies (Maybe Text)

-- | Creates a value of <a>GetEffectivePoliciesResponse</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>geprsEffectivePolicies</a> - The effective policies.</li>
--   <li><a>geprsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
getEffectivePoliciesResponse :: Int -> GetEffectivePoliciesResponse

-- | <i>See:</i> <a>getEffectivePoliciesResponse</a> smart constructor.
data GetEffectivePoliciesResponse

-- | The effective policies.
geprsEffectivePolicies :: Lens' GetEffectivePoliciesResponse [EffectivePolicy]

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


-- | Enables the 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 Control.DeepSeq.NFData Network.AWS.IoT.EnableTopicRule.EnableTopicRuleResponse
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


-- | Disables the 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 Control.DeepSeq.NFData Network.AWS.IoT.DisableTopicRule.DisableTopicRuleResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DetachThingPrincipal.DetachThingPrincipalResponse
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


-- | Detaches a policy from the specified target.
module Network.AWS.IoT.DetachPolicy

-- | Creates a value of <a>DetachPolicy</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>dPolicyName</a> - The policy to detach.</li>
--   <li><a>dTarget</a> - The target from which the policy will be
--   detached.</li>
--   </ul>
detachPolicy :: Text -> Text -> DetachPolicy

-- | <i>See:</i> <a>detachPolicy</a> smart constructor.
data DetachPolicy

-- | The policy to detach.
dPolicyName :: Lens' DetachPolicy Text

-- | The target from which the policy will be detached.
dTarget :: Lens' DetachPolicy Text

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

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


-- | 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>desrsThingTypeProperties</a> - The ThingTypeProperties contains
--   information about the thing type including description, and a list of
--   searchable thing attribute names.</li>
--   <li><a>desrsThingTypeName</a> - The name of the thing type.</li>
--   <li><a>desrsThingTypeId</a> - The thing type ID.</li>
--   <li><a>desrsThingTypeMetadata</a> - 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 it was deprecated.</li>
--   <li><a>desrsThingTypeARN</a> - The thing type ARN.</li>
--   <li><a>desrsResponseStatus</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.
desrsThingTypeProperties :: Lens' DescribeThingTypeResponse (Maybe ThingTypeProperties)

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

-- | The thing type ID.
desrsThingTypeId :: Lens' DescribeThingTypeResponse (Maybe Text)

-- | 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 it was deprecated.
desrsThingTypeMetadata :: Lens' DescribeThingTypeResponse (Maybe ThingTypeMetadata)

-- | The thing type ARN.
desrsThingTypeARN :: Lens' DescribeThingTypeResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
desrsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.IoT.DescribeThingType.DescribeThingTypeResponse
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


-- | Describes a bulk thing provisioning task.
module Network.AWS.IoT.DescribeThingRegistrationTask

-- | Creates a value of <a>DescribeThingRegistrationTask</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>dtrtTaskId</a> - The task ID.</li>
--   </ul>
describeThingRegistrationTask :: Text -> DescribeThingRegistrationTask

-- | <i>See:</i> <a>describeThingRegistrationTask</a> smart constructor.
data DescribeThingRegistrationTask

-- | The task ID.
dtrtTaskId :: Lens' DescribeThingRegistrationTask Text

-- | Creates a value of <a>DescribeThingRegistrationTaskResponse</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>dtrtrsStatus</a> - The status of the bulk thing provisioning
--   task.</li>
--   <li><a>dtrtrsLastModifiedDate</a> - The date when the task was last
--   modified.</li>
--   <li><a>dtrtrsInputFileKey</a> - The input file key.</li>
--   <li><a>dtrtrsTaskId</a> - The task ID.</li>
--   <li><a>dtrtrsCreationDate</a> - The task creation date.</li>
--   <li><a>dtrtrsPercentageProgress</a> - The progress of the bulk
--   provisioning task expressed as a percentage.</li>
--   <li><a>dtrtrsTemplateBody</a> - The task's template.</li>
--   <li><a>dtrtrsSuccessCount</a> - The number of things successfully
--   provisioned.</li>
--   <li><a>dtrtrsMessage</a> - The message.</li>
--   <li><a>dtrtrsFailureCount</a> - The number of things that failed to be
--   provisioned.</li>
--   <li><a>dtrtrsInputFileBucket</a> - The S3 bucket that contains the
--   input file.</li>
--   <li><a>dtrtrsRoleARN</a> - The role ARN that grants access to the
--   input file bucket.</li>
--   <li><a>dtrtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeThingRegistrationTaskResponse :: Int -> DescribeThingRegistrationTaskResponse

-- | <i>See:</i> <a>describeThingRegistrationTaskResponse</a> smart
--   constructor.
data DescribeThingRegistrationTaskResponse

-- | The status of the bulk thing provisioning task.
dtrtrsStatus :: Lens' DescribeThingRegistrationTaskResponse (Maybe TaskStatus)

-- | The date when the task was last modified.
dtrtrsLastModifiedDate :: Lens' DescribeThingRegistrationTaskResponse (Maybe UTCTime)

-- | The input file key.
dtrtrsInputFileKey :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

-- | The task ID.
dtrtrsTaskId :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

-- | The task creation date.
dtrtrsCreationDate :: Lens' DescribeThingRegistrationTaskResponse (Maybe UTCTime)

-- | The progress of the bulk provisioning task expressed as a percentage.
dtrtrsPercentageProgress :: Lens' DescribeThingRegistrationTaskResponse (Maybe Natural)

-- | The task's template.
dtrtrsTemplateBody :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

-- | The number of things successfully provisioned.
dtrtrsSuccessCount :: Lens' DescribeThingRegistrationTaskResponse (Maybe Int)

-- | The message.
dtrtrsMessage :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

-- | The number of things that failed to be provisioned.
dtrtrsFailureCount :: Lens' DescribeThingRegistrationTaskResponse (Maybe Int)

-- | The S3 bucket that contains the input file.
dtrtrsInputFileBucket :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

-- | The role ARN that grants access to the input file bucket.
dtrtrsRoleARN :: Lens' DescribeThingRegistrationTaskResponse (Maybe Text)

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


-- | Describe a thing group.
module Network.AWS.IoT.DescribeThingGroup

-- | Creates a value of <a>DescribeThingGroup</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>dtgThingGroupName</a> - The name of the thing group.</li>
--   </ul>
describeThingGroup :: Text -> DescribeThingGroup

-- | <i>See:</i> <a>describeThingGroup</a> smart constructor.
data DescribeThingGroup

-- | The name of the thing group.
dtgThingGroupName :: Lens' DescribeThingGroup Text

-- | Creates a value of <a>DescribeThingGroupResponse</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>dtgrsThingGroupARN</a> - The thing group ARN.</li>
--   <li><a>dtgrsThingGroupId</a> - The thing group ID.</li>
--   <li><a>dtgrsThingGroupMetadata</a> - Thing group metadata.</li>
--   <li><a>dtgrsThingGroupName</a> - The name of the thing group.</li>
--   <li><a>dtgrsVersion</a> - The version of the thing group.</li>
--   <li><a>dtgrsThingGroupProperties</a> - The thing group
--   properties.</li>
--   <li><a>dtgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeThingGroupResponse :: Int -> DescribeThingGroupResponse

-- | <i>See:</i> <a>describeThingGroupResponse</a> smart constructor.
data DescribeThingGroupResponse

-- | The thing group ARN.
dtgrsThingGroupARN :: Lens' DescribeThingGroupResponse (Maybe Text)

-- | The thing group ID.
dtgrsThingGroupId :: Lens' DescribeThingGroupResponse (Maybe Text)

-- | Thing group metadata.
dtgrsThingGroupMetadata :: Lens' DescribeThingGroupResponse (Maybe ThingGroupMetadata)

-- | The name of the thing group.
dtgrsThingGroupName :: Lens' DescribeThingGroupResponse (Maybe Text)

-- | The version of the thing group.
dtgrsVersion :: Lens' DescribeThingGroupResponse (Maybe Integer)

-- | The thing group properties.
dtgrsThingGroupProperties :: Lens' DescribeThingGroupResponse (Maybe ThingGroupProperties)

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


-- | 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>dtrsThingARN</a> - The ARN of the thing to describe.</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>dtrsThingId</a> - The ID of the thing to describe.</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 ARN of the thing to describe.
dtrsThingARN :: 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)

-- | The ID of the thing to describe.
dtrsThingId :: 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 Control.DeepSeq.NFData Network.AWS.IoT.DescribeThing.DescribeThingResponse
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


-- | Gets information about a stream.
module Network.AWS.IoT.DescribeStream

-- | Creates a value of <a>DescribeStream</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>dStreamId</a> - The stream ID.</li>
--   </ul>
describeStream :: Text -> DescribeStream

-- | <i>See:</i> <a>describeStream</a> smart constructor.
data DescribeStream

-- | The stream ID.
dStreamId :: Lens' DescribeStream Text

-- | Creates a value of <a>DescribeStreamResponse</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>dssrsStreamInfo</a> - Information about the stream.</li>
--   <li><a>dssrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeStreamResponse :: Int -> DescribeStreamResponse

-- | <i>See:</i> <a>describeStreamResponse</a> smart constructor.
data DescribeStreamResponse

-- | Information about the stream.
dssrsStreamInfo :: Lens' DescribeStreamResponse (Maybe StreamInfo)

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


-- | Describes a role alias.
module Network.AWS.IoT.DescribeRoleAlias

-- | Creates a value of <a>DescribeRoleAlias</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>draRoleAlias</a> - The role alias to describe.</li>
--   </ul>
describeRoleAlias :: Text -> DescribeRoleAlias

-- | <i>See:</i> <a>describeRoleAlias</a> smart constructor.
data DescribeRoleAlias

-- | The role alias to describe.
draRoleAlias :: Lens' DescribeRoleAlias Text

-- | Creates a value of <a>DescribeRoleAliasResponse</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>drarsRoleAliasDescription</a> - The role alias
--   description.</li>
--   <li><a>drarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeRoleAliasResponse :: Int -> DescribeRoleAliasResponse

-- | <i>See:</i> <a>describeRoleAliasResponse</a> smart constructor.
data DescribeRoleAliasResponse

-- | The role alias description.
drarsRoleAliasDescription :: Lens' DescribeRoleAliasResponse (Maybe RoleAliasDescription)

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


-- | Describes a job execution.
module Network.AWS.IoT.DescribeJobExecution

-- | Creates a value of <a>DescribeJobExecution</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>djeExecutionNumber</a> - A string (consisting of the digits "0"
--   through "9" which is used to specify a particular job execution on a
--   particular device.</li>
--   <li><a>djeJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>djeThingName</a> - The name of the thing on which the job
--   execution is running.</li>
--   </ul>
describeJobExecution :: Text -> Text -> DescribeJobExecution

-- | <i>See:</i> <a>describeJobExecution</a> smart constructor.
data DescribeJobExecution

-- | A string (consisting of the digits "0" through "9" which is used to
--   specify a particular job execution on a particular device.
djeExecutionNumber :: Lens' DescribeJobExecution (Maybe Integer)

-- | The unique identifier you assigned to this job when it was created.
djeJobId :: Lens' DescribeJobExecution Text

-- | The name of the thing on which the job execution is running.
djeThingName :: Lens' DescribeJobExecution Text

-- | Creates a value of <a>DescribeJobExecutionResponse</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>djersExecution</a> - Information about the job execution.</li>
--   <li><a>djersResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeJobExecutionResponse :: Int -> DescribeJobExecutionResponse

-- | <i>See:</i> <a>describeJobExecutionResponse</a> smart constructor.
data DescribeJobExecutionResponse

-- | Information about the job execution.
djersExecution :: Lens' DescribeJobExecutionResponse (Maybe JobExecution)

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


-- | Describes a job.
module Network.AWS.IoT.DescribeJob

-- | Creates a value of <a>DescribeJob</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>djJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   </ul>
describeJob :: Text -> DescribeJob

-- | <i>See:</i> <a>describeJob</a> smart constructor.
data DescribeJob

-- | The unique identifier you assigned to this job when it was created.
djJobId :: Lens' DescribeJob Text

-- | Creates a value of <a>DescribeJobResponse</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>djrsDocumentSource</a> - An S3 link to the job document.</li>
--   <li><a>djrsJob</a> - Information about the job.</li>
--   <li><a>djrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeJobResponse :: Int -> DescribeJobResponse

-- | <i>See:</i> <a>describeJobResponse</a> smart constructor.
data DescribeJobResponse

-- | An S3 link to the job document.
djrsDocumentSource :: Lens' DescribeJobResponse (Maybe Text)

-- | Information about the job.
djrsJob :: Lens' DescribeJobResponse (Maybe Job)

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


-- | Describes a search index.
module Network.AWS.IoT.DescribeIndex

-- | Creates a value of <a>DescribeIndex</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>diIndexName</a> - The index name.</li>
--   </ul>
describeIndex :: Text -> DescribeIndex

-- | <i>See:</i> <a>describeIndex</a> smart constructor.
data DescribeIndex

-- | The index name.
diIndexName :: Lens' DescribeIndex Text

-- | Creates a value of <a>DescribeIndexResponse</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>dirsIndexStatus</a> - The index status.</li>
--   <li><a>dirsSchema</a> - Contains a value that specifies the type of
--   indexing performed. Valid values are: * REGISTRY – Your thing index
--   will contain only registry data. * REGISTRY_AND_SHADOW - Your thing
--   index will contain registry and shadow data.</li>
--   <li><a>dirsIndexName</a> - The index name.</li>
--   <li><a>dirsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeIndexResponse :: Int -> DescribeIndexResponse

-- | <i>See:</i> <a>describeIndexResponse</a> smart constructor.
data DescribeIndexResponse

-- | The index status.
dirsIndexStatus :: Lens' DescribeIndexResponse (Maybe IndexStatus)

-- | Contains a value that specifies the type of indexing performed. Valid
--   values are: * REGISTRY – Your thing index will contain only registry
--   data. * REGISTRY_AND_SHADOW - Your thing index will contain registry
--   and shadow data.
dirsSchema :: Lens' DescribeIndexResponse (Maybe Text)

-- | The index name.
dirsIndexName :: Lens' DescribeIndexResponse (Maybe Text)

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


-- | Describes event configurations.
module Network.AWS.IoT.DescribeEventConfigurations

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

-- | <i>See:</i> <a>describeEventConfigurations</a> smart constructor.
data DescribeEventConfigurations

-- | Creates a value of <a>DescribeEventConfigurationsResponse</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>decrsLastModifiedDate</a> - The date the event configurations
--   were last modified.</li>
--   <li><a>decrsEventConfigurations</a> - The event configurations.</li>
--   <li><a>decrsCreationDate</a> - The creation date of the event
--   configuration.</li>
--   <li><a>decrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeEventConfigurationsResponse :: Int -> DescribeEventConfigurationsResponse

-- | <i>See:</i> <a>describeEventConfigurationsResponse</a> smart
--   constructor.
data DescribeEventConfigurationsResponse

-- | The date the event configurations were last modified.
decrsLastModifiedDate :: Lens' DescribeEventConfigurationsResponse (Maybe UTCTime)

-- | The event configurations.
decrsEventConfigurations :: Lens' DescribeEventConfigurationsResponse (HashMap EventType Configuration)

-- | The creation date of the event configuration.
decrsCreationDate :: Lens' DescribeEventConfigurationsResponse (Maybe UTCTime)

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


-- | 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.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>deEndpointType</a> - The endpoint type.</li>
--   </ul>
describeEndpoint :: DescribeEndpoint

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

-- | The endpoint type.
deEndpointType :: Lens' DescribeEndpoint (Maybe Text)

-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DescribeEndpoint.DescribeEndpointResponse
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


-- | Describes the default authorizer.
module Network.AWS.IoT.DescribeDefaultAuthorizer

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

-- | <i>See:</i> <a>describeDefaultAuthorizer</a> smart constructor.
data DescribeDefaultAuthorizer

-- | Creates a value of <a>DescribeDefaultAuthorizerResponse</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>ddarsAuthorizerDescription</a> - The default authorizer's
--   description.</li>
--   <li><a>ddarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeDefaultAuthorizerResponse :: Int -> DescribeDefaultAuthorizerResponse

-- | <i>See:</i> <a>describeDefaultAuthorizerResponse</a> smart
--   constructor.
data DescribeDefaultAuthorizerResponse

-- | The default authorizer's description.
ddarsAuthorizerDescription :: Lens' DescribeDefaultAuthorizerResponse (Maybe AuthorizerDescription)

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


-- | 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. (The last
--   part of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.DescribeCertificate.DescribeCertificateResponse
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


-- | 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>dcaccrsCertificateDescription</a> - The CA certificate
--   description.</li>
--   <li><a>dcaccrsRegistrationConfig</a> - Information about the
--   registration configuration.</li>
--   <li><a>dcaccrsResponseStatus</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.
dcaccrsCertificateDescription :: Lens' DescribeCACertificateResponse (Maybe CACertificateDescription)

-- | Information about the registration configuration.
dcaccrsRegistrationConfig :: Lens' DescribeCACertificateResponse (Maybe RegistrationConfig)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
dcaccrsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.IoT.DescribeCACertificate.DescribeCACertificateResponse
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


-- | Describes an authorizer.
module Network.AWS.IoT.DescribeAuthorizer

-- | Creates a value of <a>DescribeAuthorizer</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>daAuthorizerName</a> - The name of the authorizer to
--   describe.</li>
--   </ul>
describeAuthorizer :: Text -> DescribeAuthorizer

-- | <i>See:</i> <a>describeAuthorizer</a> smart constructor.
data DescribeAuthorizer

-- | The name of the authorizer to describe.
daAuthorizerName :: Lens' DescribeAuthorizer Text

-- | Creates a value of <a>DescribeAuthorizerResponse</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>darsAuthorizerDescription</a> - The authorizer
--   description.</li>
--   <li><a>darsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
describeAuthorizerResponse :: Int -> DescribeAuthorizerResponse

-- | <i>See:</i> <a>describeAuthorizerResponse</a> smart constructor.
data DescribeAuthorizerResponse

-- | The authorizer description.
darsAuthorizerDescription :: Lens' DescribeAuthorizerResponse (Maybe AuthorizerDescription)

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DeprecateThingType.DeprecateThingTypeResponse
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


-- | Deletes a logging level.
module Network.AWS.IoT.DeleteV2LoggingLevel

-- | Creates a value of <a>DeleteV2LoggingLevel</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>dvllTargetType</a> - The type of resource for which you are
--   configuring logging. Must be <tt>THING_Group</tt> .</li>
--   <li><a>dvllTargetName</a> - The name of the resource for which you are
--   configuring logging.</li>
--   </ul>
deleteV2LoggingLevel :: LogTargetType -> Text -> DeleteV2LoggingLevel

-- | <i>See:</i> <a>deleteV2LoggingLevel</a> smart constructor.
data DeleteV2LoggingLevel

-- | The type of resource for which you are configuring logging. Must be
--   <tt>THING_Group</tt> .
dvllTargetType :: Lens' DeleteV2LoggingLevel LogTargetType

-- | The name of the resource for which you are configuring logging.
dvllTargetName :: Lens' DeleteV2LoggingLevel Text

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

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


-- | Deletes the 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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteTopicRule.DeleteTopicRuleResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteThingType.DeleteThingTypeResponse
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


-- | Deletes a thing group.
module Network.AWS.IoT.DeleteThingGroup

-- | Creates a value of <a>DeleteThingGroup</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>dExpectedVersion</a> - The expected version of the thing group
--   to delete.</li>
--   <li><a>dThingGroupName</a> - The name of the thing group to
--   delete.</li>
--   </ul>
deleteThingGroup :: Text -> DeleteThingGroup

-- | <i>See:</i> <a>deleteThingGroup</a> smart constructor.
data DeleteThingGroup

-- | The expected version of the thing group to delete.
dExpectedVersion :: Lens' DeleteThingGroup (Maybe Integer)

-- | The name of the thing group to delete.
dThingGroupName :: Lens' DeleteThingGroup Text

-- | Creates a value of <a>DeleteThingGroupResponse</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>dtgtrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteThingGroupResponse :: Int -> DeleteThingGroupResponse

-- | <i>See:</i> <a>deleteThingGroupResponse</a> smart constructor.
data DeleteThingGroupResponse

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


-- | 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>ddrsResponseStatus</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>
ddrsResponseStatus :: 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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteThing.DeleteThingResponse
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


-- | Deletes a stream.
module Network.AWS.IoT.DeleteStream

-- | Creates a value of <a>DeleteStream</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>dsStreamId</a> - The stream ID.</li>
--   </ul>
deleteStream :: Text -> DeleteStream

-- | <i>See:</i> <a>deleteStream</a> smart constructor.
data DeleteStream

-- | The stream ID.
dsStreamId :: Lens' DeleteStream Text

-- | Creates a value of <a>DeleteStreamResponse</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>dsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteStreamResponse :: Int -> DeleteStreamResponse

-- | <i>See:</i> <a>deleteStreamResponse</a> smart constructor.
data DeleteStreamResponse

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


-- | Deletes a role alias
module Network.AWS.IoT.DeleteRoleAlias

-- | Creates a value of <a>DeleteRoleAlias</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>dRoleAlias</a> - The role alias to delete.</li>
--   </ul>
deleteRoleAlias :: Text -> DeleteRoleAlias

-- | <i>See:</i> <a>deleteRoleAlias</a> smart constructor.
data DeleteRoleAlias

-- | The role alias to delete.
dRoleAlias :: Lens' DeleteRoleAlias Text

-- | Creates a value of <a>DeleteRoleAliasResponse</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>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteRoleAliasResponse :: Int -> DeleteRoleAliasResponse

-- | <i>See:</i> <a>deleteRoleAliasResponse</a> smart constructor.
data DeleteRoleAliasResponse

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteRegistrationCode.DeleteRegistrationCodeResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicyVersion.DeletePolicyVersionResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.DeletePolicy.DeletePolicyResponse
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


-- | Delete an OTA update.
module Network.AWS.IoT.DeleteOTAUpdate

-- | Creates a value of <a>DeleteOTAUpdate</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>dotauOtaUpdateId</a> - The OTA update ID to delete.</li>
--   </ul>
deleteOTAUpdate :: Text -> DeleteOTAUpdate

-- | <i>See:</i> <a>deleteOTAUpdate</a> smart constructor.
data DeleteOTAUpdate

-- | The OTA update ID to delete.
dotauOtaUpdateId :: Lens' DeleteOTAUpdate Text

-- | Creates a value of <a>DeleteOTAUpdateResponse</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>dotaursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteOTAUpdateResponse :: Int -> DeleteOTAUpdateResponse

-- | <i>See:</i> <a>deleteOTAUpdateResponse</a> smart constructor.
data DeleteOTAUpdateResponse

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


-- | 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>dcForceDelete</a> - Forces a certificate request to be
--   deleted.</li>
--   <li><a>dcCertificateId</a> - The ID of the certificate. (The last part
--   of the certificate ARN contains the certificate ID.)</li>
--   </ul>
deleteCertificate :: Text -> DeleteCertificate

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

-- | Forces a certificate request to be deleted.
dcForceDelete :: Lens' DeleteCertificate (Maybe Bool)

-- | The ID of the certificate. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteCertificate.DeleteCertificateResponse
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


-- | 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.
--   (The last part of the certificate ARN contains the certificate
--   ID.)</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. (The last part of the certificate
--   ARN contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.DeleteCACertificate.DeleteCACertificateResponse
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


-- | Deletes an authorizer.
module Network.AWS.IoT.DeleteAuthorizer

-- | Creates a value of <a>DeleteAuthorizer</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>dAuthorizerName</a> - The name of the authorizer to
--   delete.</li>
--   </ul>
deleteAuthorizer :: Text -> DeleteAuthorizer

-- | <i>See:</i> <a>deleteAuthorizer</a> smart constructor.
data DeleteAuthorizer

-- | The name of the authorizer to delete.
dAuthorizerName :: Lens' DeleteAuthorizer Text

-- | Creates a value of <a>DeleteAuthorizerResponse</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>
deleteAuthorizerResponse :: Int -> DeleteAuthorizerResponse

-- | <i>See:</i> <a>deleteAuthorizerResponse</a> smart constructor.
data DeleteAuthorizerResponse

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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.CreateTopicRule.CreateTopicRuleResponse
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


-- | 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>cttrsThingTypeId</a> - The thing type ID.</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 thing type ID.
cttrsThingTypeId :: 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 Control.DeepSeq.NFData Network.AWS.IoT.CreateThingType.CreateThingTypeResponse
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


-- | Create a thing group.
module Network.AWS.IoT.CreateThingGroup

-- | Creates a value of <a>CreateThingGroup</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>ctgParentGroupName</a> - The name of the parent thing
--   group.</li>
--   <li><a>ctgThingGroupProperties</a> - The thing group properties.</li>
--   <li><a>ctgThingGroupName</a> - The thing group name to create.</li>
--   </ul>
createThingGroup :: Text -> CreateThingGroup

-- | <i>See:</i> <a>createThingGroup</a> smart constructor.
data CreateThingGroup

-- | The name of the parent thing group.
ctgParentGroupName :: Lens' CreateThingGroup (Maybe Text)

-- | The thing group properties.
ctgThingGroupProperties :: Lens' CreateThingGroup (Maybe ThingGroupProperties)

-- | The thing group name to create.
ctgThingGroupName :: Lens' CreateThingGroup Text

-- | Creates a value of <a>CreateThingGroupResponse</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>ctgrsThingGroupARN</a> - The thing group ARN.</li>
--   <li><a>ctgrsThingGroupId</a> - The thing group ID.</li>
--   <li><a>ctgrsThingGroupName</a> - The thing group name.</li>
--   <li><a>ctgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createThingGroupResponse :: Int -> CreateThingGroupResponse

-- | <i>See:</i> <a>createThingGroupResponse</a> smart constructor.
data CreateThingGroupResponse

-- | The thing group ARN.
ctgrsThingGroupARN :: Lens' CreateThingGroupResponse (Maybe Text)

-- | The thing group ID.
ctgrsThingGroupId :: Lens' CreateThingGroupResponse (Maybe Text)

-- | The thing group name.
ctgrsThingGroupName :: Lens' CreateThingGroupResponse (Maybe Text)

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


-- | Creates a thing record in the 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>ctrsThingId</a> - The thing ID.</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)

-- | The thing ID.
ctrsThingId :: 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 Control.DeepSeq.NFData Network.AWS.IoT.CreateThing.CreateThingResponse
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


-- | Creates a stream for delivering one or more large files in chunks over
--   MQTT. A stream transports data bytes in chunks or blocks packaged as
--   MQTT messages from a source like S3. You can have one or more files
--   associated with a stream. The total size of a file associated with the
--   stream cannot exceed more than 2 MB. The stream will be created with
--   version 0. If a stream is created with the same streamID as a stream
--   that existed and was deleted within last 90 days, we will resurrect
--   that old stream by incrementing the version by 1.
module Network.AWS.IoT.CreateStream

-- | Creates a value of <a>CreateStream</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>csDescription</a> - A description of the stream.</li>
--   <li><a>csStreamId</a> - The stream ID.</li>
--   <li><a>csFiles</a> - The files to stream.</li>
--   <li><a>csRoleARN</a> - An IAM role that allows the IoT service
--   principal assumes to access your S3 files.</li>
--   </ul>
createStream :: Text -> NonEmpty StreamFile -> Text -> CreateStream

-- | <i>See:</i> <a>createStream</a> smart constructor.
data CreateStream

-- | A description of the stream.
csDescription :: Lens' CreateStream (Maybe Text)

-- | The stream ID.
csStreamId :: Lens' CreateStream Text

-- | The files to stream.
csFiles :: Lens' CreateStream (NonEmpty StreamFile)

-- | An IAM role that allows the IoT service principal assumes to access
--   your S3 files.
csRoleARN :: Lens' CreateStream Text

-- | Creates a value of <a>CreateStreamResponse</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>csrsStreamVersion</a> - The version of the stream.</li>
--   <li><a>csrsStreamARN</a> - The stream ARN.</li>
--   <li><a>csrsDescription</a> - A description of the stream.</li>
--   <li><a>csrsStreamId</a> - The stream ID.</li>
--   <li><a>csrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createStreamResponse :: Int -> CreateStreamResponse

-- | <i>See:</i> <a>createStreamResponse</a> smart constructor.
data CreateStreamResponse

-- | The version of the stream.
csrsStreamVersion :: Lens' CreateStreamResponse (Maybe Natural)

-- | The stream ARN.
csrsStreamARN :: Lens' CreateStreamResponse (Maybe Text)

-- | A description of the stream.
csrsDescription :: Lens' CreateStreamResponse (Maybe Text)

-- | The stream ID.
csrsStreamId :: Lens' CreateStreamResponse (Maybe Text)

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


-- | Creates a role alias.
module Network.AWS.IoT.CreateRoleAlias

-- | Creates a value of <a>CreateRoleAlias</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>craCredentialDurationSeconds</a> - How long (in seconds) the
--   credentials will be valid.</li>
--   <li><a>craRoleAlias</a> - The role alias that points to a role ARN.
--   This allows you to change the role without having to update the
--   device.</li>
--   <li><a>craRoleARN</a> - The role ARN.</li>
--   </ul>
createRoleAlias :: Text -> Text -> CreateRoleAlias

-- | <i>See:</i> <a>createRoleAlias</a> smart constructor.
data CreateRoleAlias

-- | How long (in seconds) the credentials will be valid.
craCredentialDurationSeconds :: Lens' CreateRoleAlias (Maybe Natural)

-- | The role alias that points to a role ARN. This allows you to change
--   the role without having to update the device.
craRoleAlias :: Lens' CreateRoleAlias Text

-- | The role ARN.
craRoleARN :: Lens' CreateRoleAlias Text

-- | Creates a value of <a>CreateRoleAliasResponse</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>crarsRoleAliasARN</a> - The role alias ARN.</li>
--   <li><a>crarsRoleAlias</a> - The role alias.</li>
--   <li><a>crarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createRoleAliasResponse :: Int -> CreateRoleAliasResponse

-- | <i>See:</i> <a>createRoleAliasResponse</a> smart constructor.
data CreateRoleAliasResponse

-- | The role alias ARN.
crarsRoleAliasARN :: Lens' CreateRoleAliasResponse (Maybe Text)

-- | The role alias.
crarsRoleAlias :: Lens' CreateRoleAliasResponse (Maybe Text)

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


-- | 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
--   whitespace.</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 whitespace.
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 Control.DeepSeq.NFData Network.AWS.IoT.CreatePolicyVersion.CreatePolicyVersionResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.CreatePolicy.CreatePolicyResponse
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


-- | Creates an AWS IoT OTAUpdate on a target group of things or groups.
module Network.AWS.IoT.CreateOTAUpdate

-- | Creates a value of <a>CreateOTAUpdate</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>cotauAdditionalParameters</a> - A list of additional OTA update
--   parameters which are name-value pairs.</li>
--   <li><a>cotauDescription</a> - The description of the OTA update.</li>
--   <li><a>cotauTargetSelection</a> - Specifies whether the update will
--   continue to run (CONTINUOUS), or will be complete after all the things
--   specified as targets have completed the update (SNAPSHOT). If
--   continuous, the update may also be run on a thing when a change is
--   detected in a target. For example, an update will run on a thing when
--   the thing is added to a target group, even after the update was
--   completed by all things originally in the group. Valid values:
--   CONTINUOUS | SNAPSHOT.</li>
--   <li><a>cotauOtaUpdateId</a> - The ID of the OTA update to be
--   created.</li>
--   <li><a>cotauTargets</a> - The targeted devices to receive OTA
--   updates.</li>
--   <li><a>cotauFiles</a> - The files to be streamed by the OTA
--   update.</li>
--   <li><a>cotauRoleARN</a> - The IAM role that allows access to the AWS
--   IoT Jobs service.</li>
--   </ul>
createOTAUpdate :: Text -> NonEmpty Text -> NonEmpty OTAUpdateFile -> Text -> CreateOTAUpdate

-- | <i>See:</i> <a>createOTAUpdate</a> smart constructor.
data CreateOTAUpdate

-- | A list of additional OTA update parameters which are name-value pairs.
cotauAdditionalParameters :: Lens' CreateOTAUpdate (HashMap Text Text)

-- | The description of the OTA update.
cotauDescription :: Lens' CreateOTAUpdate (Maybe Text)

-- | Specifies whether the update will continue to run (CONTINUOUS), or
--   will be complete after all the things specified as targets have
--   completed the update (SNAPSHOT). If continuous, the update may also be
--   run on a thing when a change is detected in a target. For example, an
--   update will run on a thing when the thing is added to a target group,
--   even after the update was completed by all things originally in the
--   group. Valid values: CONTINUOUS | SNAPSHOT.
cotauTargetSelection :: Lens' CreateOTAUpdate (Maybe TargetSelection)

-- | The ID of the OTA update to be created.
cotauOtaUpdateId :: Lens' CreateOTAUpdate Text

-- | The targeted devices to receive OTA updates.
cotauTargets :: Lens' CreateOTAUpdate (NonEmpty Text)

-- | The files to be streamed by the OTA update.
cotauFiles :: Lens' CreateOTAUpdate (NonEmpty OTAUpdateFile)

-- | The IAM role that allows access to the AWS IoT Jobs service.
cotauRoleARN :: Lens' CreateOTAUpdate Text

-- | Creates a value of <a>CreateOTAUpdateResponse</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>cotaursAwsIotJobId</a> - The AWS IoT job ID associated with the
--   OTA update.</li>
--   <li><a>cotaursOtaUpdateStatus</a> - The OTA update status.</li>
--   <li><a>cotaursAwsIotJobARN</a> - The AWS IoT job ARN associated with
--   the OTA update.</li>
--   <li><a>cotaursOtaUpdateId</a> - The OTA update ID.</li>
--   <li><a>cotaursOtaUpdateARN</a> - The OTA update ARN.</li>
--   <li><a>cotaursResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createOTAUpdateResponse :: Int -> CreateOTAUpdateResponse

-- | <i>See:</i> <a>createOTAUpdateResponse</a> smart constructor.
data CreateOTAUpdateResponse

-- | The AWS IoT job ID associated with the OTA update.
cotaursAwsIotJobId :: Lens' CreateOTAUpdateResponse (Maybe Text)

-- | The OTA update status.
cotaursOtaUpdateStatus :: Lens' CreateOTAUpdateResponse (Maybe OTAUpdateStatus)

-- | The AWS IoT job ARN associated with the OTA update.
cotaursAwsIotJobARN :: Lens' CreateOTAUpdateResponse (Maybe Text)

-- | The OTA update ID.
cotaursOtaUpdateId :: Lens' CreateOTAUpdateResponse (Maybe Text)

-- | The OTA update ARN.
cotaursOtaUpdateARN :: Lens' CreateOTAUpdateResponse (Maybe Text)

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


-- | 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.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 Control.DeepSeq.NFData Network.AWS.IoT.CreateKeysAndCertificate.CreateKeysAndCertificateResponse
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


-- | Creates a job.
module Network.AWS.IoT.CreateJob

-- | Creates a value of <a>CreateJob</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>cjJobExecutionsRolloutConfig</a> - Allows you to create a
--   staged rollout of the job.</li>
--   <li><a>cjDocumentSource</a> - An S3 link to the job document.</li>
--   <li><a>cjDocumentParameters</a> - Parameters for the job
--   document.</li>
--   <li><a>cjPresignedURLConfig</a> - Configuration information for
--   pre-signed S3 URLs.</li>
--   <li><a>cjDocument</a> - The job document.</li>
--   <li><a>cjDescription</a> - A short text description of the job.</li>
--   <li><a>cjTargetSelection</a> - Specifies whether the job will continue
--   to run (CONTINUOUS), or will be complete after all those things
--   specified as targets have completed the job (SNAPSHOT). If continuous,
--   the job may also be run on a thing when a change is detected in a
--   target. For example, a job will run on a thing when the thing is added
--   to a target group, even after the job was completed by all things
--   originally in the group.</li>
--   <li><a>cjJobId</a> - A job identifier which must be unique for your
--   AWS account. We recommend using a UUID. Alpha-numeric characters, "-"
--   and "_" are valid for use here.</li>
--   <li><a>cjTargets</a> - A list of things and thing groups to which the
--   job should be sent.</li>
--   </ul>
createJob :: Text -> NonEmpty Text -> CreateJob

-- | <i>See:</i> <a>createJob</a> smart constructor.
data CreateJob

-- | Allows you to create a staged rollout of the job.
cjJobExecutionsRolloutConfig :: Lens' CreateJob (Maybe JobExecutionsRolloutConfig)

-- | An S3 link to the job document.
cjDocumentSource :: Lens' CreateJob (Maybe Text)

-- | Parameters for the job document.
cjDocumentParameters :: Lens' CreateJob (HashMap Text Text)

-- | Configuration information for pre-signed S3 URLs.
cjPresignedURLConfig :: Lens' CreateJob (Maybe PresignedURLConfig)

-- | The job document.
cjDocument :: Lens' CreateJob (Maybe Text)

-- | A short text description of the job.
cjDescription :: Lens' CreateJob (Maybe Text)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a thing when the thing is added to a target group, even after the job
--   was completed by all things originally in the group.
cjTargetSelection :: Lens' CreateJob (Maybe TargetSelection)

-- | A job identifier which must be unique for your AWS account. We
--   recommend using a UUID. Alpha-numeric characters, "-" and "_" are
--   valid for use here.
cjJobId :: Lens' CreateJob Text

-- | A list of things and thing groups to which the job should be sent.
cjTargets :: Lens' CreateJob (NonEmpty Text)

-- | Creates a value of <a>CreateJobResponse</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>cjrsJobId</a> - The unique identifier you assigned to this
--   job.</li>
--   <li><a>cjrsJobARN</a> - The job ARN.</li>
--   <li><a>cjrsDescription</a> - The job description.</li>
--   <li><a>cjrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createJobResponse :: Int -> CreateJobResponse

-- | <i>See:</i> <a>createJobResponse</a> smart constructor.
data CreateJobResponse

-- | The unique identifier you assigned to this job.
cjrsJobId :: Lens' CreateJobResponse (Maybe Text)

-- | The job ARN.
cjrsJobARN :: Lens' CreateJobResponse (Maybe Text)

-- | The job description.
cjrsDescription :: Lens' CreateJobResponse (Maybe Text)

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


-- | Creates an X.509 certificate using the specified certificate signing
--   request.
--   
--   <b>Note:</b> The CSR must include a public key that is either an RSA
--   key with a length of at least 2048 bits or an ECC key from NIST P-256
--   or NIST P-384 curves.
--   
--   <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 Control.DeepSeq.NFData Network.AWS.IoT.CreateCertificateFromCSR.CreateCertificateFromCSRResponse
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


-- | Creates an authorizer.
module Network.AWS.IoT.CreateAuthorizer

-- | Creates a value of <a>CreateAuthorizer</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>caStatus</a> - The status of the create authorizer
--   request.</li>
--   <li><a>caAuthorizerName</a> - The authorizer name.</li>
--   <li><a>caAuthorizerFunctionARN</a> - The ARN of the authorizer's
--   Lambda function.</li>
--   <li><a>caTokenKeyName</a> - The name of the token key used to extract
--   the token from the HTTP headers.</li>
--   <li><a>caTokenSigningPublicKeys</a> - The public keys used to verify
--   the digital signature returned by your custom authentication
--   service.</li>
--   </ul>
createAuthorizer :: Text -> Text -> Text -> CreateAuthorizer

-- | <i>See:</i> <a>createAuthorizer</a> smart constructor.
data CreateAuthorizer

-- | The status of the create authorizer request.
caStatus :: Lens' CreateAuthorizer (Maybe AuthorizerStatus)

-- | The authorizer name.
caAuthorizerName :: Lens' CreateAuthorizer Text

-- | The ARN of the authorizer's Lambda function.
caAuthorizerFunctionARN :: Lens' CreateAuthorizer Text

-- | The name of the token key used to extract the token from the HTTP
--   headers.
caTokenKeyName :: Lens' CreateAuthorizer Text

-- | The public keys used to verify the digital signature returned by your
--   custom authentication service.
caTokenSigningPublicKeys :: Lens' CreateAuthorizer (HashMap Text Text)

-- | Creates a value of <a>CreateAuthorizerResponse</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>carsAuthorizerName</a> - The authorizer's name.</li>
--   <li><a>carsAuthorizerARN</a> - The authorizer ARN.</li>
--   <li><a>carsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createAuthorizerResponse :: Int -> CreateAuthorizerResponse

-- | <i>See:</i> <a>createAuthorizerResponse</a> smart constructor.
data CreateAuthorizerResponse

-- | The authorizer's name.
carsAuthorizerName :: Lens' CreateAuthorizerResponse (Maybe Text)

-- | The authorizer ARN.
carsAuthorizerARN :: Lens' CreateAuthorizerResponse (Maybe Text)

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


-- | Clears the default authorizer.
module Network.AWS.IoT.ClearDefaultAuthorizer

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

-- | <i>See:</i> <a>clearDefaultAuthorizer</a> smart constructor.
data ClearDefaultAuthorizer

-- | Creates a value of <a>ClearDefaultAuthorizerResponse</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>cdarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
clearDefaultAuthorizerResponse :: Int -> ClearDefaultAuthorizerResponse

-- | <i>See:</i> <a>clearDefaultAuthorizerResponse</a> smart constructor.
data ClearDefaultAuthorizerResponse

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


-- | Cancels a job.
module Network.AWS.IoT.CancelJob

-- | Creates a value of <a>CancelJob</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>cComment</a> - An optional comment string describing why the
--   job was canceled.</li>
--   <li><a>cJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   </ul>
cancelJob :: Text -> CancelJob

-- | <i>See:</i> <a>cancelJob</a> smart constructor.
data CancelJob

-- | An optional comment string describing why the job was canceled.
cComment :: Lens' CancelJob (Maybe Text)

-- | The unique identifier you assigned to this job when it was created.
cJobId :: Lens' CancelJob Text

-- | Creates a value of <a>CancelJobResponse</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>crsJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>crsJobARN</a> - The job ARN.</li>
--   <li><a>crsDescription</a> - A short text description of the job.</li>
--   <li><a>crsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
cancelJobResponse :: Int -> CancelJobResponse

-- | <i>See:</i> <a>cancelJobResponse</a> smart constructor.
data CancelJobResponse

-- | The unique identifier you assigned to this job when it was created.
crsJobId :: Lens' CancelJobResponse (Maybe Text)

-- | The job ARN.
crsJobARN :: Lens' CancelJobResponse (Maybe Text)

-- | A short text description of the job.
crsDescription :: Lens' CancelJobResponse (Maybe Text)

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


-- | 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. (The last
--   part of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.CancelCertificateTransfer.CancelCertificateTransferResponse
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


-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.AttachThingPrincipal.AttachThingPrincipalResponse
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


-- | Attaches a policy to the specified target.
module Network.AWS.IoT.AttachPolicy

-- | Creates a value of <a>AttachPolicy</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>apPolicyName</a> - The name of the policy to attach.</li>
--   <li><a>apTarget</a> - The identity to which the policy is
--   attached.</li>
--   </ul>
attachPolicy :: Text -> Text -> AttachPolicy

-- | <i>See:</i> <a>attachPolicy</a> smart constructor.
data AttachPolicy

-- | The name of the policy to attach.
apPolicyName :: Lens' AttachPolicy Text

-- | The identity to which the policy is attached.
apTarget :: Lens' AttachPolicy Text

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

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


-- | Associates a group with a continuous job. The following criteria must
--   be met:
--   
--   <ul>
--   <li>The job must have been created with the <tt>targetSelection</tt>
--   field set to <a>CONTINUOUS</a>.</li>
--   <li>The job status must currently be <a>IN_PROGRESS</a>.</li>
--   <li>The total number of targets associated with a job must not exceed
--   100.</li>
--   </ul>
module Network.AWS.IoT.AssociateTargetsWithJob

-- | Creates a value of <a>AssociateTargetsWithJob</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>atwjComment</a> - An optional comment string describing why the
--   job was associated with the targets.</li>
--   <li><a>atwjTargets</a> - A list of thing group ARNs that define the
--   targets of the job.</li>
--   <li><a>atwjJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   </ul>
associateTargetsWithJob :: NonEmpty Text -> Text -> AssociateTargetsWithJob

-- | <i>See:</i> <a>associateTargetsWithJob</a> smart constructor.
data AssociateTargetsWithJob

-- | An optional comment string describing why the job was associated with
--   the targets.
atwjComment :: Lens' AssociateTargetsWithJob (Maybe Text)

-- | A list of thing group ARNs that define the targets of the job.
atwjTargets :: Lens' AssociateTargetsWithJob (NonEmpty Text)

-- | The unique identifier you assigned to this job when it was created.
atwjJobId :: Lens' AssociateTargetsWithJob Text

-- | Creates a value of <a>AssociateTargetsWithJobResponse</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>atwjrsJobId</a> - The unique identifier you assigned to this
--   job when it was created.</li>
--   <li><a>atwjrsJobARN</a> - An ARN identifying the job.</li>
--   <li><a>atwjrsDescription</a> - A short text description of the
--   job.</li>
--   <li><a>atwjrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
associateTargetsWithJobResponse :: Int -> AssociateTargetsWithJobResponse

-- | <i>See:</i> <a>associateTargetsWithJobResponse</a> smart constructor.
data AssociateTargetsWithJobResponse

-- | The unique identifier you assigned to this job when it was created.
atwjrsJobId :: Lens' AssociateTargetsWithJobResponse (Maybe Text)

-- | An ARN identifying the job.
atwjrsJobARN :: Lens' AssociateTargetsWithJobResponse (Maybe Text)

-- | A short text description of the job.
atwjrsDescription :: Lens' AssociateTargetsWithJobResponse (Maybe Text)

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


-- | Adds a thing to a thing group.
module Network.AWS.IoT.AddThingToThingGroup

-- | Creates a value of <a>AddThingToThingGroup</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>atttgThingGroupARN</a> - The ARN of the group to which you are
--   adding a thing.</li>
--   <li><a>atttgThingARN</a> - The ARN of the thing to add to a
--   group.</li>
--   <li><a>atttgThingGroupName</a> - The name of the group to which you
--   are adding a thing.</li>
--   <li><a>atttgThingName</a> - The name of the thing to add to a
--   group.</li>
--   </ul>
addThingToThingGroup :: AddThingToThingGroup

-- | <i>See:</i> <a>addThingToThingGroup</a> smart constructor.
data AddThingToThingGroup

-- | The ARN of the group to which you are adding a thing.
atttgThingGroupARN :: Lens' AddThingToThingGroup (Maybe Text)

-- | The ARN of the thing to add to a group.
atttgThingARN :: Lens' AddThingToThingGroup (Maybe Text)

-- | The name of the group to which you are adding a thing.
atttgThingGroupName :: Lens' AddThingToThingGroup (Maybe Text)

-- | The name of the thing to add to a group.
atttgThingName :: Lens' AddThingToThingGroup (Maybe Text)

-- | Creates a value of <a>AddThingToThingGroupResponse</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>atttgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
addThingToThingGroupResponse :: Int -> AddThingToThingGroupResponse

-- | <i>See:</i> <a>addThingToThingGroupResponse</a> smart constructor.
data AddThingToThingGroupResponse

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


-- | 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. (The last
--   part of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.AcceptCertificateTransfer.AcceptCertificateTransferResponse
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


-- | Updates an authorizer.
module Network.AWS.IoT.UpdateAuthorizer

-- | Creates a value of <a>UpdateAuthorizer</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>uaStatus</a> - The status of the update authorizer
--   request.</li>
--   <li><a>uaAuthorizerFunctionARN</a> - The ARN of the authorizer's
--   Lambda function.</li>
--   <li><a>uaTokenSigningPublicKeys</a> - The public keys used to verify
--   the token signature.</li>
--   <li><a>uaTokenKeyName</a> - The key used to extract the token from the
--   HTTP headers.</li>
--   <li><a>uaAuthorizerName</a> - The authorizer name.</li>
--   </ul>
updateAuthorizer :: Text -> UpdateAuthorizer

-- | <i>See:</i> <a>updateAuthorizer</a> smart constructor.
data UpdateAuthorizer

-- | The status of the update authorizer request.
uaStatus :: Lens' UpdateAuthorizer (Maybe AuthorizerStatus)

-- | The ARN of the authorizer's Lambda function.
uaAuthorizerFunctionARN :: Lens' UpdateAuthorizer (Maybe Text)

-- | The public keys used to verify the token signature.
uaTokenSigningPublicKeys :: Lens' UpdateAuthorizer (HashMap Text Text)

-- | The key used to extract the token from the HTTP headers.
uaTokenKeyName :: Lens' UpdateAuthorizer (Maybe Text)

-- | The authorizer name.
uaAuthorizerName :: Lens' UpdateAuthorizer Text

-- | Creates a value of <a>UpdateAuthorizerResponse</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>uarsAuthorizerName</a> - The authorizer name.</li>
--   <li><a>uarsAuthorizerARN</a> - The authorizer ARN.</li>
--   <li><a>uarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateAuthorizerResponse :: Int -> UpdateAuthorizerResponse

-- | <i>See:</i> <a>updateAuthorizerResponse</a> smart constructor.
data UpdateAuthorizerResponse

-- | The authorizer name.
uarsAuthorizerName :: Lens' UpdateAuthorizerResponse (Maybe Text)

-- | The authorizer ARN.
uarsAuthorizerARN :: Lens' UpdateAuthorizerResponse (Maybe Text)

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


-- | 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>ucacRemoveAutoRegistration</a> - If true, remove auto
--   registration.</li>
--   <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>ucacRegistrationConfig</a> - Information about the registration
--   configuration.</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

-- | If true, remove auto registration.
ucacRemoveAutoRegistration :: Lens' UpdateCACertificate (Maybe Bool)

-- | 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)

-- | Information about the registration configuration.
ucacRegistrationConfig :: Lens' UpdateCACertificate (Maybe RegistrationConfig)

-- | 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 Control.DeepSeq.NFData Network.AWS.IoT.UpdateCACertificate.UpdateCACertificateResponse
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


-- | 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. (The last part
--   of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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 Control.DeepSeq.NFData Network.AWS.IoT.UpdateCertificate.UpdateCertificateResponse
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


-- | Updates the event configurations.
module Network.AWS.IoT.UpdateEventConfigurations

-- | Creates a value of <a>UpdateEventConfigurations</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>uecEventConfigurations</a> - The new event configuration
--   values.</li>
--   </ul>
updateEventConfigurations :: UpdateEventConfigurations

-- | <i>See:</i> <a>updateEventConfigurations</a> smart constructor.
data UpdateEventConfigurations

-- | The new event configuration values.
uecEventConfigurations :: Lens' UpdateEventConfigurations (HashMap EventType Configuration)

-- | Creates a value of <a>UpdateEventConfigurationsResponse</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>uecrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateEventConfigurationsResponse :: Int -> UpdateEventConfigurationsResponse

-- | <i>See:</i> <a>updateEventConfigurationsResponse</a> smart
--   constructor.
data UpdateEventConfigurationsResponse

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


-- | Updates the search configuration.
module Network.AWS.IoT.UpdateIndexingConfiguration

-- | Creates a value of <a>UpdateIndexingConfiguration</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>uicThingIndexingConfiguration</a> - Thing indexing
--   configuration.</li>
--   </ul>
updateIndexingConfiguration :: UpdateIndexingConfiguration

-- | <i>See:</i> <a>updateIndexingConfiguration</a> smart constructor.
data UpdateIndexingConfiguration

-- | Thing indexing configuration.
uicThingIndexingConfiguration :: Lens' UpdateIndexingConfiguration (Maybe ThingIndexingConfiguration)

-- | Creates a value of <a>UpdateIndexingConfigurationResponse</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>uicrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateIndexingConfigurationResponse :: Int -> UpdateIndexingConfigurationResponse

-- | <i>See:</i> <a>updateIndexingConfigurationResponse</a> smart
--   constructor.
data UpdateIndexingConfigurationResponse

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


-- | Updates a role alias.
module Network.AWS.IoT.UpdateRoleAlias

-- | Creates a value of <a>UpdateRoleAlias</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>uraCredentialDurationSeconds</a> - The number of seconds the
--   credential will be valid.</li>
--   <li><a>uraRoleARN</a> - The role ARN.</li>
--   <li><a>uraRoleAlias</a> - The role alias to update.</li>
--   </ul>
updateRoleAlias :: Text -> UpdateRoleAlias

-- | <i>See:</i> <a>updateRoleAlias</a> smart constructor.
data UpdateRoleAlias

-- | The number of seconds the credential will be valid.
uraCredentialDurationSeconds :: Lens' UpdateRoleAlias (Maybe Natural)

-- | The role ARN.
uraRoleARN :: Lens' UpdateRoleAlias (Maybe Text)

-- | The role alias to update.
uraRoleAlias :: Lens' UpdateRoleAlias Text

-- | Creates a value of <a>UpdateRoleAliasResponse</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>urarsRoleAliasARN</a> - The role alias ARN.</li>
--   <li><a>urarsRoleAlias</a> - The role alias.</li>
--   <li><a>urarsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateRoleAliasResponse :: Int -> UpdateRoleAliasResponse

-- | <i>See:</i> <a>updateRoleAliasResponse</a> smart constructor.
data UpdateRoleAliasResponse

-- | The role alias ARN.
urarsRoleAliasARN :: Lens' UpdateRoleAliasResponse (Maybe Text)

-- | The role alias.
urarsRoleAlias :: Lens' UpdateRoleAliasResponse (Maybe Text)

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


-- | Updates an existing stream. The stream version will be incremented by
--   one.
module Network.AWS.IoT.UpdateStream

-- | Creates a value of <a>UpdateStream</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>usFiles</a> - The files associated with the stream.</li>
--   <li><a>usDescription</a> - The description of the stream.</li>
--   <li><a>usRoleARN</a> - An IAM role that allows the IoT service
--   principal assumes to access your S3 files.</li>
--   <li><a>usStreamId</a> - The stream ID.</li>
--   </ul>
updateStream :: Text -> UpdateStream

-- | <i>See:</i> <a>updateStream</a> smart constructor.
data UpdateStream

-- | The files associated with the stream.
usFiles :: Lens' UpdateStream (Maybe (NonEmpty StreamFile))

-- | The description of the stream.
usDescription :: Lens' UpdateStream (Maybe Text)

-- | An IAM role that allows the IoT service principal assumes to access
--   your S3 files.
usRoleARN :: Lens' UpdateStream (Maybe Text)

-- | The stream ID.
usStreamId :: Lens' UpdateStream Text

-- | Creates a value of <a>UpdateStreamResponse</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>usrsStreamVersion</a> - The stream version.</li>
--   <li><a>usrsStreamARN</a> - The stream ARN.</li>
--   <li><a>usrsDescription</a> - A description of the stream.</li>
--   <li><a>usrsStreamId</a> - The stream ID.</li>
--   <li><a>usrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateStreamResponse :: Int -> UpdateStreamResponse

-- | <i>See:</i> <a>updateStreamResponse</a> smart constructor.
data UpdateStreamResponse

-- | The stream version.
usrsStreamVersion :: Lens' UpdateStreamResponse (Maybe Natural)

-- | The stream ARN.
usrsStreamARN :: Lens' UpdateStreamResponse (Maybe Text)

-- | A description of the stream.
usrsDescription :: Lens' UpdateStreamResponse (Maybe Text)

-- | The stream ID.
usrsStreamId :: Lens' UpdateStreamResponse (Maybe Text)

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


-- | 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 association 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 association 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 Control.DeepSeq.NFData Network.AWS.IoT.UpdateThing.UpdateThingResponse
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


-- | Update a thing group.
module Network.AWS.IoT.UpdateThingGroup

-- | Creates a value of <a>UpdateThingGroup</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>utgExpectedVersion</a> - The expected version of the thing
--   group. If this does not match the version of the thing group being
--   updated, the update will fail.</li>
--   <li><a>utgThingGroupName</a> - The thing group to update.</li>
--   <li><a>utgThingGroupProperties</a> - The thing group properties.</li>
--   </ul>
updateThingGroup :: Text -> ThingGroupProperties -> UpdateThingGroup

-- | <i>See:</i> <a>updateThingGroup</a> smart constructor.
data UpdateThingGroup

-- | The expected version of the thing group. If this does not match the
--   version of the thing group being updated, the update will fail.
utgExpectedVersion :: Lens' UpdateThingGroup (Maybe Integer)

-- | The thing group to update.
utgThingGroupName :: Lens' UpdateThingGroup Text

-- | The thing group properties.
utgThingGroupProperties :: Lens' UpdateThingGroup ThingGroupProperties

-- | Creates a value of <a>UpdateThingGroupResponse</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>utgrsVersion</a> - The version of the updated thing group.</li>
--   <li><a>utgrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateThingGroupResponse :: Int -> UpdateThingGroupResponse

-- | <i>See:</i> <a>updateThingGroupResponse</a> smart constructor.
data UpdateThingGroupResponse

-- | The version of the updated thing group.
utgrsVersion :: Lens' UpdateThingGroupResponse (Maybe Integer)

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


-- | Updates the groups to which the thing belongs.
module Network.AWS.IoT.UpdateThingGroupsForThing

-- | Creates a value of <a>UpdateThingGroupsForThing</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>utgftThingGroupsToAdd</a> - The groups to which the thing will
--   be added.</li>
--   <li><a>utgftThingGroupsToRemove</a> - The groups from which the thing
--   will be removed.</li>
--   <li><a>utgftThingName</a> - The thing whose group memberships will be
--   updated.</li>
--   </ul>
updateThingGroupsForThing :: UpdateThingGroupsForThing

-- | <i>See:</i> <a>updateThingGroupsForThing</a> smart constructor.
data UpdateThingGroupsForThing

-- | The groups to which the thing will be added.
utgftThingGroupsToAdd :: Lens' UpdateThingGroupsForThing [Text]

-- | The groups from which the thing will be removed.
utgftThingGroupsToRemove :: Lens' UpdateThingGroupsForThing [Text]

-- | The thing whose group memberships will be updated.
utgftThingName :: Lens' UpdateThingGroupsForThing (Maybe Text)

-- | Creates a value of <a>UpdateThingGroupsForThingResponse</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>utgftrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateThingGroupsForThingResponse :: Int -> UpdateThingGroupsForThingResponse

-- | <i>See:</i> <a>updateThingGroupsForThingResponse</a> smart
--   constructor.
data UpdateThingGroupsForThingResponse

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


module Network.AWS.IoT.Waiters


-- | <b>AWS IoT</b>
--   
--   AWS IoT provides secure, bi-directional communication between
--   Internet-connected devices (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 device (Registry), configure logging, and create
--   and manage policies and credentials to authenticate devices.
--   
--   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 index is not ready.
_IndexNotReadyException :: 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 response is invalid.
_InvalidResponseException :: 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 resource is not configured.
_NotConfiguredException :: AsError a => Getting (First ServiceError) a ServiceError

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

-- | The resource registration failed.
_ResourceRegistrationFailureException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The query is invalid.
_InvalidQueryException :: 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

-- | A conflicting resource update exception. This exception is thrown when
--   two pending updates cause a conflict.
_ConflictingResourceUpdateException :: 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 ActionType
Connect :: ActionType
Publish :: ActionType
Receive :: ActionType
Subscribe :: ActionType
data AuthDecision
Allowed :: AuthDecision
ExplicitDeny :: AuthDecision
ImplicitDeny :: AuthDecision
data AuthorizerStatus
Active :: AuthorizerStatus
Inactive :: AuthorizerStatus
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
CSActive :: CertificateStatus
CSInactive :: CertificateStatus
CSPendingActivation :: CertificateStatus
CSPendingTransfer :: CertificateStatus
CSRegisterInactive :: CertificateStatus
CSRevoked :: CertificateStatus
data DynamoKeyType
Number :: DynamoKeyType
String :: DynamoKeyType
data EventType
Job :: EventType
JobExecution :: EventType
Thing :: EventType
ThingGroup :: EventType
ThingGroupHierarchy :: EventType
ThingGroupMembership :: EventType
ThingType :: EventType
ThingTypeAssociation :: EventType
data IndexStatus
ISActive :: IndexStatus
ISBuilding :: IndexStatus
ISRebuilding :: IndexStatus
data JobExecutionStatus
Canceled :: JobExecutionStatus
Failed :: JobExecutionStatus
InProgress :: JobExecutionStatus
Queued :: JobExecutionStatus
Rejected :: JobExecutionStatus
Removed :: JobExecutionStatus
Succeeded :: JobExecutionStatus
data JobStatus
JSCanceled :: JobStatus
JSCompleted :: JobStatus
JSInProgress :: JobStatus
data LogLevel
Debug :: LogLevel
Disabled :: LogLevel
Error' :: LogLevel
Info :: LogLevel
Warn :: LogLevel
data LogTargetType
LTTDefault :: LogTargetType
LTTThingGroup :: LogTargetType
data MessageFormat
JSON :: MessageFormat
Raw :: MessageFormat
data OTAUpdateStatus
CreateComplete :: OTAUpdateStatus
CreateFailed :: OTAUpdateStatus
CreateInProgress :: OTAUpdateStatus
CreatePending :: OTAUpdateStatus
data ReportType
Errors :: ReportType
Results :: ReportType
data TargetSelection
Continuous :: TargetSelection
Snapshot :: TargetSelection
data TaskStatus
TSCancelled :: TaskStatus
TSCancelling :: TaskStatus
TSCompleted :: TaskStatus
TSFailed :: TaskStatus
TSInProgress :: TaskStatus
data ThingIndexingMode
Off :: ThingIndexingMode
Registry :: ThingIndexingMode
RegistryAndShadow :: ThingIndexingMode

-- | 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>aIotAnalytics</a> - Sends message data to an AWS IoT Analytics
--   channel.</li>
--   <li><a>aLambda</a> - Invoke a Lambda function.</li>
--   <li><a>aSalesforce</a> - Send a message to a Salesforce IoT Cloud
--   Input Stream.</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)

-- | Sends message data to an AWS IoT Analytics channel.
aIotAnalytics :: Lens' Action (Maybe IotAnalyticsAction)

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

-- | Send a message to a Salesforce IoT Cloud Input Stream.
aSalesforce :: Lens' Action (Maybe SalesforceAction)

-- | 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)

-- | Contains information that allowed the authorization.
--   
--   <i>See:</i> <a>allowed</a> smart constructor.
data Allowed

-- | Creates a value of <a>Allowed</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>aPolicies</a> - A list of policies that allowed the
--   authentication.</li>
--   </ul>
allowed :: Allowed

-- | A list of policies that allowed the authentication.
aPolicies :: Lens' Allowed [Policy]

-- | 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 collection of authorization information.
--   
--   <i>See:</i> <a>authInfo</a> smart constructor.
data AuthInfo

-- | Creates a value of <a>AuthInfo</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>aiResources</a> - The resources for which the principal is
--   being authorized to perform the specified action.</li>
--   <li><a>aiActionType</a> - The type of action for which the principal
--   is being authorized.</li>
--   </ul>
authInfo :: AuthInfo

-- | The resources for which the principal is being authorized to perform
--   the specified action.
aiResources :: Lens' AuthInfo [Text]

-- | The type of action for which the principal is being authorized.
aiActionType :: Lens' AuthInfo (Maybe ActionType)

-- | The authorizer result.
--   
--   <i>See:</i> <a>authResult</a> smart constructor.
data AuthResult

-- | Creates a value of <a>AuthResult</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>arDenied</a> - The policies and statements that denied the
--   specified action.</li>
--   <li><a>arAuthDecision</a> - The final authorization decision of this
--   scenario. Multiple statements are taken into account when determining
--   the authorization decision. An explicit deny statement can override
--   multiple allow statements.</li>
--   <li><a>arAllowed</a> - The policies and statements that allowed the
--   specified action.</li>
--   <li><a>arMissingContextValues</a> - Contains any missing context
--   values found while evaluating policy.</li>
--   <li><a>arAuthInfo</a> - Authorization information.</li>
--   </ul>
authResult :: AuthResult

-- | The policies and statements that denied the specified action.
arDenied :: Lens' AuthResult (Maybe Denied)

-- | The final authorization decision of this scenario. Multiple statements
--   are taken into account when determining the authorization decision. An
--   explicit deny statement can override multiple allow statements.
arAuthDecision :: Lens' AuthResult (Maybe AuthDecision)

-- | The policies and statements that allowed the specified action.
arAllowed :: Lens' AuthResult (Maybe Allowed)

-- | Contains any missing context values found while evaluating policy.
arMissingContextValues :: Lens' AuthResult [Text]

-- | Authorization information.
arAuthInfo :: Lens' AuthResult (Maybe AuthInfo)

-- | The authorizer description.
--   
--   <i>See:</i> <a>authorizerDescription</a> smart constructor.
data AuthorizerDescription

-- | Creates a value of <a>AuthorizerDescription</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>adStatus</a> - The status of the authorizer.</li>
--   <li><a>adLastModifiedDate</a> - The UNIX timestamp of when the
--   authorizer was last updated.</li>
--   <li><a>adAuthorizerName</a> - The authorizer name.</li>
--   <li><a>adAuthorizerFunctionARN</a> - The authorizer's Lambda function
--   ARN.</li>
--   <li><a>adAuthorizerARN</a> - The authorizer ARN.</li>
--   <li><a>adCreationDate</a> - The UNIX timestamp of when the authorizer
--   was created.</li>
--   <li><a>adTokenSigningPublicKeys</a> - The public keys used to validate
--   the token signature returned by your custom authentication
--   service.</li>
--   <li><a>adTokenKeyName</a> - The key used to extract the token from the
--   HTTP headers.</li>
--   </ul>
authorizerDescription :: AuthorizerDescription

-- | The status of the authorizer.
adStatus :: Lens' AuthorizerDescription (Maybe AuthorizerStatus)

-- | The UNIX timestamp of when the authorizer was last updated.
adLastModifiedDate :: Lens' AuthorizerDescription (Maybe UTCTime)

-- | The authorizer name.
adAuthorizerName :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer's Lambda function ARN.
adAuthorizerFunctionARN :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer ARN.
adAuthorizerARN :: Lens' AuthorizerDescription (Maybe Text)

-- | The UNIX timestamp of when the authorizer was created.
adCreationDate :: Lens' AuthorizerDescription (Maybe UTCTime)

-- | The public keys used to validate the token signature returned by your
--   custom authentication service.
adTokenSigningPublicKeys :: Lens' AuthorizerDescription (HashMap Text Text)

-- | The key used to extract the token from the HTTP headers.
adTokenKeyName :: Lens' AuthorizerDescription (Maybe Text)

-- | The authorizer summary.
--   
--   <i>See:</i> <a>authorizerSummary</a> smart constructor.
data AuthorizerSummary

-- | Creates a value of <a>AuthorizerSummary</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>asAuthorizerName</a> - The authorizer name.</li>
--   <li><a>asAuthorizerARN</a> - The authorizer ARN.</li>
--   </ul>
authorizerSummary :: AuthorizerSummary

-- | The authorizer name.
asAuthorizerName :: Lens' AuthorizerSummary (Maybe Text)

-- | The authorizer ARN.
asAuthorizerARN :: Lens' AuthorizerSummary (Maybe Text)

-- | 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>cacdLastModifiedDate</a> - The date the CA certificate was last
--   modified.</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>
--   <li><a>cacdGenerationId</a> - The generation ID of the CA
--   certificate.</li>
--   <li><a>cacdCustomerVersion</a> - The customer version of the CA
--   certificate.</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 date the CA certificate was last modified.
cacdLastModifiedDate :: Lens' CACertificateDescription (Maybe UTCTime)

-- | 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)

-- | The generation ID of the CA certificate.
cacdGenerationId :: Lens' CACertificateDescription (Maybe Text)

-- | The customer version of the CA certificate.
cacdCustomerVersion :: Lens' CACertificateDescription (Maybe Natural)

-- | 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. (The last part
--   of the certificate ARN contains the certificate ID.)</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. (The last part of the certificate ARN
--   contains the certificate ID.)
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>cdGenerationId</a> - The generation ID of the certificate.</li>
--   <li><a>cdTransferData</a> - The transfer data.</li>
--   <li><a>cdCustomerVersion</a> - The customer version of the
--   certificate.</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 generation ID of the certificate.
cdGenerationId :: Lens' CertificateDescription (Maybe Text)

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

-- | The customer version of the certificate.
cdCustomerVersion :: Lens' CertificateDescription (Maybe Natural)

-- | 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 the method to use when code signing a file.
--   
--   <i>See:</i> <a>codeSigning</a> smart constructor.
data CodeSigning

-- | Creates a value of <a>CodeSigning</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>csCustomCodeSigning</a> - A custom method for code signing a
--   file.</li>
--   <li><a>csAwsSignerJobId</a> - The ID of the AWSSignerJob which was
--   created to sign the file.</li>
--   </ul>
codeSigning :: CodeSigning

-- | A custom method for code signing a file.
csCustomCodeSigning :: Lens' CodeSigning (Maybe CustomCodeSigning)

-- | The ID of the AWSSignerJob which was created to sign the file.
csAwsSignerJobId :: Lens' CodeSigning (Maybe Text)

-- | Describes the certificate chain being used when code signing a file.
--   
--   <i>See:</i> <a>codeSigningCertificateChain</a> smart constructor.
data CodeSigningCertificateChain

-- | Creates a value of <a>CodeSigningCertificateChain</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>csccStream</a> - A stream of the certificate chain files.</li>
--   <li><a>csccCertificateName</a> - The name of the certificate.</li>
--   <li><a>csccInlineDocument</a> - A base64 encoded binary representation
--   of the code signing certificate chain.</li>
--   </ul>
codeSigningCertificateChain :: CodeSigningCertificateChain

-- | A stream of the certificate chain files.
csccStream :: Lens' CodeSigningCertificateChain (Maybe Stream)

-- | The name of the certificate.
csccCertificateName :: Lens' CodeSigningCertificateChain (Maybe Text)

-- | A base64 encoded binary representation of the code signing certificate
--   chain.
csccInlineDocument :: Lens' CodeSigningCertificateChain (Maybe Text)

-- | Describes the signature for a file.
--   
--   <i>See:</i> <a>codeSigningSignature</a> smart constructor.
data CodeSigningSignature

-- | Creates a value of <a>CodeSigningSignature</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>cssStream</a> - A stream of the code signing signature.</li>
--   <li><a>cssInlineDocument</a> - A base64 encoded binary representation
--   of the code signing signature.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.</li>
--   </ul>
codeSigningSignature :: CodeSigningSignature

-- | A stream of the code signing signature.
cssStream :: Lens' CodeSigningSignature (Maybe Stream)

-- | A base64 encoded binary representation of the code signing
--   signature.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.
cssInlineDocument :: Lens' CodeSigningSignature (Maybe ByteString)

-- | Configuration.
--   
--   <i>See:</i> <a>configuration</a> smart constructor.
data Configuration

-- | Creates a value of <a>Configuration</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>cEnabled</a> - True to enable the configuration.</li>
--   </ul>
configuration :: Configuration

-- | True to enable the configuration.
cEnabled :: Lens' Configuration (Maybe Bool)

-- | Describes a custom method used to code sign a file.
--   
--   <i>See:</i> <a>customCodeSigning</a> smart constructor.
data CustomCodeSigning

-- | Creates a value of <a>CustomCodeSigning</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>ccsSignature</a> - The signature for the file.</li>
--   <li><a>ccsHashAlgorithm</a> - The hash algorithm used to code sign the
--   file.</li>
--   <li><a>ccsCertificateChain</a> - The certificate chain.</li>
--   <li><a>ccsSignatureAlgorithm</a> - The signature algorithm used to
--   code sign the file.</li>
--   </ul>
customCodeSigning :: CustomCodeSigning

-- | The signature for the file.
ccsSignature :: Lens' CustomCodeSigning (Maybe CodeSigningSignature)

-- | The hash algorithm used to code sign the file.
ccsHashAlgorithm :: Lens' CustomCodeSigning (Maybe Text)

-- | The certificate chain.
ccsCertificateChain :: Lens' CustomCodeSigning (Maybe CodeSigningCertificateChain)

-- | The signature algorithm used to code sign the file.
ccsSignatureAlgorithm :: Lens' CustomCodeSigning (Maybe Text)

-- | Contains information that denied the authorization.
--   
--   <i>See:</i> <a>denied</a> smart constructor.
data Denied

-- | Creates a value of <a>Denied</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>dImplicitDeny</a> - Information that implicitly denies the
--   authorization. When a policy doesn't explicitly deny or allow an
--   action on a resource it is considered an implicit deny.</li>
--   <li><a>dExplicitDeny</a> - Information that explicitly denies the
--   authorization.</li>
--   </ul>
denied :: Denied

-- | Information that implicitly denies the authorization. When a policy
--   doesn't explicitly deny or allow an action on a resource it is
--   considered an implicit deny.
dImplicitDeny :: Lens' Denied (Maybe ImplicitDeny)

-- | Information that explicitly denies the authorization.
dExplicitDeny :: Lens' Denied (Maybe ExplicitDeny)

-- | 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)

-- | The policy that has the effect on the authorization results.
--   
--   <i>See:</i> <a>effectivePolicy</a> smart constructor.
data EffectivePolicy

-- | Creates a value of <a>EffectivePolicy</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>epPolicyName</a> - The policy name.</li>
--   <li><a>epPolicyDocument</a> - The IAM policy document.</li>
--   <li><a>epPolicyARN</a> - The policy ARN.</li>
--   </ul>
effectivePolicy :: EffectivePolicy

-- | The policy name.
epPolicyName :: Lens' EffectivePolicy (Maybe Text)

-- | The IAM policy document.
epPolicyDocument :: Lens' EffectivePolicy (Maybe Text)

-- | The policy ARN.
epPolicyARN :: Lens' EffectivePolicy (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

-- | Error information.
--   
--   <i>See:</i> <a>errorInfo</a> smart constructor.
data ErrorInfo

-- | Creates a value of <a>ErrorInfo</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>eiCode</a> - The error code.</li>
--   <li><a>eiMessage</a> - The error message.</li>
--   </ul>
errorInfo :: ErrorInfo

-- | The error code.
eiCode :: Lens' ErrorInfo (Maybe Text)

-- | The error message.
eiMessage :: Lens' ErrorInfo (Maybe Text)

-- | Information that explicitly denies authorization.
--   
--   <i>See:</i> <a>explicitDeny</a> smart constructor.
data ExplicitDeny

-- | Creates a value of <a>ExplicitDeny</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>edPolicies</a> - The policies that denied the
--   authorization.</li>
--   </ul>
explicitDeny :: ExplicitDeny

-- | The policies that denied the authorization.
edPolicies :: Lens' ExplicitDeny [Policy]

-- | 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 Firehose 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 Firehose stream.
faRoleARN :: Lens' FirehoseAction Text

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

-- | The name and ARN of a group.
--   
--   <i>See:</i> <a>groupNameAndARN</a> smart constructor.
data GroupNameAndARN

-- | Creates a value of <a>GroupNameAndARN</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>gnaaGroupARN</a> - The group ARN.</li>
--   <li><a>gnaaGroupName</a> - The group name.</li>
--   </ul>
groupNameAndARN :: GroupNameAndARN

-- | The group ARN.
gnaaGroupARN :: Lens' GroupNameAndARN (Maybe Text)

-- | The group name.
gnaaGroupName :: Lens' GroupNameAndARN (Maybe Text)

-- | Information that implicitly denies authorization. When policy doesn't
--   explicitly deny or allow an action on a resource it is considered an
--   implicit deny.
--   
--   <i>See:</i> <a>implicitDeny</a> smart constructor.
data ImplicitDeny

-- | Creates a value of <a>ImplicitDeny</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>idPolicies</a> - Policies that don't contain a matching allow
--   or deny statement for the specified action on the specified
--   resource.</li>
--   </ul>
implicitDeny :: ImplicitDeny

-- | Policies that don't contain a matching allow or deny statement for the
--   specified action on the specified resource.
idPolicies :: Lens' ImplicitDeny [Policy]

-- | Sends message data to an AWS IoT Analytics channel.
--   
--   <i>See:</i> <a>iotAnalyticsAction</a> smart constructor.
data IotAnalyticsAction

-- | Creates a value of <a>IotAnalyticsAction</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>iaaChannelARN</a> - (deprecated) The ARN of the IoT Analytics
--   channel to which message data will be sent.</li>
--   <li><a>iaaChannelName</a> - The name of the IoT Analytics channel to
--   which message data will be sent.</li>
--   <li><a>iaaRoleARN</a> - The ARN of the role which has a policy that
--   grants IoT permission to send message data via IoT Analytics
--   (iotanalytics:BatchPutMessage).</li>
--   </ul>
iotAnalyticsAction :: IotAnalyticsAction

-- | (deprecated) The ARN of the IoT Analytics channel to which message
--   data will be sent.
iaaChannelARN :: Lens' IotAnalyticsAction (Maybe Text)

-- | The name of the IoT Analytics channel to which message data will be
--   sent.
iaaChannelName :: Lens' IotAnalyticsAction (Maybe Text)

-- | The ARN of the role which has a policy that grants IoT permission to
--   send message data via IoT Analytics (iotanalytics:BatchPutMessage).
iaaRoleARN :: Lens' IotAnalyticsAction (Maybe Text)

-- | The <tt>Job</tt> object contains details about a job.
--   
--   <i>See:</i> <a>job</a> smart constructor.
data Job

-- | Creates a value of <a>Job</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>jobStatus</a> - The status of the job, one of
--   <tt>IN_PROGRESS</tt> , <tt>CANCELED</tt> , or <tt>COMPLETED</tt>
--   .</li>
--   <li><a>jobJobExecutionsRolloutConfig</a> - Allows you to create a
--   staged rollout of a job.</li>
--   <li><a>jobJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jobLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job was last updated.</li>
--   <li><a>jobJobARN</a> - An ARN identifying the job with format
--   "arn:aws:iot:region:account:job/jobId".</li>
--   <li><a>jobCreatedAt</a> - The time, in milliseconds since the epoch,
--   when the job was created.</li>
--   <li><a>jobDocumentParameters</a> - The parameters specified for the
--   job document.</li>
--   <li><a>jobJobProcessDetails</a> - Details about the job process.</li>
--   <li><a>jobPresignedURLConfig</a> - Configuration for pre-signed S3
--   URLs.</li>
--   <li><a>jobTargets</a> - A list of IoT things and thing groups to which
--   the job should be sent.</li>
--   <li><a>jobCompletedAt</a> - The time, in milliseconds since the epoch,
--   when the job was completed.</li>
--   <li><a>jobComment</a> - If the job was updated, describes the reason
--   for the update.</li>
--   <li><a>jobDescription</a> - A short text description of the job.</li>
--   <li><a>jobTargetSelection</a> - Specifies whether the job will
--   continue to run (CONTINUOUS), or will be complete after all those
--   things specified as targets have completed the job (SNAPSHOT). If
--   continuous, the job may also be run on a thing when a change is
--   detected in a target. For example, a job will run on a device when the
--   thing representing the device is added to a target group, even after
--   the job was completed by all things originally in the group.</li>
--   </ul>
job :: Job

-- | The status of the job, one of <tt>IN_PROGRESS</tt> , <tt>CANCELED</tt>
--   , or <tt>COMPLETED</tt> .
jobStatus :: Lens' Job (Maybe JobStatus)

-- | Allows you to create a staged rollout of a job.
jobJobExecutionsRolloutConfig :: Lens' Job (Maybe JobExecutionsRolloutConfig)

-- | The unique identifier you assigned to this job when it was created.
jobJobId :: Lens' Job (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was last
--   updated.
jobLastUpdatedAt :: Lens' Job (Maybe UTCTime)

-- | An ARN identifying the job with format
--   "arn:aws:iot:region:account:job/jobId".
jobJobARN :: Lens' Job (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was created.
jobCreatedAt :: Lens' Job (Maybe UTCTime)

-- | The parameters specified for the job document.
jobDocumentParameters :: Lens' Job (HashMap Text Text)

-- | Details about the job process.
jobJobProcessDetails :: Lens' Job (Maybe JobProcessDetails)

-- | Configuration for pre-signed S3 URLs.
jobPresignedURLConfig :: Lens' Job (Maybe PresignedURLConfig)

-- | A list of IoT things and thing groups to which the job should be sent.
jobTargets :: Lens' Job (Maybe (NonEmpty Text))

-- | The time, in milliseconds since the epoch, when the job was completed.
jobCompletedAt :: Lens' Job (Maybe UTCTime)

-- | If the job was updated, describes the reason for the update.
jobComment :: Lens' Job (Maybe Text)

-- | A short text description of the job.
jobDescription :: Lens' Job (Maybe Text)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a device when the thing representing the device is added to a target
--   group, even after the job was completed by all things originally in
--   the group.
jobTargetSelection :: Lens' Job (Maybe TargetSelection)

-- | The job execution object represents the execution of a job on a
--   particular device.
--   
--   <i>See:</i> <a>jobExecution</a> smart constructor.
data JobExecution

-- | Creates a value of <a>JobExecution</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>jeStatus</a> - The status of the job execution (IN_PROGRESS,
--   QUEUED, FAILED, SUCCESS, CANCELED, or REJECTED).</li>
--   <li><a>jeJobId</a> - The unique identifier you assigned to the job
--   when it was created.</li>
--   <li><a>jeLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job execution was last updated.</li>
--   <li><a>jeQueuedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution was queued.</li>
--   <li><a>jeStatusDetails</a> - A collection of name/value pairs that
--   describe the status of the job execution.</li>
--   <li><a>jeThingARN</a> - The ARN of the thing on which the job
--   execution is running.</li>
--   <li><a>jeExecutionNumber</a> - A string (consisting of the digits "0"
--   through "9") which identifies this particular job execution on this
--   particular device. It can be used in commands which return or update
--   job execution information.</li>
--   <li><a>jeStartedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution started.</li>
--   </ul>
jobExecution :: JobExecution

-- | The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS,
--   CANCELED, or REJECTED).
jeStatus :: Lens' JobExecution (Maybe JobExecutionStatus)

-- | The unique identifier you assigned to the job when it was created.
jeJobId :: Lens' JobExecution (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job execution was
--   last updated.
jeLastUpdatedAt :: Lens' JobExecution (Maybe UTCTime)

-- | The time, in milliseconds since the epoch, when the job execution was
--   queued.
jeQueuedAt :: Lens' JobExecution (Maybe UTCTime)

-- | A collection of name/value pairs that describe the status of the job
--   execution.
jeStatusDetails :: Lens' JobExecution (Maybe JobExecutionStatusDetails)

-- | The ARN of the thing on which the job execution is running.
jeThingARN :: Lens' JobExecution (Maybe Text)

-- | A string (consisting of the digits "0" through "9") which identifies
--   this particular job execution on this particular device. It can be
--   used in commands which return or update job execution information.
jeExecutionNumber :: Lens' JobExecution (Maybe Integer)

-- | The time, in milliseconds since the epoch, when the job execution
--   started.
jeStartedAt :: Lens' JobExecution (Maybe UTCTime)

-- | Details of the job execution status.
--   
--   <i>See:</i> <a>jobExecutionStatusDetails</a> smart constructor.
data JobExecutionStatusDetails

-- | Creates a value of <a>JobExecutionStatusDetails</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>jesdDetailsMap</a> - The job execution status.</li>
--   </ul>
jobExecutionStatusDetails :: JobExecutionStatusDetails

-- | The job execution status.
jesdDetailsMap :: Lens' JobExecutionStatusDetails (HashMap Text Text)

-- | The job execution summary.
--   
--   <i>See:</i> <a>jobExecutionSummary</a> smart constructor.
data JobExecutionSummary

-- | Creates a value of <a>JobExecutionSummary</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>jesStatus</a> - The status of the job execution.</li>
--   <li><a>jesLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job execution was last updated.</li>
--   <li><a>jesQueuedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution was queued.</li>
--   <li><a>jesExecutionNumber</a> - A string (consisting of the digits "0"
--   through "9") which identifies this particular job execution on this
--   particular device. It can be used later in commands which return or
--   update job execution information.</li>
--   <li><a>jesStartedAt</a> - The time, in milliseconds since the epoch,
--   when the job execution started.</li>
--   </ul>
jobExecutionSummary :: JobExecutionSummary

-- | The status of the job execution.
jesStatus :: Lens' JobExecutionSummary (Maybe JobExecutionStatus)

-- | The time, in milliseconds since the epoch, when the job execution was
--   last updated.
jesLastUpdatedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | The time, in milliseconds since the epoch, when the job execution was
--   queued.
jesQueuedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | A string (consisting of the digits "0" through "9") which identifies
--   this particular job execution on this particular device. It can be
--   used later in commands which return or update job execution
--   information.
jesExecutionNumber :: Lens' JobExecutionSummary (Maybe Integer)

-- | The time, in milliseconds since the epoch, when the job execution
--   started.
jesStartedAt :: Lens' JobExecutionSummary (Maybe UTCTime)

-- | Contains a summary of information about job executions for a specific
--   job.
--   
--   <i>See:</i> <a>jobExecutionSummaryForJob</a> smart constructor.
data JobExecutionSummaryForJob

-- | Creates a value of <a>JobExecutionSummaryForJob</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>jesfjJobExecutionSummary</a> - Contains a subset of information
--   about a job execution.</li>
--   <li><a>jesfjThingARN</a> - The ARN of the thing on which the job
--   execution is running.</li>
--   </ul>
jobExecutionSummaryForJob :: JobExecutionSummaryForJob

-- | Contains a subset of information about a job execution.
jesfjJobExecutionSummary :: Lens' JobExecutionSummaryForJob (Maybe JobExecutionSummary)

-- | The ARN of the thing on which the job execution is running.
jesfjThingARN :: Lens' JobExecutionSummaryForJob (Maybe Text)

-- | The job execution summary for a thing.
--   
--   <i>See:</i> <a>jobExecutionSummaryForThing</a> smart constructor.
data JobExecutionSummaryForThing

-- | Creates a value of <a>JobExecutionSummaryForThing</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>jesftJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jesftJobExecutionSummary</a> - Contains a subset of information
--   about a job execution.</li>
--   </ul>
jobExecutionSummaryForThing :: JobExecutionSummaryForThing

-- | The unique identifier you assigned to this job when it was created.
jesftJobId :: Lens' JobExecutionSummaryForThing (Maybe Text)

-- | Contains a subset of information about a job execution.
jesftJobExecutionSummary :: Lens' JobExecutionSummaryForThing (Maybe JobExecutionSummary)

-- | Allows you to create a staged rollout of a job.
--   
--   <i>See:</i> <a>jobExecutionsRolloutConfig</a> smart constructor.
data JobExecutionsRolloutConfig

-- | Creates a value of <a>JobExecutionsRolloutConfig</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>jercMaximumPerMinute</a> - The maximum number of things that
--   will be notified of a pending job, per minute. This parameter allows
--   you to create a staged rollout.</li>
--   </ul>
jobExecutionsRolloutConfig :: JobExecutionsRolloutConfig

-- | The maximum number of things that will be notified of a pending job,
--   per minute. This parameter allows you to create a staged rollout.
jercMaximumPerMinute :: Lens' JobExecutionsRolloutConfig (Maybe Natural)

-- | The job process details.
--   
--   <i>See:</i> <a>jobProcessDetails</a> smart constructor.
data JobProcessDetails

-- | Creates a value of <a>JobProcessDetails</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>jpdNumberOfRemovedThings</a> - The number of things that are no
--   longer scheduled to execute the job because they have been deleted or
--   have been removed from the group that was a target of the job.</li>
--   <li><a>jpdNumberOfQueuedThings</a> - The number of things that are
--   awaiting execution of the job.</li>
--   <li><a>jpdNumberOfFailedThings</a> - The number of things that failed
--   executing the job.</li>
--   <li><a>jpdNumberOfSucceededThings</a> - The number of things which
--   successfully completed the job.</li>
--   <li><a>jpdNumberOfInProgressThings</a> - The number of things
--   currently executing the job.</li>
--   <li><a>jpdNumberOfCanceledThings</a> - The number of things that
--   cancelled the job.</li>
--   <li><a>jpdNumberOfRejectedThings</a> - The number of things that
--   rejected the job.</li>
--   <li><a>jpdProcessingTargets</a> - The devices on which the job is
--   executing.</li>
--   </ul>
jobProcessDetails :: JobProcessDetails

-- | The number of things that are no longer scheduled to execute the job
--   because they have been deleted or have been removed from the group
--   that was a target of the job.
jpdNumberOfRemovedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that are awaiting execution of the job.
jpdNumberOfQueuedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that failed executing the job.
jpdNumberOfFailedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things which successfully completed the job.
jpdNumberOfSucceededThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things currently executing the job.
jpdNumberOfInProgressThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that cancelled the job.
jpdNumberOfCanceledThings :: Lens' JobProcessDetails (Maybe Int)

-- | The number of things that rejected the job.
jpdNumberOfRejectedThings :: Lens' JobProcessDetails (Maybe Int)

-- | The devices on which the job is executing.
jpdProcessingTargets :: Lens' JobProcessDetails [Text]

-- | The job summary.
--   
--   <i>See:</i> <a>jobSummary</a> smart constructor.
data JobSummary

-- | Creates a value of <a>JobSummary</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>jsStatus</a> - The job summary status.</li>
--   <li><a>jsJobId</a> - The unique identifier you assigned to this job
--   when it was created.</li>
--   <li><a>jsLastUpdatedAt</a> - The time, in milliseconds since the
--   epoch, when the job was last updated.</li>
--   <li><a>jsJobARN</a> - The job ARN.</li>
--   <li><a>jsCreatedAt</a> - The time, in milliseconds since the epoch,
--   when the job was created.</li>
--   <li><a>jsThingGroupId</a> - The ID of the thing group.</li>
--   <li><a>jsCompletedAt</a> - The time, in milliseconds since the epoch,
--   when the job completed.</li>
--   <li><a>jsTargetSelection</a> - Specifies whether the job will continue
--   to run (CONTINUOUS), or will be complete after all those things
--   specified as targets have completed the job (SNAPSHOT). If continuous,
--   the job may also be run on a thing when a change is detected in a
--   target. For example, a job will run on a thing when the thing is added
--   to a target group, even after the job was completed by all things
--   originally in the group.</li>
--   </ul>
jobSummary :: JobSummary

-- | The job summary status.
jsStatus :: Lens' JobSummary (Maybe JobStatus)

-- | The unique identifier you assigned to this job when it was created.
jsJobId :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was last
--   updated.
jsLastUpdatedAt :: Lens' JobSummary (Maybe UTCTime)

-- | The job ARN.
jsJobARN :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job was created.
jsCreatedAt :: Lens' JobSummary (Maybe UTCTime)

-- | The ID of the thing group.
jsThingGroupId :: Lens' JobSummary (Maybe Text)

-- | The time, in milliseconds since the epoch, when the job completed.
jsCompletedAt :: Lens' JobSummary (Maybe UTCTime)

-- | Specifies whether the job will continue to run (CONTINUOUS), or will
--   be complete after all those things specified as targets have completed
--   the job (SNAPSHOT). If continuous, the job may also be run on a thing
--   when a change is detected in a target. For example, a job will run on
--   a thing when the thing is added to a target group, even after the job
--   was completed by all things originally in the group.
jsTargetSelection :: Lens' JobSummary (Maybe TargetSelection)

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

-- | A log target.
--   
--   <i>See:</i> <a>logTarget</a> smart constructor.
data LogTarget

-- | Creates a value of <a>LogTarget</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>ltTargetName</a> - The target name.</li>
--   <li><a>ltTargetType</a> - The target type.</li>
--   </ul>
logTarget :: LogTargetType -> LogTarget

-- | The target name.
ltTargetName :: Lens' LogTarget (Maybe Text)

-- | The target type.
ltTargetType :: Lens' LogTarget LogTargetType

-- | The target configuration.
--   
--   <i>See:</i> <a>logTargetConfiguration</a> smart constructor.
data LogTargetConfiguration

-- | Creates a value of <a>LogTargetConfiguration</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>ltcLogLevel</a> - The logging level.</li>
--   <li><a>ltcLogTarget</a> - A log target</li>
--   </ul>
logTargetConfiguration :: LogTargetConfiguration

-- | The logging level.
ltcLogLevel :: Lens' LogTargetConfiguration (Maybe LogLevel)

-- | A log target
ltcLogTarget :: Lens' LogTargetConfiguration (Maybe LogTarget)

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

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

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

-- | Describes a file to be associated with an OTA update.
--   
--   <i>See:</i> <a>oTAUpdateFile</a> smart constructor.
data OTAUpdateFile

-- | Creates a value of <a>OTAUpdateFile</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>otaufFileVersion</a> - The file version.</li>
--   <li><a>otaufAttributes</a> - A list of name/attribute pairs.</li>
--   <li><a>otaufFileSource</a> - The source of the file.</li>
--   <li><a>otaufCodeSigning</a> - The code signing method of the
--   file.</li>
--   <li><a>otaufFileName</a> - The name of the file.</li>
--   </ul>
oTAUpdateFile :: OTAUpdateFile

-- | The file version.
otaufFileVersion :: Lens' OTAUpdateFile (Maybe Text)

-- | A list of name/attribute pairs.
otaufAttributes :: Lens' OTAUpdateFile (HashMap Text Text)

-- | The source of the file.
otaufFileSource :: Lens' OTAUpdateFile (Maybe Stream)

-- | The code signing method of the file.
otaufCodeSigning :: Lens' OTAUpdateFile (Maybe CodeSigning)

-- | The name of the file.
otaufFileName :: Lens' OTAUpdateFile (Maybe Text)

-- | Information about an OTA update.
--   
--   <i>See:</i> <a>oTAUpdateInfo</a> smart constructor.
data OTAUpdateInfo

-- | Creates a value of <a>OTAUpdateInfo</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>otauiLastModifiedDate</a> - The date when the OTA update was
--   last updated.</li>
--   <li><a>otauiAwsIotJobId</a> - The AWS IoT job ID associated with the
--   OTA update.</li>
--   <li><a>otauiOtaUpdateFiles</a> - A list of files associated with the
--   OTA update.</li>
--   <li><a>otauiOtaUpdateStatus</a> - The status of the OTA update.</li>
--   <li><a>otauiTargets</a> - The targets of the OTA update.</li>
--   <li><a>otauiAwsIotJobARN</a> - The AWS IoT job ARN associated with the
--   OTA update.</li>
--   <li><a>otauiCreationDate</a> - The date when the OTA update was
--   created.</li>
--   <li><a>otauiAdditionalParameters</a> - A collection of name/value
--   pairs</li>
--   <li><a>otauiOtaUpdateId</a> - The OTA update ID.</li>
--   <li><a>otauiErrorInfo</a> - Error information associated with the OTA
--   update.</li>
--   <li><a>otauiOtaUpdateARN</a> - The OTA update ARN.</li>
--   <li><a>otauiDescription</a> - A description of the OTA update.</li>
--   <li><a>otauiTargetSelection</a> - Specifies whether the OTA update
--   will continue to run (CONTINUOUS), or will be complete after all those
--   things specified as targets have completed the OTA update (SNAPSHOT).
--   If continuous, the OTA update may also be run on a thing when a change
--   is detected in a target. For example, an OTA update will run on a
--   thing when the thing is added to a target group, even after the OTA
--   update was completed by all things originally in the group.</li>
--   </ul>
oTAUpdateInfo :: OTAUpdateInfo

-- | The date when the OTA update was last updated.
otauiLastModifiedDate :: Lens' OTAUpdateInfo (Maybe UTCTime)

-- | The AWS IoT job ID associated with the OTA update.
otauiAwsIotJobId :: Lens' OTAUpdateInfo (Maybe Text)

-- | A list of files associated with the OTA update.
otauiOtaUpdateFiles :: Lens' OTAUpdateInfo (Maybe (NonEmpty OTAUpdateFile))

-- | The status of the OTA update.
otauiOtaUpdateStatus :: Lens' OTAUpdateInfo (Maybe OTAUpdateStatus)

-- | The targets of the OTA update.
otauiTargets :: Lens' OTAUpdateInfo (Maybe (NonEmpty Text))

-- | The AWS IoT job ARN associated with the OTA update.
otauiAwsIotJobARN :: Lens' OTAUpdateInfo (Maybe Text)

-- | The date when the OTA update was created.
otauiCreationDate :: Lens' OTAUpdateInfo (Maybe UTCTime)

-- | A collection of name/value pairs
otauiAdditionalParameters :: Lens' OTAUpdateInfo (HashMap Text Text)

-- | The OTA update ID.
otauiOtaUpdateId :: Lens' OTAUpdateInfo (Maybe Text)

-- | Error information associated with the OTA update.
otauiErrorInfo :: Lens' OTAUpdateInfo (Maybe ErrorInfo)

-- | The OTA update ARN.
otauiOtaUpdateARN :: Lens' OTAUpdateInfo (Maybe Text)

-- | A description of the OTA update.
otauiDescription :: Lens' OTAUpdateInfo (Maybe Text)

-- | Specifies whether the OTA update will continue to run (CONTINUOUS), or
--   will be complete after all those things specified as targets have
--   completed the OTA update (SNAPSHOT). If continuous, the OTA update may
--   also be run on a thing when a change is detected in a target. For
--   example, an OTA update will run on a thing when the thing is added to
--   a target group, even after the OTA update was completed by all things
--   originally in the group.
otauiTargetSelection :: Lens' OTAUpdateInfo (Maybe TargetSelection)

-- | An OTA update summary.
--   
--   <i>See:</i> <a>oTAUpdateSummary</a> smart constructor.
data OTAUpdateSummary

-- | Creates a value of <a>OTAUpdateSummary</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>otausCreationDate</a> - The date when the OTA update was
--   created.</li>
--   <li><a>otausOtaUpdateId</a> - The OTA update ID.</li>
--   <li><a>otausOtaUpdateARN</a> - The OTA update ARN.</li>
--   </ul>
oTAUpdateSummary :: OTAUpdateSummary

-- | The date when the OTA update was created.
otausCreationDate :: Lens' OTAUpdateSummary (Maybe UTCTime)

-- | The OTA update ID.
otausOtaUpdateId :: Lens' OTAUpdateSummary (Maybe Text)

-- | The OTA update ARN.
otausOtaUpdateARN :: Lens' OTAUpdateSummary (Maybe Text)

-- | A certificate that has been transferred 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)

-- | Configuration for pre-signed S3 URLs.
--   
--   <i>See:</i> <a>presignedURLConfig</a> smart constructor.
data PresignedURLConfig

-- | Creates a value of <a>PresignedURLConfig</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>pucExpiresInSec</a> - How long (in seconds) pre-signed URLs are
--   valid. Valid values are 60 - 3600, the default value is 3600 seconds.
--   Pre-signed URLs are generated when Jobs receives an MQTT request for
--   the job document.</li>
--   <li><a>pucRoleARN</a> - The ARN of an IAM role that grants grants
--   permission to download files from the S3 bucket where the job
--   data/updates are stored. The role must also grant permission for IoT
--   to download the files.</li>
--   </ul>
presignedURLConfig :: PresignedURLConfig

-- | How long (in seconds) pre-signed URLs are valid. Valid values are 60 -
--   3600, the default value is 3600 seconds. Pre-signed URLs are generated
--   when Jobs receives an MQTT request for the job document.
pucExpiresInSec :: Lens' PresignedURLConfig (Maybe Natural)

-- | The ARN of an IAM role that grants grants permission to download files
--   from the S3 bucket where the job data/updates are stored. The role
--   must also grant permission for IoT to download the files.
pucRoleARN :: Lens' PresignedURLConfig (Maybe Text)

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

-- | The registration configuration.
--   
--   <i>See:</i> <a>registrationConfig</a> smart constructor.
data RegistrationConfig

-- | Creates a value of <a>RegistrationConfig</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>rcTemplateBody</a> - The template body.</li>
--   <li><a>rcRoleARN</a> - The ARN of the role.</li>
--   </ul>
registrationConfig :: RegistrationConfig

-- | The template body.
rcTemplateBody :: Lens' RegistrationConfig (Maybe Text)

-- | The ARN of the role.
rcRoleARN :: Lens' RegistrationConfig (Maybe 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

-- | Role alias description.
--   
--   <i>See:</i> <a>roleAliasDescription</a> smart constructor.
data RoleAliasDescription

-- | Creates a value of <a>RoleAliasDescription</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>radRoleAliasARN</a> - The ARN of the role alias.</li>
--   <li><a>radLastModifiedDate</a> - The UNIX timestamp of when the role
--   alias was last modified.</li>
--   <li><a>radRoleAlias</a> - The role alias.</li>
--   <li><a>radOwner</a> - The role alias owner.</li>
--   <li><a>radCreationDate</a> - The UNIX timestamp of when the role alias
--   was created.</li>
--   <li><a>radCredentialDurationSeconds</a> - The number of seconds for
--   which the credential is valid.</li>
--   <li><a>radRoleARN</a> - The role ARN.</li>
--   </ul>
roleAliasDescription :: RoleAliasDescription

-- | The ARN of the role alias.
radRoleAliasARN :: Lens' RoleAliasDescription (Maybe Text)

-- | The UNIX timestamp of when the role alias was last modified.
radLastModifiedDate :: Lens' RoleAliasDescription (Maybe UTCTime)

-- | The role alias.
radRoleAlias :: Lens' RoleAliasDescription (Maybe Text)

-- | The role alias owner.
radOwner :: Lens' RoleAliasDescription (Maybe Text)

-- | The UNIX timestamp of when the role alias was created.
radCreationDate :: Lens' RoleAliasDescription (Maybe UTCTime)

-- | The number of seconds for which the credential is valid.
radCredentialDurationSeconds :: Lens' RoleAliasDescription (Maybe Natural)

-- | The role ARN.
radRoleARN :: Lens' RoleAliasDescription (Maybe 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

-- | The location in S3 the contains the files to stream.
--   
--   <i>See:</i> <a>s3Location</a> smart constructor.
data S3Location

-- | Creates a value of <a>S3Location</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>slVersion</a> - The file version.</li>
--   <li><a>slBucket</a> - The S3 bucket that contains the file to
--   stream.</li>
--   <li><a>slKey</a> - The name of the file within the S3 bucket to
--   stream.</li>
--   </ul>
s3Location :: Text -> Text -> S3Location

-- | The file version.
slVersion :: Lens' S3Location (Maybe Text)

-- | The S3 bucket that contains the file to stream.
slBucket :: Lens' S3Location Text

-- | The name of the file within the S3 bucket to stream.
slKey :: Lens' S3Location 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 write a message to a Salesforce IoT Cloud Input
--   Stream.
--   
--   <i>See:</i> <a>salesforceAction</a> smart constructor.
data SalesforceAction

-- | Creates a value of <a>SalesforceAction</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>saToken</a> - The token used to authenticate access to the
--   Salesforce IoT Cloud Input Stream. The token is available from the
--   Salesforce IoT Cloud platform after creation of the Input Stream.</li>
--   <li><a>saUrl</a> - The URL exposed by the Salesforce IoT Cloud Input
--   Stream. The URL is available from the Salesforce IoT Cloud platform
--   after creation of the Input Stream.</li>
--   </ul>
salesforceAction :: Text -> Text -> SalesforceAction

-- | The token used to authenticate access to the Salesforce IoT Cloud
--   Input Stream. The token is available from the Salesforce IoT Cloud
--   platform after creation of the Input Stream.
saToken :: Lens' SalesforceAction Text

-- | The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is
--   available from the Salesforce IoT Cloud platform after creation of the
--   Input Stream.
saUrl :: Lens' SalesforceAction 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

-- | Describes a group of files that can be streamed.
--   
--   <i>See:</i> <a>stream</a> smart constructor.
data Stream

-- | Creates a value of <a>Stream</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>sFileId</a> - The ID of a file associated with a stream.</li>
--   <li><a>sStreamId</a> - The stream ID.</li>
--   </ul>
stream :: Stream

-- | The ID of a file associated with a stream.
sFileId :: Lens' Stream (Maybe Natural)

-- | The stream ID.
sStreamId :: Lens' Stream (Maybe Text)

-- | Represents a file to stream.
--   
--   <i>See:</i> <a>streamFile</a> smart constructor.
data StreamFile

-- | Creates a value of <a>StreamFile</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>sfS3Location</a> - The location of the file in S3.</li>
--   <li><a>sfFileId</a> - The file ID.</li>
--   </ul>
streamFile :: StreamFile

-- | The location of the file in S3.
sfS3Location :: Lens' StreamFile (Maybe S3Location)

-- | The file ID.
sfFileId :: Lens' StreamFile (Maybe Natural)

-- | Information about a stream.
--   
--   <i>See:</i> <a>streamInfo</a> smart constructor.
data StreamInfo

-- | Creates a value of <a>StreamInfo</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>siLastUpdatedAt</a> - The date when the stream was last
--   updated.</li>
--   <li><a>siCreatedAt</a> - The date when the stream was created.</li>
--   <li><a>siStreamVersion</a> - The stream version.</li>
--   <li><a>siStreamARN</a> - The stream ARN.</li>
--   <li><a>siFiles</a> - The files to stream.</li>
--   <li><a>siDescription</a> - The description of the stream.</li>
--   <li><a>siStreamId</a> - The stream ID.</li>
--   <li><a>siRoleARN</a> - An IAM role AWS IoT assumes to access your S3
--   files.</li>
--   </ul>
streamInfo :: StreamInfo

-- | The date when the stream was last updated.
siLastUpdatedAt :: Lens' StreamInfo (Maybe UTCTime)

-- | The date when the stream was created.
siCreatedAt :: Lens' StreamInfo (Maybe UTCTime)

-- | The stream version.
siStreamVersion :: Lens' StreamInfo (Maybe Natural)

-- | The stream ARN.
siStreamARN :: Lens' StreamInfo (Maybe Text)

-- | The files to stream.
siFiles :: Lens' StreamInfo (Maybe (NonEmpty StreamFile))

-- | The description of the stream.
siDescription :: Lens' StreamInfo (Maybe Text)

-- | The stream ID.
siStreamId :: Lens' StreamInfo (Maybe Text)

-- | An IAM role AWS IoT assumes to access your S3 files.
siRoleARN :: Lens' StreamInfo (Maybe Text)

-- | A summary of a stream.
--   
--   <i>See:</i> <a>streamSummary</a> smart constructor.
data StreamSummary

-- | Creates a value of <a>StreamSummary</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>ssStreamVersion</a> - The stream version.</li>
--   <li><a>ssStreamARN</a> - The stream ARN.</li>
--   <li><a>ssDescription</a> - A description of the stream.</li>
--   <li><a>ssStreamId</a> - The stream ID.</li>
--   </ul>
streamSummary :: StreamSummary

-- | The stream version.
ssStreamVersion :: Lens' StreamSummary (Maybe Natural)

-- | The stream ARN.
ssStreamARN :: Lens' StreamSummary (Maybe Text)

-- | A description of the stream.
ssDescription :: Lens' StreamSummary (Maybe Text)

-- | The stream ID.
ssStreamId :: Lens' StreamSummary (Maybe 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>taThingARN</a> - The thing ARN.</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)

-- | The thing ARN.
taThingARN :: 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 thing search index document.
--   
--   <i>See:</i> <a>thingDocument</a> smart constructor.
data ThingDocument

-- | Creates a value of <a>ThingDocument</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>tdThingGroupNames</a> - Thing group names.</li>
--   <li><a>tdThingTypeName</a> - The thing type name.</li>
--   <li><a>tdShadow</a> - The shadow.</li>
--   <li><a>tdAttributes</a> - The attributes.</li>
--   <li><a>tdThingName</a> - The thing name.</li>
--   <li><a>tdThingId</a> - The thing ID.</li>
--   </ul>
thingDocument :: ThingDocument

-- | Thing group names.
tdThingGroupNames :: Lens' ThingDocument [Text]

-- | The thing type name.
tdThingTypeName :: Lens' ThingDocument (Maybe Text)

-- | The shadow.
tdShadow :: Lens' ThingDocument (Maybe Text)

-- | The attributes.
tdAttributes :: Lens' ThingDocument (HashMap Text Text)

-- | The thing name.
tdThingName :: Lens' ThingDocument (Maybe Text)

-- | The thing ID.
tdThingId :: Lens' ThingDocument (Maybe Text)

-- | Thing group metadata.
--   
--   <i>See:</i> <a>thingGroupMetadata</a> smart constructor.
data ThingGroupMetadata

-- | Creates a value of <a>ThingGroupMetadata</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>tgmRootToParentThingGroups</a> - The root parent thing
--   group.</li>
--   <li><a>tgmParentGroupName</a> - The parent thing group name.</li>
--   <li><a>tgmCreationDate</a> - The UNIX timestamp of when the thing
--   group was created.</li>
--   </ul>
thingGroupMetadata :: ThingGroupMetadata

-- | The root parent thing group.
tgmRootToParentThingGroups :: Lens' ThingGroupMetadata [GroupNameAndARN]

-- | The parent thing group name.
tgmParentGroupName :: Lens' ThingGroupMetadata (Maybe Text)

-- | The UNIX timestamp of when the thing group was created.
tgmCreationDate :: Lens' ThingGroupMetadata (Maybe UTCTime)

-- | Thing group properties.
--   
--   <i>See:</i> <a>thingGroupProperties</a> smart constructor.
data ThingGroupProperties

-- | Creates a value of <a>ThingGroupProperties</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>tgpAttributePayload</a> - The thing group attributes in JSON
--   format.</li>
--   <li><a>tgpThingGroupDescription</a> - The thing group
--   description.</li>
--   </ul>
thingGroupProperties :: ThingGroupProperties

-- | The thing group attributes in JSON format.
tgpAttributePayload :: Lens' ThingGroupProperties (Maybe AttributePayload)

-- | The thing group description.
tgpThingGroupDescription :: Lens' ThingGroupProperties (Maybe Text)

-- | Thing indexing configuration.
--   
--   <i>See:</i> <a>thingIndexingConfiguration</a> smart constructor.
data ThingIndexingConfiguration

-- | Creates a value of <a>ThingIndexingConfiguration</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>ticThingIndexingMode</a> - Thing indexing mode. Valid values
--   are: * REGISTRY – Your thing index will contain only registry data. *
--   REGISTRY_AND_SHADOW - Your thing index will contain registry and
--   shadow data. * OFF - Thing indexing is disabled.</li>
--   </ul>
thingIndexingConfiguration :: ThingIndexingConfiguration

-- | Thing indexing mode. Valid values are: * REGISTRY – Your thing index
--   will contain only registry data. * REGISTRY_AND_SHADOW - Your thing
--   index will contain registry and shadow data. * OFF - Thing indexing is
--   disabled.
ticThingIndexingMode :: Lens' ThingIndexingConfiguration (Maybe ThingIndexingMode)

-- | 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> - 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 it was deprecated.</li>
--   <li><a>ttdThingTypeARN</a> - The thing type ARN.</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)

-- | 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 it was deprecated.
ttdThingTypeMetadata :: Lens' ThingTypeDefinition (Maybe ThingTypeMetadata)

-- | The thing type ARN.
ttdThingTypeARN :: Lens' ThingTypeDefinition (Maybe Text)

-- | 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>trErrorAction</a> - The action to perform when an error
--   occurs.</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)

-- | The action to perform when an error occurs.
trErrorAction :: Lens' TopicRule (Maybe Action)

-- | 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>trpErrorAction</a> - The action to take when an error
--   occurs.</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)

-- | The action to take when an error occurs.
trpErrorAction :: Lens' TopicRulePayload (Maybe Action)

-- | 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)
