{
 "additionalProperties": false,
 "createOnlyProperties": [
  "/properties/AccountId"
 ],
 "definitions": {
  "AuditCheckConfiguration": {
   "additionalProperties": false,
   "properties": {
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "AuditCheckConfigurations": {
   "additionalProperties": false,
   "properties": {
    "AuthenticatedCognitoRoleOverlyPermissiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "CaCertificateExpiringCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "CaCertificateKeyQualityCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "ConflictingClientIdsCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "DeviceCertificateAgeCheck": {
     "$ref": "#/definitions/DeviceCertAgeAuditCheckConfiguration"
    },
    "DeviceCertificateExpiringCheck": {
     "$ref": "#/definitions/DeviceCertExpirationAuditCheckConfiguration"
    },
    "DeviceCertificateKeyQualityCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "DeviceCertificateSharedCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "IntermediateCaRevokedForActiveDeviceCertificatesCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "IoTPolicyPotentialMisConfigurationCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "IotPolicyOverlyPermissiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "IotRoleAliasAllowsAccessToUnusedServicesCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "IotRoleAliasOverlyPermissiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "LoggingDisabledCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "RevokedCaCertificateStillActiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "RevokedDeviceCertificateStillActiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    },
    "UnauthenticatedCognitoRoleOverlyPermissiveCheck": {
     "$ref": "#/definitions/AuditCheckConfiguration"
    }
   },
   "type": "object"
  },
  "AuditNotificationTarget": {
   "additionalProperties": false,
   "properties": {
    "Enabled": {
     "type": "boolean"
    },
    "RoleArn": {
     "format": "AWS::IAM::Role.Arn",
     "maxLength": 2048,
     "minLength": 20,
     "type": "string"
    },
    "TargetArn": {
     "maxLength": 2048,
     "type": "string"
    }
   },
   "type": "object"
  },
  "AuditNotificationTargetConfigurations": {
   "additionalProperties": false,
   "properties": {
    "Sns": {
     "$ref": "#/definitions/AuditNotificationTarget"
    }
   },
   "type": "object"
  },
  "CertAgeCheckCustomConfiguration": {
   "additionalProperties": false,
   "properties": {
    "CertAgeThresholdInDays": {
     "$ref": "#/definitions/ConfigValue"
    }
   },
   "type": "object"
  },
  "CertExpirationCheckCustomConfiguration": {
   "additionalProperties": false,
   "properties": {
    "CertExpirationThresholdInDays": {
     "$ref": "#/definitions/ConfigValue"
    }
   },
   "type": "object"
  },
  "ConfigValue": {
   "maxLength": 64,
   "minLength": 1,
   "type": "string"
  },
  "DeviceCertAgeAuditCheckConfiguration": {
   "additionalProperties": false,
   "properties": {
    "Configuration": {
     "$ref": "#/definitions/CertAgeCheckCustomConfiguration"
    },
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  },
  "DeviceCertExpirationAuditCheckConfiguration": {
   "additionalProperties": false,
   "properties": {
    "Configuration": {
     "$ref": "#/definitions/CertExpirationCheckCustomConfiguration"
    },
    "Enabled": {
     "type": "boolean"
    }
   },
   "type": "object"
  }
 },
 "primaryIdentifier": [
  "/properties/AccountId"
 ],
 "properties": {
  "AccountId": {
   "maxLength": 12,
   "minLength": 12,
   "type": "string"
  },
  "AuditCheckConfigurations": {
   "$ref": "#/definitions/AuditCheckConfigurations"
  },
  "AuditNotificationTargetConfigurations": {
   "$ref": "#/definitions/AuditNotificationTargetConfigurations"
  },
  "RoleArn": {
   "format": "AWS::IAM::Role.Arn",
   "maxLength": 2048,
   "minLength": 20,
   "type": "string"
  }
 },
 "required": [
  "AccountId",
  "AuditCheckConfigurations",
  "RoleArn"
 ],
 "sourceUrl": "https://github.com/aws-cloudformation/aws-cloudformation-resource-providers-iot.git",
 "tagging": {
  "taggable": false
 },
 "typeName": "AWS::IoT::AccountAuditConfiguration"
}
