func()

in v2/api/documentdb/v1api20210515/storage/database_account_types_gen.go [1235:1660]


func (account *DatabaseAccount_STATUS) AssignProperties_From_DatabaseAccount_STATUS(source *storage.DatabaseAccount_STATUS) error {
	// Clone the existing property bag
	propertyBag := genruntime.NewPropertyBag(source.PropertyBag)

	// AnalyticalStorageConfiguration
	if source.AnalyticalStorageConfiguration != nil {
		var analyticalStorageConfiguration AnalyticalStorageConfiguration_STATUS
		err := analyticalStorageConfiguration.AssignProperties_From_AnalyticalStorageConfiguration_STATUS(source.AnalyticalStorageConfiguration)
		if err != nil {
			return eris.Wrap(err, "calling AssignProperties_From_AnalyticalStorageConfiguration_STATUS() to populate field AnalyticalStorageConfiguration")
		}
		account.AnalyticalStorageConfiguration = &analyticalStorageConfiguration
	} else {
		account.AnalyticalStorageConfiguration = nil
	}

	// ApiProperties
	if source.ApiProperties != nil {
		var apiProperty ApiProperties_STATUS
		err := apiProperty.AssignProperties_From_ApiProperties_STATUS(source.ApiProperties)
		if err != nil {
			return eris.Wrap(err, "calling AssignProperties_From_ApiProperties_STATUS() to populate field ApiProperties")
		}
		account.ApiProperties = &apiProperty
	} else {
		account.ApiProperties = nil
	}

	// BackupPolicy
	if source.BackupPolicy != nil {
		var backupPolicy BackupPolicy_STATUS
		err := backupPolicy.AssignProperties_From_BackupPolicy_STATUS(source.BackupPolicy)
		if err != nil {
			return eris.Wrap(err, "calling AssignProperties_From_BackupPolicy_STATUS() to populate field BackupPolicy")
		}
		account.BackupPolicy = &backupPolicy
	} else {
		account.BackupPolicy = nil
	}

	// Capabilities
	if source.Capabilities != nil {
		capabilityList := make([]Capability_STATUS, len(source.Capabilities))
		for capabilityIndex, capabilityItem := range source.Capabilities {
			// Shadow the loop variable to avoid aliasing
			capabilityItem := capabilityItem
			var capability Capability_STATUS
			err := capability.AssignProperties_From_Capability_STATUS(&capabilityItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_Capability_STATUS() to populate field Capabilities")
			}
			capabilityList[capabilityIndex] = capability
		}
		account.Capabilities = capabilityList
	} else {
		account.Capabilities = nil
	}

	// Capacity
	if source.Capacity != nil {
		propertyBag.Add("Capacity", *source.Capacity)
	} else {
		propertyBag.Remove("Capacity")
	}

	// Conditions
	account.Conditions = genruntime.CloneSliceOfCondition(source.Conditions)

	// ConnectorOffer
	account.ConnectorOffer = genruntime.ClonePointerToString(source.ConnectorOffer)

	// ConsistencyPolicy
	if source.ConsistencyPolicy != nil {
		var consistencyPolicy ConsistencyPolicy_STATUS
		err := consistencyPolicy.AssignProperties_From_ConsistencyPolicy_STATUS(source.ConsistencyPolicy)
		if err != nil {
			return eris.Wrap(err, "calling AssignProperties_From_ConsistencyPolicy_STATUS() to populate field ConsistencyPolicy")
		}
		account.ConsistencyPolicy = &consistencyPolicy
	} else {
		account.ConsistencyPolicy = nil
	}

	// Cors
	if source.Cors != nil {
		corList := make([]CorsPolicy_STATUS, len(source.Cors))
		for corIndex, corItem := range source.Cors {
			// Shadow the loop variable to avoid aliasing
			corItem := corItem
			var cor CorsPolicy_STATUS
			err := cor.AssignProperties_From_CorsPolicy_STATUS(&corItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_CorsPolicy_STATUS() to populate field Cors")
			}
			corList[corIndex] = cor
		}
		account.Cors = corList
	} else {
		account.Cors = nil
	}

	// CreateMode
	if source.CreateMode != nil {
		propertyBag.Add("CreateMode", *source.CreateMode)
	} else {
		propertyBag.Remove("CreateMode")
	}

	// CustomerManagedKeyStatus
	if source.CustomerManagedKeyStatus != nil {
		propertyBag.Add("CustomerManagedKeyStatus", *source.CustomerManagedKeyStatus)
	} else {
		propertyBag.Remove("CustomerManagedKeyStatus")
	}

	// DatabaseAccountOfferType
	account.DatabaseAccountOfferType = genruntime.ClonePointerToString(source.DatabaseAccountOfferType)

	// DefaultIdentity
	account.DefaultIdentity = genruntime.ClonePointerToString(source.DefaultIdentity)

	// DisableKeyBasedMetadataWriteAccess
	if source.DisableKeyBasedMetadataWriteAccess != nil {
		disableKeyBasedMetadataWriteAccess := *source.DisableKeyBasedMetadataWriteAccess
		account.DisableKeyBasedMetadataWriteAccess = &disableKeyBasedMetadataWriteAccess
	} else {
		account.DisableKeyBasedMetadataWriteAccess = nil
	}

	// DisableLocalAuth
	if source.DisableLocalAuth != nil {
		propertyBag.Add("DisableLocalAuth", *source.DisableLocalAuth)
	} else {
		propertyBag.Remove("DisableLocalAuth")
	}

	// DocumentEndpoint
	account.DocumentEndpoint = genruntime.ClonePointerToString(source.DocumentEndpoint)

	// EnableAnalyticalStorage
	if source.EnableAnalyticalStorage != nil {
		enableAnalyticalStorage := *source.EnableAnalyticalStorage
		account.EnableAnalyticalStorage = &enableAnalyticalStorage
	} else {
		account.EnableAnalyticalStorage = nil
	}

	// EnableAutomaticFailover
	if source.EnableAutomaticFailover != nil {
		enableAutomaticFailover := *source.EnableAutomaticFailover
		account.EnableAutomaticFailover = &enableAutomaticFailover
	} else {
		account.EnableAutomaticFailover = nil
	}

	// EnableBurstCapacity
	if source.EnableBurstCapacity != nil {
		propertyBag.Add("EnableBurstCapacity", *source.EnableBurstCapacity)
	} else {
		propertyBag.Remove("EnableBurstCapacity")
	}

	// EnableCassandraConnector
	if source.EnableCassandraConnector != nil {
		enableCassandraConnector := *source.EnableCassandraConnector
		account.EnableCassandraConnector = &enableCassandraConnector
	} else {
		account.EnableCassandraConnector = nil
	}

	// EnableFreeTier
	if source.EnableFreeTier != nil {
		enableFreeTier := *source.EnableFreeTier
		account.EnableFreeTier = &enableFreeTier
	} else {
		account.EnableFreeTier = nil
	}

	// EnableMultipleWriteLocations
	if source.EnableMultipleWriteLocations != nil {
		enableMultipleWriteLocation := *source.EnableMultipleWriteLocations
		account.EnableMultipleWriteLocations = &enableMultipleWriteLocation
	} else {
		account.EnableMultipleWriteLocations = nil
	}

	// EnablePartitionMerge
	if source.EnablePartitionMerge != nil {
		propertyBag.Add("EnablePartitionMerge", *source.EnablePartitionMerge)
	} else {
		propertyBag.Remove("EnablePartitionMerge")
	}

	// FailoverPolicies
	if source.FailoverPolicies != nil {
		failoverPolicyList := make([]FailoverPolicy_STATUS, len(source.FailoverPolicies))
		for failoverPolicyIndex, failoverPolicyItem := range source.FailoverPolicies {
			// Shadow the loop variable to avoid aliasing
			failoverPolicyItem := failoverPolicyItem
			var failoverPolicy FailoverPolicy_STATUS
			err := failoverPolicy.AssignProperties_From_FailoverPolicy_STATUS(&failoverPolicyItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_FailoverPolicy_STATUS() to populate field FailoverPolicies")
			}
			failoverPolicyList[failoverPolicyIndex] = failoverPolicy
		}
		account.FailoverPolicies = failoverPolicyList
	} else {
		account.FailoverPolicies = nil
	}

	// Id
	account.Id = genruntime.ClonePointerToString(source.Id)

	// Identity
	if source.Identity != nil {
		var identity ManagedServiceIdentity_STATUS
		err := identity.AssignProperties_From_ManagedServiceIdentity_STATUS(source.Identity)
		if err != nil {
			return eris.Wrap(err, "calling AssignProperties_From_ManagedServiceIdentity_STATUS() to populate field Identity")
		}
		account.Identity = &identity
	} else {
		account.Identity = nil
	}

	// InstanceId
	if source.InstanceId != nil {
		propertyBag.Add("InstanceId", *source.InstanceId)
	} else {
		propertyBag.Remove("InstanceId")
	}

	// IpRules
	if source.IpRules != nil {
		ipRuleList := make([]IpAddressOrRange_STATUS, len(source.IpRules))
		for ipRuleIndex, ipRuleItem := range source.IpRules {
			// Shadow the loop variable to avoid aliasing
			ipRuleItem := ipRuleItem
			var ipRule IpAddressOrRange_STATUS
			err := ipRule.AssignProperties_From_IpAddressOrRange_STATUS(&ipRuleItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_IpAddressOrRange_STATUS() to populate field IpRules")
			}
			ipRuleList[ipRuleIndex] = ipRule
		}
		account.IpRules = ipRuleList
	} else {
		account.IpRules = nil
	}

	// IsVirtualNetworkFilterEnabled
	if source.IsVirtualNetworkFilterEnabled != nil {
		isVirtualNetworkFilterEnabled := *source.IsVirtualNetworkFilterEnabled
		account.IsVirtualNetworkFilterEnabled = &isVirtualNetworkFilterEnabled
	} else {
		account.IsVirtualNetworkFilterEnabled = nil
	}

	// KeyVaultKeyUri
	account.KeyVaultKeyUri = genruntime.ClonePointerToString(source.KeyVaultKeyUri)

	// KeysMetadata
	if source.KeysMetadata != nil {
		propertyBag.Add("KeysMetadata", *source.KeysMetadata)
	} else {
		propertyBag.Remove("KeysMetadata")
	}

	// Kind
	account.Kind = genruntime.ClonePointerToString(source.Kind)

	// Location
	account.Location = genruntime.ClonePointerToString(source.Location)

	// Locations
	if source.Locations != nil {
		locationList := make([]Location_STATUS, len(source.Locations))
		for locationIndex, locationItem := range source.Locations {
			// Shadow the loop variable to avoid aliasing
			locationItem := locationItem
			var location Location_STATUS
			err := location.AssignProperties_From_Location_STATUS(&locationItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_Location_STATUS() to populate field Locations")
			}
			locationList[locationIndex] = location
		}
		account.Locations = locationList
	} else {
		account.Locations = nil
	}

	// MinimalTlsVersion
	if source.MinimalTlsVersion != nil {
		propertyBag.Add("MinimalTlsVersion", *source.MinimalTlsVersion)
	} else {
		propertyBag.Remove("MinimalTlsVersion")
	}

	// Name
	account.Name = genruntime.ClonePointerToString(source.Name)

	// NetworkAclBypass
	account.NetworkAclBypass = genruntime.ClonePointerToString(source.NetworkAclBypass)

	// NetworkAclBypassResourceIds
	account.NetworkAclBypassResourceIds = genruntime.CloneSliceOfString(source.NetworkAclBypassResourceIds)

	// PrivateEndpointConnections
	if source.PrivateEndpointConnections != nil {
		privateEndpointConnectionList := make([]PrivateEndpointConnection_STATUS, len(source.PrivateEndpointConnections))
		for privateEndpointConnectionIndex, privateEndpointConnectionItem := range source.PrivateEndpointConnections {
			// Shadow the loop variable to avoid aliasing
			privateEndpointConnectionItem := privateEndpointConnectionItem
			var privateEndpointConnection PrivateEndpointConnection_STATUS
			err := privateEndpointConnection.AssignProperties_From_PrivateEndpointConnection_STATUS(&privateEndpointConnectionItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_PrivateEndpointConnection_STATUS() to populate field PrivateEndpointConnections")
			}
			privateEndpointConnectionList[privateEndpointConnectionIndex] = privateEndpointConnection
		}
		account.PrivateEndpointConnections = privateEndpointConnectionList
	} else {
		account.PrivateEndpointConnections = nil
	}

	// ProvisioningState
	account.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState)

	// PublicNetworkAccess
	account.PublicNetworkAccess = genruntime.ClonePointerToString(source.PublicNetworkAccess)

	// ReadLocations
	if source.ReadLocations != nil {
		readLocationList := make([]Location_STATUS, len(source.ReadLocations))
		for readLocationIndex, readLocationItem := range source.ReadLocations {
			// Shadow the loop variable to avoid aliasing
			readLocationItem := readLocationItem
			var readLocation Location_STATUS
			err := readLocation.AssignProperties_From_Location_STATUS(&readLocationItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_Location_STATUS() to populate field ReadLocations")
			}
			readLocationList[readLocationIndex] = readLocation
		}
		account.ReadLocations = readLocationList
	} else {
		account.ReadLocations = nil
	}

	// RestoreParameters
	if source.RestoreParameters != nil {
		propertyBag.Add("RestoreParameters", *source.RestoreParameters)
	} else {
		propertyBag.Remove("RestoreParameters")
	}

	// SystemData
	if source.SystemData != nil {
		propertyBag.Add("SystemData", *source.SystemData)
	} else {
		propertyBag.Remove("SystemData")
	}

	// Tags
	account.Tags = genruntime.CloneMapOfStringToString(source.Tags)

	// Type
	account.Type = genruntime.ClonePointerToString(source.Type)

	// VirtualNetworkRules
	if source.VirtualNetworkRules != nil {
		virtualNetworkRuleList := make([]VirtualNetworkRule_STATUS, len(source.VirtualNetworkRules))
		for virtualNetworkRuleIndex, virtualNetworkRuleItem := range source.VirtualNetworkRules {
			// Shadow the loop variable to avoid aliasing
			virtualNetworkRuleItem := virtualNetworkRuleItem
			var virtualNetworkRule VirtualNetworkRule_STATUS
			err := virtualNetworkRule.AssignProperties_From_VirtualNetworkRule_STATUS(&virtualNetworkRuleItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_VirtualNetworkRule_STATUS() to populate field VirtualNetworkRules")
			}
			virtualNetworkRuleList[virtualNetworkRuleIndex] = virtualNetworkRule
		}
		account.VirtualNetworkRules = virtualNetworkRuleList
	} else {
		account.VirtualNetworkRules = nil
	}

	// WriteLocations
	if source.WriteLocations != nil {
		writeLocationList := make([]Location_STATUS, len(source.WriteLocations))
		for writeLocationIndex, writeLocationItem := range source.WriteLocations {
			// Shadow the loop variable to avoid aliasing
			writeLocationItem := writeLocationItem
			var writeLocation Location_STATUS
			err := writeLocation.AssignProperties_From_Location_STATUS(&writeLocationItem)
			if err != nil {
				return eris.Wrap(err, "calling AssignProperties_From_Location_STATUS() to populate field WriteLocations")
			}
			writeLocationList[writeLocationIndex] = writeLocation
		}
		account.WriteLocations = writeLocationList
	} else {
		account.WriteLocations = nil
	}

	// Update the property bag
	if len(propertyBag) > 0 {
		account.PropertyBag = propertyBag
	} else {
		account.PropertyBag = nil
	}

	// Invoke the augmentConversionForDatabaseAccount_STATUS interface (if implemented) to customize the conversion
	var accountAsAny any = account
	if augmentedAccount, ok := accountAsAny.(augmentConversionForDatabaseAccount_STATUS); ok {
		err := augmentedAccount.AssignPropertiesFrom(source)
		if err != nil {
			return eris.Wrap(err, "calling augmented AssignPropertiesFrom() for conversion")
		}
	}

	// No error
	return nil
}