in service/emrserverless/deserializers.go [3572:3874]
func awsRestjson1_deserializeDocumentJobRun(v **types.JobRun, 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.JobRun
if *v == nil {
sv = &types.JobRun{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "applicationId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ApplicationId to be of type string, got %T instead", value)
}
sv.ApplicationId = ptr.String(jtv)
}
case "arn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected JobArn to be of type string, got %T instead", value)
}
sv.Arn = ptr.String(jtv)
}
case "attempt":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected AttemptNumber to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Attempt = ptr.Int32(int32(i64))
}
case "attemptCreatedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.AttemptCreatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Date to be a JSON Number, got %T instead", value)
}
}
case "attemptUpdatedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.AttemptUpdatedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Date to be a JSON Number, got %T instead", value)
}
}
case "billedResourceUtilization":
if err := awsRestjson1_deserializeDocumentResourceUtilization(&sv.BilledResourceUtilization, value); err != nil {
return err
}
case "configurationOverrides":
if err := awsRestjson1_deserializeDocumentConfigurationOverrides(&sv.ConfigurationOverrides, value); err != nil {
return err
}
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 Date to be a JSON Number, got %T instead", value)
}
}
case "createdBy":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RequestIdentityUserArn to be of type string, got %T instead", value)
}
sv.CreatedBy = ptr.String(jtv)
}
case "endedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.EndedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Date to be a JSON Number, got %T instead", value)
}
}
case "executionRole":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected IAMRoleArn to be of type string, got %T instead", value)
}
sv.ExecutionRole = ptr.String(jtv)
}
case "executionTimeoutMinutes":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Duration to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.ExecutionTimeoutMinutes = ptr.Int64(i64)
}
case "jobDriver":
if err := awsRestjson1_deserializeDocumentJobDriver(&sv.JobDriver, value); err != nil {
return err
}
case "jobRunId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected JobRunId to be of type string, got %T instead", value)
}
sv.JobRunId = ptr.String(jtv)
}
case "mode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected JobRunMode to be of type string, got %T instead", value)
}
sv.Mode = types.JobRunMode(jtv)
}
case "name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
}
sv.Name = ptr.String(jtv)
}
case "networkConfiguration":
if err := awsRestjson1_deserializeDocumentNetworkConfiguration(&sv.NetworkConfiguration, value); err != nil {
return err
}
case "queuedDurationMilliseconds":
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.QueuedDurationMilliseconds = ptr.Int64(i64)
}
case "releaseLabel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ReleaseLabel to be of type string, got %T instead", value)
}
sv.ReleaseLabel = ptr.String(jtv)
}
case "retryPolicy":
if err := awsRestjson1_deserializeDocumentRetryPolicy(&sv.RetryPolicy, value); err != nil {
return err
}
case "startedAt":
if value != nil {
switch jtv := value.(type) {
case json.Number:
f64, err := jtv.Float64()
if err != nil {
return err
}
sv.StartedAt = ptr.Time(smithytime.ParseEpochSeconds(f64))
default:
return fmt.Errorf("expected Date to be a JSON Number, got %T instead", value)
}
}
case "state":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected JobRunState to be of type string, got %T instead", value)
}
sv.State = types.JobRunState(jtv)
}
case "stateDetails":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String256 to be of type string, got %T instead", value)
}
sv.StateDetails = ptr.String(jtv)
}
case "tags":
if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil {
return err
}
case "totalExecutionDurationSeconds":
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.TotalExecutionDurationSeconds = ptr.Int32(int32(i64))
}
case "totalResourceUtilization":
if err := awsRestjson1_deserializeDocumentTotalResourceUtilization(&sv.TotalResourceUtilization, 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 Date to be a JSON Number, got %T instead", value)
}
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}