in service/opsworkscm/deserializers.go [2556:2804]
func awsAwsjson11_deserializeDocumentBackup(v **types.Backup, 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.Backup
if *v == nil {
sv = &types.Backup{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "BackupArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.BackupArn = ptr.String(jtv)
}
case "BackupId":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected BackupId to be of type string, got %T instead", value)
}
sv.BackupId = ptr.String(jtv)
}
case "BackupType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected BackupType to be of type string, got %T instead", value)
}
sv.BackupType = types.BackupType(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 "Description":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Description = ptr.String(jtv)
}
case "Engine":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Engine = ptr.String(jtv)
}
case "EngineModel":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.EngineModel = ptr.String(jtv)
}
case "EngineVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.EngineVersion = ptr.String(jtv)
}
case "InstanceProfileArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.InstanceProfileArn = ptr.String(jtv)
}
case "InstanceType":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.InstanceType = ptr.String(jtv)
}
case "KeyPair":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.KeyPair = ptr.String(jtv)
}
case "PreferredBackupWindow":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimeWindowDefinition to be of type string, got %T instead", value)
}
sv.PreferredBackupWindow = ptr.String(jtv)
}
case "PreferredMaintenanceWindow":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected TimeWindowDefinition to be of type string, got %T instead", value)
}
sv.PreferredMaintenanceWindow = ptr.String(jtv)
}
case "S3DataSize":
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.S3DataSize = ptr.Int32(int32(i64))
}
case "S3DataUrl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.S3DataUrl = ptr.String(jtv)
}
case "S3LogUrl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.S3LogUrl = ptr.String(jtv)
}
case "SecurityGroupIds":
if err := awsAwsjson11_deserializeDocumentStrings(&sv.SecurityGroupIds, value); err != nil {
return err
}
case "ServerName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected ServerName to be of type string, got %T instead", value)
}
sv.ServerName = ptr.String(jtv)
}
case "ServiceRoleArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.ServiceRoleArn = ptr.String(jtv)
}
case "Status":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected BackupStatus to be of type string, got %T instead", value)
}
sv.Status = types.BackupStatus(jtv)
}
case "StatusDescription":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.StatusDescription = ptr.String(jtv)
}
case "SubnetIds":
if err := awsAwsjson11_deserializeDocumentStrings(&sv.SubnetIds, value); err != nil {
return err
}
case "ToolsVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.ToolsVersion = ptr.String(jtv)
}
case "UserArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.UserArn = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}