in service/mturk/deserializers.go [4880:5132]
func awsAwsjson11_deserializeDocumentHIT(v **types.HIT, value interface{}) error {
if v == nil {
return fmt.Errorf("unexpected nil of type %T", v)
}
if value == nil {
return nil
}
shape, ok := value.(map[string]interface{})
if !ok {
return fmt.Errorf("unexpected JSON type %v", value)
}
var sv *types.HIT
if *v == nil {
sv = &types.HIT{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AssignmentDurationInSeconds":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.AssignmentDurationInSeconds = ptr.Int64(i64)
}
case "AutoApprovalDelayInSeconds":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Long to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.AutoApprovalDelayInSeconds = ptr.Int64(i64)
}
case "CreationTime":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.CreationTime = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
case "Description":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Description = ptr.String(jtv)
}
case "Expiration":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.Expiration = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
case "HITGroupId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EntityId to be of type string, got %T instead", value)
}
sv.HITGroupId = ptr.String(jtv)
}
case "HITId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EntityId to be of type string, got %T instead", value)
}
sv.HITId = ptr.String(jtv)
}
case "HITLayoutId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EntityId to be of type string, got %T instead", value)
}
sv.HITLayoutId = ptr.String(jtv)
}
case "HITReviewStatus":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected HITReviewStatus to be of type string, got %T instead", value)
}
sv.HITReviewStatus = types.HITReviewStatus(jtv)
}
case "HITStatus":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected HITStatus to be of type string, got %T instead", value)
}
sv.HITStatus = types.HITStatus(jtv)
}
case "HITTypeId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EntityId to be of type string, got %T instead", value)
}
sv.HITTypeId = ptr.String(jtv)
}
case "Keywords":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Keywords = ptr.String(jtv)
}
case "MaxAssignments":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxAssignments = ptr.Int32(int32(i64))
}
case "NumberOfAssignmentsAvailable":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.NumberOfAssignmentsAvailable = ptr.Int32(int32(i64))
}
case "NumberOfAssignmentsCompleted":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.NumberOfAssignmentsCompleted = ptr.Int32(int32(i64))
}
case "NumberOfAssignmentsPending":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Integer to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.NumberOfAssignmentsPending = ptr.Int32(int32(i64))
}
case "QualificationRequirements":
if err := awsAwsjson11_deserializeDocumentQualificationRequirementList(&sv.QualificationRequirements, value); err != nil {
return err
}
case "Question":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Question = ptr.String(jtv)
}
case "RequesterAnnotation":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.RequesterAnnotation = ptr.String(jtv)
}
case "Reward":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CurrencyAmount to be of type string, got %T instead", value)
}
sv.Reward = ptr.String(jtv)
}
case "Title":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Title = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}