in internal/pkg/manifest/validate.go [93:154]
func (l LoadBalancedWebServiceConfig) Validate() error {
var err error
if l.RoutingRule.Disabled() && l.NLBConfig.IsEmpty() {
return &errAtLeastOneFieldMustBeSpecified{
missingFields: []string{"http", "nlb"},
}
}
if l.RoutingRule.Disabled() && (l.Count.AdvancedCount.Requests != nil || l.Count.AdvancedCount.ResponseTime != nil) {
return errors.New(`scaling based on "nlb" requests or response time is not supported`)
}
if err = l.ImageConfig.Validate(); err != nil {
return fmt.Errorf(`validate "image": %w`, err)
}
if err = l.ImageOverride.Validate(); err != nil {
return err
}
if err = l.RoutingRule.Validate(); err != nil {
return fmt.Errorf(`validate "http": %w`, err)
}
if err = l.TaskConfig.Validate(); err != nil {
return err
}
if err = l.Logging.Validate(); err != nil {
return fmt.Errorf(`validate "logging": %w`, err)
}
for k, v := range l.Sidecars {
if err = v.Validate(); err != nil {
return fmt.Errorf(`validate "sidecars[%s]": %w`, k, err)
}
}
if err = l.Network.Validate(); err != nil {
return fmt.Errorf(`validate "network": %w`, err)
}
if err = l.PublishConfig.Validate(); err != nil {
return fmt.Errorf(`validate "publish": %w`, err)
}
for ind, taskDefOverride := range l.TaskDefOverrides {
if err = taskDefOverride.Validate(); err != nil {
return fmt.Errorf(`validate "taskdef_overrides[%d]": %w`, ind, err)
}
}
if l.TaskConfig.IsWindows() {
if err = validateWindows(validateWindowsOpts{
execEnabled: aws.BoolValue(l.ExecuteCommand.Enable),
efsVolumes: l.Storage.Volumes,
}); err != nil {
return fmt.Errorf("validate Windows: %w", err)
}
}
if l.TaskConfig.IsARM() {
if err = validateARM(validateARMOpts{
Spot: l.Count.AdvancedCount.Spot,
SpotFrom: l.Count.AdvancedCount.Range.RangeConfig.SpotFrom,
}); err != nil {
return fmt.Errorf("validate ARM: %w", err)
}
}
if err = l.NLBConfig.Validate(); err != nil {
return fmt.Errorf(`validate "nlb": %w`, err)
}
return nil
}