// SetValueFromStrings parses strings and sets value.
547042
func SetValueFromStrings(f reflect.Value, values []string) error {
	ft := f.Type()

	if ft.Kind() != reflect.Slice && len(values) == 1 {
		err := SetValueFromString(f, values[0])
		if err != nil {
			return err
		}
		return nil
	}

	switch el := ft.Elem(); el.Kind() {
	case reflect.String:
		f.Set(reflect.ValueOf(values))
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		{
			resultList := reflect.MakeSlice(ft, 0, len(values))
			for _, value := range values {
				v, err := strconv.ParseInt(value, 0, el.Bits())
				if err != nil {
					return newBadRequestf("%s is not int format", value)
				}

				resultList = reflect.Append(resultList, reflect.ValueOf(v).Convert(el))
			}
			f.Set(resultList)
		}
	case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
		{
			resultList := reflect.MakeSlice(ft, 0, len(values))
			for _, value := range values {
				v, err := strconv.ParseUint(value, 0, el.Bits())
				if err != nil {
					return newBadRequestf("%s is not uint format", value)
				}

				resultList = reflect.Append(resultList, reflect.ValueOf(v).Convert(el))
			}
			f.Set(resultList)
		}
	case reflect.Float32, reflect.Float64:
		{
			resultList := reflect.MakeSlice(ft, 0, len(values))
			for _, value := range values {
				v, err := strconv.ParseFloat(value, el.Bits())
				if err != nil {
					return newBadRequestf("%s is not float format", value)
				}

				resultList = reflect.Append(resultList, reflect.ValueOf(v).Convert(el))
			}
			f.Set(resultList)
		}
	case reflect.Bool:
		{
			resultList := make([]bool, 0, len(values))
			for _, value := range values {
				v, err := strconv.ParseBool(value)
				if err != nil {
					return newBadRequestf("%s is not bool format", value)
				}
				resultList = append(resultList, v)
			}
			f.Set(reflect.ValueOf(resultList))
		}
	default:
		return fmt.Errorf("unsupported format %s", el.Name())
	}

	return nil
}
323511
func (s *HostHeaderConditionConfig) SetValues(v []*string) *HostHeaderConditionConfig {
	s.Values = v
	return s
}
495147
func (s *GetTagValuesOutput) SetTagValues(v []*string) *GetTagValuesOutput {
	s.TagValues = v
	return s
}
1116423
func (s *DescribeClusterParameterGroupsInput) SetTagValues(v []*string) *DescribeClusterParameterGroupsInput {
	s.TagValues = v
	return s
}
887723
func (s *ComplianceStringFilter) SetValues(v []*string) *ComplianceStringFilter {
	s.Values = v
	return s
}
189019
func (s *DescribeClustersInput) SetTagValues(v []*string) *DescribeClustersInput {
	s.TagValues = v
	return s
}
932692
func (s *MaintenanceWindowFilter) SetValues(v []*string) *MaintenanceWindowFilter {
	s.Values = v
	return s
}
730323
func (s *DocumentKeyValuesFilter) SetValues(v []*string) *DocumentKeyValuesFilter {
	s.Values = v
	return s
}
532355
func (s *ConfigurationOptionDescription) SetValueOptions(v []*string) *ConfigurationOptionDescription {
	s.ValueOptions = v
	return s
}
1041873
func (s *DescribeClusterSnapshotsInput) SetTagValues(v []*string) *DescribeClusterSnapshotsInput {
	s.TagValues = v
	return s
}
304958
func (s *AttributeDimension) SetValues(v []*string) *AttributeDimension {
	s.Values = v
	return s
}
617111
func (s *ParameterStringFilter) SetValues(v []*string) *ParameterStringFilter {
	s.Values = v
	return s
}
634
func SelectFromStrings(messageToPrint string, options []string) (string, error) {
	return SelectFromStringsFromReader(messageToPrint, options, os.Stdin)
}
133740
func (s *ParameterValue) SetStringValue(v string) *ParameterValue {
	s.StringValue = &v
	return s
}
888807
func (obj *GenericVariable) SetStringValue(ctx context.Context, val string) error {
	err := obj.rpc(ctx, "SetStringValue", nil, val)
	return err 
}
200814
func (s *DescribeEventSubscriptionsInput) SetTagValues(v []*string) *DescribeEventSubscriptionsInput {
	s.TagValues = v
	return s
}
1367953
func (s *RuleCondition) SetValues(v []*string) *RuleCondition {
	s.Values = v
	return s
}