in service/redshiftdata/deserializers.go [3399:3643]
func awsAwsjson11_deserializeOpDocumentDescribeStatementOutput(v **DescribeStatementOutput, 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 *DescribeStatementOutput
if *v == nil {
sv = &DescribeStatementOutput{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "ClusterIdentifier":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.ClusterIdentifier = 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 "Database":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Database = ptr.String(jtv)
}
case "DbUser":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.DbUser = ptr.String(jtv)
}
case "Duration":
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.Duration = i64
}
case "Error":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Error = ptr.String(jtv)
}
case "HasResultSet":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.HasResultSet = ptr.Bool(jtv)
}
case "Id":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected UUID to be of type string, got %T instead", value)
}
sv.Id = ptr.String(jtv)
}
case "QueryParameters":
if err := awsAwsjson11_deserializeDocumentSqlParametersList(&sv.QueryParameters, value); err != nil {
return err
}
case "QueryString":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected StatementString to be of type string, got %T instead", value)
}
sv.QueryString = ptr.String(jtv)
}
case "RedshiftPid":
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.RedshiftPid = i64
}
case "RedshiftQueryId":
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.RedshiftQueryId = i64
}
case "ResultFormat":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ResultFormatString to be of type string, got %T instead", value)
}
sv.ResultFormat = types.ResultFormatString(jtv)
}
case "ResultRows":
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.ResultRows = i64
}
case "ResultSize":
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.ResultSize = i64
}
case "SecretArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected SecretArn to be of type string, got %T instead", value)
}
sv.SecretArn = ptr.String(jtv)
}
case "SessionId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.SessionId = ptr.String(jtv)
}
case "Status":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected StatusString to be of type string, got %T instead", value)
}
sv.Status = types.StatusString(jtv)
}
case "SubStatements":
if err := awsAwsjson11_deserializeDocumentSubStatementList(&sv.SubStatements, 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)
}
}
case "WorkgroupName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WorkgroupNameString to be of type string, got %T instead", value)
}
sv.WorkgroupName = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}