func awsRestjson1_deserializeDocumentJobOutput()

in service/elastictranscoder/deserializers.go [4362:4576]


func awsRestjson1_deserializeDocumentJobOutput(v **types.JobOutput, 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.JobOutput
	if *v == nil {
		sv = &types.JobOutput{}
	} else {
		sv = *v
	}

	for key, value := range shape {
		switch key {
		case "AlbumArt":
			if err := awsRestjson1_deserializeDocumentJobAlbumArt(&sv.AlbumArt, value); err != nil {
				return err
			}

		case "AppliedColorSpaceConversion":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected String to be of type string, got %T instead", value)
				}
				sv.AppliedColorSpaceConversion = ptr.String(jtv)
			}

		case "Captions":
			if err := awsRestjson1_deserializeDocumentCaptions(&sv.Captions, value); err != nil {
				return err
			}

		case "Composition":
			if err := awsRestjson1_deserializeDocumentComposition(&sv.Composition, value); err != nil {
				return err
			}

		case "Duration":
			if value != nil {
				jtv, ok := value.(json.Number)
				if !ok {
					return fmt.Errorf("expected NullableLong to be json.Number, got %T instead", value)
				}
				i64, err := jtv.Int64()
				if err != nil {
					return err
				}
				sv.Duration = ptr.Int64(i64)
			}

		case "DurationMillis":
			if value != nil {
				jtv, ok := value.(json.Number)
				if !ok {
					return fmt.Errorf("expected NullableLong to be json.Number, got %T instead", value)
				}
				i64, err := jtv.Int64()
				if err != nil {
					return err
				}
				sv.DurationMillis = ptr.Int64(i64)
			}

		case "Encryption":
			if err := awsRestjson1_deserializeDocumentEncryption(&sv.Encryption, value); err != nil {
				return err
			}

		case "FileSize":
			if value != nil {
				jtv, ok := value.(json.Number)
				if !ok {
					return fmt.Errorf("expected NullableLong to be json.Number, got %T instead", value)
				}
				i64, err := jtv.Int64()
				if err != nil {
					return err
				}
				sv.FileSize = ptr.Int64(i64)
			}

		case "FrameRate":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected FloatString to be of type string, got %T instead", value)
				}
				sv.FrameRate = ptr.String(jtv)
			}

		case "Height":
			if value != nil {
				jtv, ok := value.(json.Number)
				if !ok {
					return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value)
				}
				i64, err := jtv.Int64()
				if err != nil {
					return err
				}
				sv.Height = ptr.Int32(int32(i64))
			}

		case "Id":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected String to be of type string, got %T instead", value)
				}
				sv.Id = ptr.String(jtv)
			}

		case "Key":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected Key to be of type string, got %T instead", value)
				}
				sv.Key = ptr.String(jtv)
			}

		case "PresetId":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected Id to be of type string, got %T instead", value)
				}
				sv.PresetId = ptr.String(jtv)
			}

		case "Rotate":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected Rotate to be of type string, got %T instead", value)
				}
				sv.Rotate = ptr.String(jtv)
			}

		case "SegmentDuration":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected FloatString to be of type string, got %T instead", value)
				}
				sv.SegmentDuration = ptr.String(jtv)
			}

		case "Status":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected JobStatus to be of type string, got %T instead", value)
				}
				sv.Status = ptr.String(jtv)
			}

		case "StatusDetail":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected Description to be of type string, got %T instead", value)
				}
				sv.StatusDetail = ptr.String(jtv)
			}

		case "ThumbnailEncryption":
			if err := awsRestjson1_deserializeDocumentEncryption(&sv.ThumbnailEncryption, value); err != nil {
				return err
			}

		case "ThumbnailPattern":
			if value != nil {
				jtv, ok := value.(string)
				if !ok {
					return fmt.Errorf("expected ThumbnailPattern to be of type string, got %T instead", value)
				}
				sv.ThumbnailPattern = ptr.String(jtv)
			}

		case "Watermarks":
			if err := awsRestjson1_deserializeDocumentJobWatermarks(&sv.Watermarks, value); err != nil {
				return err
			}

		case "Width":
			if value != nil {
				jtv, ok := value.(json.Number)
				if !ok {
					return fmt.Errorf("expected NullableInteger to be json.Number, got %T instead", value)
				}
				i64, err := jtv.Int64()
				if err != nil {
					return err
				}
				sv.Width = ptr.Int32(int32(i64))
			}

		default:
			_, _ = key, value

		}
	}
	*v = sv
	return nil
}