{
  "version": "2.0",
  "service": "<fullname>AWS IoT</fullname> <p>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.</p> <p>For more information about how AWS IoT works, see the <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/aws-iot-how-it-works.html\">Developer Guide</a>.</p> <p>For information about how to use the credentials provider for AWS IoT, see <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html\">Authorizing Direct Calls to AWS Services</a>.</p>",
  "operations": {
    "AcceptCertificateTransfer": "<p>Accepts a pending certificate transfer. The default state of the certificate is INACTIVE.</p> <p>To check for pending certificate transfers, call <a>ListCertificates</a> to enumerate your certificates.</p>",
    "AddThingToThingGroup": "<p>Adds a thing to a thing group.</p>",
    "AssociateTargetsWithJob": "<p>Associates a group with a continuous job. The following criteria must be met: </p> <ul> <li> <p>The job must have been created with the <code>targetSelection</code> field set to \"CONTINUOUS\".</p> </li> <li> <p>The job status must currently be \"IN_PROGRESS\".</p> </li> <li> <p>The total number of targets associated with a job must not exceed 100.</p> </li> </ul>",
    "AttachPolicy": "<p>Attaches a policy to the specified target.</p>",
    "AttachPrincipalPolicy": "<p>Attaches the specified policy to the specified principal (certificate or other credential).</p> <p> <b>Note:</b> This API is deprecated. Please use <a>AttachPolicy</a> instead.</p>",
    "AttachSecurityProfile": "<p>Associates a Device Defender security profile with a thing group or with this account. Each thing group or account can have up to five security profiles associated with it.</p>",
    "AttachThingPrincipal": "<p>Attaches the specified principal to the specified thing.</p>",
    "CancelAuditTask": "<p>Cancels an audit that is in progress. The audit can be either scheduled or on-demand. If the audit is not in progress, an \"InvalidRequestException\" occurs.</p>",
    "CancelCertificateTransfer": "<p>Cancels a pending transfer for the specified certificate.</p> <p> <b>Note</b> Only the transfer source account can use this operation to cancel a transfer. (Transfer destinations can use <a>RejectCertificateTransfer</a> 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.</p> <p>After a certificate transfer is cancelled, the status of the certificate changes from PENDING_TRANSFER to INACTIVE.</p>",
    "CancelJob": "<p>Cancels a job.</p>",
    "CancelJobExecution": "<p>Cancels the execution of a job for a given thing.</p>",
    "ClearDefaultAuthorizer": "<p>Clears the default authorizer.</p>",
    "CreateAuthorizer": "<p>Creates an authorizer.</p>",
    "CreateCertificateFromCsr": "<p>Creates an X.509 certificate using the specified certificate signing request.</p> <p> <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. </p> <p> <b>Note:</b> Reusing the same certificate signing request (CSR) results in a distinct certificate.</p> <p>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.</p> <p>Assuming a set of CSRs are located inside of the directory my-csr-directory:</p> <p>On Linux and OS X, the command is:</p> <p>$ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}</p> <p>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.</p> <p>The aws iot create-certificate-from-csr part of the command can also be run in parallel to speed up the certificate creation process:</p> <p>$ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/{}</p> <p>On Windows PowerShell, the command to create certificates for all CSRs in my-csr-directory is:</p> <p>&gt; ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request file://my-csr-directory/$_}</p> <p>On a Windows command prompt, the command to create certificates for all CSRs in my-csr-directory is:</p> <p>&gt; forfiles /p my-csr-directory /c \"cmd /c aws iot create-certificate-from-csr --certificate-signing-request file://@path\"</p>",
    "CreateJob": "<p>Creates a job.</p>",
    "CreateKeysAndCertificate": "<p>Creates a 2048-bit RSA key pair and issues an X.509 certificate using the issued public key.</p> <p> <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.</p>",
    "CreateOTAUpdate": "<p>Creates an AWS IoT OTAUpdate on a target group of things or groups.</p>",
    "CreatePolicy": "<p>Creates an AWS IoT policy.</p> <p>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.</p>",
    "CreatePolicyVersion": "<p>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 <a>DeletePolicyVersion</a> to delete an existing version before you create a new one.</p> <p>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).</p>",
    "CreateRoleAlias": "<p>Creates a role alias.</p>",
    "CreateScheduledAudit": "<p>Creates a scheduled audit that is run at a specified time interval.</p>",
    "CreateSecurityProfile": "<p>Creates a Device Defender security profile.</p>",
    "CreateStream": "<p>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.</p>",
    "CreateThing": "<p>Creates a thing record in the registry.</p> <note> <p>This is a control plane operation. See <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/authorization.html\">Authorization</a> for information about authorizing control plane actions.</p> </note>",
    "CreateThingGroup": "<p>Create a thing group.</p> <note> <p>This is a control plane operation. See <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/authorization.html\">Authorization</a> for information about authorizing control plane actions.</p> </note>",
    "CreateThingType": "<p>Creates a new thing type.</p>",
    "CreateTopicRule": "<p>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.</p>",
    "DeleteAccountAuditConfiguration": "<p>Restores the default settings for Device Defender audits for this account. Any configuration data you entered is deleted and all audit checks are reset to disabled. </p>",
    "DeleteAuthorizer": "<p>Deletes an authorizer.</p>",
    "DeleteCACertificate": "<p>Deletes a registered CA certificate.</p>",
    "DeleteCertificate": "<p>Deletes the specified certificate.</p> <p>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 <a>DetachPrincipalPolicy</a> API to detach all policies. Next, use the <a>UpdateCertificate</a> API to set the certificate to the INACTIVE status.</p>",
    "DeleteJob": "<p>Deletes a job and its related job executions.</p> <p>Deleting a job may take time, depending on the number of job executions created for the job and various other factors. While the job is being deleted, the status of the job will be shown as \"DELETION_IN_PROGRESS\". Attempting to delete or cancel a job whose status is already \"DELETION_IN_PROGRESS\" will result in an error.</p> <p>Only 10 jobs may have status \"DELETION_IN_PROGRESS\" at the same time, or a LimitExceededException will occur.</p>",
    "DeleteJobExecution": "<p>Deletes a job execution.</p>",
    "DeleteOTAUpdate": "<p>Delete an OTA update.</p>",
    "DeletePolicy": "<p>Deletes the specified policy.</p> <p>A policy cannot be deleted if it has non-default versions or it is attached to any certificate.</p> <p>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.</p> <p>When a policy is deleted using DeletePolicy, its default version is deleted with it.</p>",
    "DeletePolicyVersion": "<p>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 <a>DeletePolicy</a>. To find out which version of a policy is marked as the default version, use ListPolicyVersions.</p>",
    "DeleteRegistrationCode": "<p>Deletes a CA certificate registration code.</p>",
    "DeleteRoleAlias": "<p>Deletes a role alias</p>",
    "DeleteScheduledAudit": "<p>Deletes a scheduled audit.</p>",
    "DeleteSecurityProfile": "<p>Deletes a Device Defender security profile.</p>",
    "DeleteStream": "<p>Deletes a stream.</p>",
    "DeleteThing": "<p>Deletes the specified thing.</p>",
    "DeleteThingGroup": "<p>Deletes a thing group.</p>",
    "DeleteThingType": "<p>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 <a>DeprecateThingType</a>, then remove any associated things by calling <a>UpdateThing</a> to change the thing type on any associated thing, and finally use <a>DeleteThingType</a> to delete the thing type.</p>",
    "DeleteTopicRule": "<p>Deletes the rule.</p>",
    "DeleteV2LoggingLevel": "<p>Deletes a logging level.</p>",
    "DeprecateThingType": "<p>Deprecates a thing type. You can not associate new things with deprecated thing type.</p>",
    "DescribeAccountAuditConfiguration": "<p>Gets information about the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled.</p>",
    "DescribeAuditTask": "<p>Gets information about a Device Defender audit.</p>",
    "DescribeAuthorizer": "<p>Describes an authorizer.</p>",
    "DescribeCACertificate": "<p>Describes a registered CA certificate.</p>",
    "DescribeCertificate": "<p>Gets information about the specified certificate.</p>",
    "DescribeDefaultAuthorizer": "<p>Describes the default authorizer.</p>",
    "DescribeEndpoint": "<p>Returns a unique endpoint specific to the AWS account making the call.</p>",
    "DescribeEventConfigurations": "<p>Describes event configurations.</p>",
    "DescribeIndex": "<p>Describes a search index.</p>",
    "DescribeJob": "<p>Describes a job.</p>",
    "DescribeJobExecution": "<p>Describes a job execution.</p>",
    "DescribeRoleAlias": "<p>Describes a role alias.</p>",
    "DescribeScheduledAudit": "<p>Gets information about a scheduled audit.</p>",
    "DescribeSecurityProfile": "<p>Gets information about a Device Defender security profile.</p>",
    "DescribeStream": "<p>Gets information about a stream.</p>",
    "DescribeThing": "<p>Gets information about the specified thing.</p>",
    "DescribeThingGroup": "<p>Describe a thing group.</p>",
    "DescribeThingRegistrationTask": "<p>Describes a bulk thing provisioning task.</p>",
    "DescribeThingType": "<p>Gets information about the specified thing type.</p>",
    "DetachPolicy": "<p>Detaches a policy from the specified target.</p>",
    "DetachPrincipalPolicy": "<p>Removes the specified policy from the specified certificate.</p> <p> <b>Note:</b> This API is deprecated. Please use <a>DetachPolicy</a> instead.</p>",
    "DetachSecurityProfile": "<p>Disassociates a Device Defender security profile from a thing group or from this account.</p>",
    "DetachThingPrincipal": "<p>Detaches the specified principal from the specified thing.</p>",
    "DisableTopicRule": "<p>Disables the rule.</p>",
    "EnableTopicRule": "<p>Enables the rule.</p>",
    "GetEffectivePolicies": "<p>Gets a list of the policies that have an effect on the authorization behavior of the specified device when it connects to the AWS IoT device gateway.</p>",
    "GetIndexingConfiguration": "<p>Gets the search configuration.</p>",
    "GetJobDocument": "<p>Gets a job document.</p>",
    "GetLoggingOptions": "<p>Gets the logging options.</p> <p>NOTE: use of this command is not recommended. Use <code>GetV2LoggingOptions</code> instead.</p>",
    "GetOTAUpdate": "<p>Gets an OTA update.</p>",
    "GetPolicy": "<p>Gets information about the specified policy with the policy document of the default version.</p>",
    "GetPolicyVersion": "<p>Gets information about the specified policy version.</p>",
    "GetRegistrationCode": "<p>Gets a registration code used to register a CA certificate with AWS IoT.</p>",
    "GetTopicRule": "<p>Gets information about the rule.</p>",
    "GetV2LoggingOptions": "<p>Gets the fine grained logging options.</p>",
    "ListActiveViolations": "<p>Lists the active violations for a given Device Defender security profile.</p>",
    "ListAttachedPolicies": "<p>Lists the policies attached to the specified thing group.</p>",
    "ListAuditFindings": "<p>Lists the findings (results) of a Device Defender audit or of the audits performed during a specified time period. (Findings are retained for 180 days.)</p>",
    "ListAuditTasks": "<p>Lists the Device Defender audits that have been performed during a given time period.</p>",
    "ListAuthorizers": "<p>Lists the authorizers registered in your account.</p>",
    "ListCACertificates": "<p>Lists the CA certificates registered for your AWS account.</p> <p>The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.</p>",
    "ListCertificates": "<p>Lists the certificates registered in your AWS account.</p> <p>The results are paginated with a default page size of 25. You can use the returned marker to retrieve additional results.</p>",
    "ListCertificatesByCA": "<p>List the device certificates signed by the specified CA certificate.</p>",
    "ListIndices": "<p>Lists the search indices.</p>",
    "ListJobExecutionsForJob": "<p>Lists the job executions for a job.</p>",
    "ListJobExecutionsForThing": "<p>Lists the job executions for the specified thing.</p>",
    "ListJobs": "<p>Lists jobs.</p>",
    "ListOTAUpdates": "<p>Lists OTA updates.</p>",
    "ListOutgoingCertificates": "<p>Lists certificates that are being transferred but not yet accepted.</p>",
    "ListPolicies": "<p>Lists your policies.</p>",
    "ListPolicyPrincipals": "<p>Lists the principals associated with the specified policy.</p> <p> <b>Note:</b> This API is deprecated. Please use <a>ListTargetsForPolicy</a> instead.</p>",
    "ListPolicyVersions": "<p>Lists the versions of the specified policy and identifies the default version.</p>",
    "ListPrincipalPolicies": "<p>Lists the policies attached to the specified principal. If you use an Cognito identity, the ID must be in <a href=\"http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax\">AmazonCognito Identity format</a>.</p> <p> <b>Note:</b> This API is deprecated. Please use <a>ListAttachedPolicies</a> instead.</p>",
    "ListPrincipalThings": "<p>Lists the things associated with the specified principal.</p>",
    "ListRoleAliases": "<p>Lists the role aliases registered in your account.</p>",
    "ListScheduledAudits": "<p>Lists all of your scheduled audits.</p>",
    "ListSecurityProfiles": "<p>Lists the Device Defender security profiles you have created. You can use filters to list only those security profiles associated with a thing group or only those associated with your account.</p>",
    "ListSecurityProfilesForTarget": "<p>Lists the Device Defender security profiles attached to a target (thing group).</p>",
    "ListStreams": "<p>Lists all of the streams in your AWS account.</p>",
    "ListTargetsForPolicy": "<p>List targets for the specified policy.</p>",
    "ListTargetsForSecurityProfile": "<p>Lists the targets (thing groups) associated with a given Device Defender security profile.</p>",
    "ListThingGroups": "<p>List the thing groups in your account.</p>",
    "ListThingGroupsForThing": "<p>List the thing groups to which the specified thing belongs.</p>",
    "ListThingPrincipals": "<p>Lists the principals associated with the specified thing.</p>",
    "ListThingRegistrationTaskReports": "<p>Information about the thing registration tasks.</p>",
    "ListThingRegistrationTasks": "<p>List bulk thing provisioning tasks.</p>",
    "ListThingTypes": "<p>Lists the existing thing types.</p>",
    "ListThings": "<p>Lists your things. Use the <b>attributeName</b> and <b>attributeValue</b> parameters to filter your things. For example, calling <code>ListThings</code> 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>. </p>",
    "ListThingsInThingGroup": "<p>Lists the things in the specified group.</p>",
    "ListTopicRules": "<p>Lists the rules for the specific topic.</p>",
    "ListV2LoggingLevels": "<p>Lists logging levels.</p>",
    "ListViolationEvents": "<p>Lists the Device Defender security profile violations discovered during the given time period. You can use filters to limit the results to those alerts issued for a particular security profile, behavior or thing (device).</p>",
    "RegisterCACertificate": "<p>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.</p>",
    "RegisterCertificate": "<p>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.</p>",
    "RegisterThing": "<p>Provisions a thing.</p>",
    "RejectCertificateTransfer": "<p>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>.</p> <p>To check for pending certificate transfers, call <a>ListCertificates</a> to enumerate your certificates.</p> <p>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.</p>",
    "RemoveThingFromThingGroup": "<p>Remove the specified thing from the specified group.</p>",
    "ReplaceTopicRule": "<p>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.</p>",
    "SearchIndex": "<p>The query search index.</p>",
    "SetDefaultAuthorizer": "<p>Sets the default authorizer. This will be used if a websocket connection is made without specifying an authorizer.</p>",
    "SetDefaultPolicyVersion": "<p>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.</p>",
    "SetLoggingOptions": "<p>Sets the logging options.</p> <p>NOTE: use of this command is not recommended. Use <code>SetV2LoggingOptions</code> instead.</p>",
    "SetV2LoggingLevel": "<p>Sets the logging level.</p>",
    "SetV2LoggingOptions": "<p>Sets the logging options for the V2 logging service.</p>",
    "StartOnDemandAuditTask": "<p>Starts an on-demand Device Defender audit.</p>",
    "StartThingRegistrationTask": "<p>Creates a bulk thing provisioning task.</p>",
    "StopThingRegistrationTask": "<p>Cancels a bulk thing provisioning task.</p>",
    "TestAuthorization": "<p>Tests if a specified principal is authorized to perform an AWS IoT action on a specified resource. Use this to test and debug the authorization behavior of devices that connect to the AWS IoT device gateway.</p>",
    "TestInvokeAuthorizer": "<p>Tests a custom authorization behavior by invoking a specified custom authorizer. Use this to test and debug the custom authorization behavior of devices that connect to the AWS IoT device gateway.</p>",
    "TransferCertificate": "<p>Transfers the specified certificate to the specified AWS account.</p> <p>You can cancel the transfer until it is acknowledged by the recipient.</p> <p>No notification is sent to the transfer destination's account. It is up to the caller to notify the transfer target.</p> <p>The certificate being transferred must not be in the ACTIVE state. You can use the UpdateCertificate API to deactivate it.</p> <p>The certificate must not have any policies attached to it. You can use the DetachPrincipalPolicy API to detach them.</p>",
    "UpdateAccountAuditConfiguration": "<p>Configures or reconfigures the Device Defender audit settings for this account. Settings include how audit notifications are sent and which audit checks are enabled or disabled.</p>",
    "UpdateAuthorizer": "<p>Updates an authorizer.</p>",
    "UpdateCACertificate": "<p>Updates a registered CA certificate.</p>",
    "UpdateCertificate": "<p>Updates the status of the specified certificate. This operation is idempotent.</p> <p>Moving a certificate from the ACTIVE state (including REVOKED) will not disconnect currently connected devices, but these devices will be unable to reconnect.</p> <p>The ACTIVE state is required to authenticate devices connecting to AWS IoT using a certificate.</p>",
    "UpdateEventConfigurations": "<p>Updates the event configurations.</p>",
    "UpdateIndexingConfiguration": "<p>Updates the search configuration.</p>",
    "UpdateRoleAlias": "<p>Updates a role alias.</p>",
    "UpdateScheduledAudit": "<p>Updates a scheduled audit, including what checks are performed and how often the audit takes place.</p>",
    "UpdateSecurityProfile": "<p>Updates a Device Defender security profile.</p>",
    "UpdateStream": "<p>Updates an existing stream. The stream version will be incremented by one.</p>",
    "UpdateThing": "<p>Updates the data for a thing.</p>",
    "UpdateThingGroup": "<p>Update a thing group.</p>",
    "UpdateThingGroupsForThing": "<p>Updates the groups to which the thing belongs.</p>",
    "ValidateSecurityProfileBehaviors": "<p>Validates a Device Defender security profile behaviors specification.</p>"
  },
  "shapes": {
    "AcceptCertificateTransferRequest": {
      "base": "<p>The input for the AcceptCertificateTransfer operation.</p>",
      "refs": {
      }
    },
    "Action": {
      "base": "<p>Describes the actions associated with a rule.</p>",
      "refs": {
        "ActionList$member": null,
        "TopicRule$errorAction": "<p>The action to perform when an error occurs.</p>",
        "TopicRulePayload$errorAction": "<p>The action to take when an error occurs.</p>"
      }
    },
    "ActionList": {
      "base": null,
      "refs": {
        "TopicRule$actions": "<p>The actions associated with the rule.</p>",
        "TopicRulePayload$actions": "<p>The actions associated with the rule.</p>"
      }
    },
    "ActionType": {
      "base": null,
      "refs": {
        "AuthInfo$actionType": "<p>The type of action for which the principal is being authorized.</p>"
      }
    },
    "ActiveViolation": {
      "base": "<p>Information about an active Device Defender security profile behavior violation.</p>",
      "refs": {
        "ActiveViolations$member": null
      }
    },
    "ActiveViolations": {
      "base": null,
      "refs": {
        "ListActiveViolationsResponse$activeViolations": "<p>The list of active violations.</p>"
      }
    },
    "AddThingToThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "AddThingToThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "AdditionalParameterMap": {
      "base": null,
      "refs": {
        "CreateOTAUpdateRequest$additionalParameters": "<p>A list of additional OTA update parameters which are name-value pairs.</p>",
        "OTAUpdateInfo$additionalParameters": "<p>A collection of name/value pairs</p>"
      }
    },
    "AlarmName": {
      "base": null,
      "refs": {
        "CloudwatchAlarmAction$alarmName": "<p>The CloudWatch alarm name.</p>"
      }
    },
    "AlertTarget": {
      "base": "<p>A structure containing the alert target ARN and the role ARN.</p>",
      "refs": {
        "AlertTargets$value": null
      }
    },
    "AlertTargetArn": {
      "base": null,
      "refs": {
        "AlertTarget$alertTargetArn": "<p>The ARN of the notification target to which alerts are sent.</p>"
      }
    },
    "AlertTargetType": {
      "base": "<p>The type of alert target: one of \"SNS\".</p>",
      "refs": {
        "AlertTargets$key": null
      }
    },
    "AlertTargets": {
      "base": null,
      "refs": {
        "CreateSecurityProfileRequest$alertTargets": "<p>Specifies the destinations to which alerts are sent. (Alerts are always sent to the console.) Alerts are generated when a device (thing) violates a behavior.</p>",
        "DescribeSecurityProfileResponse$alertTargets": "<p>Where the alerts are sent. (Alerts are always sent to the console.)</p>",
        "UpdateSecurityProfileRequest$alertTargets": "<p>Where the alerts are sent. (Alerts are always sent to the console.)</p>",
        "UpdateSecurityProfileResponse$alertTargets": "<p>Where the alerts are sent. (Alerts are always sent to the console.)</p>"
      }
    },
    "AllowAutoRegistration": {
      "base": null,
      "refs": {
        "RegisterCACertificateRequest$allowAutoRegistration": "<p>Allows this CA certificate to be used for auto registration of device certificates.</p>"
      }
    },
    "Allowed": {
      "base": "<p>Contains information that allowed the authorization.</p>",
      "refs": {
        "AuthResult$allowed": "<p>The policies and statements that allowed the specified action.</p>"
      }
    },
    "AscendingOrder": {
      "base": null,
      "refs": {
        "ListAuthorizersRequest$ascendingOrder": "<p>Return the list of authorizers in ascending alphabetical order.</p>",
        "ListCACertificatesRequest$ascendingOrder": "<p>Determines the order of the results.</p>",
        "ListCertificatesByCARequest$ascendingOrder": "<p>Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.</p>",
        "ListCertificatesRequest$ascendingOrder": "<p>Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.</p>",
        "ListOutgoingCertificatesRequest$ascendingOrder": "<p>Specifies the order for results. If True, the results are returned in ascending order, based on the creation date.</p>",
        "ListPoliciesRequest$ascendingOrder": "<p>Specifies the order for results. If true, the results are returned in ascending creation order.</p>",
        "ListPolicyPrincipalsRequest$ascendingOrder": "<p>Specifies the order for results. If true, the results are returned in ascending creation order.</p>",
        "ListPrincipalPoliciesRequest$ascendingOrder": "<p>Specifies the order for results. If true, results are returned in ascending creation order.</p>",
        "ListRoleAliasesRequest$ascendingOrder": "<p>Return the list of role aliases in ascending alphabetical order.</p>",
        "ListStreamsRequest$ascendingOrder": "<p>Set to true to return the list of streams in ascending order.</p>"
      }
    },
    "AssociateTargetsWithJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "AssociateTargetsWithJobResponse": {
      "base": null,
      "refs": {
      }
    },
    "AttachPolicyRequest": {
      "base": null,
      "refs": {
      }
    },
    "AttachPrincipalPolicyRequest": {
      "base": "<p>The input for the AttachPrincipalPolicy operation.</p>",
      "refs": {
      }
    },
    "AttachSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "AttachSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "AttachThingPrincipalRequest": {
      "base": "<p>The input for the AttachThingPrincipal operation.</p>",
      "refs": {
      }
    },
    "AttachThingPrincipalResponse": {
      "base": "<p>The output from the AttachThingPrincipal operation.</p>",
      "refs": {
      }
    },
    "AttributeKey": {
      "base": null,
      "refs": {
        "AdditionalParameterMap$key": null,
        "AttributesMap$key": null
      }
    },
    "AttributeName": {
      "base": null,
      "refs": {
        "Attributes$key": null,
        "ListThingsRequest$attributeName": "<p>The attribute name used to search for things.</p>",
        "SearchableAttributes$member": null
      }
    },
    "AttributePayload": {
      "base": "<p>The attribute payload.</p>",
      "refs": {
        "CreateThingRequest$attributePayload": "<p>The attribute payload, which consists of up to three name/value pairs in a JSON document. For example:</p> <p> <code>{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}</code> </p>",
        "ThingGroupProperties$attributePayload": "<p>The thing group attributes in JSON format.</p>",
        "UpdateThingRequest$attributePayload": "<p>A list of thing attributes, a JSON string containing name-value pairs. For example:</p> <p> <code>{\\\"attributes\\\":{\\\"name1\\\":\\\"value2\\\"}}</code> </p> <p>This data is used to add new attributes or update existing attributes.</p>"
      }
    },
    "AttributeValue": {
      "base": null,
      "refs": {
        "Attributes$value": null,
        "ListThingsRequest$attributeValue": "<p>The attribute value used to search for things.</p>"
      }
    },
    "Attributes": {
      "base": null,
      "refs": {
        "AttributePayload$attributes": "<p>A JSON string containing up to three key-value pair in JSON format. For example:</p> <p> <code>{\\\"attributes\\\":{\\\"string1\\\":\\\"string2\\\"}}</code> </p>",
        "DescribeThingResponse$attributes": "<p>The thing attributes.</p>",
        "ThingAttribute$attributes": "<p>A list of thing attributes which are name-value pairs.</p>",
        "ThingDocument$attributes": "<p>The attributes.</p>",
        "ThingGroupDocument$attributes": "<p>The thing group attributes.</p>"
      }
    },
    "AttributesMap": {
      "base": null,
      "refs": {
        "OTAUpdateFile$attributes": "<p>A list of name/attribute pairs.</p>"
      }
    },
    "AuditCheckConfiguration": {
      "base": "<p>Which audit checks are enabled and disabled for this account.</p>",
      "refs": {
        "AuditCheckConfigurations$value": null
      }
    },
    "AuditCheckConfigurations": {
      "base": null,
      "refs": {
        "DescribeAccountAuditConfigurationResponse$auditCheckConfigurations": "<p>Which audit checks are enabled and disabled for this account.</p>",
        "UpdateAccountAuditConfigurationRequest$auditCheckConfigurations": "<p>Specifies which audit checks are enabled and disabled for this account. Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are currently enabled.</p> <p>Note that some data collection may begin immediately when certain checks are enabled. When a check is disabled, any data collected so far in relation to the check is deleted.</p> <p>You cannot disable a check if it is used by any scheduled audit. You must first delete the check from the scheduled audit or delete the scheduled audit itself.</p> <p>On the first call to <code>UpdateAccountAuditConfiguration</code> this parameter is required and must specify at least one enabled check.</p>"
      }
    },
    "AuditCheckDetails": {
      "base": "<p>Information about the audit check.</p>",
      "refs": {
        "AuditDetails$value": null
      }
    },
    "AuditCheckName": {
      "base": "<p>An audit check name. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)</p>",
      "refs": {
        "AuditCheckConfigurations$key": null,
        "AuditDetails$key": null,
        "AuditFinding$checkName": "<p>The audit check that generated this result.</p>",
        "ListAuditFindingsRequest$checkName": "<p>A filter to limit results to the findings for the specified audit check.</p>",
        "TargetAuditCheckNames$member": null
      }
    },
    "AuditCheckRunStatus": {
      "base": null,
      "refs": {
        "AuditCheckDetails$checkRunStatus": "<p>The completion status of this check, one of \"IN_PROGRESS\", \"WAITING_FOR_DATA_COLLECTION\", \"CANCELED\", \"COMPLETED_COMPLIANT\", \"COMPLETED_NON_COMPLIANT\", or \"FAILED\".</p>"
      }
    },
    "AuditDetails": {
      "base": null,
      "refs": {
        "DescribeAuditTaskResponse$auditDetails": "<p>Detailed information about each check performed during this audit.</p>"
      }
    },
    "AuditFinding": {
      "base": "<p>The findings (results) of the audit.</p>",
      "refs": {
        "AuditFindings$member": null
      }
    },
    "AuditFindingSeverity": {
      "base": null,
      "refs": {
        "AuditFinding$severity": "<p>The severity of the result (finding).</p>"
      }
    },
    "AuditFindings": {
      "base": null,
      "refs": {
        "ListAuditFindingsResponse$findings": "<p>The findings (results) of the audit.</p>"
      }
    },
    "AuditFrequency": {
      "base": null,
      "refs": {
        "CreateScheduledAuditRequest$frequency": "<p>How often the scheduled audit takes place. Can be one of \"DAILY\", \"WEEKLY\", \"BIWEEKLY\" or \"MONTHLY\". The actual start time of each audit is determined by the system.</p>",
        "DescribeScheduledAuditResponse$frequency": "<p>How often the scheduled audit takes place. One of \"DAILY\", \"WEEKLY\", \"BIWEEKLY\" or \"MONTHLY\". The actual start time of each audit is determined by the system.</p>",
        "ScheduledAuditMetadata$frequency": "<p>How often the scheduled audit takes place.</p>",
        "UpdateScheduledAuditRequest$frequency": "<p>How often the scheduled audit takes place. Can be one of \"DAILY\", \"WEEKLY\", \"BIWEEKLY\" or \"MONTHLY\". The actual start time of each audit is determined by the system.</p>"
      }
    },
    "AuditNotificationTarget": {
      "base": "<p>Information about the targets to which audit notifications are sent.</p>",
      "refs": {
        "AuditNotificationTargetConfigurations$value": null
      }
    },
    "AuditNotificationTargetConfigurations": {
      "base": null,
      "refs": {
        "DescribeAccountAuditConfigurationResponse$auditNotificationTargetConfigurations": "<p>Information about the targets to which audit notifications are sent for this account.</p>",
        "UpdateAccountAuditConfigurationRequest$auditNotificationTargetConfigurations": "<p>Information about the targets to which audit notifications are sent.</p>"
      }
    },
    "AuditNotificationType": {
      "base": null,
      "refs": {
        "AuditNotificationTargetConfigurations$key": null
      }
    },
    "AuditTaskId": {
      "base": null,
      "refs": {
        "AuditFinding$taskId": "<p>The ID of the audit that generated this result (finding)</p>",
        "AuditTaskMetadata$taskId": "<p>The ID of this audit.</p>",
        "CancelAuditTaskRequest$taskId": "<p>The ID of the audit you want to cancel. You can only cancel an audit that is \"IN_PROGRESS\".</p>",
        "DescribeAuditTaskRequest$taskId": "<p>The ID of the audit whose information you want to get.</p>",
        "ListAuditFindingsRequest$taskId": "<p>A filter to limit results to the audit with the specified ID. You must specify either the taskId or the startTime and endTime, but not both.</p>",
        "StartOnDemandAuditTaskResponse$taskId": "<p>The ID of the on-demand audit you started.</p>"
      }
    },
    "AuditTaskMetadata": {
      "base": "<p>The audits that were performed.</p>",
      "refs": {
        "AuditTaskMetadataList$member": null
      }
    },
    "AuditTaskMetadataList": {
      "base": null,
      "refs": {
        "ListAuditTasksResponse$tasks": "<p>The audits that were performed during the specified time period.</p>"
      }
    },
    "AuditTaskStatus": {
      "base": null,
      "refs": {
        "AuditTaskMetadata$taskStatus": "<p>The status of this audit: one of \"IN_PROGRESS\", \"COMPLETED\", \"FAILED\" or \"CANCELED\".</p>",
        "DescribeAuditTaskResponse$taskStatus": "<p>The status of the audit: one of \"IN_PROGRESS\", \"COMPLETED\", \"FAILED\", or \"CANCELED\".</p>",
        "ListAuditTasksRequest$taskStatus": "<p>A filter to limit the output to audits with the specified completion status: can be one of \"IN_PROGRESS\", \"COMPLETED\", \"FAILED\" or \"CANCELED\".</p>"
      }
    },
    "AuditTaskType": {
      "base": null,
      "refs": {
        "AuditTaskMetadata$taskType": "<p>The type of this audit: one of \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED_AUDIT_TASK\".</p>",
        "DescribeAuditTaskResponse$taskType": "<p>The type of audit: \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED_AUDIT_TASK\".</p>",
        "ListAuditTasksRequest$taskType": "<p>A filter to limit the output to the specified type of audit: can be one of \"ON_DEMAND_AUDIT_TASK\" or \"SCHEDULED__AUDIT_TASK\".</p>"
      }
    },
    "AuthDecision": {
      "base": null,
      "refs": {
        "AuthResult$authDecision": "<p>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.</p>"
      }
    },
    "AuthInfo": {
      "base": "<p>A collection of authorization information.</p>",
      "refs": {
        "AuthInfos$member": null,
        "AuthResult$authInfo": "<p>Authorization information.</p>"
      }
    },
    "AuthInfos": {
      "base": null,
      "refs": {
        "TestAuthorizationRequest$authInfos": "<p>A list of authorization info objects. Simulating authorization will create a response for each <code>authInfo</code> object in the list.</p>"
      }
    },
    "AuthResult": {
      "base": "<p>The authorizer result.</p>",
      "refs": {
        "AuthResults$member": null
      }
    },
    "AuthResults": {
      "base": null,
      "refs": {
        "TestAuthorizationResponse$authResults": "<p>The authentication results.</p>"
      }
    },
    "AuthorizerArn": {
      "base": null,
      "refs": {
        "AuthorizerDescription$authorizerArn": "<p>The authorizer ARN.</p>",
        "AuthorizerSummary$authorizerArn": "<p>The authorizer ARN.</p>",
        "CreateAuthorizerResponse$authorizerArn": "<p>The authorizer ARN.</p>",
        "SetDefaultAuthorizerResponse$authorizerArn": "<p>The authorizer ARN.</p>",
        "UpdateAuthorizerResponse$authorizerArn": "<p>The authorizer ARN.</p>"
      }
    },
    "AuthorizerDescription": {
      "base": "<p>The authorizer description.</p>",
      "refs": {
        "DescribeAuthorizerResponse$authorizerDescription": "<p>The authorizer description.</p>",
        "DescribeDefaultAuthorizerResponse$authorizerDescription": "<p>The default authorizer's description.</p>"
      }
    },
    "AuthorizerFunctionArn": {
      "base": null,
      "refs": {
        "AuthorizerDescription$authorizerFunctionArn": "<p>The authorizer's Lambda function ARN.</p>",
        "CreateAuthorizerRequest$authorizerFunctionArn": "<p>The ARN of the authorizer's Lambda function.</p>",
        "UpdateAuthorizerRequest$authorizerFunctionArn": "<p>The ARN of the authorizer's Lambda function.</p>"
      }
    },
    "AuthorizerName": {
      "base": null,
      "refs": {
        "AuthorizerDescription$authorizerName": "<p>The authorizer name.</p>",
        "AuthorizerSummary$authorizerName": "<p>The authorizer name.</p>",
        "CreateAuthorizerRequest$authorizerName": "<p>The authorizer name.</p>",
        "CreateAuthorizerResponse$authorizerName": "<p>The authorizer's name.</p>",
        "DeleteAuthorizerRequest$authorizerName": "<p>The name of the authorizer to delete.</p>",
        "DescribeAuthorizerRequest$authorizerName": "<p>The name of the authorizer to describe.</p>",
        "SetDefaultAuthorizerRequest$authorizerName": "<p>The authorizer name.</p>",
        "SetDefaultAuthorizerResponse$authorizerName": "<p>The authorizer name.</p>",
        "TestInvokeAuthorizerRequest$authorizerName": "<p>The custom authorizer name.</p>",
        "UpdateAuthorizerRequest$authorizerName": "<p>The authorizer name.</p>",
        "UpdateAuthorizerResponse$authorizerName": "<p>The authorizer name.</p>"
      }
    },
    "AuthorizerStatus": {
      "base": null,
      "refs": {
        "AuthorizerDescription$status": "<p>The status of the authorizer.</p>",
        "CreateAuthorizerRequest$status": "<p>The status of the create authorizer request.</p>",
        "ListAuthorizersRequest$status": "<p>The status of the list authorizers request.</p>",
        "UpdateAuthorizerRequest$status": "<p>The status of the update authorizer request.</p>"
      }
    },
    "AuthorizerSummary": {
      "base": "<p>The authorizer summary.</p>",
      "refs": {
        "Authorizers$member": null
      }
    },
    "Authorizers": {
      "base": null,
      "refs": {
        "ListAuthorizersResponse$authorizers": "<p>The authorizers.</p>"
      }
    },
    "AutoRegistrationStatus": {
      "base": null,
      "refs": {
        "CACertificateDescription$autoRegistrationStatus": "<p>Whether the CA certificate configured for auto registration of device certificates. Valid values are \"ENABLE\" and \"DISABLE\"</p>",
        "UpdateCACertificateRequest$newAutoRegistrationStatus": "<p>The new value for the auto registration status. Valid values are: \"ENABLE\" or \"DISABLE\".</p>"
      }
    },
    "AwsAccountId": {
      "base": null,
      "refs": {
        "CACertificateDescription$ownedBy": "<p>The owner of the CA certificate.</p>",
        "CertificateDescription$ownedBy": "<p>The ID of the AWS account that owns the certificate.</p>",
        "CertificateDescription$previousOwnedBy": "<p>The ID of the AWS account of the previous owner of the certificate.</p>",
        "OutgoingCertificate$transferredTo": "<p>The AWS account to which the transfer was made.</p>",
        "ResourceIdentifier$account": "<p>The account with which the resource is associated.</p>",
        "RoleAliasDescription$owner": "<p>The role alias owner.</p>",
        "TransferCertificateRequest$targetAwsAccount": "<p>The AWS account.</p>"
      }
    },
    "AwsArn": {
      "base": null,
      "refs": {
        "CloudwatchAlarmAction$roleArn": "<p>The IAM role that allows access to the CloudWatch alarm.</p>",
        "CloudwatchMetricAction$roleArn": "<p>The IAM role that allows access to the CloudWatch metric.</p>",
        "DynamoDBAction$roleArn": "<p>The ARN of the IAM role that grants access to the DynamoDB table.</p>",
        "DynamoDBv2Action$roleArn": "<p>The ARN of the IAM role that grants access to the DynamoDB table.</p>",
        "ElasticsearchAction$roleArn": "<p>The IAM role ARN that has access to Elasticsearch.</p>",
        "FirehoseAction$roleArn": "<p>The IAM role that grants access to the Amazon Kinesis Firehose stream.</p>",
        "GetLoggingOptionsResponse$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "GetV2LoggingOptionsResponse$roleArn": "<p>The IAM role ARN AWS IoT uses to write to your CloudWatch logs.</p>",
        "IotAnalyticsAction$channelArn": "<p>(deprecated) The ARN of the IoT Analytics channel to which message data will be sent.</p>",
        "IotAnalyticsAction$roleArn": "<p>The ARN of the role which has a policy that grants IoT Analytics permission to send message data via IoT Analytics (iotanalytics:BatchPutMessage).</p>",
        "KinesisAction$roleArn": "<p>The ARN of the IAM role that grants access to the Amazon Kinesis stream.</p>",
        "LoggingOptionsPayload$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "RepublishAction$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "S3Action$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "SetV2LoggingOptionsRequest$roleArn": "<p>The ARN of the role that allows IoT to write to Cloudwatch logs.</p>",
        "SnsAction$targetArn": "<p>The ARN of the SNS topic.</p>",
        "SnsAction$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "SqsAction$roleArn": "<p>The ARN of the IAM role that grants access.</p>",
        "StepFunctionsAction$roleArn": "<p>The ARN of the role that grants IoT permission to start execution of a state machine (\"Action\":\"states:StartExecution\").</p>"
      }
    },
    "AwsIotJobArn": {
      "base": null,
      "refs": {
        "CreateOTAUpdateResponse$awsIotJobArn": "<p>The AWS IoT job ARN associated with the OTA update.</p>",
        "OTAUpdateInfo$awsIotJobArn": "<p>The AWS IoT job ARN associated with the OTA update.</p>"
      }
    },
    "AwsIotJobId": {
      "base": null,
      "refs": {
        "CreateOTAUpdateResponse$awsIotJobId": "<p>The AWS IoT job ID associated with the OTA update.</p>",
        "OTAUpdateInfo$awsIotJobId": "<p>The AWS IoT job ID associated with the OTA update.</p>"
      }
    },
    "AwsIotSqlVersion": {
      "base": null,
      "refs": {
        "TopicRule$awsIotSqlVersion": "<p>The version of the SQL rules engine to use when evaluating the rule.</p>",
        "TopicRulePayload$awsIotSqlVersion": "<p>The version of the SQL rules engine to use when evaluating the rule.</p>"
      }
    },
    "AwsJobExecutionsRolloutConfig": {
      "base": "<p>Configuration for the rollout of OTA updates.</p>",
      "refs": {
        "CreateOTAUpdateRequest$awsJobExecutionsRolloutConfig": "<p>Configuration for the rollout of OTA updates.</p>",
        "OTAUpdateInfo$awsJobExecutionsRolloutConfig": "<p>Configuration for the rollout of OTA updates.</p>"
      }
    },
    "Behavior": {
      "base": "<p>A Device Defender security profile behavior.</p>",
      "refs": {
        "ActiveViolation$behavior": "<p>The behavior which is being violated.</p>",
        "Behaviors$member": null,
        "ViolationEvent$behavior": "<p>The behavior which was violated.</p>"
      }
    },
    "BehaviorCriteria": {
      "base": "<p>The criteria by which the behavior is determined to be normal.</p>",
      "refs": {
        "Behavior$criteria": "<p>The criteria that determine if a device is behaving normally in regard to the <code>metric</code>.</p>"
      }
    },
    "BehaviorMetric": {
      "base": null,
      "refs": {
        "Behavior$metric": "<p>What is measured by the behavior.</p>"
      }
    },
    "BehaviorName": {
      "base": null,
      "refs": {
        "Behavior$name": "<p>The name you have given to the behavior.</p>"
      }
    },
    "Behaviors": {
      "base": null,
      "refs": {
        "CreateSecurityProfileRequest$behaviors": "<p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>",
        "DescribeSecurityProfileResponse$behaviors": "<p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>",
        "UpdateSecurityProfileRequest$behaviors": "<p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>",
        "UpdateSecurityProfileResponse$behaviors": "<p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>",
        "ValidateSecurityProfileBehaviorsRequest$behaviors": "<p>Specifies the behaviors that, when violated by a device (thing), cause an alert.</p>"
      }
    },
    "Boolean": {
      "base": null,
      "refs": {
        "ThingTypeMetadata$deprecated": "<p>Whether the thing type is deprecated. If <b>true</b>, no new things could be associated with this type.</p>"
      }
    },
    "BucketName": {
      "base": null,
      "refs": {
        "S3Action$bucketName": "<p>The Amazon S3 bucket.</p>"
      }
    },
    "CACertificate": {
      "base": "<p>A CA certificate.</p>",
      "refs": {
        "CACertificates$member": null
      }
    },
    "CACertificateDescription": {
      "base": "<p>Describes a CA certificate.</p>",
      "refs": {
        "DescribeCACertificateResponse$certificateDescription": "<p>The CA certificate description.</p>"
      }
    },
    "CACertificateStatus": {
      "base": null,
      "refs": {
        "CACertificate$status": "<p>The status of the CA certificate.</p> <p>The status value REGISTER_INACTIVE is deprecated and should not be used.</p>",
        "CACertificateDescription$status": "<p>The status of a CA certificate.</p>",
        "UpdateCACertificateRequest$newStatus": "<p>The updated status of the CA certificate.</p> <p> <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and should not be used.</p>"
      }
    },
    "CACertificates": {
      "base": null,
      "refs": {
        "ListCACertificatesResponse$certificates": "<p>The CA certificates registered in your AWS account.</p>"
      }
    },
    "CancelAuditTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "CancelAuditTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "CancelCertificateTransferRequest": {
      "base": "<p>The input for the CancelCertificateTransfer operation.</p>",
      "refs": {
      }
    },
    "CancelJobExecutionRequest": {
      "base": null,
      "refs": {
      }
    },
    "CancelJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "CancelJobResponse": {
      "base": null,
      "refs": {
      }
    },
    "CanceledChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$canceledChecks": "<p>The number of checks that did not run because the audit was canceled.</p>"
      }
    },
    "CanceledThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfCanceledThings": "<p>The number of things that cancelled the job.</p>"
      }
    },
    "CannedAccessControlList": {
      "base": null,
      "refs": {
        "S3Action$cannedAcl": "<p>The Amazon S3 canned ACL that controls access to the object identified by the object key. For more information, see <a href=\"http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl\">S3 canned ACLs</a>.</p>"
      }
    },
    "Certificate": {
      "base": "<p>Information about a certificate.</p>",
      "refs": {
        "Certificates$member": null
      }
    },
    "CertificateArn": {
      "base": null,
      "refs": {
        "CACertificate$certificateArn": "<p>The ARN of the CA certificate.</p>",
        "CACertificateDescription$certificateArn": "<p>The CA certificate ARN.</p>",
        "Certificate$certificateArn": "<p>The ARN of the certificate.</p>",
        "CertificateDescription$certificateArn": "<p>The ARN of the certificate.</p>",
        "CreateCertificateFromCsrResponse$certificateArn": "<p>The Amazon Resource Name (ARN) of the certificate. You can use the ARN as a principal for policy operations.</p>",
        "CreateKeysAndCertificateResponse$certificateArn": "<p>The ARN of the certificate.</p>",
        "OutgoingCertificate$certificateArn": "<p>The certificate ARN.</p>",
        "RegisterCACertificateResponse$certificateArn": "<p>The CA certificate ARN.</p>",
        "RegisterCertificateResponse$certificateArn": "<p>The certificate ARN.</p>",
        "SigningProfileParameter$certificateArn": "<p>Certificate ARN.</p>",
        "TransferCertificateResponse$transferredCertificateArn": "<p>The ARN of the certificate.</p>"
      }
    },
    "CertificateConflictException": {
      "base": "<p>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.</p>",
      "refs": {
      }
    },
    "CertificateDescription": {
      "base": "<p>Describes a certificate.</p>",
      "refs": {
        "DescribeCertificateResponse$certificateDescription": "<p>The description of the certificate.</p>"
      }
    },
    "CertificateId": {
      "base": null,
      "refs": {
        "AcceptCertificateTransferRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "CACertificate$certificateId": "<p>The ID of the CA certificate.</p>",
        "CACertificateDescription$certificateId": "<p>The CA certificate ID.</p>",
        "CancelCertificateTransferRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "Certificate$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "CertificateDescription$certificateId": "<p>The ID of the certificate.</p>",
        "CertificateDescription$caCertificateId": "<p>The certificate ID of the CA certificate used to sign this certificate.</p>",
        "CreateCertificateFromCsrResponse$certificateId": "<p>The ID of the certificate. Certificate management operations only take a certificateId.</p>",
        "CreateKeysAndCertificateResponse$certificateId": "<p>The ID of the certificate. AWS IoT issues a default subject name for the certificate (for example, AWS IoT Certificate).</p>",
        "DeleteCACertificateRequest$certificateId": "<p>The ID of the certificate to delete. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "DeleteCertificateRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "DescribeCACertificateRequest$certificateId": "<p>The CA certificate identifier.</p>",
        "DescribeCertificateRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "ListCertificatesByCARequest$caCertificateId": "<p>The ID of the CA certificate. This operation will list all registered device certificate that were signed by this CA certificate.</p>",
        "OutgoingCertificate$certificateId": "<p>The certificate ID.</p>",
        "RegisterCACertificateResponse$certificateId": "<p>The CA certificate identifier.</p>",
        "RegisterCertificateResponse$certificateId": "<p>The certificate identifier.</p>",
        "RejectCertificateTransferRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "ResourceIdentifier$deviceCertificateId": "<p>The ID of the certificate attached to the resource.</p>",
        "ResourceIdentifier$caCertificateId": "<p>The ID of the CA certificate used to authorize the certificate.</p>",
        "TransferCertificateRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>",
        "UpdateCACertificateRequest$certificateId": "<p>The CA certificate identifier.</p>",
        "UpdateCertificateRequest$certificateId": "<p>The ID of the certificate. (The last part of the certificate ARN contains the certificate ID.)</p>"
      }
    },
    "CertificateName": {
      "base": null,
      "refs": {
        "CodeSigningCertificateChain$certificateName": "<p>The name of the certificate.</p>"
      }
    },
    "CertificatePathOnDevice": {
      "base": null,
      "refs": {
        "SigningProfileParameter$certificatePathOnDevice": "<p>The location of the code-signing certificate on your device.</p>"
      }
    },
    "CertificatePem": {
      "base": "<p>The PEM of a certificate.</p>",
      "refs": {
        "CACertificateDescription$certificatePem": "<p>The CA certificate data, in PEM format.</p>",
        "CertificateDescription$certificatePem": "<p>The certificate data, in PEM format.</p>",
        "CreateCertificateFromCsrResponse$certificatePem": "<p>The certificate data, in PEM format.</p>",
        "CreateKeysAndCertificateResponse$certificatePem": "<p>The certificate data, in PEM format.</p>",
        "RegisterCACertificateRequest$caCertificate": "<p>The CA certificate.</p>",
        "RegisterCACertificateRequest$verificationCertificate": "<p>The private key verification certificate.</p>",
        "RegisterCertificateRequest$certificatePem": "<p>The certificate data, in PEM format.</p>",
        "RegisterCertificateRequest$caCertificatePem": "<p>The CA certificate used to sign the device certificate being registered.</p>",
        "RegisterThingResponse$certificatePem": "<p>.</p>"
      }
    },
    "CertificateSigningRequest": {
      "base": null,
      "refs": {
        "CreateCertificateFromCsrRequest$certificateSigningRequest": "<p>The certificate signing request (CSR).</p>"
      }
    },
    "CertificateStateException": {
      "base": "<p>The certificate operation is not allowed.</p>",
      "refs": {
      }
    },
    "CertificateStatus": {
      "base": null,
      "refs": {
        "Certificate$status": "<p>The status of the certificate.</p> <p>The status value REGISTER_INACTIVE is deprecated and should not be used.</p>",
        "CertificateDescription$status": "<p>The status of the certificate.</p>",
        "RegisterCertificateRequest$status": "<p>The status of the register certificate request.</p>",
        "UpdateCertificateRequest$newStatus": "<p>The new status.</p> <p> <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.</p> <p> <b>Note:</b> The status value REGISTER_INACTIVE is deprecated and should not be used.</p>"
      }
    },
    "CertificateValidationException": {
      "base": "<p>The certificate is invalid.</p>",
      "refs": {
      }
    },
    "CertificateValidity": {
      "base": "<p>When the certificate is valid.</p>",
      "refs": {
        "CACertificateDescription$validity": "<p>When the CA certificate is valid.</p>",
        "CertificateDescription$validity": "<p>When the certificate is valid.</p>"
      }
    },
    "Certificates": {
      "base": null,
      "refs": {
        "ListCertificatesByCAResponse$certificates": "<p>The device certificates signed by the specified CA certificate.</p>",
        "ListCertificatesResponse$certificates": "<p>The descriptions of the certificates.</p>"
      }
    },
    "ChannelName": {
      "base": null,
      "refs": {
        "IotAnalyticsAction$channelName": "<p>The name of the IoT Analytics channel to which message data will be sent.</p>"
      }
    },
    "CheckCompliant": {
      "base": null,
      "refs": {
        "AuditCheckDetails$checkCompliant": "<p>True if the check completed and found all resources compliant.</p>"
      }
    },
    "Cidr": {
      "base": null,
      "refs": {
        "Cidrs$member": null
      }
    },
    "Cidrs": {
      "base": null,
      "refs": {
        "MetricValue$cidrs": "<p>If the <code>comparisonOperator</code> calls for a set of CIDRs, use this to specify that set to be compared with the <code>metric</code>.</p>"
      }
    },
    "ClearDefaultAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "ClearDefaultAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "ClientId": {
      "base": null,
      "refs": {
        "DescribeThingResponse$defaultClientId": "<p>The default client ID.</p>",
        "ResourceIdentifier$clientId": "<p>The client ID.</p>",
        "TestAuthorizationRequest$clientId": "<p>The MQTT client ID.</p>"
      }
    },
    "CloudwatchAlarmAction": {
      "base": "<p>Describes an action that updates a CloudWatch alarm.</p>",
      "refs": {
        "Action$cloudwatchAlarm": "<p>Change the state of a CloudWatch alarm.</p>"
      }
    },
    "CloudwatchMetricAction": {
      "base": "<p>Describes an action that captures a CloudWatch metric.</p>",
      "refs": {
        "Action$cloudwatchMetric": "<p>Capture a CloudWatch metric.</p>"
      }
    },
    "Code": {
      "base": null,
      "refs": {
        "ErrorInfo$code": "<p>The error code.</p>"
      }
    },
    "CodeSigning": {
      "base": "<p>Describes the method to use when code signing a file.</p>",
      "refs": {
        "OTAUpdateFile$codeSigning": "<p>The code signing method of the file.</p>"
      }
    },
    "CodeSigningCertificateChain": {
      "base": "<p>Describes the certificate chain being used when code signing a file.</p>",
      "refs": {
        "CustomCodeSigning$certificateChain": "<p>The certificate chain.</p>"
      }
    },
    "CodeSigningSignature": {
      "base": "<p>Describes the signature for a file.</p>",
      "refs": {
        "CustomCodeSigning$signature": "<p>The signature for the file.</p>"
      }
    },
    "CognitoIdentityPoolId": {
      "base": null,
      "refs": {
        "GetEffectivePoliciesRequest$cognitoIdentityPoolId": "<p>The Cognito identity pool ID.</p>",
        "ResourceIdentifier$cognitoIdentityPoolId": "<p>The ID of the Cognito Identity Pool.</p>",
        "TestAuthorizationRequest$cognitoIdentityPoolId": "<p>The Cognito identity pool ID.</p>"
      }
    },
    "Comment": {
      "base": null,
      "refs": {
        "AssociateTargetsWithJobRequest$comment": "<p>An optional comment string describing why the job was associated with the targets.</p>",
        "CancelJobRequest$comment": "<p>An optional comment string describing why the job was canceled.</p>",
        "Job$comment": "<p>If the job was updated, describes the reason for the update.</p>"
      }
    },
    "ComparisonOperator": {
      "base": null,
      "refs": {
        "BehaviorCriteria$comparisonOperator": "<p>The operator that relates the thing measured (<code>metric</code>) to the criteria (<code>value</code>).</p>"
      }
    },
    "CompliantChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$compliantChecks": "<p>The number of checks that found compliant resources.</p>"
      }
    },
    "Configuration": {
      "base": "<p>Configuration.</p>",
      "refs": {
        "EventConfigurations$value": null
      }
    },
    "ConflictingResourceUpdateException": {
      "base": "<p>A conflicting resource update exception. This exception is thrown when two pending updates cause a conflict.</p>",
      "refs": {
      }
    },
    "Count": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$successCount": "<p>The number of things successfully provisioned.</p>",
        "DescribeThingRegistrationTaskResponse$failureCount": "<p>The number of things that failed to be provisioned.</p>"
      }
    },
    "CreateAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateCertificateFromCsrRequest": {
      "base": "<p>The input for the CreateCertificateFromCsr operation.</p>",
      "refs": {
      }
    },
    "CreateCertificateFromCsrResponse": {
      "base": "<p>The output from the CreateCertificateFromCsr operation.</p>",
      "refs": {
      }
    },
    "CreateJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateJobResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateKeysAndCertificateRequest": {
      "base": "<p>The input for the CreateKeysAndCertificate operation.</p>",
      "refs": {
      }
    },
    "CreateKeysAndCertificateResponse": {
      "base": "<p>The output of the CreateKeysAndCertificate operation.</p>",
      "refs": {
      }
    },
    "CreateOTAUpdateRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateOTAUpdateResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreatePolicyRequest": {
      "base": "<p>The input for the CreatePolicy operation.</p>",
      "refs": {
      }
    },
    "CreatePolicyResponse": {
      "base": "<p>The output from the CreatePolicy operation.</p>",
      "refs": {
      }
    },
    "CreatePolicyVersionRequest": {
      "base": "<p>The input for the CreatePolicyVersion operation.</p>",
      "refs": {
      }
    },
    "CreatePolicyVersionResponse": {
      "base": "<p>The output of the CreatePolicyVersion operation.</p>",
      "refs": {
      }
    },
    "CreateRoleAliasRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateRoleAliasResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateScheduledAuditRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateScheduledAuditResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateStreamRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateStreamResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "CreateThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "CreateThingRequest": {
      "base": "<p>The input for the CreateThing operation.</p>",
      "refs": {
      }
    },
    "CreateThingResponse": {
      "base": "<p>The output of the CreateThing operation.</p>",
      "refs": {
      }
    },
    "CreateThingTypeRequest": {
      "base": "<p>The input for the CreateThingType operation.</p>",
      "refs": {
      }
    },
    "CreateThingTypeResponse": {
      "base": "<p>The output of the CreateThingType operation.</p>",
      "refs": {
      }
    },
    "CreateTopicRuleRequest": {
      "base": "<p>The input for the CreateTopicRule operation.</p>",
      "refs": {
      }
    },
    "CreatedAtDate": {
      "base": null,
      "refs": {
        "TopicRule$createdAt": "<p>The date and time the rule was created.</p>",
        "TopicRuleListItem$createdAt": "<p>The date and time the rule was created.</p>"
      }
    },
    "CreationDate": {
      "base": null,
      "refs": {
        "DescribeEventConfigurationsResponse$creationDate": "<p>The creation date of the event configuration.</p>",
        "DescribeThingRegistrationTaskResponse$creationDate": "<p>The task creation date.</p>",
        "ThingGroupMetadata$creationDate": "<p>The UNIX timestamp of when the thing group was created.</p>",
        "ThingTypeMetadata$creationDate": "<p>The date and time when the thing type was created.</p>"
      }
    },
    "CredentialDurationSeconds": {
      "base": null,
      "refs": {
        "CreateRoleAliasRequest$credentialDurationSeconds": "<p>How long (in seconds) the credentials will be valid.</p>",
        "RoleAliasDescription$credentialDurationSeconds": "<p>The number of seconds for which the credential is valid.</p>",
        "UpdateRoleAliasRequest$credentialDurationSeconds": "<p>The number of seconds the credential will be valid.</p>"
      }
    },
    "CustomCodeSigning": {
      "base": "<p>Describes a custom method used to code sign a file.</p>",
      "refs": {
        "CodeSigning$customCodeSigning": "<p>A custom method for code signing a file.</p>"
      }
    },
    "CustomerVersion": {
      "base": null,
      "refs": {
        "CACertificateDescription$customerVersion": "<p>The customer version of the CA certificate.</p>",
        "CertificateDescription$customerVersion": "<p>The customer version of the certificate.</p>"
      }
    },
    "DateType": {
      "base": null,
      "refs": {
        "AuthorizerDescription$creationDate": "<p>The UNIX timestamp of when the authorizer was created.</p>",
        "AuthorizerDescription$lastModifiedDate": "<p>The UNIX timestamp of when the authorizer was last updated.</p>",
        "CACertificate$creationDate": "<p>The date the CA certificate was created.</p>",
        "CACertificateDescription$creationDate": "<p>The date the CA certificate was created.</p>",
        "CACertificateDescription$lastModifiedDate": "<p>The date the CA certificate was last modified.</p>",
        "Certificate$creationDate": "<p>The date and time the certificate was created.</p>",
        "CertificateDescription$creationDate": "<p>The date and time the certificate was created.</p>",
        "CertificateDescription$lastModifiedDate": "<p>The date and time the certificate was last modified.</p>",
        "CertificateValidity$notBefore": "<p>The certificate is not valid before this date.</p>",
        "CertificateValidity$notAfter": "<p>The certificate is not valid after this date.</p>",
        "GetPolicyResponse$creationDate": "<p>The date the policy was created.</p>",
        "GetPolicyResponse$lastModifiedDate": "<p>The date the policy was last modified.</p>",
        "GetPolicyVersionResponse$creationDate": "<p>The date the policy version was created.</p>",
        "GetPolicyVersionResponse$lastModifiedDate": "<p>The date the policy version was last modified.</p>",
        "Job$createdAt": "<p>The time, in milliseconds since the epoch, when the job was created.</p>",
        "Job$lastUpdatedAt": "<p>The time, in milliseconds since the epoch, when the job was last updated.</p>",
        "Job$completedAt": "<p>The time, in milliseconds since the epoch, when the job was completed.</p>",
        "JobExecution$queuedAt": "<p>The time, in milliseconds since the epoch, when the job execution was queued.</p>",
        "JobExecution$startedAt": "<p>The time, in milliseconds since the epoch, when the job execution started.</p>",
        "JobExecution$lastUpdatedAt": "<p>The time, in milliseconds since the epoch, when the job execution was last updated.</p>",
        "JobExecutionSummary$queuedAt": "<p>The time, in milliseconds since the epoch, when the job execution was queued.</p>",
        "JobExecutionSummary$startedAt": "<p>The time, in milliseconds since the epoch, when the job execution started.</p>",
        "JobExecutionSummary$lastUpdatedAt": "<p>The time, in milliseconds since the epoch, when the job execution was last updated.</p>",
        "JobSummary$createdAt": "<p>The time, in milliseconds since the epoch, when the job was created.</p>",
        "JobSummary$lastUpdatedAt": "<p>The time, in milliseconds since the epoch, when the job was last updated.</p>",
        "JobSummary$completedAt": "<p>The time, in milliseconds since the epoch, when the job completed.</p>",
        "OTAUpdateInfo$creationDate": "<p>The date when the OTA update was created.</p>",
        "OTAUpdateInfo$lastModifiedDate": "<p>The date when the OTA update was last updated.</p>",
        "OTAUpdateSummary$creationDate": "<p>The date when the OTA update was created.</p>",
        "OutgoingCertificate$transferDate": "<p>The date the transfer was initiated.</p>",
        "OutgoingCertificate$creationDate": "<p>The certificate creation date.</p>",
        "PolicyVersion$createDate": "<p>The date and time the policy was created.</p>",
        "RoleAliasDescription$creationDate": "<p>The UNIX timestamp of when the role alias was created.</p>",
        "RoleAliasDescription$lastModifiedDate": "<p>The UNIX timestamp of when the role alias was last modified.</p>",
        "StreamInfo$createdAt": "<p>The date when the stream was created.</p>",
        "StreamInfo$lastUpdatedAt": "<p>The date when the stream was last updated.</p>",
        "TransferData$transferDate": "<p>The date the transfer took place.</p>",
        "TransferData$acceptDate": "<p>The date the transfer was accepted.</p>",
        "TransferData$rejectDate": "<p>The date the transfer was rejected.</p>"
      }
    },
    "DayOfMonth": {
      "base": null,
      "refs": {
        "CreateScheduledAuditRequest$dayOfMonth": "<p>The day of the month on which the scheduled audit takes place. Can be \"1\" through \"31\" or \"LAST\". This field is required if the \"frequency\" parameter is set to \"MONTHLY\". If days 29-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month.</p>",
        "DescribeScheduledAuditResponse$dayOfMonth": "<p>The day of the month on which the scheduled audit takes place. Will be \"1\" through \"31\" or \"LAST\". If days 29-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month.</p>",
        "ScheduledAuditMetadata$dayOfMonth": "<p>The day of the month on which the scheduled audit is run (if the <code>frequency</code> is \"MONTHLY\"). If days 29-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month.</p>",
        "UpdateScheduledAuditRequest$dayOfMonth": "<p>The day of the month on which the scheduled audit takes place. Can be \"1\" through \"31\" or \"LAST\". This field is required if the \"frequency\" parameter is set to \"MONTHLY\". If days 29-31 are specified, and the month does not have that many days, the audit takes place on the \"LAST\" day of the month.</p>"
      }
    },
    "DayOfWeek": {
      "base": null,
      "refs": {
        "CreateScheduledAuditRequest$dayOfWeek": "<p>The day of the week on which the scheduled audit takes place. Can be one of \"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\" or \"SAT\". This field is required if the \"frequency\" parameter is set to \"WEEKLY\" or \"BIWEEKLY\".</p>",
        "DescribeScheduledAuditResponse$dayOfWeek": "<p>The day of the week on which the scheduled audit takes place. One of \"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\" or \"SAT\".</p>",
        "ScheduledAuditMetadata$dayOfWeek": "<p>The day of the week on which the scheduled audit is run (if the <code>frequency</code> is \"WEEKLY\" or \"BIWEEKLY\").</p>",
        "UpdateScheduledAuditRequest$dayOfWeek": "<p>The day of the week on which the scheduled audit takes place. Can be one of \"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\" or \"SAT\". This field is required if the \"frequency\" parameter is set to \"WEEKLY\" or \"BIWEEKLY\".</p>"
      }
    },
    "DeleteAccountAuditConfigurationRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteAccountAuditConfigurationResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteCACertificateRequest": {
      "base": "<p>Input for the DeleteCACertificate operation.</p>",
      "refs": {
      }
    },
    "DeleteCACertificateResponse": {
      "base": "<p>The output for the DeleteCACertificate operation.</p>",
      "refs": {
      }
    },
    "DeleteCertificateRequest": {
      "base": "<p>The input for the DeleteCertificate operation.</p>",
      "refs": {
      }
    },
    "DeleteConflictException": {
      "base": "<p>You can't delete the resource because it is attached to one or more resources.</p>",
      "refs": {
      }
    },
    "DeleteJobExecutionRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteOTAUpdateRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteOTAUpdateResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeletePolicyRequest": {
      "base": "<p>The input for the DeletePolicy operation.</p>",
      "refs": {
      }
    },
    "DeletePolicyVersionRequest": {
      "base": "<p>The input for the DeletePolicyVersion operation.</p>",
      "refs": {
      }
    },
    "DeleteRegistrationCodeRequest": {
      "base": "<p>The input for the DeleteRegistrationCode operation.</p>",
      "refs": {
      }
    },
    "DeleteRegistrationCodeResponse": {
      "base": "<p>The output for the DeleteRegistrationCode operation.</p>",
      "refs": {
      }
    },
    "DeleteRoleAliasRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteRoleAliasResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteScheduledAuditRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteScheduledAuditResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteScheduledAudits": {
      "base": null,
      "refs": {
        "DeleteAccountAuditConfigurationRequest$deleteScheduledAudits": "<p>If true, all scheduled audits are deleted.</p>"
      }
    },
    "DeleteSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteStream": {
      "base": null,
      "refs": {
        "DeleteOTAUpdateRequest$deleteStream": "<p>Specifies if the stream associated with an OTA update should be deleted when the OTA update is deleted.</p>"
      }
    },
    "DeleteStreamRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteStreamResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeleteThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "DeleteThingRequest": {
      "base": "<p>The input for the DeleteThing operation.</p>",
      "refs": {
      }
    },
    "DeleteThingResponse": {
      "base": "<p>The output of the DeleteThing operation.</p>",
      "refs": {
      }
    },
    "DeleteThingTypeRequest": {
      "base": "<p>The input for the DeleteThingType operation.</p>",
      "refs": {
      }
    },
    "DeleteThingTypeResponse": {
      "base": "<p>The output for the DeleteThingType operation.</p>",
      "refs": {
      }
    },
    "DeleteTopicRuleRequest": {
      "base": "<p>The input for the DeleteTopicRule operation.</p>",
      "refs": {
      }
    },
    "DeleteV2LoggingLevelRequest": {
      "base": null,
      "refs": {
      }
    },
    "DeliveryStreamName": {
      "base": null,
      "refs": {
        "FirehoseAction$deliveryStreamName": "<p>The delivery stream name.</p>"
      }
    },
    "Denied": {
      "base": "<p>Contains information that denied the authorization.</p>",
      "refs": {
        "AuthResult$denied": "<p>The policies and statements that denied the specified action.</p>"
      }
    },
    "DeprecateThingTypeRequest": {
      "base": "<p>The input for the DeprecateThingType operation.</p>",
      "refs": {
      }
    },
    "DeprecateThingTypeResponse": {
      "base": "<p>The output for the DeprecateThingType operation.</p>",
      "refs": {
      }
    },
    "DeprecationDate": {
      "base": null,
      "refs": {
        "ThingTypeMetadata$deprecationDate": "<p>The date and time when the thing type was deprecated.</p>"
      }
    },
    "DescribeAccountAuditConfigurationRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeAccountAuditConfigurationResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeAuditTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeAuditTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeCACertificateRequest": {
      "base": "<p>The input for the DescribeCACertificate operation.</p>",
      "refs": {
      }
    },
    "DescribeCACertificateResponse": {
      "base": "<p>The output from the DescribeCACertificate operation.</p>",
      "refs": {
      }
    },
    "DescribeCertificateRequest": {
      "base": "<p>The input for the DescribeCertificate operation.</p>",
      "refs": {
      }
    },
    "DescribeCertificateResponse": {
      "base": "<p>The output of the DescribeCertificate operation.</p>",
      "refs": {
      }
    },
    "DescribeDefaultAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeDefaultAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeEndpointRequest": {
      "base": "<p>The input for the DescribeEndpoint operation.</p>",
      "refs": {
      }
    },
    "DescribeEndpointResponse": {
      "base": "<p>The output from the DescribeEndpoint operation.</p>",
      "refs": {
      }
    },
    "DescribeEventConfigurationsRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeEventConfigurationsResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeIndexRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeIndexResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeJobExecutionRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeJobExecutionResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeJobResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeRoleAliasRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeRoleAliasResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeScheduledAuditRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeScheduledAuditResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeStreamRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeStreamResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeThingRegistrationTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "DescribeThingRegistrationTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "DescribeThingRequest": {
      "base": "<p>The input for the DescribeThing operation.</p>",
      "refs": {
      }
    },
    "DescribeThingResponse": {
      "base": "<p>The output from the DescribeThing operation.</p>",
      "refs": {
      }
    },
    "DescribeThingTypeRequest": {
      "base": "<p>The input for the DescribeThingType operation.</p>",
      "refs": {
      }
    },
    "DescribeThingTypeResponse": {
      "base": "<p>The output for the DescribeThingType operation.</p>",
      "refs": {
      }
    },
    "Description": {
      "base": null,
      "refs": {
        "TopicRule$description": "<p>The description of the rule.</p>",
        "TopicRulePayload$description": "<p>The description of the rule.</p>"
      }
    },
    "Destination": {
      "base": "<p>Describes the location of the updated firmware.</p>",
      "refs": {
        "StartSigningJobParameter$destination": "<p>The location to write the code-signed file.</p>"
      }
    },
    "DetachPolicyRequest": {
      "base": null,
      "refs": {
      }
    },
    "DetachPrincipalPolicyRequest": {
      "base": "<p>The input for the DetachPrincipalPolicy operation.</p>",
      "refs": {
      }
    },
    "DetachSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "DetachSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "DetachThingPrincipalRequest": {
      "base": "<p>The input for the DetachThingPrincipal operation.</p>",
      "refs": {
      }
    },
    "DetachThingPrincipalResponse": {
      "base": "<p>The output from the DetachThingPrincipal operation.</p>",
      "refs": {
      }
    },
    "DetailsKey": {
      "base": null,
      "refs": {
        "DetailsMap$key": null
      }
    },
    "DetailsMap": {
      "base": null,
      "refs": {
        "CancelJobExecutionRequest$statusDetails": "<p>A collection of name/value pairs that describe the status of the job execution. If not specified, the statusDetails are unchanged. You can specify at most 10 name/value pairs.</p>",
        "JobExecutionStatusDetails$detailsMap": "<p>The job execution status.</p>"
      }
    },
    "DetailsValue": {
      "base": null,
      "refs": {
        "DetailsMap$value": null
      }
    },
    "DisableAllLogs": {
      "base": null,
      "refs": {
        "GetV2LoggingOptionsResponse$disableAllLogs": "<p>Disables all logs.</p>",
        "SetV2LoggingOptionsRequest$disableAllLogs": "<p>If true all logs are disabled. The default is false.</p>"
      }
    },
    "DisableTopicRuleRequest": {
      "base": "<p>The input for the DisableTopicRuleRequest operation.</p>",
      "refs": {
      }
    },
    "DurationSeconds": {
      "base": null,
      "refs": {
        "BehaviorCriteria$durationSeconds": "<p>Use this to specify the period of time over which the behavior is evaluated, for those criteria which have a time dimension (for example, <code>NUM_MESSAGES_SENT</code>).</p>"
      }
    },
    "DynamoDBAction": {
      "base": "<p>Describes an action to write to a DynamoDB table.</p> <p>The <code>tableName</code>, <code>hashKeyField</code>, and <code>rangeKeyField</code> values must match the values used when you created the table.</p> <p>The <code>hashKeyValue</code> and <code>rangeKeyvalue</code> fields use a substitution template syntax. These templates provide data at runtime. The syntax is as follows: ${<i>sql-expression</i>}.</p> <p>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:</p> <p> <code>\"hashKeyValue\": \"${topic(3)}\"</code> </p> <p>The following field uses the timestamp:</p> <p> <code>\"rangeKeyValue\": \"${timestamp()}\"</code> </p>",
      "refs": {
        "Action$dynamoDB": "<p>Write to a DynamoDB table.</p>"
      }
    },
    "DynamoDBv2Action": {
      "base": "<p>Describes an action to write to a DynamoDB table.</p> <p>This DynamoDB action writes each attribute in the message payload into it's own column in the DynamoDB table.</p>",
      "refs": {
        "Action$dynamoDBv2": "<p>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.</p>"
      }
    },
    "DynamoKeyType": {
      "base": null,
      "refs": {
        "DynamoDBAction$hashKeyType": "<p>The hash key type. Valid values are \"STRING\" or \"NUMBER\"</p>",
        "DynamoDBAction$rangeKeyType": "<p>The range key type. Valid values are \"STRING\" or \"NUMBER\"</p>"
      }
    },
    "DynamoOperation": {
      "base": null,
      "refs": {
        "DynamoDBAction$operation": "<p>The type of operation to be performed. This follows the substitution template, so it can be <code>${operation}</code>, but the substitution must result in one of the following: <code>INSERT</code>, <code>UPDATE</code>, or <code>DELETE</code>.</p>"
      }
    },
    "EffectivePolicies": {
      "base": null,
      "refs": {
        "GetEffectivePoliciesResponse$effectivePolicies": "<p>The effective policies.</p>"
      }
    },
    "EffectivePolicy": {
      "base": "<p>The policy that has the effect on the authorization results.</p>",
      "refs": {
        "EffectivePolicies$member": null
      }
    },
    "ElasticsearchAction": {
      "base": "<p>Describes an action that writes data to an Amazon Elasticsearch Service domain.</p>",
      "refs": {
        "Action$elasticsearch": "<p>Write data to an Amazon Elasticsearch Service domain.</p>"
      }
    },
    "ElasticsearchEndpoint": {
      "base": null,
      "refs": {
        "ElasticsearchAction$endpoint": "<p>The endpoint of your Elasticsearch domain.</p>"
      }
    },
    "ElasticsearchId": {
      "base": null,
      "refs": {
        "ElasticsearchAction$id": "<p>The unique identifier for the document you are storing.</p>"
      }
    },
    "ElasticsearchIndex": {
      "base": null,
      "refs": {
        "ElasticsearchAction$index": "<p>The Elasticsearch index where you want to store your data.</p>"
      }
    },
    "ElasticsearchType": {
      "base": null,
      "refs": {
        "ElasticsearchAction$type": "<p>The type of document you are storing.</p>"
      }
    },
    "EnableTopicRuleRequest": {
      "base": "<p>The input for the EnableTopicRuleRequest operation.</p>",
      "refs": {
      }
    },
    "Enabled": {
      "base": null,
      "refs": {
        "AuditCheckConfiguration$enabled": "<p>True if this audit check is enabled for this account.</p>",
        "AuditNotificationTarget$enabled": "<p>True if notifications to the target are enabled.</p>",
        "Configuration$Enabled": "<p>True to enable the configuration.</p>"
      }
    },
    "EndpointAddress": {
      "base": null,
      "refs": {
        "DescribeEndpointResponse$endpointAddress": "<p>The endpoint. The format of the endpoint is as follows: <i>identifier</i>.iot.<i>region</i>.amazonaws.com.</p>"
      }
    },
    "EndpointType": {
      "base": null,
      "refs": {
        "DescribeEndpointRequest$endpointType": "<p>The endpoint type (such as <code>iot:Data</code>, <code>iot:CredentialProvider</code> and <code>iot:Jobs</code>). </p>"
      }
    },
    "ErrorCode": {
      "base": null,
      "refs": {
        "AuditCheckDetails$errorCode": "<p>The code of any error encountered when performing this check during this audit. One of \"INSUFFICIENT_PERMISSIONS\", or \"AUDIT_CHECK_DISABLED\".</p>"
      }
    },
    "ErrorInfo": {
      "base": "<p>Error information.</p>",
      "refs": {
        "OTAUpdateInfo$errorInfo": "<p>Error information associated with the OTA update.</p>"
      }
    },
    "ErrorMessage": {
      "base": null,
      "refs": {
        "AuditCheckDetails$message": "<p>The message associated with any error encountered when performing this check during this audit.</p>",
        "DescribeThingRegistrationTaskResponse$message": "<p>The message.</p>",
        "ValidationError$errorMessage": "<p>The description of an error found in the behaviors.</p>"
      }
    },
    "EventConfigurations": {
      "base": null,
      "refs": {
        "DescribeEventConfigurationsResponse$eventConfigurations": "<p>The event configurations.</p>",
        "UpdateEventConfigurationsRequest$eventConfigurations": "<p>The new event configuration values.</p>"
      }
    },
    "EventType": {
      "base": null,
      "refs": {
        "EventConfigurations$key": null
      }
    },
    "ExecutionNamePrefix": {
      "base": null,
      "refs": {
        "StepFunctionsAction$executionNamePrefix": "<p>(Optional) A name will be given to the state machine execution consisting of this prefix followed by a UUID. Step Functions automatically creates a unique name for each state machine execution if one is not provided.</p>"
      }
    },
    "ExecutionNumber": {
      "base": null,
      "refs": {
        "DeleteJobExecutionRequest$executionNumber": "<p>The ID of the job execution to be deleted. The <code>executionNumber</code> refers to the execution of a particular job on a particular device.</p> <p>Note that once a job execution is deleted, the <code>executionNumber</code> may be reused by IoT, so be sure you get and use the correct value here.</p>",
        "DescribeJobExecutionRequest$executionNumber": "<p>A string (consisting of the digits \"0\" through \"9\" which is used to specify a particular job execution on a particular device.</p>",
        "JobExecution$executionNumber": "<p>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. </p>",
        "JobExecutionSummary$executionNumber": "<p>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.</p>"
      }
    },
    "ExpectedVersion": {
      "base": null,
      "refs": {
        "CancelJobExecutionRequest$expectedVersion": "<p>(Optional) The expected current version of the job execution. Each time you update the job execution, its version is incremented. If the version of the job execution stored in Jobs does not match, the update is rejected with a VersionMismatch error, and an ErrorResponse that contains the current job execution status data is returned. (This makes it unnecessary to perform a separate DescribeJobExecution request in order to obtain the job execution status data.)</p>"
      }
    },
    "ExpiresInSec": {
      "base": null,
      "refs": {
        "PresignedUrlConfig$expiresInSec": "<p>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.</p>"
      }
    },
    "ExplicitDeny": {
      "base": "<p>Information that explicitly denies authorization.</p>",
      "refs": {
        "Denied$explicitDeny": "<p>Information that explicitly denies the authorization. </p>"
      }
    },
    "FailedChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$failedChecks": "<p>The number of checks </p>"
      }
    },
    "FailedThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfFailedThings": "<p>The number of things that failed executing the job.</p>"
      }
    },
    "FileId": {
      "base": null,
      "refs": {
        "Stream$fileId": "<p>The ID of a file associated with a stream.</p>",
        "StreamFile$fileId": "<p>The file ID.</p>"
      }
    },
    "FileLocation": {
      "base": "<p>The location of the OTA update.</p>",
      "refs": {
        "OTAUpdateFile$fileLocation": "<p>The location of the updated firmware.</p>"
      }
    },
    "FileName": {
      "base": null,
      "refs": {
        "OTAUpdateFile$fileName": "<p>The name of the file.</p>"
      }
    },
    "FirehoseAction": {
      "base": "<p>Describes an action that writes data to an Amazon Kinesis Firehose stream.</p>",
      "refs": {
        "Action$firehose": "<p>Write to an Amazon Kinesis Firehose stream.</p>"
      }
    },
    "FirehoseSeparator": {
      "base": null,
      "refs": {
        "FirehoseAction$separator": "<p>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).</p>"
      }
    },
    "Flag": {
      "base": null,
      "refs": {
        "AttributePayload$merge": "<p>Specifies whether the list of attributes provided in the <code>AttributePayload</code> is merged with the attributes stored in the registry, instead of overwriting them.</p> <p>To remove an attribute, call <code>UpdateThing</code> with an empty attribute value.</p> <note> <p>The <code>merge</code> attribute is only valid when calling <code>UpdateThing</code>.</p> </note>"
      }
    },
    "ForceDelete": {
      "base": null,
      "refs": {
        "DeleteCertificateRequest$forceDelete": "<p>Forces a certificate request to be deleted.</p>"
      }
    },
    "ForceDeleteAWSJob": {
      "base": null,
      "refs": {
        "DeleteOTAUpdateRequest$forceDeleteAWSJob": "<p>Specifies if the AWS Job associated with the OTA update should be deleted with the OTA update is deleted.</p>"
      }
    },
    "ForceFlag": {
      "base": null,
      "refs": {
        "CancelJobExecutionRequest$force": "<p>(Optional) If <code>true</code> the job execution will be canceled if it has status IN_PROGRESS or QUEUED, otherwise the job execution will be canceled only if it has status QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and you do not set <code>force</code> to <code>true</code>, then an <code>InvalidStateTransitionException</code> will be thrown. The default is <code>false</code>.</p> <p>Canceling a job execution which is \"IN_PROGRESS\", will cause the device to be unable to update the job execution status. Use caution and ensure that the device is able to recover to a valid state.</p>",
        "CancelJobRequest$force": "<p>(Optional) If <code>true</code> job executions with status \"IN_PROGRESS\" and \"QUEUED\" are canceled, otherwise only job executions with status \"QUEUED\" are canceled. The default is <code>false</code>.</p> <p>Canceling a job which is \"IN_PROGRESS\", will cause a device which is executing the job to be unable to update the job execution status. Use caution and ensure that each device executing a job which is canceled is able to recover to a valid state.</p>",
        "DeleteJobExecutionRequest$force": "<p>(Optional) When true, you can delete a job execution which is \"IN_PROGRESS\". Otherwise, you can only delete a job execution which is in a terminal state (\"SUCCEEDED\", \"FAILED\", \"REJECTED\", \"REMOVED\" or \"CANCELED\") or an exception will occur. The default is false.</p> <note> <p>Deleting a job execution which is \"IN_PROGRESS\", will cause the device to be unable to access job information or update the job execution status. Use caution and ensure that the device is able to recover to a valid state.</p> </note>",
        "DeleteJobRequest$force": "<p>(Optional) When true, you can delete a job which is \"IN_PROGRESS\". Otherwise, you can only delete a job which is in a terminal state (\"COMPLETED\" or \"CANCELED\") or an exception will occur. The default is false.</p> <note> <p>Deleting a job which is \"IN_PROGRESS\", will cause a device which is executing the job to be unable to access job information or update the job execution status. Use caution and ensure that each device executing a job which is deleted is able to recover to a valid state.</p> </note>"
      }
    },
    "Forced": {
      "base": null,
      "refs": {
        "Job$forceCanceled": "<p>Will be <code>true</code> if the job was canceled with the optional <code>force</code> parameter set to <code>true</code>.</p>",
        "JobExecution$forceCanceled": "<p>Will be <code>true</code> if the job execution was canceled with the optional <code>force</code> parameter set to <code>true</code>.</p>"
      }
    },
    "FunctionArn": {
      "base": null,
      "refs": {
        "LambdaAction$functionArn": "<p>The ARN of the Lambda function.</p>"
      }
    },
    "GEMaxResults": {
      "base": null,
      "refs": {
        "ListTopicRulesRequest$maxResults": "<p>The maximum number of results to return.</p>"
      }
    },
    "GenerationId": {
      "base": null,
      "refs": {
        "CACertificateDescription$generationId": "<p>The generation ID of the CA certificate.</p>",
        "CertificateDescription$generationId": "<p>The generation ID of the certificate.</p>",
        "GetPolicyResponse$generationId": "<p>The generation ID of the policy.</p>",
        "GetPolicyVersionResponse$generationId": "<p>The generation ID of the policy version.</p>"
      }
    },
    "GetEffectivePoliciesRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetEffectivePoliciesResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetIndexingConfigurationRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetIndexingConfigurationResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetJobDocumentRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetJobDocumentResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetLoggingOptionsRequest": {
      "base": "<p>The input for the GetLoggingOptions operation.</p>",
      "refs": {
      }
    },
    "GetLoggingOptionsResponse": {
      "base": "<p>The output from the GetLoggingOptions operation.</p>",
      "refs": {
      }
    },
    "GetOTAUpdateRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetOTAUpdateResponse": {
      "base": null,
      "refs": {
      }
    },
    "GetPolicyRequest": {
      "base": "<p>The input for the GetPolicy operation.</p>",
      "refs": {
      }
    },
    "GetPolicyResponse": {
      "base": "<p>The output from the GetPolicy operation.</p>",
      "refs": {
      }
    },
    "GetPolicyVersionRequest": {
      "base": "<p>The input for the GetPolicyVersion operation.</p>",
      "refs": {
      }
    },
    "GetPolicyVersionResponse": {
      "base": "<p>The output from the GetPolicyVersion operation.</p>",
      "refs": {
      }
    },
    "GetRegistrationCodeRequest": {
      "base": "<p>The input to the GetRegistrationCode operation.</p>",
      "refs": {
      }
    },
    "GetRegistrationCodeResponse": {
      "base": "<p>The output from the GetRegistrationCode operation.</p>",
      "refs": {
      }
    },
    "GetTopicRuleRequest": {
      "base": "<p>The input for the GetTopicRule operation.</p>",
      "refs": {
      }
    },
    "GetTopicRuleResponse": {
      "base": "<p>The output from the GetTopicRule operation.</p>",
      "refs": {
      }
    },
    "GetV2LoggingOptionsRequest": {
      "base": null,
      "refs": {
      }
    },
    "GetV2LoggingOptionsResponse": {
      "base": null,
      "refs": {
      }
    },
    "GroupNameAndArn": {
      "base": "<p>The name and ARN of a group.</p>",
      "refs": {
        "ThingGroupNameAndArnList$member": null
      }
    },
    "HashAlgorithm": {
      "base": null,
      "refs": {
        "CustomCodeSigning$hashAlgorithm": "<p>The hash algorithm used to code sign the file.</p>"
      }
    },
    "HashKeyField": {
      "base": null,
      "refs": {
        "DynamoDBAction$hashKeyField": "<p>The hash key name.</p>"
      }
    },
    "HashKeyValue": {
      "base": null,
      "refs": {
        "DynamoDBAction$hashKeyValue": "<p>The hash key value.</p>"
      }
    },
    "ImplicitDeny": {
      "base": "<p>Information that implicitly denies authorization. When policy doesn't explicitly deny or allow an action on a resource it is considered an implicit deny.</p>",
      "refs": {
        "Denied$implicitDeny": "<p>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.</p>"
      }
    },
    "InProgressChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$inProgressChecks": "<p>The number of checks in progress.</p>"
      }
    },
    "InProgressThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfInProgressThings": "<p>The number of things currently executing the job.</p>"
      }
    },
    "IndexName": {
      "base": null,
      "refs": {
        "DescribeIndexRequest$indexName": "<p>The index name.</p>",
        "DescribeIndexResponse$indexName": "<p>The index name.</p>",
        "IndexNamesList$member": null,
        "SearchIndexRequest$indexName": "<p>The search index name.</p>"
      }
    },
    "IndexNamesList": {
      "base": null,
      "refs": {
        "ListIndicesResponse$indexNames": "<p>The index names.</p>"
      }
    },
    "IndexNotReadyException": {
      "base": "<p>The index is not ready.</p>",
      "refs": {
      }
    },
    "IndexSchema": {
      "base": null,
      "refs": {
        "DescribeIndexResponse$schema": "<p>Contains a value that specifies the type of indexing performed. Valid values are:</p> <ol> <li> <p>REGISTRY – Your thing index will contain only registry data.</p> </li> <li> <p>REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data.</p> </li> </ol>"
      }
    },
    "IndexStatus": {
      "base": null,
      "refs": {
        "DescribeIndexResponse$indexStatus": "<p>The index status.</p>"
      }
    },
    "InlineDocument": {
      "base": null,
      "refs": {
        "CodeSigningCertificateChain$inlineDocument": "<p>A base64 encoded binary representation of the code signing certificate chain.</p>"
      }
    },
    "InternalException": {
      "base": "<p>An unexpected error has occurred.</p>",
      "refs": {
      }
    },
    "InternalFailureException": {
      "base": "<p>An unexpected error has occurred.</p>",
      "refs": {
      }
    },
    "InvalidQueryException": {
      "base": "<p>The query is invalid.</p>",
      "refs": {
      }
    },
    "InvalidRequestException": {
      "base": "<p>The request is not valid.</p>",
      "refs": {
      }
    },
    "InvalidResponseException": {
      "base": "<p>The response is invalid.</p>",
      "refs": {
      }
    },
    "InvalidStateTransitionException": {
      "base": "<p>An attempt was made to change to an invalid state, for example by deleting a job or a job execution which is \"IN_PROGRESS\" without setting the <code>force</code> parameter.</p>",
      "refs": {
      }
    },
    "IotAnalyticsAction": {
      "base": "<p>Sends messge data to an AWS IoT Analytics channel.</p>",
      "refs": {
        "Action$iotAnalytics": "<p>Sends message data to an AWS IoT Analytics channel.</p>"
      }
    },
    "IsAuthenticated": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerResponse$isAuthenticated": "<p>True if the token is authenticated, otherwise false.</p>"
      }
    },
    "IsDefaultVersion": {
      "base": null,
      "refs": {
        "CreatePolicyVersionResponse$isDefaultVersion": "<p>Specifies whether the policy version is the default.</p>",
        "GetPolicyVersionResponse$isDefaultVersion": "<p>Specifies whether the policy version is the default.</p>",
        "PolicyVersion$isDefaultVersion": "<p>Specifies whether the policy version is the default.</p>"
      }
    },
    "IsDisabled": {
      "base": null,
      "refs": {
        "ListTopicRulesRequest$ruleDisabled": "<p>Specifies whether the rule is disabled.</p>",
        "TopicRule$ruleDisabled": "<p>Specifies whether the rule is disabled.</p>",
        "TopicRuleListItem$ruleDisabled": "<p>Specifies whether the rule is disabled.</p>",
        "TopicRulePayload$ruleDisabled": "<p>Specifies whether the rule is disabled.</p>"
      }
    },
    "Job": {
      "base": "<p>The <code>Job</code> object contains details about a job.</p>",
      "refs": {
        "DescribeJobResponse$job": "<p>Information about the job.</p>"
      }
    },
    "JobArn": {
      "base": null,
      "refs": {
        "AssociateTargetsWithJobResponse$jobArn": "<p>An ARN identifying the job.</p>",
        "CancelJobResponse$jobArn": "<p>The job ARN.</p>",
        "CreateJobResponse$jobArn": "<p>The job ARN.</p>",
        "Job$jobArn": "<p>An ARN identifying the job with format \"arn:aws:iot:region:account:job/jobId\".</p>",
        "JobSummary$jobArn": "<p>The job ARN.</p>"
      }
    },
    "JobDescription": {
      "base": null,
      "refs": {
        "AssociateTargetsWithJobResponse$description": "<p>A short text description of the job.</p>",
        "CancelJobResponse$description": "<p>A short text description of the job.</p>",
        "CreateJobRequest$description": "<p>A short text description of the job.</p>",
        "CreateJobResponse$description": "<p>The job description.</p>",
        "Job$description": "<p>A short text description of the job.</p>"
      }
    },
    "JobDocument": {
      "base": null,
      "refs": {
        "CreateJobRequest$document": "<p>The job document.</p>",
        "GetJobDocumentResponse$document": "<p>The job document content.</p>"
      }
    },
    "JobDocumentSource": {
      "base": null,
      "refs": {
        "CreateJobRequest$documentSource": "<p>An S3 link to the job document.</p>",
        "DescribeJobResponse$documentSource": "<p>An S3 link to the job document.</p>"
      }
    },
    "JobExecution": {
      "base": "<p>The job execution object represents the execution of a job on a particular device.</p>",
      "refs": {
        "DescribeJobExecutionResponse$execution": "<p>Information about the job execution.</p>"
      }
    },
    "JobExecutionStatus": {
      "base": null,
      "refs": {
        "JobExecution$status": "<p>The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCESS, CANCELED, or REJECTED).</p>",
        "JobExecutionSummary$status": "<p>The status of the job execution.</p>",
        "ListJobExecutionsForJobRequest$status": "<p>The status of the job.</p>",
        "ListJobExecutionsForThingRequest$status": "<p>An optional filter that lets you search for jobs that have the specified status.</p>"
      }
    },
    "JobExecutionStatusDetails": {
      "base": "<p>Details of the job execution status.</p>",
      "refs": {
        "JobExecution$statusDetails": "<p>A collection of name/value pairs that describe the status of the job execution.</p>"
      }
    },
    "JobExecutionSummary": {
      "base": "<p>The job execution summary.</p>",
      "refs": {
        "JobExecutionSummaryForJob$jobExecutionSummary": "<p>Contains a subset of information about a job execution.</p>",
        "JobExecutionSummaryForThing$jobExecutionSummary": "<p>Contains a subset of information about a job execution.</p>"
      }
    },
    "JobExecutionSummaryForJob": {
      "base": "<p>Contains a summary of information about job executions for a specific job.</p>",
      "refs": {
        "JobExecutionSummaryForJobList$member": null
      }
    },
    "JobExecutionSummaryForJobList": {
      "base": null,
      "refs": {
        "ListJobExecutionsForJobResponse$executionSummaries": "<p>A list of job execution summaries.</p>"
      }
    },
    "JobExecutionSummaryForThing": {
      "base": "<p>The job execution summary for a thing.</p>",
      "refs": {
        "JobExecutionSummaryForThingList$member": null
      }
    },
    "JobExecutionSummaryForThingList": {
      "base": null,
      "refs": {
        "ListJobExecutionsForThingResponse$executionSummaries": "<p>A list of job execution summaries.</p>"
      }
    },
    "JobExecutionsRolloutConfig": {
      "base": "<p>Allows you to create a staged rollout of a job.</p>",
      "refs": {
        "CreateJobRequest$jobExecutionsRolloutConfig": "<p>Allows you to create a staged rollout of the job.</p>",
        "Job$jobExecutionsRolloutConfig": "<p>Allows you to create a staged rollout of a job.</p>"
      }
    },
    "JobId": {
      "base": null,
      "refs": {
        "AssociateTargetsWithJobRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "AssociateTargetsWithJobResponse$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "CancelJobExecutionRequest$jobId": "<p>The ID of the job to be canceled.</p>",
        "CancelJobRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "CancelJobResponse$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "CreateJobRequest$jobId": "<p>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.</p>",
        "CreateJobResponse$jobId": "<p>The unique identifier you assigned to this job.</p>",
        "DeleteJobExecutionRequest$jobId": "<p>The ID of the job whose execution on a particular device will be deleted.</p>",
        "DeleteJobRequest$jobId": "<p>The ID of the job to be deleted.</p> <p>After a job deletion is completed, you may reuse this jobId when you create a new job. However, this is not recommended, and you must ensure that your devices are not using the jobId to refer to the deleted job.</p>",
        "DescribeJobExecutionRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "DescribeJobRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "GetJobDocumentRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "Job$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "JobExecution$jobId": "<p>The unique identifier you assigned to the job when it was created.</p>",
        "JobExecutionSummaryForThing$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "JobSummary$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>",
        "ListJobExecutionsForJobRequest$jobId": "<p>The unique identifier you assigned to this job when it was created.</p>"
      }
    },
    "JobProcessDetails": {
      "base": "<p>The job process details.</p>",
      "refs": {
        "Job$jobProcessDetails": "<p>Details about the job process.</p>"
      }
    },
    "JobStatus": {
      "base": null,
      "refs": {
        "Job$status": "<p>The status of the job, one of <code>IN_PROGRESS</code>, <code>CANCELED</code>, or <code>COMPLETED</code>. </p>",
        "JobSummary$status": "<p>The job summary status.</p>",
        "ListJobsRequest$status": "<p>An optional filter that lets you search for jobs that have the specified status.</p>"
      }
    },
    "JobSummary": {
      "base": "<p>The job summary.</p>",
      "refs": {
        "JobSummaryList$member": null
      }
    },
    "JobSummaryList": {
      "base": null,
      "refs": {
        "ListJobsResponse$jobs": "<p>A list of jobs.</p>"
      }
    },
    "JobTargets": {
      "base": null,
      "refs": {
        "AssociateTargetsWithJobRequest$targets": "<p>A list of thing group ARNs that define the targets of the job.</p>",
        "CreateJobRequest$targets": "<p>A list of things and thing groups to which the job should be sent.</p>",
        "Job$targets": "<p>A list of IoT things and thing groups to which the job should be sent.</p>"
      }
    },
    "JsonDocument": {
      "base": null,
      "refs": {
        "ThingDocument$shadow": "<p>The shadow.</p>"
      }
    },
    "Key": {
      "base": null,
      "refs": {
        "S3Action$key": "<p>The object key.</p>"
      }
    },
    "KeyName": {
      "base": null,
      "refs": {
        "PublicKeyMap$key": null
      }
    },
    "KeyPair": {
      "base": "<p>Describes a key pair.</p>",
      "refs": {
        "CreateKeysAndCertificateResponse$keyPair": "<p>The generated key pair.</p>"
      }
    },
    "KeyValue": {
      "base": null,
      "refs": {
        "PublicKeyMap$value": null
      }
    },
    "KinesisAction": {
      "base": "<p>Describes an action to write data to an Amazon Kinesis stream.</p>",
      "refs": {
        "Action$kinesis": "<p>Write data to an Amazon Kinesis stream.</p>"
      }
    },
    "LambdaAction": {
      "base": "<p>Describes an action to invoke a Lambda function.</p>",
      "refs": {
        "Action$lambda": "<p>Invoke a Lambda function.</p>"
      }
    },
    "LaserMaxResults": {
      "base": null,
      "refs": {
        "ListJobExecutionsForJobRequest$maxResults": "<p>The maximum number of results to be returned per request.</p>",
        "ListJobExecutionsForThingRequest$maxResults": "<p>The maximum number of results to be returned per request.</p>",
        "ListJobsRequest$maxResults": "<p>The maximum number of results to return per request.</p>"
      }
    },
    "LastModifiedDate": {
      "base": null,
      "refs": {
        "DescribeEventConfigurationsResponse$lastModifiedDate": "<p>The date the event configurations were last modified.</p>",
        "DescribeThingRegistrationTaskResponse$lastModifiedDate": "<p>The date when the task was last modified.</p>"
      }
    },
    "LimitExceededException": {
      "base": "<p>A limit has been exceeded.</p>",
      "refs": {
      }
    },
    "ListActiveViolationsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListActiveViolationsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListAttachedPoliciesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListAttachedPoliciesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListAuditFindingsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListAuditFindingsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListAuditTasksRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListAuditTasksResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListAuthorizersRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListAuthorizersResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListCACertificatesRequest": {
      "base": "<p>Input for the ListCACertificates operation.</p>",
      "refs": {
      }
    },
    "ListCACertificatesResponse": {
      "base": "<p>The output from the ListCACertificates operation.</p>",
      "refs": {
      }
    },
    "ListCertificatesByCARequest": {
      "base": "<p>The input to the ListCertificatesByCA operation.</p>",
      "refs": {
      }
    },
    "ListCertificatesByCAResponse": {
      "base": "<p>The output of the ListCertificatesByCA operation.</p>",
      "refs": {
      }
    },
    "ListCertificatesRequest": {
      "base": "<p>The input for the ListCertificates operation.</p>",
      "refs": {
      }
    },
    "ListCertificatesResponse": {
      "base": "<p>The output of the ListCertificates operation.</p>",
      "refs": {
      }
    },
    "ListIndicesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListIndicesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListJobExecutionsForJobRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListJobExecutionsForJobResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListJobExecutionsForThingRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListJobExecutionsForThingResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListJobsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListJobsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListOTAUpdatesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListOTAUpdatesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListOutgoingCertificatesRequest": {
      "base": "<p>The input to the ListOutgoingCertificates operation.</p>",
      "refs": {
      }
    },
    "ListOutgoingCertificatesResponse": {
      "base": "<p>The output from the ListOutgoingCertificates operation.</p>",
      "refs": {
      }
    },
    "ListPoliciesRequest": {
      "base": "<p>The input for the ListPolicies operation.</p>",
      "refs": {
      }
    },
    "ListPoliciesResponse": {
      "base": "<p>The output from the ListPolicies operation.</p>",
      "refs": {
      }
    },
    "ListPolicyPrincipalsRequest": {
      "base": "<p>The input for the ListPolicyPrincipals operation.</p>",
      "refs": {
      }
    },
    "ListPolicyPrincipalsResponse": {
      "base": "<p>The output from the ListPolicyPrincipals operation.</p>",
      "refs": {
      }
    },
    "ListPolicyVersionsRequest": {
      "base": "<p>The input for the ListPolicyVersions operation.</p>",
      "refs": {
      }
    },
    "ListPolicyVersionsResponse": {
      "base": "<p>The output from the ListPolicyVersions operation.</p>",
      "refs": {
      }
    },
    "ListPrincipalPoliciesRequest": {
      "base": "<p>The input for the ListPrincipalPolicies operation.</p>",
      "refs": {
      }
    },
    "ListPrincipalPoliciesResponse": {
      "base": "<p>The output from the ListPrincipalPolicies operation.</p>",
      "refs": {
      }
    },
    "ListPrincipalThingsRequest": {
      "base": "<p>The input for the ListPrincipalThings operation.</p>",
      "refs": {
      }
    },
    "ListPrincipalThingsResponse": {
      "base": "<p>The output from the ListPrincipalThings operation.</p>",
      "refs": {
      }
    },
    "ListRoleAliasesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListRoleAliasesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListScheduledAuditsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListScheduledAuditsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListSecurityProfilesForTargetRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListSecurityProfilesForTargetResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListSecurityProfilesRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListSecurityProfilesResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListStreamsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListStreamsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListTargetsForPolicyRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListTargetsForPolicyResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListTargetsForSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListTargetsForSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingGroupsForThingRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListThingGroupsForThingResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingGroupsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListThingGroupsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingPrincipalsRequest": {
      "base": "<p>The input for the ListThingPrincipal operation.</p>",
      "refs": {
      }
    },
    "ListThingPrincipalsResponse": {
      "base": "<p>The output from the ListThingPrincipals operation.</p>",
      "refs": {
      }
    },
    "ListThingRegistrationTaskReportsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListThingRegistrationTaskReportsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingRegistrationTasksRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListThingRegistrationTasksResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingTypesRequest": {
      "base": "<p>The input for the ListThingTypes operation.</p>",
      "refs": {
      }
    },
    "ListThingTypesResponse": {
      "base": "<p>The output for the ListThingTypes operation.</p>",
      "refs": {
      }
    },
    "ListThingsInThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListThingsInThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListThingsRequest": {
      "base": "<p>The input for the ListThings operation.</p>",
      "refs": {
      }
    },
    "ListThingsResponse": {
      "base": "<p>The output from the ListThings operation.</p>",
      "refs": {
      }
    },
    "ListTopicRulesRequest": {
      "base": "<p>The input for the ListTopicRules operation.</p>",
      "refs": {
      }
    },
    "ListTopicRulesResponse": {
      "base": "<p>The output from the ListTopicRules operation.</p>",
      "refs": {
      }
    },
    "ListV2LoggingLevelsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListV2LoggingLevelsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ListViolationEventsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ListViolationEventsResponse": {
      "base": null,
      "refs": {
      }
    },
    "LogLevel": {
      "base": null,
      "refs": {
        "GetLoggingOptionsResponse$logLevel": "<p>The logging level.</p>",
        "GetV2LoggingOptionsResponse$defaultLogLevel": "<p>The default log level.</p>",
        "LogTargetConfiguration$logLevel": "<p>The logging level.</p>",
        "LoggingOptionsPayload$logLevel": "<p>The log level.</p>",
        "SetV2LoggingLevelRequest$logLevel": "<p>The log level.</p>",
        "SetV2LoggingOptionsRequest$defaultLogLevel": "<p>The default logging level.</p>"
      }
    },
    "LogTarget": {
      "base": "<p>A log target.</p>",
      "refs": {
        "LogTargetConfiguration$logTarget": "<p>A log target</p>",
        "SetV2LoggingLevelRequest$logTarget": "<p>The log target.</p>"
      }
    },
    "LogTargetConfiguration": {
      "base": "<p>The target configuration.</p>",
      "refs": {
        "LogTargetConfigurations$member": null
      }
    },
    "LogTargetConfigurations": {
      "base": null,
      "refs": {
        "ListV2LoggingLevelsResponse$logTargetConfigurations": "<p>The logging configuration for a target.</p>"
      }
    },
    "LogTargetName": {
      "base": null,
      "refs": {
        "DeleteV2LoggingLevelRequest$targetName": "<p>The name of the resource for which you are configuring logging.</p>",
        "LogTarget$targetName": "<p>The target name.</p>"
      }
    },
    "LogTargetType": {
      "base": null,
      "refs": {
        "DeleteV2LoggingLevelRequest$targetType": "<p>The type of resource for which you are configuring logging. Must be <code>THING_Group</code>.</p>",
        "ListV2LoggingLevelsRequest$targetType": "<p>The type of resource for which you are configuring logging. Must be <code>THING_Group</code>.</p>",
        "LogTarget$targetType": "<p>The target type.</p>"
      }
    },
    "LoggingOptionsPayload": {
      "base": "<p>Describes the logging options payload.</p>",
      "refs": {
        "SetLoggingOptionsRequest$loggingOptionsPayload": "<p>The logging options payload.</p>"
      }
    },
    "MalformedPolicyException": {
      "base": "<p>The policy documentation is not valid.</p>",
      "refs": {
      }
    },
    "Marker": {
      "base": null,
      "refs": {
        "ListAttachedPoliciesRequest$marker": "<p>The token to retrieve the next set of results.</p>",
        "ListAttachedPoliciesResponse$nextMarker": "<p>The token to retrieve the next set of results, or ``null`` if there are no more results.</p>",
        "ListAuthorizersRequest$marker": "<p>A marker used to get the next set of results.</p>",
        "ListAuthorizersResponse$nextMarker": "<p>A marker used to get the next set of results.</p>",
        "ListCACertificatesRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListCACertificatesResponse$nextMarker": "<p>The current position within the list of CA certificates.</p>",
        "ListCertificatesByCARequest$marker": "<p>The marker for the next set of results.</p>",
        "ListCertificatesByCAResponse$nextMarker": "<p>The marker for the next set of results, or null if there are no additional results.</p>",
        "ListCertificatesRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListCertificatesResponse$nextMarker": "<p>The marker for the next set of results, or null if there are no additional results.</p>",
        "ListOutgoingCertificatesRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListOutgoingCertificatesResponse$nextMarker": "<p>The marker for the next set of results.</p>",
        "ListPoliciesRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListPoliciesResponse$nextMarker": "<p>The marker for the next set of results, or null if there are no additional results.</p>",
        "ListPolicyPrincipalsRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListPolicyPrincipalsResponse$nextMarker": "<p>The marker for the next set of results, or null if there are no additional results.</p>",
        "ListPrincipalPoliciesRequest$marker": "<p>The marker for the next set of results.</p>",
        "ListPrincipalPoliciesResponse$nextMarker": "<p>The marker for the next set of results, or null if there are no additional results.</p>",
        "ListRoleAliasesRequest$marker": "<p>A marker used to get the next set of results.</p>",
        "ListRoleAliasesResponse$nextMarker": "<p>A marker used to get the next set of results.</p>",
        "ListTargetsForPolicyRequest$marker": "<p>A marker used to get the next set of results.</p>",
        "ListTargetsForPolicyResponse$nextMarker": "<p>A marker used to get the next set of results.</p>"
      }
    },
    "MaxJobExecutionsPerMin": {
      "base": null,
      "refs": {
        "JobExecutionsRolloutConfig$maximumPerMinute": "<p>The maximum number of things that will be notified of a pending job, per minute. This parameter allows you to create a staged rollout.</p>"
      }
    },
    "MaxResults": {
      "base": null,
      "refs": {
        "ListActiveViolationsRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListAuditFindingsRequest$maxResults": "<p>The maximum number of results to return at one time. The default is 25.</p>",
        "ListAuditTasksRequest$maxResults": "<p>The maximum number of results to return at one time. The default is 25.</p>",
        "ListOTAUpdatesRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListScheduledAuditsRequest$maxResults": "<p>The maximum number of results to return at one time. The default is 25.</p>",
        "ListSecurityProfilesForTargetRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListSecurityProfilesRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListStreamsRequest$maxResults": "<p>The maximum number of results to return at a time.</p>",
        "ListTargetsForSecurityProfileRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListViolationEventsRequest$maxResults": "<p>The maximum number of results to return at one time.</p>"
      }
    },
    "MaximumPerMinute": {
      "base": null,
      "refs": {
        "AwsJobExecutionsRolloutConfig$maximumPerMinute": "<p>The maximum number of OTA update job executions started per minute.</p>"
      }
    },
    "Message": {
      "base": null,
      "refs": {
        "OutgoingCertificate$transferMessage": "<p>The transfer message.</p>",
        "RejectCertificateTransferRequest$rejectReason": "<p>The reason the certificate transfer was rejected.</p>",
        "TransferCertificateRequest$transferMessage": "<p>The transfer message.</p>",
        "TransferData$transferMessage": "<p>The transfer message.</p>",
        "TransferData$rejectReason": "<p>The reason why the transfer was rejected.</p>"
      }
    },
    "MessageFormat": {
      "base": null,
      "refs": {
        "SnsAction$messageFormat": "<p>(Optional) The message format of the message to publish. Accepted values are \"JSON\" and \"RAW\". The default value of the attribute is \"RAW\". 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 href=\"http://docs.aws.amazon.com/sns/latest/dg/json-formats.html\">http://docs.aws.amazon.com/sns/latest/dg/json-formats.html</a> refer to their official documentation.</p>"
      }
    },
    "MetricValue": {
      "base": "<p>The value to be compared with the <code>metric</code>.</p>",
      "refs": {
        "ActiveViolation$lastViolationValue": "<p>The value of the metric (the measurement) which caused the most recent violation.</p>",
        "BehaviorCriteria$value": "<p>The value to be compared with the <code>metric</code>.</p>",
        "ViolationEvent$metricValue": "<p>The value of the metric (the measurement).</p>"
      }
    },
    "MissingContextValue": {
      "base": null,
      "refs": {
        "MissingContextValues$member": null
      }
    },
    "MissingContextValues": {
      "base": null,
      "refs": {
        "AuthResult$missingContextValues": "<p>Contains any missing context values found while evaluating policy.</p>"
      }
    },
    "NextToken": {
      "base": null,
      "refs": {
        "ListActiveViolationsRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListActiveViolationsResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListAuditFindingsRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListAuditFindingsResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListAuditTasksRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListAuditTasksResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListIndicesRequest$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListIndicesResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListJobExecutionsForJobRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListJobExecutionsForJobResponse$nextToken": "<p>The token for the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListJobExecutionsForThingRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListJobExecutionsForThingResponse$nextToken": "<p>The token for the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListJobsRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListJobsResponse$nextToken": "<p>The token for the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListOTAUpdatesRequest$nextToken": "<p>A token used to retrieve the next set of results.</p>",
        "ListOTAUpdatesResponse$nextToken": "<p>A token to use to get the next set of results.</p>",
        "ListPrincipalThingsRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListPrincipalThingsResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListScheduledAuditsRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListScheduledAuditsResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListSecurityProfilesForTargetRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListSecurityProfilesForTargetResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListSecurityProfilesRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListSecurityProfilesResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListStreamsRequest$nextToken": "<p>A token used to get the next set of results.</p>",
        "ListStreamsResponse$nextToken": "<p>A token used to get the next set of results.</p>",
        "ListTargetsForSecurityProfileRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListTargetsForSecurityProfileResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "ListThingGroupsForThingRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingGroupsForThingResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingGroupsRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingGroupsResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingRegistrationTaskReportsRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingRegistrationTaskReportsResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingRegistrationTasksRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingRegistrationTasksResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingTypesRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingTypesResponse$nextToken": "<p>The token for the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingsInThingGroupRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingsInThingGroupResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListThingsRequest$nextToken": "<p>The token to retrieve the next set of results.</p>",
        "ListThingsResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListTopicRulesRequest$nextToken": "<p>A token used to retrieve the next value.</p>",
        "ListTopicRulesResponse$nextToken": "<p>A token used to retrieve the next value.</p>",
        "ListV2LoggingLevelsRequest$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListV2LoggingLevelsResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "ListViolationEventsRequest$nextToken": "<p>The token for the next set of results.</p>",
        "ListViolationEventsResponse$nextToken": "<p>A token that can be used to retrieve the next set of results, or <code>null</code> if there are no additional results.</p>",
        "SearchIndexRequest$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>",
        "SearchIndexResponse$nextToken": "<p>The token used to get the next set of results, or <b>null</b> if there are no additional results.</p>"
      }
    },
    "NonCompliantChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$nonCompliantChecks": "<p>The number of checks that found non-compliant resources.</p>"
      }
    },
    "NonCompliantResource": {
      "base": "<p>Information about the resource that was non-compliant with the audit check.</p>",
      "refs": {
        "AuditFinding$nonCompliantResource": "<p>The resource that was found to be non-compliant with the audit check.</p>"
      }
    },
    "NonCompliantResourcesCount": {
      "base": null,
      "refs": {
        "AuditCheckDetails$nonCompliantResourcesCount": "<p>The number of resources that the check found non-compliant.</p>"
      }
    },
    "NotConfiguredException": {
      "base": "<p>The resource is not configured.</p>",
      "refs": {
      }
    },
    "OTAUpdateArn": {
      "base": null,
      "refs": {
        "CreateOTAUpdateResponse$otaUpdateArn": "<p>The OTA update ARN.</p>",
        "OTAUpdateInfo$otaUpdateArn": "<p>The OTA update ARN.</p>",
        "OTAUpdateSummary$otaUpdateArn": "<p>The OTA update ARN.</p>"
      }
    },
    "OTAUpdateDescription": {
      "base": null,
      "refs": {
        "CreateOTAUpdateRequest$description": "<p>The description of the OTA update.</p>",
        "OTAUpdateInfo$description": "<p>A description of the OTA update.</p>"
      }
    },
    "OTAUpdateErrorMessage": {
      "base": null,
      "refs": {
        "ErrorInfo$message": "<p>The error message.</p>"
      }
    },
    "OTAUpdateFile": {
      "base": "<p>Describes a file to be associated with an OTA update.</p>",
      "refs": {
        "OTAUpdateFiles$member": null
      }
    },
    "OTAUpdateFileVersion": {
      "base": null,
      "refs": {
        "OTAUpdateFile$fileVersion": "<p>The file version.</p>"
      }
    },
    "OTAUpdateFiles": {
      "base": null,
      "refs": {
        "CreateOTAUpdateRequest$files": "<p>The files to be streamed by the OTA update.</p>",
        "OTAUpdateInfo$otaUpdateFiles": "<p>A list of files associated with the OTA update.</p>"
      }
    },
    "OTAUpdateId": {
      "base": null,
      "refs": {
        "CreateOTAUpdateRequest$otaUpdateId": "<p>The ID of the OTA update to be created.</p>",
        "CreateOTAUpdateResponse$otaUpdateId": "<p>The OTA update ID.</p>",
        "DeleteOTAUpdateRequest$otaUpdateId": "<p>The OTA update ID to delete.</p>",
        "GetOTAUpdateRequest$otaUpdateId": "<p>The OTA update ID.</p>",
        "OTAUpdateInfo$otaUpdateId": "<p>The OTA update ID.</p>",
        "OTAUpdateSummary$otaUpdateId": "<p>The OTA update ID.</p>"
      }
    },
    "OTAUpdateInfo": {
      "base": "<p>Information about an OTA update.</p>",
      "refs": {
        "GetOTAUpdateResponse$otaUpdateInfo": "<p>The OTA update info.</p>"
      }
    },
    "OTAUpdateStatus": {
      "base": null,
      "refs": {
        "CreateOTAUpdateResponse$otaUpdateStatus": "<p>The OTA update status.</p>",
        "ListOTAUpdatesRequest$otaUpdateStatus": "<p>The OTA update job status.</p>",
        "OTAUpdateInfo$otaUpdateStatus": "<p>The status of the OTA update.</p>"
      }
    },
    "OTAUpdateSummary": {
      "base": "<p>An OTA update summary.</p>",
      "refs": {
        "OTAUpdatesSummary$member": null
      }
    },
    "OTAUpdatesSummary": {
      "base": null,
      "refs": {
        "ListOTAUpdatesResponse$otaUpdates": "<p>A list of OTA update jobs.</p>"
      }
    },
    "OptionalVersion": {
      "base": null,
      "refs": {
        "DeleteSecurityProfileRequest$expectedVersion": "<p>The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different than the actual version, a <code>VersionConflictException</code> is thrown.</p>",
        "DeleteThingGroupRequest$expectedVersion": "<p>The expected version of the thing group to delete.</p>",
        "DeleteThingRequest$expectedVersion": "<p>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 <code>DeleteThing</code> request is rejected with a <code>VersionConflictException</code>.</p>",
        "UpdateSecurityProfileRequest$expectedVersion": "<p>The expected version of the security profile. A new version is generated whenever the security profile is updated. If you specify a value that is different than the actual version, a <code>VersionConflictException</code> is thrown.</p>",
        "UpdateThingGroupRequest$expectedVersion": "<p>The expected version of the thing group. If this does not match the version of the thing group being updated, the update will fail.</p>",
        "UpdateThingRequest$expectedVersion": "<p>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 <code>UpdateThing</code> request is rejected with a <code>VersionConflictException</code>.</p>"
      }
    },
    "OutgoingCertificate": {
      "base": "<p>A certificate that has been transferred but not yet accepted.</p>",
      "refs": {
        "OutgoingCertificates$member": null
      }
    },
    "OutgoingCertificates": {
      "base": null,
      "refs": {
        "ListOutgoingCertificatesResponse$outgoingCertificates": "<p>The certificates that are being transferred but not yet accepted.</p>"
      }
    },
    "PageSize": {
      "base": null,
      "refs": {
        "ListAttachedPoliciesRequest$pageSize": "<p>The maximum number of results to be returned per request.</p>",
        "ListAuthorizersRequest$pageSize": "<p>The maximum number of results to return at one time.</p>",
        "ListCACertificatesRequest$pageSize": "<p>The result page size.</p>",
        "ListCertificatesByCARequest$pageSize": "<p>The result page size.</p>",
        "ListCertificatesRequest$pageSize": "<p>The result page size.</p>",
        "ListOutgoingCertificatesRequest$pageSize": "<p>The result page size.</p>",
        "ListPoliciesRequest$pageSize": "<p>The result page size.</p>",
        "ListPolicyPrincipalsRequest$pageSize": "<p>The result page size.</p>",
        "ListPrincipalPoliciesRequest$pageSize": "<p>The result page size.</p>",
        "ListRoleAliasesRequest$pageSize": "<p>The maximum number of results to return at one time.</p>",
        "ListTargetsForPolicyRequest$pageSize": "<p>The maximum number of results to return at one time.</p>"
      }
    },
    "Parameter": {
      "base": null,
      "refs": {
        "Parameters$key": null
      }
    },
    "Parameters": {
      "base": null,
      "refs": {
        "RegisterThingRequest$parameters": "<p>The parameters for provisioning a thing. See <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/programmatic-provisioning.html\">Programmatic Provisioning</a> for more information.</p>"
      }
    },
    "PartitionKey": {
      "base": null,
      "refs": {
        "KinesisAction$partitionKey": "<p>The partition key.</p>"
      }
    },
    "PayloadField": {
      "base": null,
      "refs": {
        "DynamoDBAction$payloadField": "<p>The action payload. This name can be customized.</p>"
      }
    },
    "Percentage": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$percentageProgress": "<p>The progress of the bulk provisioning task expressed as a percentage.</p>"
      }
    },
    "Platform": {
      "base": null,
      "refs": {
        "SigningProfileParameter$platform": "<p>The hardware platform of your device.</p>"
      }
    },
    "Policies": {
      "base": null,
      "refs": {
        "Allowed$policies": "<p>A list of policies that allowed the authentication.</p>",
        "ExplicitDeny$policies": "<p>The policies that denied the authorization.</p>",
        "ImplicitDeny$policies": "<p>Policies that don't contain a matching allow or deny statement for the specified action on the specified resource. </p>",
        "ListAttachedPoliciesResponse$policies": "<p>The policies.</p>",
        "ListPoliciesResponse$policies": "<p>The descriptions of the policies.</p>",
        "ListPrincipalPoliciesResponse$policies": "<p>The policies.</p>"
      }
    },
    "Policy": {
      "base": "<p>Describes an AWS IoT policy.</p>",
      "refs": {
        "Policies$member": null
      }
    },
    "PolicyArn": {
      "base": null,
      "refs": {
        "CreatePolicyResponse$policyArn": "<p>The policy ARN.</p>",
        "CreatePolicyVersionResponse$policyArn": "<p>The policy ARN.</p>",
        "EffectivePolicy$policyArn": "<p>The policy ARN.</p>",
        "GetPolicyResponse$policyArn": "<p>The policy ARN.</p>",
        "GetPolicyVersionResponse$policyArn": "<p>The policy ARN.</p>",
        "Policy$policyArn": "<p>The policy ARN.</p>"
      }
    },
    "PolicyDocument": {
      "base": null,
      "refs": {
        "CreatePolicyRequest$policyDocument": "<p>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.</p>",
        "CreatePolicyResponse$policyDocument": "<p>The JSON document that describes the policy.</p>",
        "CreatePolicyVersionRequest$policyDocument": "<p>The JSON document that describes the policy. Minimum length of 1. Maximum length of 2048, excluding whitespace.</p>",
        "CreatePolicyVersionResponse$policyDocument": "<p>The JSON document that describes the policy.</p>",
        "EffectivePolicy$policyDocument": "<p>The IAM policy document.</p>",
        "GetPolicyResponse$policyDocument": "<p>The JSON document that describes the policy.</p>",
        "GetPolicyVersionResponse$policyDocument": "<p>The JSON document that describes the policy.</p>",
        "PolicyDocuments$member": null
      }
    },
    "PolicyDocuments": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerResponse$policyDocuments": "<p>IAM policy documents.</p>"
      }
    },
    "PolicyName": {
      "base": null,
      "refs": {
        "AttachPolicyRequest$policyName": "<p>The name of the policy to attach.</p>",
        "AttachPrincipalPolicyRequest$policyName": "<p>The policy name.</p>",
        "CreatePolicyRequest$policyName": "<p>The policy name.</p>",
        "CreatePolicyResponse$policyName": "<p>The policy name.</p>",
        "CreatePolicyVersionRequest$policyName": "<p>The policy name.</p>",
        "DeletePolicyRequest$policyName": "<p>The name of the policy to delete.</p>",
        "DeletePolicyVersionRequest$policyName": "<p>The name of the policy.</p>",
        "DetachPolicyRequest$policyName": "<p>The policy to detach.</p>",
        "DetachPrincipalPolicyRequest$policyName": "<p>The name of the policy to detach.</p>",
        "EffectivePolicy$policyName": "<p>The policy name.</p>",
        "GetPolicyRequest$policyName": "<p>The name of the policy.</p>",
        "GetPolicyResponse$policyName": "<p>The policy name.</p>",
        "GetPolicyVersionRequest$policyName": "<p>The name of the policy.</p>",
        "GetPolicyVersionResponse$policyName": "<p>The policy name.</p>",
        "ListPolicyPrincipalsRequest$policyName": "<p>The policy name.</p>",
        "ListPolicyVersionsRequest$policyName": "<p>The policy name.</p>",
        "ListTargetsForPolicyRequest$policyName": "<p>The policy name.</p>",
        "Policy$policyName": "<p>The policy name.</p>",
        "PolicyNames$member": null,
        "PolicyVersionIdentifier$policyName": "<p>The name of the policy.</p>",
        "SetDefaultPolicyVersionRequest$policyName": "<p>The policy name.</p>"
      }
    },
    "PolicyNames": {
      "base": null,
      "refs": {
        "TestAuthorizationRequest$policyNamesToAdd": "<p>When testing custom authorization, the policies specified here are treated as if they are attached to the principal being authorized.</p>",
        "TestAuthorizationRequest$policyNamesToSkip": "<p>When testing custom authorization, the policies specified here are treated as if they are not attached to the principal being authorized.</p>"
      }
    },
    "PolicyTarget": {
      "base": null,
      "refs": {
        "AttachPolicyRequest$target": "<p>The identity to which the policy is attached.</p>",
        "DetachPolicyRequest$target": "<p>The target from which the policy will be detached.</p>",
        "ListAttachedPoliciesRequest$target": "<p>The group for which the policies will be listed.</p>",
        "PolicyTargets$member": null
      }
    },
    "PolicyTargets": {
      "base": null,
      "refs": {
        "ListTargetsForPolicyResponse$targets": "<p>The policy targets.</p>"
      }
    },
    "PolicyVersion": {
      "base": "<p>Describes a policy version.</p>",
      "refs": {
        "PolicyVersions$member": null
      }
    },
    "PolicyVersionId": {
      "base": null,
      "refs": {
        "CreatePolicyResponse$policyVersionId": "<p>The policy version ID.</p>",
        "CreatePolicyVersionResponse$policyVersionId": "<p>The policy version ID.</p>",
        "DeletePolicyVersionRequest$policyVersionId": "<p>The policy version ID.</p>",
        "GetPolicyResponse$defaultVersionId": "<p>The default policy version ID.</p>",
        "GetPolicyVersionRequest$policyVersionId": "<p>The policy version ID.</p>",
        "GetPolicyVersionResponse$policyVersionId": "<p>The policy version ID.</p>",
        "PolicyVersion$versionId": "<p>The policy version ID.</p>",
        "PolicyVersionIdentifier$policyVersionId": "<p>The ID of the version of the policy associated with the resource.</p>",
        "SetDefaultPolicyVersionRequest$policyVersionId": "<p>The policy version ID.</p>"
      }
    },
    "PolicyVersionIdentifier": {
      "base": "<p>Information about the version of the policy associated with the resource.</p>",
      "refs": {
        "ResourceIdentifier$policyVersionIdentifier": "<p>The version of the policy associated with the resource.</p>"
      }
    },
    "PolicyVersions": {
      "base": null,
      "refs": {
        "ListPolicyVersionsResponse$policyVersions": "<p>The policy versions.</p>"
      }
    },
    "Port": {
      "base": null,
      "refs": {
        "Ports$member": null
      }
    },
    "Ports": {
      "base": null,
      "refs": {
        "MetricValue$ports": "<p>If the <code>comparisonOperator</code> calls for a set of ports, use this to specify that set to be compared with the <code>metric</code>.</p>"
      }
    },
    "Prefix": {
      "base": null,
      "refs": {
        "S3Destination$prefix": "<p>The S3 prefix.</p>"
      }
    },
    "PresignedUrlConfig": {
      "base": "<p>Configuration for pre-signed S3 URLs.</p>",
      "refs": {
        "CreateJobRequest$presignedUrlConfig": "<p>Configuration information for pre-signed S3 URLs.</p>",
        "Job$presignedUrlConfig": "<p>Configuration for pre-signed S3 URLs.</p>"
      }
    },
    "Principal": {
      "base": null,
      "refs": {
        "AttachPrincipalPolicyRequest$principal": "<p>The principal, which can be a certificate ARN (as returned from the CreateCertificate operation) or an Amazon Cognito ID.</p>",
        "AttachThingPrincipalRequest$principal": "<p>The principal, such as a certificate or other credential.</p>",
        "DetachPrincipalPolicyRequest$principal": "<p>The principal.</p> <p>If the principal is a certificate, specify the certificate ARN. If the principal is an Amazon Cognito identity, specify the identity ID.</p>",
        "DetachThingPrincipalRequest$principal": "<p>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.</p>",
        "GetEffectivePoliciesRequest$principal": "<p>The principal.</p>",
        "ListPrincipalPoliciesRequest$principal": "<p>The principal.</p>",
        "ListPrincipalThingsRequest$principal": "<p>The principal.</p>",
        "TestAuthorizationRequest$principal": "<p>The principal.</p>"
      }
    },
    "PrincipalArn": {
      "base": null,
      "refs": {
        "Principals$member": null
      }
    },
    "PrincipalId": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerResponse$principalId": "<p>The principal ID.</p>"
      }
    },
    "Principals": {
      "base": null,
      "refs": {
        "ListPolicyPrincipalsResponse$principals": "<p>The descriptions of the principals.</p>",
        "ListThingPrincipalsResponse$principals": "<p>The principals associated with the thing.</p>"
      }
    },
    "PrivateKey": {
      "base": null,
      "refs": {
        "KeyPair$PrivateKey": "<p>The private key.</p>"
      }
    },
    "ProcessingTargetName": {
      "base": null,
      "refs": {
        "ProcessingTargetNameList$member": null
      }
    },
    "ProcessingTargetNameList": {
      "base": null,
      "refs": {
        "JobProcessDetails$processingTargets": "<p>The target devices to which the job execution is being rolled out. This value will be null after the job execution has finished rolling out to all the target devices.</p>"
      }
    },
    "PublicKey": {
      "base": null,
      "refs": {
        "KeyPair$PublicKey": "<p>The public key.</p>"
      }
    },
    "PublicKeyMap": {
      "base": null,
      "refs": {
        "AuthorizerDescription$tokenSigningPublicKeys": "<p>The public keys used to validate the token signature returned by your custom authentication service.</p>",
        "CreateAuthorizerRequest$tokenSigningPublicKeys": "<p>The public keys used to verify the digital signature returned by your custom authentication service.</p>",
        "UpdateAuthorizerRequest$tokenSigningPublicKeys": "<p>The public keys used to verify the token signature.</p>"
      }
    },
    "PutItemInput": {
      "base": "<p>The input for the DynamoActionVS action that specifies the DynamoDB table to which the message data will be written.</p>",
      "refs": {
        "DynamoDBv2Action$putItem": "<p>Specifies the DynamoDB table to which the message data will be written. For example:</p> <p> <code>{ \"dynamoDBv2\": { \"roleArn\": \"aws:iam:12341251:my-role\" \"putItem\": { \"tableName\": \"my-table\" } } }</code> </p> <p>Each attribute in the message payload will be written to a separate column in the DynamoDB database.</p>"
      }
    },
    "QueryMaxResults": {
      "base": null,
      "refs": {
        "ListIndicesRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "SearchIndexRequest$maxResults": "<p>The maximum number of results to return at one time.</p>"
      }
    },
    "QueryString": {
      "base": null,
      "refs": {
        "SearchIndexRequest$queryString": "<p>The search query string.</p>"
      }
    },
    "QueryVersion": {
      "base": null,
      "refs": {
        "SearchIndexRequest$queryVersion": "<p>The query version.</p>"
      }
    },
    "QueueUrl": {
      "base": null,
      "refs": {
        "SqsAction$queueUrl": "<p>The URL of the Amazon SQS queue.</p>"
      }
    },
    "QueuedThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfQueuedThings": "<p>The number of things that are awaiting execution of the job.</p>"
      }
    },
    "RangeKeyField": {
      "base": null,
      "refs": {
        "DynamoDBAction$rangeKeyField": "<p>The range key name.</p>"
      }
    },
    "RangeKeyValue": {
      "base": null,
      "refs": {
        "DynamoDBAction$rangeKeyValue": "<p>The range key value.</p>"
      }
    },
    "ReasonForNonCompliance": {
      "base": null,
      "refs": {
        "AuditFinding$reasonForNonCompliance": "<p>The reason the resource was non-compliant.</p>"
      }
    },
    "ReasonForNonComplianceCode": {
      "base": null,
      "refs": {
        "AuditFinding$reasonForNonComplianceCode": "<p>A code which indicates the reason that the resource was non-compliant.</p>"
      }
    },
    "Recursive": {
      "base": null,
      "refs": {
        "ListAttachedPoliciesRequest$recursive": "<p>When true, recursively list attached policies.</p>",
        "ListSecurityProfilesForTargetRequest$recursive": "<p>If true, return child groups as well.</p>",
        "ListThingsInThingGroupRequest$recursive": "<p>When true, list things in this thing group and in all child groups as well.</p>"
      }
    },
    "RecursiveWithoutDefault": {
      "base": null,
      "refs": {
        "ListThingGroupsRequest$recursive": "<p>If true, return child groups as well.</p>"
      }
    },
    "RegisterCACertificateRequest": {
      "base": "<p>The input to the RegisterCACertificate operation.</p>",
      "refs": {
      }
    },
    "RegisterCACertificateResponse": {
      "base": "<p>The output from the RegisterCACertificateResponse operation.</p>",
      "refs": {
      }
    },
    "RegisterCertificateRequest": {
      "base": "<p>The input to the RegisterCertificate operation.</p>",
      "refs": {
      }
    },
    "RegisterCertificateResponse": {
      "base": "<p>The output from the RegisterCertificate operation.</p>",
      "refs": {
      }
    },
    "RegisterThingRequest": {
      "base": null,
      "refs": {
      }
    },
    "RegisterThingResponse": {
      "base": null,
      "refs": {
      }
    },
    "RegistrationCode": {
      "base": null,
      "refs": {
        "GetRegistrationCodeResponse$registrationCode": "<p>The CA certificate registration code.</p>"
      }
    },
    "RegistrationCodeValidationException": {
      "base": "<p>The registration code is invalid.</p>",
      "refs": {
      }
    },
    "RegistrationConfig": {
      "base": "<p>The registration configuration.</p>",
      "refs": {
        "DescribeCACertificateResponse$registrationConfig": "<p>Information about the registration configuration.</p>",
        "RegisterCACertificateRequest$registrationConfig": "<p>Information about the registration configuration.</p>",
        "UpdateCACertificateRequest$registrationConfig": "<p>Information about the registration configuration.</p>"
      }
    },
    "RegistryMaxResults": {
      "base": null,
      "refs": {
        "ListPrincipalThingsRequest$maxResults": "<p>The maximum number of results to return in this operation.</p>",
        "ListThingGroupsForThingRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListThingGroupsRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListThingRegistrationTaskReportsRequest$maxResults": "<p>The maximum number of results to return per request.</p>",
        "ListThingRegistrationTasksRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListThingTypesRequest$maxResults": "<p>The maximum number of results to return in this operation.</p>",
        "ListThingsInThingGroupRequest$maxResults": "<p>The maximum number of results to return at one time.</p>",
        "ListThingsRequest$maxResults": "<p>The maximum number of results to return in this operation.</p>"
      }
    },
    "RegistryS3BucketName": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$inputFileBucket": "<p>The S3 bucket that contains the input file.</p>",
        "StartThingRegistrationTaskRequest$inputFileBucket": "<p>The S3 bucket that contains the input file.</p>"
      }
    },
    "RegistryS3KeyName": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$inputFileKey": "<p>The input file key.</p>",
        "StartThingRegistrationTaskRequest$inputFileKey": "<p>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).</p>"
      }
    },
    "RejectCertificateTransferRequest": {
      "base": "<p>The input for the RejectCertificateTransfer operation.</p>",
      "refs": {
      }
    },
    "RejectedThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfRejectedThings": "<p>The number of things that rejected the job.</p>"
      }
    },
    "RelatedResource": {
      "base": "<p>Information about a related resource.</p>",
      "refs": {
        "RelatedResources$member": null
      }
    },
    "RelatedResources": {
      "base": null,
      "refs": {
        "AuditFinding$relatedResources": "<p>The list of related resources.</p>"
      }
    },
    "RemoveAutoRegistration": {
      "base": null,
      "refs": {
        "UpdateCACertificateRequest$removeAutoRegistration": "<p>If true, remove auto registration.</p>"
      }
    },
    "RemoveThingFromThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "RemoveThingFromThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "RemoveThingType": {
      "base": null,
      "refs": {
        "UpdateThingRequest$removeThingType": "<p>Remove a thing type association. If <b>true</b>, the association is removed.</p>"
      }
    },
    "RemovedThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfRemovedThings": "<p>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.</p>"
      }
    },
    "ReplaceTopicRuleRequest": {
      "base": "<p>The input for the ReplaceTopicRule operation.</p>",
      "refs": {
      }
    },
    "ReportType": {
      "base": null,
      "refs": {
        "ListThingRegistrationTaskReportsRequest$reportType": "<p>The type of task report.</p>",
        "ListThingRegistrationTaskReportsResponse$reportType": "<p>The type of task report.</p>"
      }
    },
    "RepublishAction": {
      "base": "<p>Describes an action to republish to another topic.</p>",
      "refs": {
        "Action$republish": "<p>Publish to another MQTT topic.</p>"
      }
    },
    "Resource": {
      "base": null,
      "refs": {
        "Resources$member": null
      }
    },
    "ResourceAlreadyExistsException": {
      "base": "<p>The resource already exists.</p>",
      "refs": {
      }
    },
    "ResourceArn": {
      "base": null,
      "refs": {
        "ResourceArns$value": null
      }
    },
    "ResourceArns": {
      "base": null,
      "refs": {
        "RegisterThingResponse$resourceArns": "<p>ARNs for the generated resources.</p>"
      }
    },
    "ResourceIdentifier": {
      "base": "<p>Information identifying the non-compliant resource.</p>",
      "refs": {
        "ListAuditFindingsRequest$resourceIdentifier": "<p>Information identifying the non-compliant resource.</p>",
        "NonCompliantResource$resourceIdentifier": "<p>Information identifying the non-compliant resource.</p>",
        "RelatedResource$resourceIdentifier": "<p>Information identifying the resource.</p>"
      }
    },
    "ResourceLogicalId": {
      "base": null,
      "refs": {
        "ResourceArns$key": null
      }
    },
    "ResourceNotFoundException": {
      "base": "<p>The specified resource does not exist.</p>",
      "refs": {
      }
    },
    "ResourceRegistrationFailureException": {
      "base": "<p>The resource registration failed.</p>",
      "refs": {
      }
    },
    "ResourceType": {
      "base": null,
      "refs": {
        "NonCompliantResource$resourceType": "<p>The type of the non-compliant resource.</p>",
        "RelatedResource$resourceType": "<p>The type of resource.</p>"
      }
    },
    "Resources": {
      "base": null,
      "refs": {
        "AuthInfo$resources": "<p>The resources for which the principal is being authorized to perform the specified action.</p>"
      }
    },
    "RoleAlias": {
      "base": null,
      "refs": {
        "CreateRoleAliasRequest$roleAlias": "<p>The role alias that points to a role ARN. This allows you to change the role without having to update the device.</p>",
        "CreateRoleAliasResponse$roleAlias": "<p>The role alias.</p>",
        "DeleteRoleAliasRequest$roleAlias": "<p>The role alias to delete.</p>",
        "DescribeRoleAliasRequest$roleAlias": "<p>The role alias to describe.</p>",
        "RoleAliasDescription$roleAlias": "<p>The role alias.</p>",
        "RoleAliases$member": null,
        "UpdateRoleAliasRequest$roleAlias": "<p>The role alias to update.</p>",
        "UpdateRoleAliasResponse$roleAlias": "<p>The role alias.</p>"
      }
    },
    "RoleAliasArn": {
      "base": null,
      "refs": {
        "CreateRoleAliasResponse$roleAliasArn": "<p>The role alias ARN.</p>",
        "RoleAliasDescription$roleAliasArn": "<p>The ARN of the role alias.</p>",
        "UpdateRoleAliasResponse$roleAliasArn": "<p>The role alias ARN.</p>"
      }
    },
    "RoleAliasDescription": {
      "base": "<p>Role alias description.</p>",
      "refs": {
        "DescribeRoleAliasResponse$roleAliasDescription": "<p>The role alias description.</p>"
      }
    },
    "RoleAliases": {
      "base": null,
      "refs": {
        "ListRoleAliasesResponse$roleAliases": "<p>The role aliases.</p>"
      }
    },
    "RoleArn": {
      "base": null,
      "refs": {
        "AlertTarget$roleArn": "<p>The ARN of the role that grants permission to send alerts to the notification target.</p>",
        "AuditNotificationTarget$roleArn": "<p>The ARN of the role that grants permission to send notifications to the target.</p>",
        "CreateOTAUpdateRequest$roleArn": "<p>The IAM role that allows access to the AWS IoT Jobs service.</p>",
        "CreateRoleAliasRequest$roleArn": "<p>The role ARN.</p>",
        "CreateStreamRequest$roleArn": "<p>An IAM role that allows the IoT service principal assumes to access your S3 files.</p>",
        "DescribeAccountAuditConfigurationResponse$roleArn": "<p>The ARN of the role that grants permission to AWS IoT to access information about your devices, policies, certificates and other items as necessary when performing an audit.</p> <p>On the first call to <code>UpdateAccountAuditConfiguration</code> this parameter is required.</p>",
        "DescribeThingRegistrationTaskResponse$roleArn": "<p>The role ARN that grants access to the input file bucket.</p>",
        "PresignedUrlConfig$roleArn": "<p>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.</p>",
        "RegistrationConfig$roleArn": "<p>The ARN of the role.</p>",
        "RoleAliasDescription$roleArn": "<p>The role ARN.</p>",
        "StartThingRegistrationTaskRequest$roleArn": "<p>The IAM role ARN that grants permission the input file.</p>",
        "StreamInfo$roleArn": "<p>An IAM role AWS IoT assumes to access your S3 files.</p>",
        "UpdateAccountAuditConfigurationRequest$roleArn": "<p>The ARN of the role that grants permission to AWS IoT to access information about your devices, policies, certificates and other items as necessary when performing an audit.</p>",
        "UpdateRoleAliasRequest$roleArn": "<p>The role ARN.</p>",
        "UpdateStreamRequest$roleArn": "<p>An IAM role that allows the IoT service principal assumes to access your S3 files.</p>"
      }
    },
    "RuleArn": {
      "base": null,
      "refs": {
        "GetTopicRuleResponse$ruleArn": "<p>The rule ARN.</p>",
        "TopicRuleListItem$ruleArn": "<p>The rule ARN.</p>"
      }
    },
    "RuleName": {
      "base": null,
      "refs": {
        "CreateTopicRuleRequest$ruleName": "<p>The name of the rule.</p>",
        "DeleteTopicRuleRequest$ruleName": "<p>The name of the rule.</p>",
        "DisableTopicRuleRequest$ruleName": "<p>The name of the rule to disable.</p>",
        "EnableTopicRuleRequest$ruleName": "<p>The name of the topic rule to enable.</p>",
        "GetTopicRuleRequest$ruleName": "<p>The name of the rule.</p>",
        "ReplaceTopicRuleRequest$ruleName": "<p>The name of the rule.</p>",
        "TopicRule$ruleName": "<p>The name of the rule.</p>",
        "TopicRuleListItem$ruleName": "<p>The name of the rule.</p>"
      }
    },
    "S3Action": {
      "base": "<p>Describes an action to write data to an Amazon S3 bucket.</p>",
      "refs": {
        "Action$s3": "<p>Write to an Amazon S3 bucket.</p>"
      }
    },
    "S3Bucket": {
      "base": null,
      "refs": {
        "S3Destination$bucket": "<p>The S3 bucket that contains the updated firmware.</p>",
        "S3Location$bucket": "<p>The S3 bucket.</p>"
      }
    },
    "S3Destination": {
      "base": "<p>Describes the location of updated firmware in S3.</p>",
      "refs": {
        "Destination$s3Destination": "<p>Describes the location in S3 of the updated firmware.</p>"
      }
    },
    "S3FileUrl": {
      "base": null,
      "refs": {
        "S3FileUrlList$member": null
      }
    },
    "S3FileUrlList": {
      "base": null,
      "refs": {
        "ListThingRegistrationTaskReportsResponse$resourceLinks": "<p>Links to the task resources.</p>"
      }
    },
    "S3Key": {
      "base": null,
      "refs": {
        "S3Location$key": "<p>The S3 key.</p>"
      }
    },
    "S3Location": {
      "base": "<p>The S3 location.</p>",
      "refs": {
        "FileLocation$s3Location": "<p>The location of the updated firmware in S3.</p>",
        "StreamFile$s3Location": "<p>The location of the file in S3.</p>"
      }
    },
    "S3Version": {
      "base": null,
      "refs": {
        "S3Location$version": "<p>The S3 bucket version.</p>"
      }
    },
    "SQL": {
      "base": null,
      "refs": {
        "TopicRule$sql": "<p>The SQL statement used to query the topic. When using a SQL query with multiple lines, be sure to escape the newline characters.</p>",
        "TopicRulePayload$sql": "<p>The SQL statement used to query the topic. For more information, see <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html#aws-iot-sql-reference\">AWS IoT SQL Reference</a> in the <i>AWS IoT Developer Guide</i>.</p>"
      }
    },
    "SalesforceAction": {
      "base": "<p>Describes an action to write a message to a Salesforce IoT Cloud Input Stream.</p>",
      "refs": {
        "Action$salesforce": "<p>Send a message to a Salesforce IoT Cloud Input Stream.</p>"
      }
    },
    "SalesforceEndpoint": {
      "base": null,
      "refs": {
        "SalesforceAction$url": "<p>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.</p>"
      }
    },
    "SalesforceToken": {
      "base": null,
      "refs": {
        "SalesforceAction$token": "<p>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.</p>"
      }
    },
    "ScheduledAuditArn": {
      "base": null,
      "refs": {
        "CreateScheduledAuditResponse$scheduledAuditArn": "<p>The ARN of the scheduled audit.</p>",
        "DescribeScheduledAuditResponse$scheduledAuditArn": "<p>The ARN of the scheduled audit.</p>",
        "ScheduledAuditMetadata$scheduledAuditArn": "<p>The ARN of the scheduled audit.</p>",
        "UpdateScheduledAuditResponse$scheduledAuditArn": "<p>The ARN of the scheduled audit.</p>"
      }
    },
    "ScheduledAuditMetadata": {
      "base": "<p>Information about the scheduled audit.</p>",
      "refs": {
        "ScheduledAuditMetadataList$member": null
      }
    },
    "ScheduledAuditMetadataList": {
      "base": null,
      "refs": {
        "ListScheduledAuditsResponse$scheduledAudits": "<p>The list of scheduled audits.</p>"
      }
    },
    "ScheduledAuditName": {
      "base": null,
      "refs": {
        "CreateScheduledAuditRequest$scheduledAuditName": "<p>The name you want to give to the scheduled audit. (Max. 128 chars)</p>",
        "DeleteScheduledAuditRequest$scheduledAuditName": "<p>The name of the scheduled audit you want to delete.</p>",
        "DescribeAuditTaskResponse$scheduledAuditName": "<p>The name of the scheduled audit (only if the audit was a scheduled audit).</p>",
        "DescribeScheduledAuditRequest$scheduledAuditName": "<p>The name of the scheduled audit whose information you want to get.</p>",
        "DescribeScheduledAuditResponse$scheduledAuditName": "<p>The name of the scheduled audit.</p>",
        "ScheduledAuditMetadata$scheduledAuditName": "<p>The name of the scheduled audit.</p>",
        "UpdateScheduledAuditRequest$scheduledAuditName": "<p>The name of the scheduled audit. (Max. 128 chars)</p>"
      }
    },
    "SearchIndexRequest": {
      "base": null,
      "refs": {
      }
    },
    "SearchIndexResponse": {
      "base": null,
      "refs": {
      }
    },
    "SearchableAttributes": {
      "base": null,
      "refs": {
        "ThingTypeProperties$searchableAttributes": "<p>A list of searchable thing attribute names.</p>"
      }
    },
    "Seconds": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerResponse$refreshAfterInSeconds": "<p>The number of seconds after which the temporary credentials are refreshed.</p>",
        "TestInvokeAuthorizerResponse$disconnectAfterInSeconds": "<p>The number of seconds after which the connection is terminated.</p>"
      }
    },
    "SecurityProfileArn": {
      "base": null,
      "refs": {
        "CreateSecurityProfileResponse$securityProfileArn": "<p>The ARN of the security profile.</p>",
        "DescribeSecurityProfileResponse$securityProfileArn": "<p>The ARN of the security profile.</p>",
        "SecurityProfileIdentifier$arn": "<p>The ARN of the security profile.</p>",
        "UpdateSecurityProfileResponse$securityProfileArn": "<p>The ARN of the security profile that was updated.</p>"
      }
    },
    "SecurityProfileDescription": {
      "base": null,
      "refs": {
        "CreateSecurityProfileRequest$securityProfileDescription": "<p>A description of the security profile.</p>",
        "DescribeSecurityProfileResponse$securityProfileDescription": "<p>A description of the security profile (associated with the security profile when it was created or updated).</p>",
        "UpdateSecurityProfileRequest$securityProfileDescription": "<p>A description of the security profile.</p>",
        "UpdateSecurityProfileResponse$securityProfileDescription": "<p>The description of the security profile.</p>"
      }
    },
    "SecurityProfileIdentifier": {
      "base": "<p>Identifying information for a Device Defender security profile.</p>",
      "refs": {
        "SecurityProfileIdentifiers$member": null,
        "SecurityProfileTargetMapping$securityProfileIdentifier": "<p>Information that identifies the security profile.</p>"
      }
    },
    "SecurityProfileIdentifiers": {
      "base": null,
      "refs": {
        "ListSecurityProfilesResponse$securityProfileIdentifiers": "<p>A list of security profile identifiers (names and ARNs).</p>"
      }
    },
    "SecurityProfileName": {
      "base": null,
      "refs": {
        "ActiveViolation$securityProfileName": "<p>The security profile whose behavior is in violation.</p>",
        "AttachSecurityProfileRequest$securityProfileName": "<p>The security profile that is attached.</p>",
        "CreateSecurityProfileRequest$securityProfileName": "<p>The name you are giving to the security profile.</p>",
        "CreateSecurityProfileResponse$securityProfileName": "<p>The name you gave to the security profile.</p>",
        "DeleteSecurityProfileRequest$securityProfileName": "<p>The name of the security profile to be deleted.</p>",
        "DescribeSecurityProfileRequest$securityProfileName": "<p>The name of the security profile whose information you want to get.</p>",
        "DescribeSecurityProfileResponse$securityProfileName": "<p>The name of the security profile.</p>",
        "DetachSecurityProfileRequest$securityProfileName": "<p>The security profile that is detached.</p>",
        "ListActiveViolationsRequest$securityProfileName": "<p>The name of the Device Defender security profile for which violations are listed.</p>",
        "ListTargetsForSecurityProfileRequest$securityProfileName": "<p>The security profile.</p>",
        "ListViolationEventsRequest$securityProfileName": "<p>A filter to limit results to those alerts generated by the specified security profile.</p>",
        "SecurityProfileIdentifier$name": "<p>The name you have given to the security profile.</p>",
        "UpdateSecurityProfileRequest$securityProfileName": "<p>The name of the security profile you want to update.</p>",
        "UpdateSecurityProfileResponse$securityProfileName": "<p>The name of the security profile that was updated.</p>",
        "ViolationEvent$securityProfileName": "<p>The name of the security profile whose behavior was violated.</p>"
      }
    },
    "SecurityProfileTarget": {
      "base": "<p>A target to which an alert is sent when a security profile behavior is violated.</p>",
      "refs": {
        "SecurityProfileTargetMapping$target": "<p>Information about the target (thing group) associated with the security profile.</p>",
        "SecurityProfileTargets$member": null
      }
    },
    "SecurityProfileTargetArn": {
      "base": null,
      "refs": {
        "AttachSecurityProfileRequest$securityProfileTargetArn": "<p>The ARN of the target (thing group) to which the security profile is attached.</p>",
        "DetachSecurityProfileRequest$securityProfileTargetArn": "<p>The ARN of the thing group from which the security profile is detached.</p>",
        "ListSecurityProfilesForTargetRequest$securityProfileTargetArn": "<p>The ARN of the target (thing group) whose attached security profiles you want to get.</p>",
        "SecurityProfileTarget$arn": "<p>The ARN of the security profile.</p>"
      }
    },
    "SecurityProfileTargetMapping": {
      "base": "<p>Information about a security profile and the target associated with it.</p>",
      "refs": {
        "SecurityProfileTargetMappings$member": null
      }
    },
    "SecurityProfileTargetMappings": {
      "base": null,
      "refs": {
        "ListSecurityProfilesForTargetResponse$securityProfileTargetMappings": "<p>A list of security profiles and their associated targets.</p>"
      }
    },
    "SecurityProfileTargets": {
      "base": null,
      "refs": {
        "ListTargetsForSecurityProfileResponse$securityProfileTargets": "<p>The thing groups to which the security profile is attached.</p>"
      }
    },
    "ServiceUnavailableException": {
      "base": "<p>The service is temporarily unavailable.</p>",
      "refs": {
      }
    },
    "SetAsActive": {
      "base": null,
      "refs": {
        "AcceptCertificateTransferRequest$setAsActive": "<p>Specifies whether the certificate is active.</p>",
        "CreateCertificateFromCsrRequest$setAsActive": "<p>Specifies whether the certificate is active.</p>",
        "CreateKeysAndCertificateRequest$setAsActive": "<p>Specifies whether the certificate is active.</p>",
        "RegisterCACertificateRequest$setAsActive": "<p>A boolean value that specifies if the CA certificate is set to active.</p>"
      }
    },
    "SetAsActiveFlag": {
      "base": null,
      "refs": {
        "RegisterCertificateRequest$setAsActive": "<p>A boolean value that specifies if the CA certificate is set to active.</p>"
      }
    },
    "SetAsDefault": {
      "base": null,
      "refs": {
        "CreatePolicyVersionRequest$setAsDefault": "<p>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).</p>"
      }
    },
    "SetDefaultAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "SetDefaultAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "SetDefaultPolicyVersionRequest": {
      "base": "<p>The input for the SetDefaultPolicyVersion operation.</p>",
      "refs": {
      }
    },
    "SetLoggingOptionsRequest": {
      "base": "<p>The input for the SetLoggingOptions operation.</p>",
      "refs": {
      }
    },
    "SetV2LoggingLevelRequest": {
      "base": null,
      "refs": {
      }
    },
    "SetV2LoggingOptionsRequest": {
      "base": null,
      "refs": {
      }
    },
    "Signature": {
      "base": null,
      "refs": {
        "CodeSigningSignature$inlineDocument": "<p>A base64 encoded binary representation of the code signing signature.</p>"
      }
    },
    "SignatureAlgorithm": {
      "base": null,
      "refs": {
        "CustomCodeSigning$signatureAlgorithm": "<p>The signature algorithm used to code sign the file.</p>"
      }
    },
    "SigningJobId": {
      "base": null,
      "refs": {
        "CodeSigning$awsSignerJobId": "<p>The ID of the AWSSignerJob which was created to sign the file.</p>"
      }
    },
    "SigningProfileName": {
      "base": null,
      "refs": {
        "StartSigningJobParameter$signingProfileName": "<p>The code-signing profile name.</p>"
      }
    },
    "SigningProfileParameter": {
      "base": "<p>Describes the code-signing profile.</p>",
      "refs": {
        "StartSigningJobParameter$signingProfileParameter": "<p>Describes the code-signing profile.</p>"
      }
    },
    "SkyfallMaxResults": {
      "base": null,
      "refs": {
        "ListV2LoggingLevelsRequest$maxResults": "<p>The maximum number of results to return at one time.</p>"
      }
    },
    "SnsAction": {
      "base": "<p>Describes an action to publish to an Amazon SNS topic.</p>",
      "refs": {
        "Action$sns": "<p>Publish to an Amazon SNS topic.</p>"
      }
    },
    "SqlParseException": {
      "base": "<p>The Rule-SQL expression can't be parsed correctly.</p>",
      "refs": {
      }
    },
    "SqsAction": {
      "base": "<p>Describes an action to publish data to an Amazon SQS queue.</p>",
      "refs": {
        "Action$sqs": "<p>Publish to an Amazon SQS queue.</p>"
      }
    },
    "StartOnDemandAuditTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "StartOnDemandAuditTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "StartSigningJobParameter": {
      "base": "<p>Information required to start a signing job.</p>",
      "refs": {
        "CodeSigning$startSigningJobParameter": "<p>Describes the code-signing job.</p>"
      }
    },
    "StartThingRegistrationTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "StartThingRegistrationTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "StateMachineName": {
      "base": null,
      "refs": {
        "StepFunctionsAction$stateMachineName": "<p>The name of the Step Functions state machine whose execution will be started.</p>"
      }
    },
    "StateReason": {
      "base": null,
      "refs": {
        "CloudwatchAlarmAction$stateReason": "<p>The reason for the alarm change.</p>"
      }
    },
    "StateValue": {
      "base": null,
      "refs": {
        "CloudwatchAlarmAction$stateValue": "<p>The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.</p>"
      }
    },
    "Status": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$status": "<p>The status of the bulk thing provisioning task.</p>",
        "ListThingRegistrationTasksRequest$status": "<p>The status of the bulk thing provisioning task.</p>"
      }
    },
    "StepFunctionsAction": {
      "base": "<p>Starts execution of a Step Functions state machine.</p>",
      "refs": {
        "Action$stepFunctions": "<p>Starts execution of a Step Functions state machine.</p>"
      }
    },
    "StopThingRegistrationTaskRequest": {
      "base": null,
      "refs": {
      }
    },
    "StopThingRegistrationTaskResponse": {
      "base": null,
      "refs": {
      }
    },
    "Stream": {
      "base": "<p>Describes a group of files that can be streamed.</p>",
      "refs": {
        "FileLocation$stream": "<p>The stream that contains the OTA update.</p>"
      }
    },
    "StreamArn": {
      "base": null,
      "refs": {
        "CreateStreamResponse$streamArn": "<p>The stream ARN.</p>",
        "StreamInfo$streamArn": "<p>The stream ARN.</p>",
        "StreamSummary$streamArn": "<p>The stream ARN.</p>",
        "UpdateStreamResponse$streamArn": "<p>The stream ARN.</p>"
      }
    },
    "StreamDescription": {
      "base": null,
      "refs": {
        "CreateStreamRequest$description": "<p>A description of the stream.</p>",
        "CreateStreamResponse$description": "<p>A description of the stream.</p>",
        "StreamInfo$description": "<p>The description of the stream.</p>",
        "StreamSummary$description": "<p>A description of the stream.</p>",
        "UpdateStreamRequest$description": "<p>The description of the stream.</p>",
        "UpdateStreamResponse$description": "<p>A description of the stream.</p>"
      }
    },
    "StreamFile": {
      "base": "<p>Represents a file to stream.</p>",
      "refs": {
        "StreamFiles$member": null
      }
    },
    "StreamFiles": {
      "base": null,
      "refs": {
        "CreateStreamRequest$files": "<p>The files to stream.</p>",
        "StreamInfo$files": "<p>The files to stream.</p>",
        "UpdateStreamRequest$files": "<p>The files associated with the stream.</p>"
      }
    },
    "StreamId": {
      "base": null,
      "refs": {
        "CreateStreamRequest$streamId": "<p>The stream ID.</p>",
        "CreateStreamResponse$streamId": "<p>The stream ID.</p>",
        "DeleteStreamRequest$streamId": "<p>The stream ID.</p>",
        "DescribeStreamRequest$streamId": "<p>The stream ID.</p>",
        "Stream$streamId": "<p>The stream ID.</p>",
        "StreamInfo$streamId": "<p>The stream ID.</p>",
        "StreamSummary$streamId": "<p>The stream ID.</p>",
        "UpdateStreamRequest$streamId": "<p>The stream ID.</p>",
        "UpdateStreamResponse$streamId": "<p>The stream ID.</p>"
      }
    },
    "StreamInfo": {
      "base": "<p>Information about a stream.</p>",
      "refs": {
        "DescribeStreamResponse$streamInfo": "<p>Information about the stream.</p>"
      }
    },
    "StreamName": {
      "base": null,
      "refs": {
        "KinesisAction$streamName": "<p>The name of the Amazon Kinesis stream.</p>"
      }
    },
    "StreamSummary": {
      "base": "<p>A summary of a stream.</p>",
      "refs": {
        "StreamsSummary$member": null
      }
    },
    "StreamVersion": {
      "base": null,
      "refs": {
        "CreateStreamResponse$streamVersion": "<p>The version of the stream.</p>",
        "StreamInfo$streamVersion": "<p>The stream version.</p>",
        "StreamSummary$streamVersion": "<p>The stream version.</p>",
        "UpdateStreamResponse$streamVersion": "<p>The stream version.</p>"
      }
    },
    "StreamsSummary": {
      "base": null,
      "refs": {
        "ListStreamsResponse$streams": "<p>A list of streams.</p>"
      }
    },
    "String": {
      "base": null,
      "refs": {
        "CloudwatchMetricAction$metricNamespace": "<p>The CloudWatch metric namespace name.</p>",
        "CloudwatchMetricAction$metricName": "<p>The CloudWatch metric name.</p>",
        "CloudwatchMetricAction$metricValue": "<p>The CloudWatch metric value.</p>",
        "CloudwatchMetricAction$metricUnit": "<p>The <a href=\"http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit\">metric unit</a> supported by CloudWatch.</p>",
        "CloudwatchMetricAction$metricTimestamp": "<p>An optional <a href=\"http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp\">Unix timestamp</a>.</p>",
        "StringMap$key": null,
        "StringMap$value": null
      }
    },
    "StringMap": {
      "base": null,
      "refs": {
        "NonCompliantResource$additionalInfo": "<p>Additional information about the non-compliant resource.</p>",
        "RelatedResource$additionalInfo": "<p>Additional information about the resource.</p>"
      }
    },
    "SucceededThings": {
      "base": null,
      "refs": {
        "JobProcessDetails$numberOfSucceededThings": "<p>The number of things which successfully completed the job.</p>"
      }
    },
    "TableName": {
      "base": null,
      "refs": {
        "DynamoDBAction$tableName": "<p>The name of the DynamoDB table.</p>",
        "PutItemInput$tableName": "<p>The table where the message data will be written</p>"
      }
    },
    "Target": {
      "base": null,
      "refs": {
        "Targets$member": null
      }
    },
    "TargetArn": {
      "base": null,
      "refs": {
        "AuditNotificationTarget$targetArn": "<p>The ARN of the target (SNS topic) to which audit notifications are sent.</p>",
        "JobTargets$member": null
      }
    },
    "TargetAuditCheckNames": {
      "base": null,
      "refs": {
        "CreateScheduledAuditRequest$targetCheckNames": "<p>Which checks are performed during the scheduled audit. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)</p>",
        "DescribeScheduledAuditResponse$targetCheckNames": "<p>Which checks are performed during the scheduled audit. (Note that checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)</p>",
        "StartOnDemandAuditTaskRequest$targetCheckNames": "<p>Which checks are performed during the audit. The checks you specify must be enabled for your account or an exception occurs. Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.</p>",
        "UpdateScheduledAuditRequest$targetCheckNames": "<p>Which checks are performed during the scheduled audit. Checks must be enabled for your account. (Use <code>DescribeAccountAuditConfiguration</code> to see the list of all checks including those that are enabled or <code>UpdateAccountAuditConfiguration</code> to select which checks are enabled.)</p>"
      }
    },
    "TargetSelection": {
      "base": null,
      "refs": {
        "CreateJobRequest$targetSelection": "<p>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.</p>",
        "CreateOTAUpdateRequest$targetSelection": "<p>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.</p>",
        "Job$targetSelection": "<p>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. </p>",
        "JobSummary$targetSelection": "<p>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.</p>",
        "ListJobsRequest$targetSelection": "<p>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. </p>",
        "OTAUpdateInfo$targetSelection": "<p>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. </p>"
      }
    },
    "Targets": {
      "base": null,
      "refs": {
        "CreateOTAUpdateRequest$targets": "<p>The targeted devices to receive OTA updates.</p>",
        "OTAUpdateInfo$targets": "<p>The targets of the OTA update.</p>"
      }
    },
    "TaskId": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskRequest$taskId": "<p>The task ID.</p>",
        "DescribeThingRegistrationTaskResponse$taskId": "<p>The task ID.</p>",
        "ListThingRegistrationTaskReportsRequest$taskId": "<p>The id of the task.</p>",
        "StartThingRegistrationTaskResponse$taskId": "<p>The bulk thing provisioning task ID.</p>",
        "StopThingRegistrationTaskRequest$taskId": "<p>The bulk thing provisioning task ID.</p>",
        "TaskIdList$member": null
      }
    },
    "TaskIdList": {
      "base": null,
      "refs": {
        "ListThingRegistrationTasksResponse$taskIds": "<p>A list of bulk thing provisioning task IDs.</p>"
      }
    },
    "TaskStatistics": {
      "base": "<p>Statistics for the checks performed during the audit.</p>",
      "refs": {
        "DescribeAuditTaskResponse$taskStatistics": "<p>Statistical information about the audit.</p>"
      }
    },
    "TemplateBody": {
      "base": null,
      "refs": {
        "DescribeThingRegistrationTaskResponse$templateBody": "<p>The task's template.</p>",
        "RegisterThingRequest$templateBody": "<p>The provisioning template. See <a href=\"http://docs.aws.amazon.com/iot/latest/developerguide/programmatic-provisioning.html\">Programmatic Provisioning</a> for more information.</p>",
        "RegistrationConfig$templateBody": "<p>The template body.</p>",
        "StartThingRegistrationTaskRequest$templateBody": "<p>The provisioning template.</p>"
      }
    },
    "TestAuthorizationRequest": {
      "base": null,
      "refs": {
      }
    },
    "TestAuthorizationResponse": {
      "base": null,
      "refs": {
      }
    },
    "TestInvokeAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "TestInvokeAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "ThingArn": {
      "base": null,
      "refs": {
        "AddThingToThingGroupRequest$thingArn": "<p>The ARN of the thing to add to a group.</p>",
        "CreateThingResponse$thingArn": "<p>The ARN of the new thing.</p>",
        "DescribeThingResponse$thingArn": "<p>The ARN of the thing to describe.</p>",
        "JobExecution$thingArn": "<p>The ARN of the thing on which the job execution is running.</p>",
        "JobExecutionSummaryForJob$thingArn": "<p>The ARN of the thing on which the job execution is running.</p>",
        "RemoveThingFromThingGroupRequest$thingArn": "<p>The ARN of the thing to remove from the group.</p>",
        "ThingAttribute$thingArn": "<p>The thing ARN.</p>"
      }
    },
    "ThingAttribute": {
      "base": "<p>The properties of the thing, including thing name, thing type name, and a list of thing attributes.</p>",
      "refs": {
        "ThingAttributeList$member": null
      }
    },
    "ThingAttributeList": {
      "base": null,
      "refs": {
        "ListThingsResponse$things": "<p>The things.</p>"
      }
    },
    "ThingDocument": {
      "base": "<p>The thing search index document.</p>",
      "refs": {
        "ThingDocumentList$member": null
      }
    },
    "ThingDocumentList": {
      "base": null,
      "refs": {
        "SearchIndexResponse$things": "<p>The things that match the search query.</p>"
      }
    },
    "ThingGroupArn": {
      "base": null,
      "refs": {
        "AddThingToThingGroupRequest$thingGroupArn": "<p>The ARN of the group to which you are adding a thing.</p>",
        "CreateThingGroupResponse$thingGroupArn": "<p>The thing group ARN.</p>",
        "DescribeThingGroupResponse$thingGroupArn": "<p>The thing group ARN.</p>",
        "GroupNameAndArn$groupArn": "<p>The group ARN.</p>",
        "RemoveThingFromThingGroupRequest$thingGroupArn": "<p>The group ARN.</p>"
      }
    },
    "ThingGroupDescription": {
      "base": null,
      "refs": {
        "ThingGroupDocument$thingGroupDescription": "<p>The thing group description.</p>",
        "ThingGroupProperties$thingGroupDescription": "<p>The thing group description.</p>"
      }
    },
    "ThingGroupDocument": {
      "base": "<p>The thing group search index document.</p>",
      "refs": {
        "ThingGroupDocumentList$member": null
      }
    },
    "ThingGroupDocumentList": {
      "base": null,
      "refs": {
        "SearchIndexResponse$thingGroups": "<p>The thing groups that match the search query.</p>"
      }
    },
    "ThingGroupId": {
      "base": null,
      "refs": {
        "CreateThingGroupResponse$thingGroupId": "<p>The thing group ID.</p>",
        "DescribeThingGroupResponse$thingGroupId": "<p>The thing group ID.</p>",
        "JobSummary$thingGroupId": "<p>The ID of the thing group.</p>",
        "ListJobsRequest$thingGroupId": "<p>A filter that limits the returned jobs to those for the specified group.</p>",
        "ThingGroupDocument$thingGroupId": "<p>The thing group ID.</p>"
      }
    },
    "ThingGroupIndexingConfiguration": {
      "base": "<p>Thing group indexing configuration.</p>",
      "refs": {
        "GetIndexingConfigurationResponse$thingGroupIndexingConfiguration": "<p>The index configuration.</p>",
        "UpdateIndexingConfigurationRequest$thingGroupIndexingConfiguration": "<p>Thing group indexing configuration.</p>"
      }
    },
    "ThingGroupIndexingMode": {
      "base": null,
      "refs": {
        "ThingGroupIndexingConfiguration$thingGroupIndexingMode": "<p>Thing group indexing mode.</p>"
      }
    },
    "ThingGroupList": {
      "base": null,
      "refs": {
        "UpdateThingGroupsForThingRequest$thingGroupsToAdd": "<p>The groups to which the thing will be added.</p>",
        "UpdateThingGroupsForThingRequest$thingGroupsToRemove": "<p>The groups from which the thing will be removed.</p>"
      }
    },
    "ThingGroupMetadata": {
      "base": "<p>Thing group metadata.</p>",
      "refs": {
        "DescribeThingGroupResponse$thingGroupMetadata": "<p>Thing group metadata.</p>"
      }
    },
    "ThingGroupName": {
      "base": null,
      "refs": {
        "AddThingToThingGroupRequest$thingGroupName": "<p>The name of the group to which you are adding a thing.</p>",
        "CreateThingGroupRequest$thingGroupName": "<p>The thing group name to create.</p>",
        "CreateThingGroupRequest$parentGroupName": "<p>The name of the parent thing group.</p>",
        "CreateThingGroupResponse$thingGroupName": "<p>The thing group name.</p>",
        "DeleteThingGroupRequest$thingGroupName": "<p>The name of the thing group to delete.</p>",
        "DescribeThingGroupRequest$thingGroupName": "<p>The name of the thing group.</p>",
        "DescribeThingGroupResponse$thingGroupName": "<p>The name of the thing group.</p>",
        "GroupNameAndArn$groupName": "<p>The group name.</p>",
        "ListJobsRequest$thingGroupName": "<p>A filter that limits the returned jobs to those for the specified group.</p>",
        "ListThingGroupsRequest$parentGroup": "<p>A filter that limits the results to those with the specified parent group.</p>",
        "ListThingGroupsRequest$namePrefixFilter": "<p>A filter that limits the results to those with the specified name prefix.</p>",
        "ListThingsInThingGroupRequest$thingGroupName": "<p>The thing group name.</p>",
        "RemoveThingFromThingGroupRequest$thingGroupName": "<p>The group name.</p>",
        "ThingGroupDocument$thingGroupName": "<p>The thing group name.</p>",
        "ThingGroupList$member": null,
        "ThingGroupMetadata$parentGroupName": "<p>The parent thing group name.</p>",
        "ThingGroupNameList$member": null,
        "UpdateThingGroupRequest$thingGroupName": "<p>The thing group to update.</p>"
      }
    },
    "ThingGroupNameAndArnList": {
      "base": null,
      "refs": {
        "ListThingGroupsForThingResponse$thingGroups": "<p>The thing groups.</p>",
        "ListThingGroupsResponse$thingGroups": "<p>The thing groups.</p>",
        "ThingGroupMetadata$rootToParentThingGroups": "<p>The root parent thing group.</p>"
      }
    },
    "ThingGroupNameList": {
      "base": null,
      "refs": {
        "ThingDocument$thingGroupNames": "<p>Thing group names.</p>",
        "ThingGroupDocument$parentGroupNames": "<p>Parent group names.</p>"
      }
    },
    "ThingGroupProperties": {
      "base": "<p>Thing group properties.</p>",
      "refs": {
        "CreateThingGroupRequest$thingGroupProperties": "<p>The thing group properties.</p>",
        "DescribeThingGroupResponse$thingGroupProperties": "<p>The thing group properties.</p>",
        "UpdateThingGroupRequest$thingGroupProperties": "<p>The thing group properties.</p>"
      }
    },
    "ThingId": {
      "base": null,
      "refs": {
        "CreateThingResponse$thingId": "<p>The thing ID.</p>",
        "DescribeThingResponse$thingId": "<p>The ID of the thing to describe.</p>",
        "ThingDocument$thingId": "<p>The thing ID.</p>"
      }
    },
    "ThingIndexingConfiguration": {
      "base": "<p>Thing indexing configuration.</p>",
      "refs": {
        "GetIndexingConfigurationResponse$thingIndexingConfiguration": "<p>Thing indexing configuration.</p>",
        "UpdateIndexingConfigurationRequest$thingIndexingConfiguration": "<p>Thing indexing configuration.</p>"
      }
    },
    "ThingIndexingMode": {
      "base": null,
      "refs": {
        "ThingIndexingConfiguration$thingIndexingMode": "<p>Thing indexing mode. Valid values are: </p> <ul> <li> <p>REGISTRY – Your thing index will contain only registry data.</p> </li> <li> <p>REGISTRY_AND_SHADOW - Your thing index will contain registry and shadow data.</p> </li> <li> <p>OFF - Thing indexing is disabled.</p> </li> </ul>"
      }
    },
    "ThingName": {
      "base": null,
      "refs": {
        "ActiveViolation$thingName": "<p>The name of the thing responsible for the active violation.</p>",
        "AddThingToThingGroupRequest$thingName": "<p>The name of the thing to add to a group.</p>",
        "AttachThingPrincipalRequest$thingName": "<p>The name of the thing.</p>",
        "CancelJobExecutionRequest$thingName": "<p>The name of the thing whose execution of the job will be canceled.</p>",
        "CreateThingRequest$thingName": "<p>The name of the thing to create.</p>",
        "CreateThingResponse$thingName": "<p>The name of the new thing.</p>",
        "DeleteJobExecutionRequest$thingName": "<p>The name of the thing whose job execution will be deleted.</p>",
        "DeleteThingRequest$thingName": "<p>The name of the thing to delete.</p>",
        "DescribeJobExecutionRequest$thingName": "<p>The name of the thing on which the job execution is running.</p>",
        "DescribeThingRequest$thingName": "<p>The name of the thing.</p>",
        "DescribeThingResponse$thingName": "<p>The name of the thing.</p>",
        "DetachThingPrincipalRequest$thingName": "<p>The name of the thing.</p>",
        "GetEffectivePoliciesRequest$thingName": "<p>The thing name.</p>",
        "ListActiveViolationsRequest$thingName": "<p>The name of the thing whose active violations are listed.</p>",
        "ListJobExecutionsForThingRequest$thingName": "<p>The thing name.</p>",
        "ListThingGroupsForThingRequest$thingName": "<p>The thing name.</p>",
        "ListThingPrincipalsRequest$thingName": "<p>The name of the thing.</p>",
        "ListViolationEventsRequest$thingName": "<p>A filter to limit results to those alerts caused by the specified thing.</p>",
        "RemoveThingFromThingGroupRequest$thingName": "<p>The name of the thing to remove from the group.</p>",
        "ThingAttribute$thingName": "<p>The name of the thing.</p>",
        "ThingDocument$thingName": "<p>The thing name.</p>",
        "ThingNameList$member": null,
        "UpdateThingGroupsForThingRequest$thingName": "<p>The thing whose group memberships will be updated.</p>",
        "UpdateThingRequest$thingName": "<p>The name of the thing to update.</p>",
        "ViolationEvent$thingName": "<p>The name of the thing responsible for the violation event.</p>"
      }
    },
    "ThingNameList": {
      "base": null,
      "refs": {
        "ListPrincipalThingsResponse$things": "<p>The things.</p>",
        "ListThingsInThingGroupResponse$things": "<p>The things in the specified thing group.</p>"
      }
    },
    "ThingTypeArn": {
      "base": null,
      "refs": {
        "CreateThingTypeResponse$thingTypeArn": "<p>The Amazon Resource Name (ARN) of the thing type.</p>",
        "DescribeThingTypeResponse$thingTypeArn": "<p>The thing type ARN.</p>",
        "ThingTypeDefinition$thingTypeArn": "<p>The thing type ARN.</p>"
      }
    },
    "ThingTypeDefinition": {
      "base": "<p>The definition of the thing type, including thing type name and description.</p>",
      "refs": {
        "ThingTypeList$member": null
      }
    },
    "ThingTypeDescription": {
      "base": null,
      "refs": {
        "ThingTypeProperties$thingTypeDescription": "<p>The description of the thing type.</p>"
      }
    },
    "ThingTypeId": {
      "base": null,
      "refs": {
        "CreateThingTypeResponse$thingTypeId": "<p>The thing type ID.</p>",
        "DescribeThingTypeResponse$thingTypeId": "<p>The thing type ID.</p>"
      }
    },
    "ThingTypeList": {
      "base": null,
      "refs": {
        "ListThingTypesResponse$thingTypes": "<p>The thing types.</p>"
      }
    },
    "ThingTypeMetadata": {
      "base": "<p>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.</p>",
      "refs": {
        "DescribeThingTypeResponse$thingTypeMetadata": "<p>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.</p>",
        "ThingTypeDefinition$thingTypeMetadata": "<p>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.</p>"
      }
    },
    "ThingTypeName": {
      "base": null,
      "refs": {
        "CreateThingRequest$thingTypeName": "<p>The name of the thing type associated with the new thing.</p>",
        "CreateThingTypeRequest$thingTypeName": "<p>The name of the thing type.</p>",
        "CreateThingTypeResponse$thingTypeName": "<p>The name of the thing type.</p>",
        "DeleteThingTypeRequest$thingTypeName": "<p>The name of the thing type.</p>",
        "DeprecateThingTypeRequest$thingTypeName": "<p>The name of the thing type to deprecate.</p>",
        "DescribeThingResponse$thingTypeName": "<p>The thing type name.</p>",
        "DescribeThingTypeRequest$thingTypeName": "<p>The name of the thing type.</p>",
        "DescribeThingTypeResponse$thingTypeName": "<p>The name of the thing type.</p>",
        "ListThingTypesRequest$thingTypeName": "<p>The name of the thing type.</p>",
        "ListThingsRequest$thingTypeName": "<p>The name of the thing type used to search for things.</p>",
        "ThingAttribute$thingTypeName": "<p>The name of the thing type, if the thing has been associated with a type.</p>",
        "ThingDocument$thingTypeName": "<p>The thing type name.</p>",
        "ThingTypeDefinition$thingTypeName": "<p>The name of the thing type.</p>",
        "UpdateThingRequest$thingTypeName": "<p>The name of the thing type.</p>"
      }
    },
    "ThingTypeProperties": {
      "base": "<p>The ThingTypeProperties contains information about the thing type including: a thing type description, and a list of searchable thing attribute names.</p>",
      "refs": {
        "CreateThingTypeRequest$thingTypeProperties": "<p>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.</p>",
        "DescribeThingTypeResponse$thingTypeProperties": "<p>The ThingTypeProperties contains information about the thing type including description, and a list of searchable thing attribute names.</p>",
        "ThingTypeDefinition$thingTypeProperties": "<p>The ThingTypeProperties for the thing type.</p>"
      }
    },
    "ThrottlingException": {
      "base": "<p>The rate exceeds the limit.</p>",
      "refs": {
      }
    },
    "Timestamp": {
      "base": null,
      "refs": {
        "ActiveViolation$lastViolationTime": "<p>The time the most recent violation occurred.</p>",
        "ActiveViolation$violationStartTime": "<p>The time the violation started.</p>",
        "AuditFinding$taskStartTime": "<p>The time the audit started.</p>",
        "AuditFinding$findingTime": "<p>The time the result (finding) was discovered.</p>",
        "DescribeAuditTaskResponse$taskStartTime": "<p>The time the audit started.</p>",
        "DescribeSecurityProfileResponse$creationDate": "<p>The time the security profile was created.</p>",
        "DescribeSecurityProfileResponse$lastModifiedDate": "<p>The time the security profile was last modified.</p>",
        "ListAuditFindingsRequest$startTime": "<p>A filter to limit results to those found after the specified time. You must specify either the startTime and endTime or the taskId, but not both.</p>",
        "ListAuditFindingsRequest$endTime": "<p>A filter to limit results to those found before the specified time. You must specify either the startTime and endTime or the taskId, but not both.</p>",
        "ListAuditTasksRequest$startTime": "<p>The beginning of the time period. Note that audit information is retained for a limited time (180 days). Requesting a start time prior to what is retained results in an \"InvalidRequestException\".</p>",
        "ListAuditTasksRequest$endTime": "<p>The end of the time period.</p>",
        "ListViolationEventsRequest$startTime": "<p>The start time for the alerts to be listed.</p>",
        "ListViolationEventsRequest$endTime": "<p>The end time for the alerts to be listed.</p>",
        "UpdateSecurityProfileResponse$creationDate": "<p>The time the security profile was created.</p>",
        "UpdateSecurityProfileResponse$lastModifiedDate": "<p>The time the security profile was last modified.</p>",
        "ViolationEvent$violationEventTime": "<p>The time the violation event occurred.</p>"
      }
    },
    "Token": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerRequest$token": "<p>The token returned by your custom authentication service.</p>"
      }
    },
    "TokenKeyName": {
      "base": null,
      "refs": {
        "AuthorizerDescription$tokenKeyName": "<p>The key used to extract the token from the HTTP headers.</p>",
        "CreateAuthorizerRequest$tokenKeyName": "<p>The name of the token key used to extract the token from the HTTP headers.</p>",
        "UpdateAuthorizerRequest$tokenKeyName": "<p>The key used to extract the token from the HTTP headers. </p>"
      }
    },
    "TokenSignature": {
      "base": null,
      "refs": {
        "TestInvokeAuthorizerRequest$tokenSignature": "<p>The signature made with the token and your custom authentication service's private key.</p>"
      }
    },
    "Topic": {
      "base": null,
      "refs": {
        "ListTopicRulesRequest$topic": "<p>The topic.</p>"
      }
    },
    "TopicPattern": {
      "base": null,
      "refs": {
        "RepublishAction$topic": "<p>The name of the MQTT topic.</p>",
        "TopicRuleListItem$topicPattern": "<p>The pattern for the topic names that apply.</p>"
      }
    },
    "TopicRule": {
      "base": "<p>Describes a rule.</p>",
      "refs": {
        "GetTopicRuleResponse$rule": "<p>The rule.</p>"
      }
    },
    "TopicRuleList": {
      "base": null,
      "refs": {
        "ListTopicRulesResponse$rules": "<p>The rules.</p>"
      }
    },
    "TopicRuleListItem": {
      "base": "<p>Describes a rule.</p>",
      "refs": {
        "TopicRuleList$member": null
      }
    },
    "TopicRulePayload": {
      "base": "<p>Describes a rule.</p>",
      "refs": {
        "CreateTopicRuleRequest$topicRulePayload": "<p>The rule payload.</p>",
        "ReplaceTopicRuleRequest$topicRulePayload": "<p>The rule payload.</p>"
      }
    },
    "TotalChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$totalChecks": "<p>The number of checks in this audit.</p>"
      }
    },
    "TotalResourcesCount": {
      "base": null,
      "refs": {
        "AuditCheckDetails$totalResourcesCount": "<p>The number of resources on which the check was performed.</p>"
      }
    },
    "TransferAlreadyCompletedException": {
      "base": "<p>You can't revert the certificate transfer because the transfer is already complete.</p>",
      "refs": {
      }
    },
    "TransferCertificateRequest": {
      "base": "<p>The input for the TransferCertificate operation.</p>",
      "refs": {
      }
    },
    "TransferCertificateResponse": {
      "base": "<p>The output from the TransferCertificate operation.</p>",
      "refs": {
      }
    },
    "TransferConflictException": {
      "base": "<p>You can't transfer the certificate because authorization policies are still attached.</p>",
      "refs": {
      }
    },
    "TransferData": {
      "base": "<p>Data used to transfer a certificate to an AWS account.</p>",
      "refs": {
        "CertificateDescription$transferData": "<p>The transfer data.</p>"
      }
    },
    "UnauthorizedException": {
      "base": "<p>You are not authorized to perform this operation.</p>",
      "refs": {
      }
    },
    "UndoDeprecate": {
      "base": null,
      "refs": {
        "DeprecateThingTypeRequest$undoDeprecate": "<p>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.</p>"
      }
    },
    "UnsignedLong": {
      "base": null,
      "refs": {
        "MetricValue$count": "<p>If the <code>comparisonOperator</code> calls for a numeric value, use this to specify that numeric value to be compared with the <code>metric</code>.</p>"
      }
    },
    "UpdateAccountAuditConfigurationRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateAccountAuditConfigurationResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateAuthorizerRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateAuthorizerResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateCACertificateRequest": {
      "base": "<p>The input to the UpdateCACertificate operation.</p>",
      "refs": {
      }
    },
    "UpdateCertificateRequest": {
      "base": "<p>The input for the UpdateCertificate operation.</p>",
      "refs": {
      }
    },
    "UpdateEventConfigurationsRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateEventConfigurationsResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateIndexingConfigurationRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateIndexingConfigurationResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateRoleAliasRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateRoleAliasResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateScheduledAuditRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateScheduledAuditResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateSecurityProfileRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateSecurityProfileResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateStreamRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateStreamResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateThingGroupRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateThingGroupResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateThingGroupsForThingRequest": {
      "base": null,
      "refs": {
      }
    },
    "UpdateThingGroupsForThingResponse": {
      "base": null,
      "refs": {
      }
    },
    "UpdateThingRequest": {
      "base": "<p>The input for the UpdateThing operation.</p>",
      "refs": {
      }
    },
    "UpdateThingResponse": {
      "base": "<p>The output from the UpdateThing operation.</p>",
      "refs": {
      }
    },
    "UseBase64": {
      "base": null,
      "refs": {
        "SqsAction$useBase64": "<p>Specifies whether to use Base64 encoding.</p>"
      }
    },
    "Valid": {
      "base": null,
      "refs": {
        "ValidateSecurityProfileBehaviorsResponse$valid": "<p>True if the behaviors were valid.</p>"
      }
    },
    "ValidateSecurityProfileBehaviorsRequest": {
      "base": null,
      "refs": {
      }
    },
    "ValidateSecurityProfileBehaviorsResponse": {
      "base": null,
      "refs": {
      }
    },
    "ValidationError": {
      "base": "<p>Information about an error found in a behavior specification.</p>",
      "refs": {
        "ValidationErrors$member": null
      }
    },
    "ValidationErrors": {
      "base": null,
      "refs": {
        "ValidateSecurityProfileBehaviorsResponse$validationErrors": "<p>The list of any errors found in the behaviors.</p>"
      }
    },
    "Value": {
      "base": null,
      "refs": {
        "AdditionalParameterMap$value": null,
        "AttributesMap$value": null,
        "Parameters$value": null
      }
    },
    "Version": {
      "base": null,
      "refs": {
        "DescribeSecurityProfileResponse$version": "<p>The version of the security profile. A new version is generated whenever the security profile is updated.</p>",
        "DescribeThingGroupResponse$version": "<p>The version of the thing group.</p>",
        "DescribeThingResponse$version": "<p>The current version of the thing record in the registry.</p> <note> <p>To avoid unintentional changes to the information in the registry, you can pass the version information in the <code>expectedVersion</code> parameter of the <code>UpdateThing</code> and <code>DeleteThing</code> calls.</p> </note>",
        "ThingAttribute$version": "<p>The version of the thing record in the registry.</p>",
        "UpdateSecurityProfileResponse$version": "<p>The updated version of the security profile.</p>",
        "UpdateThingGroupResponse$version": "<p>The version of the updated thing group.</p>"
      }
    },
    "VersionConflictException": {
      "base": "<p>An exception thrown when the version of an entity specified with the <code>expectedVersion</code> parameter does not match the latest version in the system.</p>",
      "refs": {
      }
    },
    "VersionNumber": {
      "base": null,
      "refs": {
        "JobExecution$versionNumber": "<p>The version of the job execution. Job execution versions are incremented each time they are updated by a device.</p>"
      }
    },
    "VersionsLimitExceededException": {
      "base": "<p>The number of policy versions exceeds the limit.</p>",
      "refs": {
      }
    },
    "ViolationEvent": {
      "base": "<p>Information about a Device Defender security profile behavior violation.</p>",
      "refs": {
        "ViolationEvents$member": null
      }
    },
    "ViolationEventType": {
      "base": null,
      "refs": {
        "ViolationEvent$violationEventType": "<p>The type of violation event.</p>"
      }
    },
    "ViolationEvents": {
      "base": null,
      "refs": {
        "ListViolationEventsResponse$violationEvents": "<p>The security profile violation alerts issued for this account during the given time frame, potentially filtered by security profile, behavior violated, or thing (device) violating.</p>"
      }
    },
    "ViolationId": {
      "base": null,
      "refs": {
        "ActiveViolation$violationId": "<p>The ID of the active violation.</p>",
        "ViolationEvent$violationId": "<p>The ID of the violation event.</p>"
      }
    },
    "WaitingForDataCollectionChecksCount": {
      "base": null,
      "refs": {
        "TaskStatistics$waitingForDataCollectionChecks": "<p>The number of checks waiting for data collection.</p>"
      }
    },
    "errorMessage": {
      "base": null,
      "refs": {
        "CertificateConflictException$message": "<p>The message for the exception.</p>",
        "CertificateStateException$message": "<p>The message for the exception.</p>",
        "CertificateValidationException$message": "<p>Additional information about the exception.</p>",
        "ConflictingResourceUpdateException$message": "<p>The message for the exception.</p>",
        "DeleteConflictException$message": "<p>The message for the exception.</p>",
        "IndexNotReadyException$message": "<p>The message for the exception.</p>",
        "InternalException$message": "<p>The message for the exception.</p>",
        "InternalFailureException$message": "<p>The message for the exception.</p>",
        "InvalidQueryException$message": "<p>The message for the exception.</p>",
        "InvalidRequestException$message": "<p>The message for the exception.</p>",
        "InvalidResponseException$message": "<p>The message for the exception.</p>",
        "InvalidStateTransitionException$message": "<p>The message for the exception.</p>",
        "LimitExceededException$message": "<p>The message for the exception.</p>",
        "MalformedPolicyException$message": "<p>The message for the exception.</p>",
        "NotConfiguredException$message": "<p>The message for the exception.</p>",
        "RegistrationCodeValidationException$message": "<p>Additional information about the exception.</p>",
        "ResourceAlreadyExistsException$message": "<p>The message for the exception.</p>",
        "ResourceNotFoundException$message": "<p>The message for the exception.</p>",
        "ResourceRegistrationFailureException$message": "<p>The message for the exception.</p>",
        "ServiceUnavailableException$message": "<p>The message for the exception.</p>",
        "SqlParseException$message": "<p>The message for the exception.</p>",
        "ThrottlingException$message": "<p>The message for the exception.</p>",
        "TransferAlreadyCompletedException$message": "<p>The message for the exception.</p>",
        "TransferConflictException$message": "<p>The message for the exception.</p>",
        "UnauthorizedException$message": "<p>The message for the exception.</p>",
        "VersionConflictException$message": "<p>The message for the exception.</p>",
        "VersionsLimitExceededException$message": "<p>The message for the exception.</p>"
      }
    },
    "resourceArn": {
      "base": null,
      "refs": {
        "ResourceAlreadyExistsException$resourceArn": "<p>The ARN of the resource that caused the exception.</p>"
      }
    },
    "resourceId": {
      "base": null,
      "refs": {
        "ResourceAlreadyExistsException$resourceId": "<p>The ID of the resource that caused the exception.</p>"
      }
    }
  }
}
