// SetProperty provides the inverse of all the property functions
// and is here for consistency.
975375
func (f *Feature) SetProperty(key string, value interface{}) {
	if f.Properties == nil {
		f.Properties = make(map[string]interface{})
	}
	f.Properties[key] = value
}
479801
func (s *JobUpdate) SetNotificationProperty(v *NotificationProperty) *JobUpdate {
	s.NotificationProperty = v
	return s
}
1341680
func (v *IDispatch) PutProperty(name string, params ...interface{}) (*VARIANT, error) {
	return v.InvokeWithOptionalArgs(name, DISPATCH_PROPERTYPUT, params)
}
777110
func (s *Namespace) SetProperties(v *NamespaceProperties) *Namespace {
	s.Properties = v
	return s
}
1164717
func (s *JobSummary) SetArrayProperties(v *ArrayPropertiesSummary) *JobSummary {
	s.ArrayProperties = v
	return s
}
146627
func (s *PropertyGroup) SetPropertyMap(v map[string]*string) *PropertyGroup {
	s.PropertyMap = v
	return s
}
624603
func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
	s.ThingGroupProperties = v
	return s
}
1297256
func (s *BatchParameters) SetArrayProperties(v *BatchArrayProperties) *BatchParameters {
	s.ArrayProperties = v
	return s
}
1192065
func (s *CreateJobInput) SetNotificationProperty(v *NotificationProperty) *CreateJobInput {
	s.NotificationProperty = v
	return s
}
980477
func (_class PIFClass) SetProperty(sessionID SessionRef, self PIFRef, name string, value string) (_err error) {
	_method := "PIF.set_property"
	_sessionIDArg, _err := convertSessionRefToXen(fmt.Sprintf("%s(%s)", _method, "session_id"), sessionID)
	if _err != nil {
		return
	}
	_selfArg, _err := convertPIFRefToXen(fmt.Sprintf("%s(%s)", _method, "self"), self)
	if _err != nil {
		return
	}
	_nameArg, _err := convertStringToXen(fmt.Sprintf("%s(%s)", _method, "name"), name)
	if _err != nil {
		return
	}
	_valueArg, _err := convertStringToXen(fmt.Sprintf("%s(%s)", _method, "value"), value)
	if _err != nil {
		return
	}
	_, _err =  _class.client.APICall(_method, _sessionIDArg, _selfArg, _nameArg, _valueArg)
	return
}
845460
func (s *StackResourceDrift) SetPropertyDifferences(v []*PropertyDifference) *StackResourceDrift {
	s.PropertyDifferences = v
	return s
}
819474
func (s *GameSessionPlacement) SetGameProperties(v []*GameProperty) *GameSessionPlacement {
	s.GameProperties = v
	return s
}
524722
func (s *JobDefinition) SetNodeProperties(v *NodeProperties) *JobDefinition {
	s.NodeProperties = v
	return s
}
584348
func (s *SdkType) SetConfigurationProperties(v []*SdkConfigurationProperty) *SdkType {
	s.ConfigurationProperties = v
	return s
}
99235
func (s *Job) SetExecutionProperty(v *ExecutionProperty) *Job {
	s.ExecutionProperty = v
	return s
}
401796
func setWithProperType(t reflect.Type, key *Key, field reflect.Value, delim string, allowShadow, isStrict bool) error {
	switch t.Kind() {
	case reflect.String:
		if len(key.String()) == 0 {
			return nil
		}
		field.SetString(key.String())
	case reflect.Bool:
		boolVal, err := key.Bool()
		if err != nil {
			return wrapStrictError(err, isStrict)
		}
		field.SetBool(boolVal)
	case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
		durationVal, err := key.Duration()
		// Skip zero value
		if err == nil && int64(durationVal) > 0 {
			field.Set(reflect.ValueOf(durationVal))
			return nil
		}

		intVal, err := key.Int64()
		if err != nil {
			return wrapStrictError(err, isStrict)
		}
		field.SetInt(intVal)
	//	byte is an alias for uint8, so supporting uint8 breaks support for byte
	case reflect.Uint, reflect.Uint16, reflect.Uint32, reflect.Uint64:
		durationVal, err := key.Duration()
		// Skip zero value
		if err == nil && uint64(durationVal) > 0 {
			field.Set(reflect.ValueOf(durationVal))
			return nil
		}

		uintVal, err := key.Uint64()
		if err != nil {
			return wrapStrictError(err, isStrict)
		}
		field.SetUint(uintVal)

	case reflect.Float32, reflect.Float64:
		floatVal, err := key.Float64()
		if err != nil {
			return wrapStrictError(err, isStrict)
		}
		field.SetFloat(floatVal)
	case reflectTime:
		timeVal, err := key.Time()
		if err != nil {
			return wrapStrictError(err, isStrict)
		}
		field.Set(reflect.ValueOf(timeVal))
	case reflect.Slice:
		return setSliceWithProperType(key, field, delim, allowShadow, isStrict)
	default:
		return fmt.Errorf("unsupported type '%s'", t)
	}
	return nil
}
346256
func (s *PerformanceMetrics) SetProperties(v map[string]*string) *PerformanceMetrics {
	s.Properties = v
	return s
}