docs: func (s *StartGameSessionPlacementInput) Validate() error {
  	invalidParams := request.ErrInvalidParams{Context: "StartGameSessionPlacementInput"}
  	if s.GameSessionData != nil && len(*s.GameSessionData) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("GameSessionData", 1))
  	}
  	if s.GameSessionName != nil && len(*s.GameSessionName) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("GameSessionName", 1))
  	}
  	if s.GameSessionQueueName == nil {
  		invalidParams.Add(request.NewErrParamRequired("GameSessionQueueName"))
  	}
  	if s.GameSessionQueueName != nil && len(*s.GameSessionQueueName) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("GameSessionQueueName", 1))
  	}
  	if s.MaximumPlayerSessionCount == nil {
  		invalidParams.Add(request.NewErrParamRequired("MaximumPlayerSessionCount"))
  	}
  	if s.PlacementId == nil {
  		invalidParams.Add(request.NewErrParamRequired("PlacementId"))
  	}
  	if s.PlacementId != nil && len(*s.PlacementId) < 1 {
  		invalidParams.Add(request.NewErrParamMinLen("PlacementId", 1))
  	}
  	if s.DesiredPlayerSessions != nil {
  		for i, v := range s.DesiredPlayerSessions {
  			if v == nil {
  				continue
  			}
  			if err := v.Validate(); err != nil {
  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "DesiredPlayerSessions", i), err.(request.ErrInvalidParams))
  			}
  		}
  	}
  	if s.GameProperties != nil {
  		for i, v := range s.GameProperties {
  			if v == nil {
  				continue
  			}
  			if err := v.Validate(); err != nil {
  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "GameProperties", i), err.(request.ErrInvalidParams))
  			}
  		}
  	}
  	if s.PlayerLatencies != nil {
  		for i, v := range s.PlayerLatencies {
  			if v == nil {
  				continue
  			}
  			if err := v.Validate(); err != nil {
  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PlayerLatencies", i), err.(request.ErrInvalidParams))
  			}
  		}
  	}
  
  	if invalidParams.Len() > 0 {
  		return invalidParams
  	}
  	return nil
  }