title: Swift DynamoDB Mapper Sending Empty Values
body: <p>I'm trying to use DynamoDB using the iOS Swift SDK. I'm using Cognito with Facebook as an external identity provider. Cognito is working fine - I've tested user sync and it works OK, so I believe I have the authentication set up. Here's how I'm setting up the SDK (I have the actual values of my identity pool in my code):</p>
  
  <pre><code>let credentialsProvider = AWSCognitoCredentialsProvider(regionType:.USEast1,
                                                            identityPoolId:"&lt;my-identity-pool-id&gt;", identityProviderManager: FacebookProvider())
  
      let configuration = AWSServiceConfiguration(region:.USEast1, credentialsProvider:credentialsProvider)
      AWSServiceManager.default().defaultServiceConfiguration = configuration
  </code></pre>
  
  <p>And here's my DynamoDB mapped class:</p>
  
  <pre><code>import Foundation
  import AWSDynamoDB
  
  class SavedItem : AWSDynamoDBObjectModel, AWSDynamoDBModeling {
  
      var userId : Int?
      var timestamp : Int?
  
      class func dynamoDBTableName() -&gt; String {
          return "my-table"
      }
  
      class func hashKeyAttribute() -&gt; String {
           return "userId"
      }
  
      class func rangeKeyAttribute() -&gt; String {
          return "timestamp"
      }
    }
  </code></pre>
  
  <p>I've verified that my code has the correct table and attribute names and that the hash key and range key values on the table are identical, including case sensitivity, with the fields in my <code>SavedItem</code> class.</p>
  
  <p>Here's how I'm instantiating the mapper: </p>
  
  <pre><code>let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
  
  let savedItem = SavedItem()
  savedItem?.userId = 1
  savedItem?.timestamp = 2
  
  dynamoDBObjectMapper.save(savedItem!).continueWith(block: { (task:AWSTask&lt;AnyObject&gt;!) -&gt; Any? in
      if let error = task.error as? NSError {
          print("The request failed. Error: \(error)")
      } else {
          print("Save callback executing")
      }
  
      return nil
  })
  </code></pre>
  
  <p>That code's more or less straight out from the AWS Documentation example. But, here's what I get back in the console when that code executes:</p>
  
  <pre><code>Error Domain=com.amazonaws.AWSCognitoIdentityErrorDomain Code=0 "(null)" UserInfo={__type=com.amazon.coral.validate#ValidationException, message=Supplied AttributeValue is empty, must contain exactly one of the supported datatypes}
  </code></pre>
  
  <p>I bumped console logging up to debug, and it looks like the mapper is not sending any attributes from the <code>SavedItem</code> object. Here's what's in the console for the <code>save</code> request body:</p>
  
  <pre><code>Request body:
  {"Key":{"userId":{},"timestamp":{}},"TableName":"my-table","AttributeUpdates":{}}
  </code></pre>
  
  <p>Any idea why the values are not getting included in the save request body?</p>
  
  <p>Using aws-sdk-ios v2.6.1 on in Swift 4 on iOS 11.</p>