
com.pulumi.azurenative.azurefleet.kotlin.inputs.BaseVirtualMachineProfileArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azurenative.azurefleet.kotlin.inputs
import com.pulumi.azurenative.azurefleet.inputs.BaseVirtualMachineProfileArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.applySuspend
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.jvm.JvmName
/**
* Describes the base virtual machine profile for fleet
* @property applicationProfile Specifies the gallery applications that should be made available to the VM/VMSS
* @property capacityReservation Specifies the capacity reservation related details of a scale set. Minimum
* api-version: 2021-04-01.
* @property diagnosticsProfile Specifies the boot diagnostic settings state.
* @property extensionProfile Specifies a collection of settings for extensions installed on virtual machines
* in the scale set.
* @property hardwareProfile Specifies the hardware profile related details of a scale set. Minimum
* api-version: 2021-11-01.
* @property licenseType Specifies that the image or disk that is being used was licensed on-premises.
*
Possible values for Windows Server operating system are:
* Windows_Client
Windows_Server
Possible values for Linux
* Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS
* (for SUSE)
For more information, see [Azure Hybrid Use Benefit for
* Windows
* Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
*
[Azure Hybrid Use Benefit for Linux
* Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
*
Minimum api-version: 2015-06-15
* @property networkProfile Specifies properties of the network interfaces of the virtual machines in the
* scale set.
* @property osProfile Specifies the operating system settings for the virtual machines in the scale
* set.
* @property scheduledEventsProfile Specifies Scheduled Event related configurations.
* @property securityPostureReference Specifies the security posture to be used for all virtual machines in the scale
* set. Minimum api-version: 2023-03-01
* @property securityProfile Specifies the Security related profile settings for the virtual machines in the
* scale set.
* @property serviceArtifactReference Specifies the service artifact reference id used to set same image version for
* all virtual machines in the scale set when using 'latest' image version.
* Minimum api-version: 2022-11-01
* @property storageProfile Specifies the storage settings for the virtual machine disks.
* @property userData UserData for the virtual machines in the scale set, which must be base-64
* encoded. Customer should not pass any secrets in here. Minimum api-version:
* 2021-03-01.
*/
public data class BaseVirtualMachineProfileArgs(
public val applicationProfile: Output? = null,
public val capacityReservation: Output? = null,
public val diagnosticsProfile: Output? = null,
public val extensionProfile: Output? = null,
public val hardwareProfile: Output? = null,
public val licenseType: Output? = null,
public val networkProfile: Output? = null,
public val osProfile: Output? = null,
public val scheduledEventsProfile: Output? = null,
public val securityPostureReference: Output? = null,
public val securityProfile: Output? = null,
public val serviceArtifactReference: Output? = null,
public val storageProfile: Output? = null,
public val userData: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.azurenative.azurefleet.inputs.BaseVirtualMachineProfileArgs =
com.pulumi.azurenative.azurefleet.inputs.BaseVirtualMachineProfileArgs.builder()
.applicationProfile(
applicationProfile?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.capacityReservation(
capacityReservation?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.diagnosticsProfile(
diagnosticsProfile?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.extensionProfile(extensionProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.hardwareProfile(hardwareProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.licenseType(licenseType?.applyValue({ args0 -> args0 }))
.networkProfile(networkProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.osProfile(osProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.scheduledEventsProfile(
scheduledEventsProfile?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.securityPostureReference(
securityPostureReference?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.securityProfile(securityProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.serviceArtifactReference(
serviceArtifactReference?.applyValue({ args0 ->
args0.let({ args0 ->
args0.toJava()
})
}),
)
.storageProfile(storageProfile?.applyValue({ args0 -> args0.let({ args0 -> args0.toJava() }) }))
.userData(userData?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [BaseVirtualMachineProfileArgs].
*/
@PulumiTagMarker
public class BaseVirtualMachineProfileArgsBuilder internal constructor() {
private var applicationProfile: Output? = null
private var capacityReservation: Output? = null
private var diagnosticsProfile: Output? = null
private var extensionProfile: Output? = null
private var hardwareProfile: Output? = null
private var licenseType: Output? = null
private var networkProfile: Output? = null
private var osProfile: Output? = null
private var scheduledEventsProfile: Output? = null
private var securityPostureReference: Output? = null
private var securityProfile: Output? = null
private var serviceArtifactReference: Output? = null
private var storageProfile: Output? = null
private var userData: Output? = null
/**
* @param value Specifies the gallery applications that should be made available to the VM/VMSS
*/
@JvmName("ydtyelppeubqajew")
public suspend fun applicationProfile(`value`: Output) {
this.applicationProfile = value
}
/**
* @param value Specifies the capacity reservation related details of a scale set. Minimum
* api-version: 2021-04-01.
*/
@JvmName("dbbnrwyvhhoydyni")
public suspend fun capacityReservation(`value`: Output) {
this.capacityReservation = value
}
/**
* @param value Specifies the boot diagnostic settings state.
*/
@JvmName("bwpjmyragunhdvjg")
public suspend fun diagnosticsProfile(`value`: Output) {
this.diagnosticsProfile = value
}
/**
* @param value Specifies a collection of settings for extensions installed on virtual machines
* in the scale set.
*/
@JvmName("livsxvmiytshgqwa")
public suspend fun extensionProfile(`value`: Output) {
this.extensionProfile = value
}
/**
* @param value Specifies the hardware profile related details of a scale set. Minimum
* api-version: 2021-11-01.
*/
@JvmName("cprdpccikhovkckx")
public suspend fun hardwareProfile(`value`: Output) {
this.hardwareProfile = value
}
/**
* @param value Specifies that the image or disk that is being used was licensed on-premises.
*
Possible values for Windows Server operating system are:
* Windows_Client
Windows_Server
Possible values for Linux
* Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS
* (for SUSE)
For more information, see [Azure Hybrid Use Benefit for
* Windows
* Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
*
[Azure Hybrid Use Benefit for Linux
* Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
*
Minimum api-version: 2015-06-15
*/
@JvmName("mjotpgulqsenjvdc")
public suspend fun licenseType(`value`: Output) {
this.licenseType = value
}
/**
* @param value Specifies properties of the network interfaces of the virtual machines in the
* scale set.
*/
@JvmName("daddoytbgujjobmh")
public suspend fun networkProfile(`value`: Output) {
this.networkProfile = value
}
/**
* @param value Specifies the operating system settings for the virtual machines in the scale
* set.
*/
@JvmName("xbjteaahmotxbdas")
public suspend fun osProfile(`value`: Output) {
this.osProfile = value
}
/**
* @param value Specifies Scheduled Event related configurations.
*/
@JvmName("xaimpkumqmvlscfq")
public suspend fun scheduledEventsProfile(`value`: Output) {
this.scheduledEventsProfile = value
}
/**
* @param value Specifies the security posture to be used for all virtual machines in the scale
* set. Minimum api-version: 2023-03-01
*/
@JvmName("anuufnvwkaachhoa")
public suspend fun securityPostureReference(`value`: Output) {
this.securityPostureReference = value
}
/**
* @param value Specifies the Security related profile settings for the virtual machines in the
* scale set.
*/
@JvmName("bknhgyhwouitxlxg")
public suspend fun securityProfile(`value`: Output) {
this.securityProfile = value
}
/**
* @param value Specifies the service artifact reference id used to set same image version for
* all virtual machines in the scale set when using 'latest' image version.
* Minimum api-version: 2022-11-01
*/
@JvmName("uxhcavxdkcdbmhlx")
public suspend fun serviceArtifactReference(`value`: Output) {
this.serviceArtifactReference = value
}
/**
* @param value Specifies the storage settings for the virtual machine disks.
*/
@JvmName("lbdtotjsqdbfsvxh")
public suspend fun storageProfile(`value`: Output) {
this.storageProfile = value
}
/**
* @param value UserData for the virtual machines in the scale set, which must be base-64
* encoded. Customer should not pass any secrets in here. Minimum api-version:
* 2021-03-01.
*/
@JvmName("edmjtuvqoyorxdbw")
public suspend fun userData(`value`: Output) {
this.userData = value
}
/**
* @param value Specifies the gallery applications that should be made available to the VM/VMSS
*/
@JvmName("bculymlyudhqfvyu")
public suspend fun applicationProfile(`value`: ApplicationProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.applicationProfile = mapped
}
/**
* @param argument Specifies the gallery applications that should be made available to the VM/VMSS
*/
@JvmName("yboitufbqbarermt")
public suspend fun applicationProfile(argument: suspend ApplicationProfileArgsBuilder.() -> Unit) {
val toBeMapped = ApplicationProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.applicationProfile = mapped
}
/**
* @param value Specifies the capacity reservation related details of a scale set. Minimum
* api-version: 2021-04-01.
*/
@JvmName("obktmxxkvniuqtyk")
public suspend fun capacityReservation(`value`: CapacityReservationProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.capacityReservation = mapped
}
/**
* @param argument Specifies the capacity reservation related details of a scale set. Minimum
* api-version: 2021-04-01.
*/
@JvmName("wupblnnlilnnkixm")
public suspend fun capacityReservation(argument: suspend CapacityReservationProfileArgsBuilder.() -> Unit) {
val toBeMapped = CapacityReservationProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.capacityReservation = mapped
}
/**
* @param value Specifies the boot diagnostic settings state.
*/
@JvmName("bigmhxusicafaquf")
public suspend fun diagnosticsProfile(`value`: DiagnosticsProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.diagnosticsProfile = mapped
}
/**
* @param argument Specifies the boot diagnostic settings state.
*/
@JvmName("fmpoxifrlgcuxnsw")
public suspend fun diagnosticsProfile(argument: suspend DiagnosticsProfileArgsBuilder.() -> Unit) {
val toBeMapped = DiagnosticsProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.diagnosticsProfile = mapped
}
/**
* @param value Specifies a collection of settings for extensions installed on virtual machines
* in the scale set.
*/
@JvmName("mubvwtkavmbxybix")
public suspend fun extensionProfile(`value`: VirtualMachineScaleSetExtensionProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.extensionProfile = mapped
}
/**
* @param argument Specifies a collection of settings for extensions installed on virtual machines
* in the scale set.
*/
@JvmName("tmfxrbbrljqarruf")
public suspend fun extensionProfile(argument: suspend VirtualMachineScaleSetExtensionProfileArgsBuilder.() -> Unit) {
val toBeMapped = VirtualMachineScaleSetExtensionProfileArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.extensionProfile = mapped
}
/**
* @param value Specifies the hardware profile related details of a scale set. Minimum
* api-version: 2021-11-01.
*/
@JvmName("rcdljyjtrfdvsiqr")
public suspend fun hardwareProfile(`value`: VirtualMachineScaleSetHardwareProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.hardwareProfile = mapped
}
/**
* @param argument Specifies the hardware profile related details of a scale set. Minimum
* api-version: 2021-11-01.
*/
@JvmName("lcemajkwrswfyvcv")
public suspend fun hardwareProfile(argument: suspend VirtualMachineScaleSetHardwareProfileArgsBuilder.() -> Unit) {
val toBeMapped = VirtualMachineScaleSetHardwareProfileArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.hardwareProfile = mapped
}
/**
* @param value Specifies that the image or disk that is being used was licensed on-premises.
*
Possible values for Windows Server operating system are:
* Windows_Client
Windows_Server
Possible values for Linux
* Server operating system are:
RHEL_BYOS (for RHEL)
SLES_BYOS
* (for SUSE)
For more information, see [Azure Hybrid Use Benefit for
* Windows
* Server](https://docs.microsoft.com/azure/virtual-machines/windows/hybrid-use-benefit-licensing)
*
[Azure Hybrid Use Benefit for Linux
* Server](https://docs.microsoft.com/azure/virtual-machines/linux/azure-hybrid-benefit-linux)
*
Minimum api-version: 2015-06-15
*/
@JvmName("khhkirebbyikecmv")
public suspend fun licenseType(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.licenseType = mapped
}
/**
* @param value Specifies properties of the network interfaces of the virtual machines in the
* scale set.
*/
@JvmName("musffmnfidlthooh")
public suspend fun networkProfile(`value`: VirtualMachineScaleSetNetworkProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.networkProfile = mapped
}
/**
* @param argument Specifies properties of the network interfaces of the virtual machines in the
* scale set.
*/
@JvmName("nbqxbvupaodruxkh")
public suspend fun networkProfile(argument: suspend VirtualMachineScaleSetNetworkProfileArgsBuilder.() -> Unit) {
val toBeMapped = VirtualMachineScaleSetNetworkProfileArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.networkProfile = mapped
}
/**
* @param value Specifies the operating system settings for the virtual machines in the scale
* set.
*/
@JvmName("olxgclqewqjiiitu")
public suspend fun osProfile(`value`: VirtualMachineScaleSetOSProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.osProfile = mapped
}
/**
* @param argument Specifies the operating system settings for the virtual machines in the scale
* set.
*/
@JvmName("ljkoxkqgsrdamwxc")
public suspend fun osProfile(argument: suspend VirtualMachineScaleSetOSProfileArgsBuilder.() -> Unit) {
val toBeMapped = VirtualMachineScaleSetOSProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.osProfile = mapped
}
/**
* @param value Specifies Scheduled Event related configurations.
*/
@JvmName("klqgdabgdxeytxlq")
public suspend fun scheduledEventsProfile(`value`: ScheduledEventsProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.scheduledEventsProfile = mapped
}
/**
* @param argument Specifies Scheduled Event related configurations.
*/
@JvmName("umuwsmqaipihnhne")
public suspend fun scheduledEventsProfile(argument: suspend ScheduledEventsProfileArgsBuilder.() -> Unit) {
val toBeMapped = ScheduledEventsProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.scheduledEventsProfile = mapped
}
/**
* @param value Specifies the security posture to be used for all virtual machines in the scale
* set. Minimum api-version: 2023-03-01
*/
@JvmName("luuqmgofaaaxbudr")
public suspend fun securityPostureReference(`value`: SecurityPostureReferenceArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityPostureReference = mapped
}
/**
* @param argument Specifies the security posture to be used for all virtual machines in the scale
* set. Minimum api-version: 2023-03-01
*/
@JvmName("tgflqpnjnmpsdcvq")
public suspend fun securityPostureReference(argument: suspend SecurityPostureReferenceArgsBuilder.() -> Unit) {
val toBeMapped = SecurityPostureReferenceArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.securityPostureReference = mapped
}
/**
* @param value Specifies the Security related profile settings for the virtual machines in the
* scale set.
*/
@JvmName("qqdfjuaigtdymxdv")
public suspend fun securityProfile(`value`: SecurityProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.securityProfile = mapped
}
/**
* @param argument Specifies the Security related profile settings for the virtual machines in the
* scale set.
*/
@JvmName("hnxjcxpjfdnlboyk")
public suspend fun securityProfile(argument: suspend SecurityProfileArgsBuilder.() -> Unit) {
val toBeMapped = SecurityProfileArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.securityProfile = mapped
}
/**
* @param value Specifies the service artifact reference id used to set same image version for
* all virtual machines in the scale set when using 'latest' image version.
* Minimum api-version: 2022-11-01
*/
@JvmName("pylddweyxjfeybuj")
public suspend fun serviceArtifactReference(`value`: ServiceArtifactReferenceArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.serviceArtifactReference = mapped
}
/**
* @param argument Specifies the service artifact reference id used to set same image version for
* all virtual machines in the scale set when using 'latest' image version.
* Minimum api-version: 2022-11-01
*/
@JvmName("fagbovtfwvqnujkq")
public suspend fun serviceArtifactReference(argument: suspend ServiceArtifactReferenceArgsBuilder.() -> Unit) {
val toBeMapped = ServiceArtifactReferenceArgsBuilder().applySuspend { argument() }.build()
val mapped = of(toBeMapped)
this.serviceArtifactReference = mapped
}
/**
* @param value Specifies the storage settings for the virtual machine disks.
*/
@JvmName("kkafancsfxxxrjgq")
public suspend fun storageProfile(`value`: VirtualMachineScaleSetStorageProfileArgs?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.storageProfile = mapped
}
/**
* @param argument Specifies the storage settings for the virtual machine disks.
*/
@JvmName("occobxjiboruonbx")
public suspend fun storageProfile(argument: suspend VirtualMachineScaleSetStorageProfileArgsBuilder.() -> Unit) {
val toBeMapped = VirtualMachineScaleSetStorageProfileArgsBuilder().applySuspend {
argument()
}.build()
val mapped = of(toBeMapped)
this.storageProfile = mapped
}
/**
* @param value UserData for the virtual machines in the scale set, which must be base-64
* encoded. Customer should not pass any secrets in here. Minimum api-version:
* 2021-03-01.
*/
@JvmName("lrmmkdplxqqkeoii")
public suspend fun userData(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.userData = mapped
}
internal fun build(): BaseVirtualMachineProfileArgs = BaseVirtualMachineProfileArgs(
applicationProfile = applicationProfile,
capacityReservation = capacityReservation,
diagnosticsProfile = diagnosticsProfile,
extensionProfile = extensionProfile,
hardwareProfile = hardwareProfile,
licenseType = licenseType,
networkProfile = networkProfile,
osProfile = osProfile,
scheduledEventsProfile = scheduledEventsProfile,
securityPostureReference = securityPostureReference,
securityProfile = securityProfile,
serviceArtifactReference = serviceArtifactReference,
storageProfile = storageProfile,
userData = userData,
)
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy