         let httpStatusCode: Int
         let senderFault: Bool?
     }
-
-    enum ShapeType {
+    
+    /// Enum defining a shape type
+    enum ShapeType: Decodable {
         class StructureType: Patchable {
             var required: [String]
             var members: [String: Member]

        case xmlNamespace
        case error
        case exception
        case min
        case max
        case pattern
        case required
        case members
        case member
        case flattened
        case key
        case value
        case `enum`
    }
}

        self.xmlNamespace = try container.decodeIfPresent(API.XMLNamespace.self, forKey: .xmlNamespace)
        self.error = try container.decodeIfPresent(Error.self, forKey: .error)
        self.exception = try container.decodeIfPresent(Bool.self, forKey: .exception)
        self.type = try ShapeType(from: decoder)
    }
    
    /// once everything has been loaded this is called to post process the ShapeType
