in service/mwaa/deserializers.go [2037:2379]
func awsRestjson1_deserializeDocumentEnvironment(v **types.Environment, 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.Environment
if *v == nil {
sv = &types.Environment{}
} else {
sv = *v
}
for key, value := range shape {
switch key {
case "AirflowConfigurationOptions":
if err := awsRestjson1_deserializeDocumentAirflowConfigurationOptions(&sv.AirflowConfigurationOptions, value); err != nil {
return err
}
case "AirflowVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected AirflowVersion to be of type string, got %T instead", value)
}
sv.AirflowVersion = ptr.String(jtv)
}
case "Arn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EnvironmentArn to be of type string, got %T instead", value)
}
sv.Arn = ptr.String(jtv)
}
case "CeleryExecutorQueue":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected CeleryExecutorQueue to be of type string, got %T instead", value)
}
sv.CeleryExecutorQueue = 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 CreatedAt to be a JSON Number, got %T instead", value)
}
}
case "DagS3Path":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RelativePath to be of type string, got %T instead", value)
}
sv.DagS3Path = ptr.String(jtv)
}
case "DatabaseVpcEndpointService":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected VpcEndpointServiceName to be of type string, got %T instead", value)
}
sv.DatabaseVpcEndpointService = ptr.String(jtv)
}
case "EndpointManagement":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EndpointManagement to be of type string, got %T instead", value)
}
sv.EndpointManagement = types.EndpointManagement(jtv)
}
case "EnvironmentClass":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EnvironmentClass to be of type string, got %T instead", value)
}
sv.EnvironmentClass = ptr.String(jtv)
}
case "ExecutionRoleArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected IamRoleArn to be of type string, got %T instead", value)
}
sv.ExecutionRoleArn = ptr.String(jtv)
}
case "KmsKey":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected KmsKey to be of type string, got %T instead", value)
}
sv.KmsKey = ptr.String(jtv)
}
case "LastUpdate":
if err := awsRestjson1_deserializeDocumentLastUpdate(&sv.LastUpdate, value); err != nil {
return err
}
case "LoggingConfiguration":
if err := awsRestjson1_deserializeDocumentLoggingConfiguration(&sv.LoggingConfiguration, value); err != nil {
return err
}
case "MaxWebservers":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected MaxWebservers to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxWebservers = ptr.Int32(int32(i64))
}
case "MaxWorkers":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected MaxWorkers to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MaxWorkers = ptr.Int32(int32(i64))
}
case "MinWebservers":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected MinWebservers to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MinWebservers = ptr.Int32(int32(i64))
}
case "MinWorkers":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected MinWorkers to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.MinWorkers = ptr.Int32(int32(i64))
}
case "Name":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EnvironmentName 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 "PluginsS3ObjectVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected S3ObjectVersion to be of type string, got %T instead", value)
}
sv.PluginsS3ObjectVersion = ptr.String(jtv)
}
case "PluginsS3Path":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RelativePath to be of type string, got %T instead", value)
}
sv.PluginsS3Path = ptr.String(jtv)
}
case "RequirementsS3ObjectVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected S3ObjectVersion to be of type string, got %T instead", value)
}
sv.RequirementsS3ObjectVersion = ptr.String(jtv)
}
case "RequirementsS3Path":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected RelativePath to be of type string, got %T instead", value)
}
sv.RequirementsS3Path = ptr.String(jtv)
}
case "Schedulers":
if value != nil {
jtv, ok := value.(json.Number)
if !ok {
return fmt.Errorf("expected Schedulers to be json.Number, got %T instead", value)
}
i64, err := jtv.Int64()
if err != nil {
return err
}
sv.Schedulers = ptr.Int32(int32(i64))
}
case "ServiceRoleArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected IamRoleArn to be of type string, got %T instead", value)
}
sv.ServiceRoleArn = ptr.String(jtv)
}
case "SourceBucketArn":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected S3BucketArn to be of type string, got %T instead", value)
}
sv.SourceBucketArn = ptr.String(jtv)
}
case "StartupScriptS3ObjectVersion":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.StartupScriptS3ObjectVersion = ptr.String(jtv)
}
case "StartupScriptS3Path":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected String to be of type string, got %T instead", value)
}
sv.StartupScriptS3Path = ptr.String(jtv)
}
case "Status":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected EnvironmentStatus to be of type string, got %T instead", value)
}
sv.Status = types.EnvironmentStatus(jtv)
}
case "Tags":
if err := awsRestjson1_deserializeDocumentTagMap(&sv.Tags, value); err != nil {
return err
}
case "WebserverAccessMode":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WebserverAccessMode to be of type string, got %T instead", value)
}
sv.WebserverAccessMode = types.WebserverAccessMode(jtv)
}
case "WebserverUrl":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WebserverUrl to be of type string, got %T instead", value)
}
sv.WebserverUrl = ptr.String(jtv)
}
case "WebserverVpcEndpointService":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected VpcEndpointServiceName to be of type string, got %T instead", value)
}
sv.WebserverVpcEndpointService = ptr.String(jtv)
}
case "WeeklyMaintenanceWindowStart":
if value != nil {
jtv, ok := value.(string)
if !ok {
return fmt.Errorf("expected WeeklyMaintenanceWindowStart to be of type string, got %T instead", value)
}
sv.WeeklyMaintenanceWindowStart = ptr.String(jtv)
}
default:
_, _ = key, value
}
}
*v = sv
return nil
}