docs: func (s *CreateStackInput) Validate() error {
  	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
  	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
  	}
  	if s.RoleARN != nil && len(*s.RoleARN) < 20 {
  		invalidParams.Add(request.NewErrParamMinLen("RoleARN", 20))
  	}
  	if s.StackName == nil {
  		invalidParams.Add(request.NewErrParamRequired("StackName"))
  	}
  	if s.StackPolicyBody != nil && len(*s.StackPolicyBody) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyBody", 1))
  	}
  	if s.StackPolicyURL != nil && len(*s.StackPolicyURL) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("StackPolicyURL", 1))
  	}
  	if s.TemplateBody != nil && len(*s.TemplateBody) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("TemplateBody", 1))
  	}
  	if s.TemplateURL != nil && len(*s.TemplateURL) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("TemplateURL", 1))
  	}
  	if s.TimeoutInMinutes != nil && *s.TimeoutInMinutes < 1 {
  		invalidParams.Add(request.NewErrParamMinValue("TimeoutInMinutes", 1))
  	}
  	if s.RollbackConfiguration != nil {
  		if err := s.RollbackConfiguration.Validate(); err != nil {
  			invalidParams.AddNested("RollbackConfiguration", err.(request.ErrInvalidParams))
  		}
  	}
  	if s.Tags != nil {
  		for i, v := range s.Tags {
  			if v == nil {
  				continue
  			}
  			if err := v.Validate(); err != nil {
  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
  			}
  		}
  	}
  
  	if invalidParams.Len() > 0 {
  		return invalidParams
  	}
  	return nil
  }