docs: func (s *ActivateGatewayInput) Validate() error {
  	invalidParams := request.ErrInvalidParams{Context: "ActivateGatewayInput"}
  	if s.ActivationKey == nil {
  		invalidParams.Add(request.NewErrParamRequired("ActivationKey"))
  	}
  	if s.ActivationKey != nil && len(*s.ActivationKey) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("ActivationKey", 1))
  	}
  	if s.GatewayName == nil {
  		invalidParams.Add(request.NewErrParamRequired("GatewayName"))
  	}
  	if s.GatewayName != nil && len(*s.GatewayName) < 2 {
  		invalidParams.Add(request.NewErrParamMinLen("GatewayName", 2))
  	}
  	if s.GatewayRegion == nil {
  		invalidParams.Add(request.NewErrParamRequired("GatewayRegion"))
  	}
  	if s.GatewayRegion != nil && len(*s.GatewayRegion) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("GatewayRegion", 1))
  	}
  	if s.GatewayTimezone == nil {
  		invalidParams.Add(request.NewErrParamRequired("GatewayTimezone"))
  	}
  	if s.GatewayTimezone != nil && len(*s.GatewayTimezone) < 3 {
  		invalidParams.Add(request.NewErrParamMinLen("GatewayTimezone", 3))
  	}
  	if s.GatewayType != nil && len(*s.GatewayType) < 2 {
  		invalidParams.Add(request.NewErrParamMinLen("GatewayType", 2))
  	}
  	if s.MediumChangerType != nil && len(*s.MediumChangerType) < 2 {
  		invalidParams.Add(request.NewErrParamMinLen("MediumChangerType", 2))
  	}
  	if s.TapeDriveType != nil && len(*s.TapeDriveType) < 2 {
  		invalidParams.Add(request.NewErrParamMinLen("TapeDriveType", 2))
  	}
  	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
  }