in service/workspacesthinclient/deserializers.go [2738:2980]
func awsRestjson1_deserializeDocumentDevice(v **types.Device, 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.Device
if *v == nil {
sv = &types.Device{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "arn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected Arn to be of type string, got %T instead", value)
}
sv.Arn = ptr.String(jtv)
}
case "createdAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.CreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
case "currentSoftwareSetId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SoftwareSetId to be of type string, got %T instead", value)
}
sv.CurrentSoftwareSetId = ptr.String(jtv)
}
case "currentSoftwareSetVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.CurrentSoftwareSetVersion = ptr.String(jtv)
}
case "desiredSoftwareSetId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SoftwareSetId to be of type string, got %T instead", value)
}
sv.DesiredSoftwareSetId = ptr.String(jtv)
}
case "environmentId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EnvironmentId to be of type string, got %T instead", value)
}
sv.EnvironmentId = ptr.String(jtv)
}
case "id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected DeviceId to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "kmsKeyArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected KmsKeyArn to be of type string, got %T instead", value)
}
sv.KmsKeyArn = ptr.String(jtv)
}
case "lastConnectedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.LastConnectedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
case "lastPostureAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.LastPostureAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
case "model":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Model = ptr.String(jtv)
}
case "name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected DeviceName to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "pendingSoftwareSetId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SoftwareSetId to be of type string, got %T instead", value)
}
sv.PendingSoftwareSetId = ptr.String(jtv)
}
case "pendingSoftwareSetVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.PendingSoftwareSetVersion = ptr.String(jtv)
}
case "serialNumber":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.SerialNumber = ptr.String(jtv)
}
case "softwareSetComplianceStatus":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected DeviceSoftwareSetComplianceStatus to be of type string, got %T instead", value)
}
sv.SoftwareSetComplianceStatus = types.DeviceSoftwareSetComplianceStatus(jtv)
}
case "softwareSetUpdateSchedule":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SoftwareSetUpdateSchedule to be of type string, got %T instead", value)
}
sv.SoftwareSetUpdateSchedule = types.SoftwareSetUpdateSchedule(jtv)
}
case "softwareSetUpdateStatus":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SoftwareSetUpdateStatus to be of type string, got %T instead", value)
}
sv.SoftwareSetUpdateStatus = types.SoftwareSetUpdateStatus(jtv)
}
case "status":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected DeviceStatus to be of type string, got %T instead", value)
}
sv.Status = types.DeviceStatus(jtv)
}
case "tags":
if err := awsRestjson1_deserializeDocumentTagsMap(&sv.Tags, value); err != nil {
return err
}
case "updatedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.UpdatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Timestamp to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}