func()

in service/dlm/api.go [3153:3226]


func (s *PolicyDetails) Validate() error {
	invalidParams := request.ErrInvalidParams{Context: "PolicyDetails"}
	if s.Actions != nil && len(s.Actions) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
	}
	if s.CreateInterval != nil && *s.CreateInterval < 1 {
		invalidParams.Add(request.NewErrParamMinValue("CreateInterval", 1))
	}
	if s.ResourceLocations != nil && len(s.ResourceLocations) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceLocations", 1))
	}
	if s.ResourceTypes != nil && len(s.ResourceTypes) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("ResourceTypes", 1))
	}
	if s.RetainInterval != nil && *s.RetainInterval < 1 {
		invalidParams.Add(request.NewErrParamMinValue("RetainInterval", 1))
	}
	if s.Schedules != nil && len(s.Schedules) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("Schedules", 1))
	}
	if s.TargetTags != nil && len(s.TargetTags) < 1 {
		invalidParams.Add(request.NewErrParamMinLen("TargetTags", 1))
	}
	if s.Actions != nil {
		for i, v := range s.Actions {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.EventSource != nil {
		if err := s.EventSource.Validate(); err != nil {
			invalidParams.AddNested("EventSource", err.(request.ErrInvalidParams))
		}
	}
	if s.Exclusions != nil {
		if err := s.Exclusions.Validate(); err != nil {
			invalidParams.AddNested("Exclusions", err.(request.ErrInvalidParams))
		}
	}
	if s.Parameters != nil {
		if err := s.Parameters.Validate(); err != nil {
			invalidParams.AddNested("Parameters", err.(request.ErrInvalidParams))
		}
	}
	if s.Schedules != nil {
		for i, v := range s.Schedules {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Schedules", i), err.(request.ErrInvalidParams))
			}
		}
	}
	if s.TargetTags != nil {
		for i, v := range s.TargetTags {
			if v == nil {
				continue
			}
			if err := v.Validate(); err != nil {
				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TargetTags", i), err.(request.ErrInvalidParams))
			}
		}
	}

	if invalidParams.Len() > 0 {
		return invalidParams
	}
	return nil
}