in service/artifact/deserializers.go [1944:2181]
func awsRestjson1_deserializeDocumentReportDetail(v **types.ReportDetail, 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.ReportDetail
if *v == nil {
sv = &types.ReportDetail{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "acceptanceType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected AcceptanceType to be of type string, got %T instead", value)
}
sv.AcceptanceType = types.AcceptanceType(jtv)
}
case "arn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value)
}
sv.Arn = ptr.String(jtv)
}
case "category":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ShortStringAttribute to be of type string, got %T instead", value)
}
sv.Category = ptr.String(jtv)
}
case "companyName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ShortStringAttribute to be of type string, got %T instead", value)
}
sv.CompanyName = ptr.String(jtv)
}
case "createdAt":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value)
}
t, err := smithytime.ParseDateTime(jtv)
if err != nil {
return err
}
sv.CreatedAt = ptr.Time(t)
}
case "deletedAt":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value)
}
t, err := smithytime.ParseDateTime(jtv)
if err != nil {
return err
}
sv.DeletedAt = ptr.Time(t)
}
case "description":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value)
}
sv.Description = ptr.String(jtv)
}
case "id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ReportId to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "lastModifiedAt":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value)
}
t, err := smithytime.ParseDateTime(jtv)
if err != nil {
return err
}
sv.LastModifiedAt = ptr.Time(t)
}
case "name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ShortStringAttribute to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "periodEnd":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value)
}
t, err := smithytime.ParseDateTime(jtv)
if err != nil {
return err
}
sv.PeriodEnd = ptr.Time(t)
}
case "periodStart":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimestampAttribute to be of type string, got %T instead", value)
}
t, err := smithytime.ParseDateTime(jtv)
if err != nil {
return err
}
sv.PeriodStart = ptr.Time(t)
}
case "productName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ShortStringAttribute to be of type string, got %T instead", value)
}
sv.ProductName = ptr.String(jtv)
}
case "sequenceNumber":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected SequenceNumberAttribute to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.SequenceNumber = ptr.Int64(i64)
}
case "series":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ShortStringAttribute to be of type string, got %T instead", value)
}
sv.Series = ptr.String(jtv)
}
case "state":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected PublishedState to be of type string, got %T instead", value)
}
sv.State = types.PublishedState(jtv)
}
case "statusMessage":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected StatusMessage to be of type string, got %T instead", value)
}
sv.StatusMessage = ptr.String(jtv)
}
case "termArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected LongStringAttribute to be of type string, got %T instead", value)
}
sv.TermArn = ptr.String(jtv)
}
case "uploadState":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected UploadState to be of type string, got %T instead", value)
}
sv.UploadState = types.UploadState(jtv)
}
case "version":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected VersionAttribute to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Version = ptr.Int64(i64)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}