func()

in v2/api/containerservice/v1api20210501/managed_clusters_agent_pool_types_gen.go [394:626]


func (pool *ManagedClustersAgentPool_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) {
	if pool == nil {
		return nil, nil
	}
	result := &arm.ManagedClustersAgentPool_Spec{}

	// Set property "Name":
	result.Name = resolved.Name

	// Set property "Properties":
	if pool.AvailabilityZones != nil ||
		pool.Count != nil ||
		pool.EnableAutoScaling != nil ||
		pool.EnableEncryptionAtHost != nil ||
		pool.EnableFIPS != nil ||
		pool.EnableNodePublicIP != nil ||
		pool.EnableUltraSSD != nil ||
		pool.GpuInstanceProfile != nil ||
		pool.KubeletConfig != nil ||
		pool.KubeletDiskType != nil ||
		pool.LinuxOSConfig != nil ||
		pool.MaxCount != nil ||
		pool.MaxPods != nil ||
		pool.MinCount != nil ||
		pool.Mode != nil ||
		pool.NodeLabels != nil ||
		pool.NodePublicIPPrefixIDReference != nil ||
		pool.NodeTaints != nil ||
		pool.OrchestratorVersion != nil ||
		pool.OsDiskSizeGB != nil ||
		pool.OsDiskType != nil ||
		pool.OsSKU != nil ||
		pool.OsType != nil ||
		pool.PodSubnetIDReference != nil ||
		pool.ProximityPlacementGroupID != nil ||
		pool.ScaleSetEvictionPolicy != nil ||
		pool.ScaleSetPriority != nil ||
		pool.SpotMaxPrice != nil ||
		pool.Tags != nil ||
		pool.Type != nil ||
		pool.UpgradeSettings != nil ||
		pool.VmSize != nil ||
		pool.VnetSubnetIDReference != nil {
		result.Properties = &arm.ManagedClusterAgentPoolProfileProperties{}
	}
	for _, item := range pool.AvailabilityZones {
		result.Properties.AvailabilityZones = append(result.Properties.AvailabilityZones, item)
	}
	if pool.Count != nil {
		count := *pool.Count
		result.Properties.Count = &count
	}
	if pool.EnableAutoScaling != nil {
		enableAutoScaling := *pool.EnableAutoScaling
		result.Properties.EnableAutoScaling = &enableAutoScaling
	}
	if pool.EnableEncryptionAtHost != nil {
		enableEncryptionAtHost := *pool.EnableEncryptionAtHost
		result.Properties.EnableEncryptionAtHost = &enableEncryptionAtHost
	}
	if pool.EnableFIPS != nil {
		enableFIPS := *pool.EnableFIPS
		result.Properties.EnableFIPS = &enableFIPS
	}
	if pool.EnableNodePublicIP != nil {
		enableNodePublicIP := *pool.EnableNodePublicIP
		result.Properties.EnableNodePublicIP = &enableNodePublicIP
	}
	if pool.EnableUltraSSD != nil {
		enableUltraSSD := *pool.EnableUltraSSD
		result.Properties.EnableUltraSSD = &enableUltraSSD
	}
	if pool.GpuInstanceProfile != nil {
		var temp string
		temp = string(*pool.GpuInstanceProfile)
		gpuInstanceProfile := arm.GPUInstanceProfile(temp)
		result.Properties.GpuInstanceProfile = &gpuInstanceProfile
	}
	if pool.KubeletConfig != nil {
		kubeletConfig_ARM, err := (*pool.KubeletConfig).ConvertToARM(resolved)
		if err != nil {
			return nil, err
		}
		kubeletConfig := *kubeletConfig_ARM.(*arm.KubeletConfig)
		result.Properties.KubeletConfig = &kubeletConfig
	}
	if pool.KubeletDiskType != nil {
		var temp string
		temp = string(*pool.KubeletDiskType)
		kubeletDiskType := arm.KubeletDiskType(temp)
		result.Properties.KubeletDiskType = &kubeletDiskType
	}
	if pool.LinuxOSConfig != nil {
		linuxOSConfig_ARM, err := (*pool.LinuxOSConfig).ConvertToARM(resolved)
		if err != nil {
			return nil, err
		}
		linuxOSConfig := *linuxOSConfig_ARM.(*arm.LinuxOSConfig)
		result.Properties.LinuxOSConfig = &linuxOSConfig
	}
	if pool.MaxCount != nil {
		maxCount := *pool.MaxCount
		result.Properties.MaxCount = &maxCount
	}
	if pool.MaxPods != nil {
		maxPods := *pool.MaxPods
		result.Properties.MaxPods = &maxPods
	}
	if pool.MinCount != nil {
		minCount := *pool.MinCount
		result.Properties.MinCount = &minCount
	}
	if pool.Mode != nil {
		var temp string
		temp = string(*pool.Mode)
		mode := arm.AgentPoolMode(temp)
		result.Properties.Mode = &mode
	}
	if pool.NodeLabels != nil {
		result.Properties.NodeLabels = make(map[string]string, len(pool.NodeLabels))
		for key, value := range pool.NodeLabels {
			result.Properties.NodeLabels[key] = value
		}
	} else {
		// Set property to empty map, as this resource is set to serialize all collections explicitly
		result.Properties.NodeLabels = make(map[string]string)
	}
	if pool.NodePublicIPPrefixIDReference != nil {
		nodePublicIPPrefixIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.NodePublicIPPrefixIDReference)
		if err != nil {
			return nil, err
		}
		nodePublicIPPrefixID := nodePublicIPPrefixIDARMID
		result.Properties.NodePublicIPPrefixID = &nodePublicIPPrefixID
	}
	for _, item := range pool.NodeTaints {
		result.Properties.NodeTaints = append(result.Properties.NodeTaints, item)
	}
	if result.Properties.NodeTaints == nil {
		// Set property to empty map, as this resource is set to serialize all collections explicitly
		result.Properties.NodeTaints = []string{}
	}
	if pool.OrchestratorVersion != nil {
		orchestratorVersion := *pool.OrchestratorVersion
		result.Properties.OrchestratorVersion = &orchestratorVersion
	}
	if pool.OsDiskSizeGB != nil {
		osDiskSizeGB := int(*pool.OsDiskSizeGB)
		result.Properties.OsDiskSizeGB = &osDiskSizeGB
	}
	if pool.OsDiskType != nil {
		var temp string
		temp = string(*pool.OsDiskType)
		osDiskType := arm.OSDiskType(temp)
		result.Properties.OsDiskType = &osDiskType
	}
	if pool.OsSKU != nil {
		var temp string
		temp = string(*pool.OsSKU)
		osSKU := arm.OSSKU(temp)
		result.Properties.OsSKU = &osSKU
	}
	if pool.OsType != nil {
		var temp string
		temp = string(*pool.OsType)
		osType := arm.OSType(temp)
		result.Properties.OsType = &osType
	}
	if pool.PodSubnetIDReference != nil {
		podSubnetIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.PodSubnetIDReference)
		if err != nil {
			return nil, err
		}
		podSubnetID := podSubnetIDARMID
		result.Properties.PodSubnetID = &podSubnetID
	}
	if pool.ProximityPlacementGroupID != nil {
		proximityPlacementGroupID := *pool.ProximityPlacementGroupID
		result.Properties.ProximityPlacementGroupID = &proximityPlacementGroupID
	}
	if pool.ScaleSetEvictionPolicy != nil {
		var temp string
		temp = string(*pool.ScaleSetEvictionPolicy)
		scaleSetEvictionPolicy := arm.ScaleSetEvictionPolicy(temp)
		result.Properties.ScaleSetEvictionPolicy = &scaleSetEvictionPolicy
	}
	if pool.ScaleSetPriority != nil {
		var temp string
		temp = string(*pool.ScaleSetPriority)
		scaleSetPriority := arm.ScaleSetPriority(temp)
		result.Properties.ScaleSetPriority = &scaleSetPriority
	}
	if pool.SpotMaxPrice != nil {
		spotMaxPrice := *pool.SpotMaxPrice
		result.Properties.SpotMaxPrice = &spotMaxPrice
	}
	if pool.Tags != nil {
		result.Properties.Tags = make(map[string]string, len(pool.Tags))
		for key, value := range pool.Tags {
			result.Properties.Tags[key] = value
		}
	} else {
		// Set property to empty map, as this resource is set to serialize all collections explicitly
		result.Properties.Tags = make(map[string]string)
	}
	if pool.Type != nil {
		var temp string
		temp = string(*pool.Type)
		typeVar := arm.AgentPoolType(temp)
		result.Properties.Type = &typeVar
	}
	if pool.UpgradeSettings != nil {
		upgradeSettings_ARM, err := (*pool.UpgradeSettings).ConvertToARM(resolved)
		if err != nil {
			return nil, err
		}
		upgradeSettings := *upgradeSettings_ARM.(*arm.AgentPoolUpgradeSettings)
		result.Properties.UpgradeSettings = &upgradeSettings
	}
	if pool.VmSize != nil {
		vmSize := *pool.VmSize
		result.Properties.VmSize = &vmSize
	}
	if pool.VnetSubnetIDReference != nil {
		vnetSubnetIDARMID, err := resolved.ResolvedReferences.Lookup(*pool.VnetSubnetIDReference)
		if err != nil {
			return nil, err
		}
		vnetSubnetID := vnetSubnetIDARMID
		result.Properties.VnetSubnetID = &vnetSubnetID
	}
	return result, nil
}