in service/opsworkscm/deserializers.go [3123:3367]
func awsAwsjson11_deserializeDocumentServer(v **types.Server, 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.Server
if *v == nil {
sv = &types.Server{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AssociatePublicIpAddress":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.AssociatePublicIpAddress = ptr.Bool(jtv)
}
case "BackupRetentionCount":
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.BackupRetentionCount = ptr.Int32(int32(i64))
}
case "CloudFormationStackArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.CloudFormationStackArn = 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 "CustomDomain":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CustomDomain to be of type string, got %T instead", value)
}
sv.CustomDomain = ptr.String(jtv)
}
case "DisableAutomatedBackup":
if value != nil {
jtv, ok := value.(bool)
if !ok {
return fmt.Errorf("expected Boolean to be of type *bool, got %T instead", value)
}
sv.DisableAutomatedBackup = ptr.Bool(jtv)
}
case "Endpoint":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.Endpoint = 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 "EngineAttributes":
if err := awsAwsjson11_deserializeDocumentEngineAttributes(&sv.EngineAttributes, value); err != nil {
return err
}
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 "MaintenanceStatus":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected MaintenanceStatus to be of type string, got %T instead", value)
}
sv.MaintenanceStatus = types.MaintenanceStatus(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 "SecurityGroupIds":
if err := awsAwsjson11_deserializeDocumentStrings(&sv.SecurityGroupIds, value); err != nil {
return err
}
case "ServerArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.ServerArn = ptr.String(jtv)
}
case "ServerName":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String 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 ServerStatus to be of type string, got %T instead", value)
}
sv.Status = types.ServerStatus(jtv)
}
case "StatusReason":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.StatusReason = ptr.String(jtv)
}
case "SubnetIds":
if err := awsAwsjson11_deserializeDocumentStrings(&sv.SubnetIds, value); err != nil {
return err
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}