Skip to content

Instantly share code, notes, and snippets.

@jplewa
Last active July 4, 2023 08:46
Show Gist options
  • Save jplewa/0897e9ca654d1f029f37162ce8ccba7f to your computer and use it in GitHub Desktop.
Save jplewa/0897e9ca654d1f029f37162ce8ccba7f to your computer and use it in GitHub Desktop.
{
"name": "azure",
"meta": {
"moduleFormat": "(.*)(?:/[^/]*)"
},
"config": {
"variables": {
"auxiliaryTenantIds": {
"type": "array",
"items": {
"type": "string"
}
},
"clientCertificate": {
"type": "string",
"description": "Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate\n"
},
"clientCertificatePassword": {
"type": "string",
"description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
},
"clientCertificatePath": {
"type": "string",
"description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
},
"clientId": {
"type": "string",
"description": "The Client ID which should be used.\n"
},
"clientIdFilePath": {
"type": "string",
"description": "The path to a file containing the Client ID which should be used.\n"
},
"clientSecret": {
"type": "string",
"description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
},
"clientSecretFilePath": {
"type": "string",
"description": "The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal\nusing a Client Secret.\n"
},
"disableCorrelationRequestId": {
"type": "boolean",
"description": "This will disable the x-ms-correlation-request-id header.\n"
},
"disableTerraformPartnerId": {
"type": "boolean",
"description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n"
},
"environment": {
"type": "string",
"description": "The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public.\n",
"default": "public",
"defaultInfo": {
"environment": [
"AZURE_ENVIRONMENT",
"ARM_ENVIRONMENT"
]
}
},
"features": {
"$ref": "#/types/azure:config/features:features"
},
"location": {
"type": "string",
"defaultInfo": {
"environment": [
"ARM_LOCATION"
]
}
},
"metadataHost": {
"type": "string",
"description": "The Hostname which should be used for the Azure Metadata Service.\n",
"defaultInfo": {
"environment": [
"ARM_METADATA_HOSTNAME"
]
}
},
"msiEndpoint": {
"type": "string",
"description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n"
},
"oidcRequestToken": {
"type": "string",
"description": "The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID\nConnect.\n"
},
"oidcRequestUrl": {
"type": "string",
"description": "The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal\nusing OpenID Connect.\n"
},
"oidcToken": {
"type": "string",
"description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"oidcTokenFilePath": {
"type": "string",
"description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"partnerId": {
"type": "string",
"description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
},
"skipProviderRegistration": {
"type": "boolean",
"description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n",
"default": false,
"defaultInfo": {
"environment": [
"ARM_SKIP_PROVIDER_REGISTRATION"
]
}
},
"storageUseAzuread": {
"type": "boolean",
"description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n",
"default": false,
"defaultInfo": {
"environment": [
"ARM_STORAGE_USE_AZUREAD"
]
}
},
"subscriptionId": {
"type": "string",
"description": "The Subscription ID which should be used.\n",
"default": "",
"defaultInfo": {
"environment": [
"ARM_SUBSCRIPTION_ID"
]
}
},
"tenantId": {
"type": "string",
"description": "The Tenant ID which should be used.\n"
},
"useCli": {
"type": "boolean",
"description": "Allow Azure CLI to be used for Authentication.\n"
},
"useMsi": {
"type": "boolean",
"description": "Allow Managed Service Identity to be used for Authentication.\n"
},
"useOidc": {
"type": "boolean",
"description": "Allow OpenID Connect to be used for authentication\n"
}
},
"defaults": [
"environment",
"metadataHost"
]
},
"language": {
"csharp": {
"compatibility": "tfbridge20",
"namespaces": {
"aadb2c": "AadB2C",
"advisor": "Advisor",
"analysisservices": "AnalysisServices",
"apimanagement": "ApiManagement",
"appconfiguration": "AppConfiguration",
"appinsights": "AppInsights",
"appplatform": "AppPlatform",
"appservice": "AppService",
"arckubernetes": "ArcKubernetes",
"arcmachine": "ArcMachine",
"armmsi": "ArmMsi",
"attestation": "Attestation",
"authorization": "Authorization",
"automanage": "Automanage",
"automation": "Automation",
"avs": "Avs",
"azure": "Azure",
"backup": "Backup",
"batch": "Batch",
"billing": "Billing",
"blueprint": "Blueprint",
"bot": "Bot",
"cdn": "Cdn",
"cognitive": "Cognitive",
"communication": "Communication",
"compute": "Compute",
"confidentialledger": "ConfidentialLedger",
"connections": "Connections",
"consumption": "Consumption",
"containerapp": "ContainerApp",
"containerservice": "ContainerService",
"core": "Core",
"cosmosdb": "CosmosDB",
"costmanagement": "CostManagement",
"dashboard": "Dashboard",
"databasemigration": "DatabaseMigration",
"databoxedge": "DataboxEdge",
"databricks": "DataBricks",
"datadog": "Datadog",
"datafactory": "DataFactory",
"dataprotection": "DataProtection",
"datashare": "DataShare",
"desktopvirtualization": "DesktopVirtualization",
"devtest": "DevTest",
"digitaltwins": "DigitalTwins",
"dns": "Dns",
"domainservices": "DomainServices",
"elasticcloud": "ElasticCloud",
"eventgrid": "EventGrid",
"eventhub": "EventHub",
"fluidrelay": "FluidRelay",
"frontdoor": "FrontDoor",
"hdinsight": "HDInsight",
"healthcare": "Healthcare",
"hpc": "Hpc",
"hsm": "Hsm",
"hybrid": "Hybrid",
"iot": "Iot",
"iotcentral": "IotCentral",
"keyvault": "KeyVault",
"kusto": "Kusto",
"lab": "Lab",
"lb": "Lb",
"lighthouse": "Lighthouse",
"loadtest": "LoadTest",
"loganalytics": "LogAnalytics",
"logicapps": "LogicApps",
"machinelearning": "MachineLearning",
"maintenance": "Maintenance",
"managedapplication": "ManagedApplication",
"management": "Management",
"managementgroups": "ManagementGroups",
"managementresource": "ManagementResource",
"maps": "Maps",
"mariadb": "MariaDB",
"marketplace": "Marketplace",
"media": "Media",
"mediaservices": "MediaServices",
"mixedreality": "MixedReality",
"mobile": "Mobile",
"monitoring": "Monitoring",
"msi": "Msi",
"mssql": "MSSql",
"mysql": "MySql",
"netapp": "NetApp",
"network": "Network",
"nginx": "Nginx",
"notificationhub": "NotificationHub",
"operationalinsights": "OperationalInsights",
"orbital": "Orbital",
"policy": "Policy",
"portal": "Portal",
"postgresql": "PostgreSql",
"powerbi": "PowerBI",
"privatedns": "PrivateDns",
"privatelink": "PrivateLink",
"proximity": "Proximity",
"purview": "Purview",
"recoveryservices": "RecoveryServices",
"redis": "Redis",
"relay": "Relay",
"role": "Role",
"search": "Search",
"securitycenter": "SecurityCenter",
"sentinel": "Sentinel",
"servicebus": "ServiceBus",
"servicefabric": "ServiceFabric",
"signalr": "SignalR",
"siterecovery": "SiteRecovery",
"sql": "Sql",
"stack": "Stack",
"storage": "Storage",
"streamanalytics": "StreamAnalytics",
"synapse": "Synapse",
"trafficmanager": "TrafficManager",
"videoanalyzer": "VideoAnalyzer",
"voice": "Voice",
"waf": "Waf",
"webpubsub": "WebPubSub"
},
"packageReferences": {
"Pulumi": "3.*"
}
},
"go": {
"generateExtraInputTypes": true,
"generateResourceContainerTypes": true,
"importBasePath": "github.com/pulumi/pulumi-azure/sdk/v5/go/azure"
},
"nodejs": {
"compatibility": "tfbridge20",
"dependencies": {
"@azure/eventgrid": "^4.6.0",
"@azure/functions": "=1.2.2",
"@azure/ms-rest-azure-js": "^2.0.1",
"@azure/ms-rest-nodeauth": "^3.0.0",
"@pulumi/pulumi": "^3.0.0",
"azure-functions-ts-essentials": "^1.3.2",
"moment": "2.29.4",
"node-fetch": "^2.3.0"
},
"devDependencies": {
"@types/node": "^10.0.0",
"@types/node-fetch": "^2.5.8"
},
"disableUnionOutputTypes": true,
"packageDescription": "A Pulumi package for creating and managing Microsoft Azure cloud resources, based on the Terraform azurerm provider. We recommend using the [Azure Native provider](https://github.com/pulumi/pulumi-azure-native) to provision Azure infrastructure. Azure Native provides complete coverage of Azure resources and same-day access to new resources and resource updates.",
"packageName": "",
"readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-azurerm)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-azure` repo](https://github.com/pulumi/pulumi-azure/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-azurerm` repo](https://github.com/hashicorp/terraform-provider-azurerm/issues).",
"typescriptVersion": "4.7.4"
},
"python": {
"compatibility": "tfbridge20",
"readme": "> This provider is a derived work of the [Terraform Provider](https://github.com/hashicorp/terraform-provider-azurerm)\n> distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n> first check the [`pulumi-azure` repo](https://github.com/pulumi/pulumi-azure/issues); however, if that doesn't turn up anything,\n> please consult the source [`terraform-provider-azurerm` repo](https://github.com/hashicorp/terraform-provider-azurerm/issues).",
"requires": {
"pulumi": ">=3.0.0,<4.0.0"
}
}
},
"provider": {
"description": "The provider type for the azurerm package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
"properties": {
"auxiliaryTenantIds": {
"type": "array",
"items": {
"type": "string"
}
},
"clientCertificate": {
"type": "string",
"description": "Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate\n"
},
"clientCertificatePassword": {
"type": "string",
"description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
},
"clientCertificatePath": {
"type": "string",
"description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
},
"clientId": {
"type": "string",
"description": "The Client ID which should be used.\n"
},
"clientIdFilePath": {
"type": "string",
"description": "The path to a file containing the Client ID which should be used.\n"
},
"clientSecret": {
"type": "string",
"description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
},
"clientSecretFilePath": {
"type": "string",
"description": "The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal\nusing a Client Secret.\n"
},
"disableCorrelationRequestId": {
"type": "boolean",
"description": "This will disable the x-ms-correlation-request-id header.\n"
},
"disableTerraformPartnerId": {
"type": "boolean",
"description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n"
},
"environment": {
"type": "string",
"description": "The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public.\n"
},
"features": {
"$ref": "#/types/azure:index/ProviderFeatures:ProviderFeatures"
},
"metadataHost": {
"type": "string",
"description": "The Hostname which should be used for the Azure Metadata Service.\n"
},
"msiEndpoint": {
"type": "string",
"description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n"
},
"oidcRequestToken": {
"type": "string",
"description": "The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID\nConnect.\n"
},
"oidcRequestUrl": {
"type": "string",
"description": "The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal\nusing OpenID Connect.\n"
},
"oidcToken": {
"type": "string",
"description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"oidcTokenFilePath": {
"type": "string",
"description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"partnerId": {
"type": "string",
"description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
},
"skipProviderRegistration": {
"type": "boolean",
"description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n"
},
"storageUseAzuread": {
"type": "boolean",
"description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n"
},
"subscriptionId": {
"type": "string",
"description": "The Subscription ID which should be used.\n"
},
"tenantId": {
"type": "string",
"description": "The Tenant ID which should be used.\n"
},
"useCli": {
"type": "boolean",
"description": "Allow Azure CLI to be used for Authentication.\n"
},
"useMsi": {
"type": "boolean",
"description": "Allow Managed Service Identity to be used for Authentication.\n"
},
"useOidc": {
"type": "boolean",
"description": "Allow OpenID Connect to be used for authentication\n"
}
},
"inputProperties": {
"auxiliaryTenantIds": {
"type": "array",
"items": {
"type": "string"
}
},
"clientCertificate": {
"type": "string",
"description": "Base64 encoded PKCS#12 certificate bundle to use when authenticating as a Service Principal using a Client Certificate\n"
},
"clientCertificatePassword": {
"type": "string",
"description": "The password associated with the Client Certificate. For use when authenticating as a Service Principal using a Client\nCertificate\n"
},
"clientCertificatePath": {
"type": "string",
"description": "The path to the Client Certificate associated with the Service Principal for use when authenticating as a Service\nPrincipal using a Client Certificate.\n"
},
"clientId": {
"type": "string",
"description": "The Client ID which should be used.\n"
},
"clientIdFilePath": {
"type": "string",
"description": "The path to a file containing the Client ID which should be used.\n"
},
"clientSecret": {
"type": "string",
"description": "The Client Secret which should be used. For use When authenticating as a Service Principal using a Client Secret.\n"
},
"clientSecretFilePath": {
"type": "string",
"description": "The path to a file containing the Client Secret which should be used. For use When authenticating as a Service Principal\nusing a Client Secret.\n"
},
"disableCorrelationRequestId": {
"type": "boolean",
"description": "This will disable the x-ms-correlation-request-id header.\n"
},
"disableTerraformPartnerId": {
"type": "boolean",
"description": "This will disable the Terraform Partner ID which is used if a custom `partner_id` isn't specified.\n"
},
"environment": {
"type": "string",
"description": "The Cloud Environment which should be used. Possible values are public, usgovernment, and china. Defaults to public.\n",
"default": "public",
"defaultInfo": {
"environment": [
"AZURE_ENVIRONMENT",
"ARM_ENVIRONMENT"
]
}
},
"features": {
"$ref": "#/types/azure:index/ProviderFeatures:ProviderFeatures"
},
"metadataHost": {
"type": "string",
"description": "The Hostname which should be used for the Azure Metadata Service.\n",
"defaultInfo": {
"environment": [
"ARM_METADATA_HOSTNAME"
]
}
},
"msiEndpoint": {
"type": "string",
"description": "The path to a custom endpoint for Managed Service Identity - in most circumstances this should be detected\nautomatically.\n"
},
"oidcRequestToken": {
"type": "string",
"description": "The bearer token for the request to the OIDC provider. For use when authenticating as a Service Principal using OpenID\nConnect.\n"
},
"oidcRequestUrl": {
"type": "string",
"description": "The URL for the OIDC provider from which to request an ID token. For use when authenticating as a Service Principal\nusing OpenID Connect.\n"
},
"oidcToken": {
"type": "string",
"description": "The OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"oidcTokenFilePath": {
"type": "string",
"description": "The path to a file containing an OIDC ID token for use when authenticating as a Service Principal using OpenID Connect.\n"
},
"partnerId": {
"type": "string",
"description": "A GUID/UUID that is registered with Microsoft to facilitate partner resource usage attribution.\n"
},
"skipProviderRegistration": {
"type": "boolean",
"description": "Should the AzureRM Provider skip registering all of the Resource Providers that it supports, if they're not already\nregistered?\n",
"default": false,
"defaultInfo": {
"environment": [
"ARM_SKIP_PROVIDER_REGISTRATION"
]
}
},
"storageUseAzuread": {
"type": "boolean",
"description": "Should the AzureRM Provider use AzureAD to access the Storage Data Plane API's?\n",
"default": false,
"defaultInfo": {
"environment": [
"ARM_STORAGE_USE_AZUREAD"
]
}
},
"subscriptionId": {
"type": "string",
"description": "The Subscription ID which should be used.\n",
"default": "",
"defaultInfo": {
"environment": [
"ARM_SUBSCRIPTION_ID"
]
}
},
"tenantId": {
"type": "string",
"description": "The Tenant ID which should be used.\n"
},
"useCli": {
"type": "boolean",
"description": "Allow Azure CLI to be used for Authentication.\n"
},
"useMsi": {
"type": "boolean",
"description": "Allow Managed Service Identity to be used for Authentication.\n"
},
"useOidc": {
"type": "boolean",
"description": "Allow OpenID Connect to be used for authentication\n"
}
}
},
"types": {
"azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities": {
"properties": {
"ultraSsdEnabled": {
"type": "boolean",
"description": "Should Ultra SSD disk be enabled for this Virtual Machine? Changing this forces a new resource to be created.\n\n> **Note:** Azure Ultra Disk Storage is only available in a region that support availability zones and can only enabled on the following VM series: `ESv3`, `DSv3`, `FSv3`, `LSv2`, `M` and `Mv2`. For more information see the `Azure Ultra Disk Storage` [product documentation](https://docs.microsoft.com/azure/virtual-machines/windows/disks-enable-ultra-ssd).\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"ultraSsdEnabled"
]
},
"azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics": {
"properties": {
"enabled": {
"type": "boolean",
"description": "Should Boot Diagnostics be enabled for this Virtual Machine?\n"
},
"storageUri": {
"type": "string",
"description": "The Storage Account's Blob Endpoint which should hold the virtual machine's diagnostic files.\n\n> **NOTE:** This needs to be the root of a Storage Account and not a Storage Container.\n"
}
},
"type": "object",
"required": [
"enabled",
"storageUri"
]
},
"azure:compute/VirtualMachineIdentity:VirtualMachineIdentity": {
"properties": {
"identityIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specifies a list of User Assigned Managed Identity IDs to be assigned to this Virtual Machine.\n\n> **NOTE:** This is required when `type` is set to `UserAssigned` or `SystemAssigned, UserAssigned`.\n"
},
"principalId": {
"type": "string",
"description": "The Principal ID associated with this Managed Service Identity.\n"
},
"type": {
"type": "string",
"description": "Specifies the type of Managed Service Identity that should be configured on this Virtual Machine. Possible values are `SystemAssigned`, `UserAssigned`, `SystemAssigned, UserAssigned` (to enable both).\n\n> **NOTE:** Managed Service Identity previously required the installation of a VM Extension, but this information [is now available via the Azure Instance Metadata Service](https://docs.microsoft.com/azure/active-directory/managed-service-identity/overview#how-does-it-work).\n\n> **NOTE:** When `type` is set to `SystemAssigned`, identity the Principal ID can be retrieved after the virtual machine has been created. More details are available below. See [documentation](https://docs.microsoft.com/azure/active-directory/managed-service-identity/overview) for additional information.\n"
}
},
"type": "object",
"required": [
"type"
],
"language": {
"nodejs": {
"requiredOutputs": [
"principalId",
"type"
]
}
}
},
"azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile": {
"properties": {
"adminPassword": {
"type": "string",
"description": "(Optional for Windows, Optional for Linux) The password associated with the local administrator account.\n\n> **NOTE:** If using Linux, it may be preferable to use SSH Key authentication (available in the `os_profile_linux_config` block) instead of password authentication.\n",
"secret": true
},
"adminUsername": {
"type": "string",
"description": "Specifies the name of the local administrator account.\n"
},
"computerName": {
"type": "string",
"description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"customData": {
"type": "string",
"description": "Specifies custom data to supply to the machine. On Linux-based systems, this can be used as a cloud-init script. On other systems, this will be copied as a file on disk. Internally, this provider will base64 encode this value before sending it to the API. The maximum length of the binary array is 65535 bytes. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"required": [
"adminUsername",
"computerName"
],
"language": {
"nodejs": {
"requiredOutputs": [
"adminUsername",
"computerName",
"customData"
]
}
}
},
"azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig": {
"properties": {
"disablePasswordAuthentication": {
"type": "boolean",
"description": "Specifies whether password authentication should be disabled. If set to `false`, an `admin_password` must be specified.\n"
},
"sshKeys": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfigSshKey:VirtualMachineOsProfileLinuxConfigSshKey"
},
"description": "One or more `ssh_keys` blocks as defined below. This field is required if `disable_password_authentication` is set to `true`.\n"
}
},
"type": "object",
"required": [
"disablePasswordAuthentication"
]
},
"azure:compute/VirtualMachineOsProfileLinuxConfigSshKey:VirtualMachineOsProfileLinuxConfigSshKey": {
"properties": {
"keyData": {
"type": "string",
"description": "The Public SSH Key which should be written to the `path` defined above.\n\n> **Note:** Azure only supports RSA SSH2 key signatures of at least 2048 bits in length\n"
},
"path": {
"type": "string",
"description": "The path of the destination file on the virtual machine\n\n> **NOTE:** Due to a limitation in the Azure VM Agent the only allowed `path` is `/home/{username}/.ssh/authorized_keys`.\n"
}
},
"type": "object",
"required": [
"keyData",
"path"
]
},
"azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret": {
"properties": {
"sourceVaultId": {
"type": "string",
"description": "Specifies the ID of the Key Vault to use.\n"
},
"vaultCertificates": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileSecretVaultCertificate:VirtualMachineOsProfileSecretVaultCertificate"
},
"description": "One or more `vault_certificates` blocks as defined below.\n"
}
},
"type": "object",
"required": [
"sourceVaultId"
]
},
"azure:compute/VirtualMachineOsProfileSecretVaultCertificate:VirtualMachineOsProfileSecretVaultCertificate": {
"properties": {
"certificateStore": {
"type": "string",
"description": "(Required, on windows machines) Specifies the certificate store on the Virtual Machine where the certificate should be added to, such as `My`.\n"
},
"certificateUrl": {
"type": "string",
"description": "The ID of the Key Vault Secret. Stored secret is the Base64 encoding of a JSON Object that which is encoded in UTF-8 of which the contents need to be:\n\n\n> **NOTE:** If your certificate is stored in Azure Key Vault - this can be sourced from the `secret_id` property on the `azure.keyvault.Certificate` resource.\n"
}
},
"type": "object",
"required": [
"certificateUrl"
]
},
"azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig": {
"properties": {
"additionalUnattendConfigs": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig:VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig"
},
"description": "An `additional_unattend_config` block as defined below.\n"
},
"enableAutomaticUpgrades": {
"type": "boolean",
"description": "Are automatic updates enabled on this Virtual Machine? Defaults to `false.`\n"
},
"provisionVmAgent": {
"type": "boolean",
"description": "Should the Azure Virtual Machine Guest Agent be installed on this Virtual Machine? Defaults to `false`.\n\n> **NOTE:** This is different from the Default value used for this field within Azure.\n"
},
"timezone": {
"type": "string",
"description": "Specifies the time zone of the virtual machine, [the possible values are defined here](https://jackstromberg.com/2017/01/list-of-time-zones-consumed-by-azure/). Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"winrms": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfigWinrm:VirtualMachineOsProfileWindowsConfigWinrm"
},
"description": "One or more `winrm` blocks as defined below.\n"
}
},
"type": "object"
},
"azure:compute/VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig:VirtualMachineOsProfileWindowsConfigAdditionalUnattendConfig": {
"properties": {
"component": {
"type": "string",
"description": "Specifies the name of the component to configure with the added content. The only allowable value is `Microsoft-Windows-Shell-Setup`.\n"
},
"content": {
"type": "string",
"description": "Specifies the base-64 encoded XML formatted content that is added to the unattend.xml file for the specified path and component.\n",
"secret": true
},
"pass": {
"type": "string",
"description": "Specifies the name of the pass that the content applies to. The only allowable value is `oobeSystem`.\n"
},
"settingName": {
"type": "string",
"description": "Specifies the name of the setting to which the content applies. Possible values are: `FirstLogonCommands` and `AutoLogon`.\n"
}
},
"type": "object",
"required": [
"component",
"content",
"pass",
"settingName"
]
},
"azure:compute/VirtualMachineOsProfileWindowsConfigWinrm:VirtualMachineOsProfileWindowsConfigWinrm": {
"properties": {
"certificateUrl": {
"type": "string",
"description": "The ID of the Key Vault Secret which contains the encrypted Certificate which should be installed on the Virtual Machine. This certificate must also be specified in the `vault_certificates` block within the `os_profile_secrets` block.\n\n> **NOTE:** This can be sourced from the `secret_id` field on the `azure.keyvault.Certificate` resource.\n"
},
"protocol": {
"type": "string",
"description": "Specifies the protocol of listener. Possible values are `HTTP` or `HTTPS`.\n"
}
},
"type": "object",
"required": [
"protocol"
]
},
"azure:compute/VirtualMachinePlan:VirtualMachinePlan": {
"properties": {
"name": {
"type": "string",
"description": "Specifies the name of the image from the marketplace.\n"
},
"product": {
"type": "string",
"description": "Specifies the product of the image from the marketplace.\n"
},
"publisher": {
"type": "string",
"description": "Specifies the publisher of the image.\n"
}
},
"type": "object",
"required": [
"name",
"product",
"publisher"
]
},
"azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk": {
"properties": {
"caching": {
"type": "string",
"description": "Specifies the caching requirements for the Data Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n"
},
"createOption": {
"type": "string",
"description": "Specifies how the data disk should be created. Possible values are `Attach`, `FromImage` and `Empty`.\n\n> **NOTE:** If using an image that does not have data to be written to the Data Disk, use `Empty` as the create option in order to create the desired disk without any data.\n"
},
"diskSizeGb": {
"type": "integer",
"description": "Specifies the size of the data disk in gigabytes.\n"
},
"lun": {
"type": "integer",
"description": "Specifies the logical unit number of the data disk. This needs to be unique within all the Data Disks on the Virtual Machine.\n"
},
"managedDiskId": {
"type": "string",
"description": "Specifies the ID of an Existing Managed Disk which should be attached to this Virtual Machine. When this field is set `create_option` must be set to `Attach`.\n\nThe following properties apply when using Unmanaged Disks:\n"
},
"managedDiskType": {
"type": "string",
"description": "Specifies the type of managed disk to create. Possible values are either `Standard_LRS`, `StandardSSD_LRS`, `Premium_LRS` or `UltraSSD_LRS`.\n\n> **Note:** `managed_disk_type` of type `UltraSSD_LRS` is currently in preview and are not available to subscriptions that have not [requested](https://aka.ms/UltraSSDPreviewSignUp) onboarding to `Azure Ultra Disk Storage` preview. `Azure Ultra Disk Storage` is only available in `East US 2`, `North Europe`, and `Southeast Asia` regions. For more information see the `Azure Ultra Disk Storage` [product documentation](https://docs.microsoft.com/azure/virtual-machines/windows/disks-enable-ultra-ssd), [product blog](https://azure.microsoft.com/en-us/blog/announcing-the-general-availability-of-azure-ultra-disk-storage/) and [FAQ](https://docs.microsoft.com/azure/virtual-machines/windows/faq-for-disks#ultra-disks). You must also set `additional_capabilities.ultra_ssd_enabled` to `true`.\n"
},
"name": {
"type": "string",
"description": "The name of the Data Disk.\n"
},
"vhdUri": {
"type": "string",
"description": "Specifies the URI of the VHD file backing this Unmanaged Data Disk.\n"
},
"writeAcceleratorEnabled": {
"type": "boolean",
"description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n\nThe following properties apply when using Managed Disks:\n"
}
},
"type": "object",
"required": [
"createOption",
"lun",
"name"
],
"language": {
"nodejs": {
"requiredOutputs": [
"caching",
"createOption",
"diskSizeGb",
"lun",
"managedDiskId",
"managedDiskType",
"name"
]
}
}
},
"azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference": {
"properties": {
"id": {
"type": "string",
"description": "Specifies the ID of the Custom Image which the Virtual Machine should be created from. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"offer": {
"type": "string",
"description": "Specifies the offer of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"publisher": {
"type": "string",
"description": "Specifies the publisher of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"sku": {
"type": "string",
"description": "Specifies the SKU of the image used to create the virtual machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"version": {
"type": "string",
"description": "Specifies the version of the image used to create the virtual machine. Changing this forces a new resource to be created.\n\nTo provision a Custom Image, the following fields are applicable:\n",
"willReplaceOnChanges": true
}
},
"type": "object",
"language": {
"nodejs": {
"requiredOutputs": [
"version"
]
}
}
},
"azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk": {
"properties": {
"caching": {
"type": "string",
"description": "Specifies the caching requirements for the OS Disk. Possible values include `None`, `ReadOnly` and `ReadWrite`.\n"
},
"createOption": {
"type": "string",
"description": "Specifies how the OS Disk should be created. Possible values are `Attach` (managed disks only) and `FromImage`.\n"
},
"diskSizeGb": {
"type": "integer",
"description": "Specifies the size of the OS Disk in gigabytes.\n"
},
"imageUri": {
"type": "string",
"description": "Specifies the Image URI in the format `publisherName:offer:skus:version`. This field can also specify the [VHD URI](https://docs.microsoft.com/azure/virtual-machines/linux/tutorial-custom-images) of a custom VM image to clone. When cloning a Custom (Unmanaged) Disk Image the `os_type` field must be set.\n"
},
"managedDiskId": {
"type": "string",
"description": "Specifies the ID of an existing Managed Disk which should be attached as the OS Disk of this Virtual Machine. If this is set then the `create_option` must be set to `Attach`. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"managedDiskType": {
"type": "string",
"description": "Specifies the type of Managed Disk which should be created. Possible values are `Standard_LRS`, `StandardSSD_LRS` or `Premium_LRS`.\n\nThe following properties apply when using Unmanaged Disks:\n"
},
"name": {
"type": "string",
"description": "Specifies the name of the OS Disk.\n"
},
"osType": {
"type": "string",
"description": "Specifies the Operating System on the OS Disk. Possible values are `Linux` and `Windows`.\n"
},
"vhdUri": {
"type": "string",
"description": "Specifies the URI of the VHD file backing this Unmanaged OS Disk. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"writeAcceleratorEnabled": {
"type": "boolean",
"description": "Specifies if Write Accelerator is enabled on the disk. This can only be enabled on `Premium_LRS` managed disks with no caching and [M-Series VMs](https://docs.microsoft.com/azure/virtual-machines/workloads/sap/how-to-enable-write-accelerator). Defaults to `false`.\n\nThe following properties apply when using Managed Disks:\n"
}
},
"type": "object",
"required": [
"createOption",
"name"
],
"language": {
"nodejs": {
"requiredOutputs": [
"caching",
"createOption",
"diskSizeGb",
"managedDiskId",
"managedDiskType",
"name",
"osType"
]
}
}
},
"azure:index/ProviderFeatures:ProviderFeatures": {
"properties": {
"apiManagement": {
"$ref": "#/types/azure:index/ProviderFeaturesApiManagement:ProviderFeaturesApiManagement"
},
"appConfiguration": {
"$ref": "#/types/azure:index/ProviderFeaturesAppConfiguration:ProviderFeaturesAppConfiguration"
},
"applicationInsights": {
"$ref": "#/types/azure:index/ProviderFeaturesApplicationInsights:ProviderFeaturesApplicationInsights"
},
"cognitiveAccount": {
"$ref": "#/types/azure:index/ProviderFeaturesCognitiveAccount:ProviderFeaturesCognitiveAccount"
},
"keyVault": {
"$ref": "#/types/azure:index/ProviderFeaturesKeyVault:ProviderFeaturesKeyVault"
},
"logAnalyticsWorkspace": {
"$ref": "#/types/azure:index/ProviderFeaturesLogAnalyticsWorkspace:ProviderFeaturesLogAnalyticsWorkspace"
},
"managedDisk": {
"$ref": "#/types/azure:index/ProviderFeaturesManagedDisk:ProviderFeaturesManagedDisk"
},
"resourceGroup": {
"$ref": "#/types/azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup"
},
"templateDeployment": {
"$ref": "#/types/azure:index/ProviderFeaturesTemplateDeployment:ProviderFeaturesTemplateDeployment"
},
"virtualMachine": {
"$ref": "#/types/azure:index/ProviderFeaturesVirtualMachine:ProviderFeaturesVirtualMachine"
},
"virtualMachineScaleSet": {
"$ref": "#/types/azure:index/ProviderFeaturesVirtualMachineScaleSet:ProviderFeaturesVirtualMachineScaleSet"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesApiManagement:ProviderFeaturesApiManagement": {
"properties": {
"purgeSoftDeleteOnDestroy": {
"type": "boolean"
},
"recoverSoftDeleted": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesAppConfiguration:ProviderFeaturesAppConfiguration": {
"properties": {
"purgeSoftDeleteOnDestroy": {
"type": "boolean"
},
"recoverSoftDeleted": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesApplicationInsights:ProviderFeaturesApplicationInsights": {
"properties": {
"disableGeneratedRule": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesCognitiveAccount:ProviderFeaturesCognitiveAccount": {
"properties": {
"purgeSoftDeleteOnDestroy": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesKeyVault:ProviderFeaturesKeyVault": {
"properties": {
"purgeSoftDeleteOnDestroy": {
"type": "boolean"
},
"purgeSoftDeletedCertificatesOnDestroy": {
"type": "boolean"
},
"purgeSoftDeletedHardwareSecurityModulesOnDestroy": {
"type": "boolean"
},
"purgeSoftDeletedKeysOnDestroy": {
"type": "boolean"
},
"purgeSoftDeletedSecretsOnDestroy": {
"type": "boolean"
},
"recoverSoftDeletedCertificates": {
"type": "boolean"
},
"recoverSoftDeletedKeyVaults": {
"type": "boolean"
},
"recoverSoftDeletedKeys": {
"type": "boolean"
},
"recoverSoftDeletedSecrets": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesLogAnalyticsWorkspace:ProviderFeaturesLogAnalyticsWorkspace": {
"properties": {
"permanentlyDeleteOnDestroy": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesManagedDisk:ProviderFeaturesManagedDisk": {
"properties": {
"expandWithoutDowntime": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesResourceGroup:ProviderFeaturesResourceGroup": {
"properties": {
"preventDeletionIfContainsResources": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesTemplateDeployment:ProviderFeaturesTemplateDeployment": {
"properties": {
"deleteNestedItemsDuringDeletion": {
"type": "boolean"
}
},
"type": "object",
"required": [
"deleteNestedItemsDuringDeletion"
],
"language": {
"nodejs": {
"requiredOutputs": []
}
}
},
"azure:index/ProviderFeaturesVirtualMachine:ProviderFeaturesVirtualMachine": {
"properties": {
"deleteOsDiskOnDeletion": {
"type": "boolean"
},
"gracefulShutdown": {
"type": "boolean"
},
"skipShutdownAndForceDelete": {
"type": "boolean"
}
},
"type": "object"
},
"azure:index/ProviderFeaturesVirtualMachineScaleSet:ProviderFeaturesVirtualMachineScaleSet": {
"properties": {
"forceDelete": {
"type": "boolean"
},
"rollInstancesWhenRequired": {
"type": "boolean"
},
"scaleToZeroBeforeDeletion": {
"type": "boolean"
}
},
"type": "object",
"required": [
"rollInstancesWhenRequired"
],
"language": {
"nodejs": {
"requiredOutputs": []
}
}
},
"azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration": {
"properties": {
"gatewayLoadBalancerFrontendIpConfigurationId": {
"type": "string",
"description": "The Frontend IP Configuration ID of a Gateway SKU Load Balancer.\n"
},
"name": {
"type": "string",
"description": "A name used for this IP Configuration.\n"
},
"primary": {
"type": "boolean",
"description": "Is this the Primary IP Configuration? Must be `true` for the first `ip_configuration` when multiple are specified. Defaults to `false`.\n"
},
"privateIpAddress": {
"type": "string",
"description": "The Static IP Address which should be used.\n"
},
"privateIpAddressAllocation": {
"type": "string",
"description": "The allocation method used for the Private IP Address. Possible values are `Dynamic` and `Static`.\n\n> **Note:** `Dynamic` means \"An IP is automatically assigned during creation of this Network Interface\"; `Static` means \"User supplied IP address will be used\"\n"
},
"privateIpAddressVersion": {
"type": "string",
"description": "The IP Version to use. Possible values are `IPv4` or `IPv6`. Defaults to `IPv4`.\n"
},
"publicIpAddressId": {
"type": "string",
"description": "Reference to a Public IP Address to associate with this NIC\n"
},
"subnetId": {
"type": "string",
"description": "The ID of the Subnet where this Network Interface should be located in.\n\n> **Note:** This is required when `private_ip_address_version` is set to `IPv4`.\n"
}
},
"type": "object",
"required": [
"name",
"privateIpAddressAllocation"
],
"language": {
"nodejs": {
"requiredOutputs": [
"gatewayLoadBalancerFrontendIpConfigurationId",
"name",
"primary",
"privateIpAddress",
"privateIpAddressAllocation"
]
}
}
},
"azure:network/SubnetDelegation:SubnetDelegation": {
"properties": {
"name": {
"type": "string",
"description": "A name for this delegation.\n"
},
"serviceDelegation": {
"$ref": "#/types/azure:network/SubnetDelegationServiceDelegation:SubnetDelegationServiceDelegation",
"description": "A `service_delegation` block as defined below.\n"
}
},
"type": "object",
"required": [
"name",
"serviceDelegation"
]
},
"azure:network/SubnetDelegationServiceDelegation:SubnetDelegationServiceDelegation": {
"properties": {
"actions": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Actions which should be delegated. This list is specific to the service to delegate to. Possible values are `Microsoft.Network/networkinterfaces/*`, `Microsoft.Network/publicIPAddresses/join/action`, `Microsoft.Network/publicIPAddresses/read`, `Microsoft.Network/virtualNetworks/read`, `Microsoft.Network/virtualNetworks/subnets/action`, `Microsoft.Network/virtualNetworks/subnets/join/action`, `Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action`, and `Microsoft.Network/virtualNetworks/subnets/unprepareNetworkPolicies/action`.\n\n> **NOTE:** Azure may add default actions depending on the service delegation name and they can't be changed.\n"
},
"name": {
"type": "string",
"description": "The name of service to delegate to. Possible values are `GitHub.Network/networkSettings`, `Microsoft.ApiManagement/service`, `Microsoft.Apollo/npu`, `Microsoft.App/environments`, `Microsoft.App/testClients`, `Microsoft.AVS/PrivateClouds`, `Microsoft.AzureCosmosDB/clusters`, `Microsoft.BareMetal/AzureHostedService`, `Microsoft.BareMetal/AzureHPC`, `Microsoft.BareMetal/AzurePaymentHSM`, `Microsoft.BareMetal/AzureVMware`, `Microsoft.BareMetal/CrayServers`, `Microsoft.BareMetal/MonitoringServers`, `Microsoft.Batch/batchAccounts`, `Microsoft.CloudTest/hostedpools`, `Microsoft.CloudTest/images`, `Microsoft.CloudTest/pools`, `Microsoft.Codespaces/plans`, `Microsoft.ContainerInstance/containerGroups`, `Microsoft.ContainerService/managedClusters`, `Microsoft.ContainerService/TestClients`, `Microsoft.Databricks/workspaces`, `Microsoft.DBforMySQL/flexibleServers`, `Microsoft.DBforMySQL/servers`, `Microsoft.DBforMySQL/serversv2`, `Microsoft.DBforPostgreSQL/flexibleServers`, `Microsoft.DBforPostgreSQL/serversv2`, `Microsoft.DBforPostgreSQL/singleServers`, `Microsoft.DelegatedNetwork/controller`, `Microsoft.DevCenter/networkConnection`, `Microsoft.DocumentDB/cassandraClusters`, `Microsoft.Fidalgo/networkSettings`, `Microsoft.HardwareSecurityModules/dedicatedHSMs`, `Microsoft.Kusto/clusters`, `Microsoft.LabServices/labplans`, `Microsoft.Logic/integrationServiceEnvironments`, `Microsoft.MachineLearningServices/workspaces`, `Microsoft.Netapp/volumes`, `Microsoft.Network/dnsResolvers`, `Microsoft.Network/fpgaNetworkInterfaces`, `Microsoft.Network/networkWatchers.`, `Microsoft.Network/virtualNetworkGateways`, `Microsoft.Orbital/orbitalGateways`, `Microsoft.PowerPlatform/enterprisePolicies`, `Microsoft.PowerPlatform/vnetaccesslinks`, `Microsoft.ServiceFabricMesh/networks`, `Microsoft.ServiceNetworking/trafficControllers`, `Microsoft.Singularity/accounts/networks`, `Microsoft.Singularity/accounts/npu`, `Microsoft.Sql/managedInstances`, `Microsoft.Sql/managedInstancesOnebox`, `Microsoft.Sql/managedInstancesStage`, `Microsoft.Sql/managedInstancesTest`, `Microsoft.StoragePool/diskPools`, `Microsoft.StreamAnalytics/streamingJobs`, `Microsoft.Synapse/workspaces`, `Microsoft.Web/hostingEnvironments`, `Microsoft.Web/serverFarms`, `NGINX.NGINXPLUS/nginxDeployments`, `PaloAltoNetworks.Cloudngfw/firewalls`, and `Qumulo.Storage/fileSystems`.\n"
}
},
"type": "object",
"required": [
"name"
]
},
"azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan": {
"properties": {
"enable": {
"type": "boolean",
"description": "Enable/disable DDoS Protection Plan on Virtual Network.\n"
},
"id": {
"type": "string",
"description": "The ID of DDoS Protection Plan.\n"
}
},
"type": "object",
"required": [
"enable",
"id"
]
},
"azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet": {
"properties": {
"addressPrefix": {
"type": "string",
"description": "The address prefix to use for the subnet.\n"
},
"id": {
"type": "string",
"description": "The ID of DDoS Protection Plan.\n"
},
"name": {
"type": "string",
"description": "The name of the subnet.\n"
},
"securityGroup": {
"type": "string",
"description": "The Network Security Group to associate with the subnet. (Referenced by `id`, ie. `azurerm_network_security_group.example.id`)\n"
}
},
"type": "object",
"required": [
"addressPrefix",
"name"
],
"language": {
"nodejs": {
"requiredOutputs": [
"addressPrefix",
"id",
"name"
]
}
}
}
},
"resources": {
"azure:compute/virtualMachine:VirtualMachine": {
"description": "Manages a Virtual Machine.\n\n## Disclaimers\n\n> **Note:** The `azure.compute.VirtualMachine` resource has been superseded by the `azure.compute.LinuxVirtualMachine` and `azure.compute.WindowsVirtualMachine` resources. The existing `azure.compute.VirtualMachine` resource will continue to be available throughout the 2.x releases however is in a feature-frozen state to maintain compatibility - new functionality will instead be added to the `azure.compute.LinuxVirtualMachine` and `azure.compute.WindowsVirtualMachine` resources.\n\n> **Note:** Data Disks can be attached either directly on the `azure.compute.VirtualMachine` resource, or using the `azure.compute.DataDiskAttachment` resource - but the two cannot be used together. If both are used against the same Virtual Machine, spurious changes will occur.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### From An Azure Platform Image)\n\nThis example provisions a Virtual Machine with Managed Disks.\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst config = new pulumi.Config();\nconst prefix = config.get(\"prefix\") || \"tfvmex\";\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\nconst mainVirtualNetwork = new azure.network.VirtualNetwork(\"mainVirtualNetwork\", {\n addressSpaces: [\"10.0.0.0/16\"],\n location: example.location,\n resourceGroupName: example.name,\n});\nconst internal = new azure.network.Subnet(\"internal\", {\n resourceGroupName: example.name,\n virtualNetworkName: mainVirtualNetwork.name,\n addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst mainNetworkInterface = new azure.network.NetworkInterface(\"mainNetworkInterface\", {\n location: example.location,\n resourceGroupName: example.name,\n ipConfigurations: [{\n name: \"testconfiguration1\",\n subnetId: internal.id,\n privateIpAddressAllocation: \"Dynamic\",\n }],\n});\nconst mainVirtualMachine = new azure.compute.VirtualMachine(\"mainVirtualMachine\", {\n location: example.location,\n resourceGroupName: example.name,\n networkInterfaceIds: [mainNetworkInterface.id],\n vmSize: \"Standard_DS1_v2\",\n storageImageReference: {\n publisher: \"Canonical\",\n offer: \"UbuntuServer\",\n sku: \"20.04-LTS\",\n version: \"latest\",\n },\n storageOsDisk: {\n name: \"myosdisk1\",\n caching: \"ReadWrite\",\n createOption: \"FromImage\",\n managedDiskType: \"Standard_LRS\",\n },\n osProfile: {\n computerName: \"hostname\",\n adminUsername: \"testadmin\",\n adminPassword: \"Password1234!\",\n },\n osProfileLinuxConfig: {\n disablePasswordAuthentication: false,\n },\n tags: {\n environment: \"staging\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nconfig = pulumi.Config()\nprefix = config.get(\"prefix\")\nif prefix is None:\n prefix = \"tfvmex\"\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\nmain_virtual_network = azure.network.VirtualNetwork(\"mainVirtualNetwork\",\n address_spaces=[\"10.0.0.0/16\"],\n location=example.location,\n resource_group_name=example.name)\ninternal = azure.network.Subnet(\"internal\",\n resource_group_name=example.name,\n virtual_network_name=main_virtual_network.name,\n address_prefixes=[\"10.0.2.0/24\"])\nmain_network_interface = azure.network.NetworkInterface(\"mainNetworkInterface\",\n location=example.location,\n resource_group_name=example.name,\n ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n name=\"testconfiguration1\",\n subnet_id=internal.id,\n private_ip_address_allocation=\"Dynamic\",\n )])\nmain_virtual_machine = azure.compute.VirtualMachine(\"mainVirtualMachine\",\n location=example.location,\n resource_group_name=example.name,\n network_interface_ids=[main_network_interface.id],\n vm_size=\"Standard_DS1_v2\",\n storage_image_reference=azure.compute.VirtualMachineStorageImageReferenceArgs(\n publisher=\"Canonical\",\n offer=\"UbuntuServer\",\n sku=\"20.04-LTS\",\n version=\"latest\",\n ),\n storage_os_disk=azure.compute.VirtualMachineStorageOsDiskArgs(\n name=\"myosdisk1\",\n caching=\"ReadWrite\",\n create_option=\"FromImage\",\n managed_disk_type=\"Standard_LRS\",\n ),\n os_profile=azure.compute.VirtualMachineOsProfileArgs(\n computer_name=\"hostname\",\n admin_username=\"testadmin\",\n admin_password=\"Password1234!\",\n ),\n os_profile_linux_config=azure.compute.VirtualMachineOsProfileLinuxConfigArgs(\n disable_password_authentication=False,\n ),\n tags={\n \"environment\": \"staging\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() => \n{\n var config = new Config();\n var prefix = config.Get(\"prefix\") ?? \"tfvmex\";\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Location = \"West Europe\",\n });\n\n var mainVirtualNetwork = new Azure.Network.VirtualNetwork(\"mainVirtualNetwork\", new()\n {\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n Location = example.Location,\n ResourceGroupName = example.Name,\n });\n\n var @internal = new Azure.Network.Subnet(\"internal\", new()\n {\n ResourceGroupName = example.Name,\n VirtualNetworkName = mainVirtualNetwork.Name,\n AddressPrefixes = new[]\n {\n \"10.0.2.0/24\",\n },\n });\n\n var mainNetworkInterface = new Azure.Network.NetworkInterface(\"mainNetworkInterface\", new()\n {\n Location = example.Location,\n ResourceGroupName = example.Name,\n IpConfigurations = new[]\n {\n new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n {\n Name = \"testconfiguration1\",\n SubnetId = @internal.Id,\n PrivateIpAddressAllocation = \"Dynamic\",\n },\n },\n });\n\n var mainVirtualMachine = new Azure.Compute.VirtualMachine(\"mainVirtualMachine\", new()\n {\n Location = example.Location,\n ResourceGroupName = example.Name,\n NetworkInterfaceIds = new[]\n {\n mainNetworkInterface.Id,\n },\n VmSize = \"Standard_DS1_v2\",\n StorageImageReference = new Azure.Compute.Inputs.VirtualMachineStorageImageReferenceArgs\n {\n Publisher = \"Canonical\",\n Offer = \"UbuntuServer\",\n Sku = \"20.04-LTS\",\n Version = \"latest\",\n },\n StorageOsDisk = new Azure.Compute.Inputs.VirtualMachineStorageOsDiskArgs\n {\n Name = \"myosdisk1\",\n Caching = \"ReadWrite\",\n CreateOption = \"FromImage\",\n ManagedDiskType = \"Standard_LRS\",\n },\n OsProfile = new Azure.Compute.Inputs.VirtualMachineOsProfileArgs\n {\n ComputerName = \"hostname\",\n AdminUsername = \"testadmin\",\n AdminPassword = \"Password1234!\",\n },\n OsProfileLinuxConfig = new Azure.Compute.Inputs.VirtualMachineOsProfileLinuxConfigArgs\n {\n DisablePasswordAuthentication = false,\n },\n Tags = \n {\n { \"environment\", \"staging\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/compute\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tprefix := \"tfvmex\"\n\t\tif param := cfg.Get(\"prefix\"); param != \"\" {\n\t\t\tprefix = param\n\t\t}\n\t\texample, err := core.NewResourceGroup(ctx, \"example\", &core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"mainVirtualNetwork\", &network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tinternal, err := network.NewSubnet(ctx, \"internal\", &network.SubnetArgs{\n\t\t\tResourceGroupName: example.Name,\n\t\t\tVirtualNetworkName: mainVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainNetworkInterface, err := network.NewNetworkInterface(ctx, \"mainNetworkInterface\", &network.NetworkInterfaceArgs{\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t&network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName: pulumi.String(\"testconfiguration1\"),\n\t\t\t\t\tSubnetId: internal.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = compute.NewVirtualMachine(ctx, \"mainVirtualMachine\", &compute.VirtualMachineArgs{\n\t\t\tLocation: example.Location,\n\t\t\tResourceGroupName: example.Name,\n\t\t\tNetworkInterfaceIds: pulumi.StringArray{\n\t\t\t\tmainNetworkInterface.ID(),\n\t\t\t},\n\t\t\tVmSize: pulumi.String(\"Standard_DS1_v2\"),\n\t\t\tStorageImageReference: &compute.VirtualMachineStorageImageReferenceArgs{\n\t\t\t\tPublisher: pulumi.String(\"Canonical\"),\n\t\t\t\tOffer: pulumi.String(\"UbuntuServer\"),\n\t\t\t\tSku: pulumi.String(\"20.04-LTS\"),\n\t\t\t\tVersion: pulumi.String(\"latest\"),\n\t\t\t},\n\t\t\tStorageOsDisk: &compute.VirtualMachineStorageOsDiskArgs{\n\t\t\t\tName: pulumi.String(\"myosdisk1\"),\n\t\t\t\tCaching: pulumi.String(\"ReadWrite\"),\n\t\t\t\tCreateOption: pulumi.String(\"FromImage\"),\n\t\t\t\tManagedDiskType: pulumi.String(\"Standard_LRS\"),\n\t\t\t},\n\t\t\tOsProfile: &compute.VirtualMachineOsProfileArgs{\n\t\t\t\tComputerName: pulumi.String(\"hostname\"),\n\t\t\t\tAdminUsername: pulumi.String(\"testadmin\"),\n\t\t\t\tAdminPassword: pulumi.String(\"Password1234!\"),\n\t\t\t},\n\t\t\tOsProfileLinuxConfig: &compute.VirtualMachineOsProfileLinuxConfigArgs{\n\t\t\t\tDisablePasswordAuthentication: pulumi.Bool(false),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"staging\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.VirtualNetwork;\nimport com.pulumi.azure.network.VirtualNetworkArgs;\nimport com.pulumi.azure.network.Subnet;\nimport com.pulumi.azure.network.SubnetArgs;\nimport com.pulumi.azure.network.NetworkInterface;\nimport com.pulumi.azure.network.NetworkInterfaceArgs;\nimport com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;\nimport com.pulumi.azure.compute.VirtualMachine;\nimport com.pulumi.azure.compute.VirtualMachineArgs;\nimport com.pulumi.azure.compute.inputs.VirtualMachineStorageImageReferenceArgs;\nimport com.pulumi.azure.compute.inputs.VirtualMachineStorageOsDiskArgs;\nimport com.pulumi.azure.compute.inputs.VirtualMachineOsProfileArgs;\nimport com.pulumi.azure.compute.inputs.VirtualMachineOsProfileLinuxConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var prefix = config.get(\"prefix\").orElse(\"tfvmex\");\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder() \n .location(\"West Europe\")\n .build());\n\n var mainVirtualNetwork = new VirtualNetwork(\"mainVirtualNetwork\", VirtualNetworkArgs.builder() \n .addressSpaces(\"10.0.0.0/16\")\n .location(example.location())\n .resourceGroupName(example.name())\n .build());\n\n var internal = new Subnet(\"internal\", SubnetArgs.builder() \n .resourceGroupName(example.name())\n .virtualNetworkName(mainVirtualNetwork.name())\n .addressPrefixes(\"10.0.2.0/24\")\n .build());\n\n var mainNetworkInterface = new NetworkInterface(\"mainNetworkInterface\", NetworkInterfaceArgs.builder() \n .location(example.location())\n .resourceGroupName(example.name())\n .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()\n .name(\"testconfiguration1\")\n .subnetId(internal.id())\n .privateIpAddressAllocation(\"Dynamic\")\n .build())\n .build());\n\n var mainVirtualMachine = new VirtualMachine(\"mainVirtualMachine\", VirtualMachineArgs.builder() \n .location(example.location())\n .resourceGroupName(example.name())\n .networkInterfaceIds(mainNetworkInterface.id())\n .vmSize(\"Standard_DS1_v2\")\n .storageImageReference(VirtualMachineStorageImageReferenceArgs.builder()\n .publisher(\"Canonical\")\n .offer(\"UbuntuServer\")\n .sku(\"20.04-LTS\")\n .version(\"latest\")\n .build())\n .storageOsDisk(VirtualMachineStorageOsDiskArgs.builder()\n .name(\"myosdisk1\")\n .caching(\"ReadWrite\")\n .createOption(\"FromImage\")\n .managedDiskType(\"Standard_LRS\")\n .build())\n .osProfile(VirtualMachineOsProfileArgs.builder()\n .computerName(\"hostname\")\n .adminUsername(\"testadmin\")\n .adminPassword(\"Password1234!\")\n .build())\n .osProfileLinuxConfig(VirtualMachineOsProfileLinuxConfigArgs.builder()\n .disablePasswordAuthentication(false)\n .build())\n .tags(Map.of(\"environment\", \"staging\"))\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n prefix:\n type: string\n default: tfvmex\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n location: West Europe\n mainVirtualNetwork:\n type: azure:network:VirtualNetwork\n properties:\n addressSpaces:\n - 10.0.0.0/16\n location: ${example.location}\n resourceGroupName: ${example.name}\n internal:\n type: azure:network:Subnet\n properties:\n resourceGroupName: ${example.name}\n virtualNetworkName: ${mainVirtualNetwork.name}\n addressPrefixes:\n - 10.0.2.0/24\n mainNetworkInterface:\n type: azure:network:NetworkInterface\n properties:\n location: ${example.location}\n resourceGroupName: ${example.name}\n ipConfigurations:\n - name: testconfiguration1\n subnetId: ${internal.id}\n privateIpAddressAllocation: Dynamic\n mainVirtualMachine:\n type: azure:compute:VirtualMachine\n properties:\n location: ${example.location}\n resourceGroupName: ${example.name}\n networkInterfaceIds:\n - ${mainNetworkInterface.id}\n vmSize: Standard_DS1_v2 # Uncomment this line to delete the data disks automatically when deleting the VM\n # # delete_data_disks_on_termination = true\n storageImageReference:\n publisher: Canonical\n offer: UbuntuServer\n sku: 20.04-LTS\n version: latest\n storageOsDisk:\n name: myosdisk1\n caching: ReadWrite\n createOption: FromImage\n managedDiskType: Standard_LRS\n osProfile:\n computerName: hostname\n adminUsername: testadmin\n adminPassword: Password1234!\n osProfileLinuxConfig:\n disablePasswordAuthentication: false\n tags:\n environment: staging\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Machines can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:compute/virtualMachine:VirtualMachine example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Compute/virtualMachines/machine1\n```\n\n ",
"properties": {
"additionalCapabilities": {
"$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
"description": "An `additional_capabilities` block as defined below.\n"
},
"availabilitySetId": {
"type": "string",
"description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n"
},
"bootDiagnostics": {
"$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
"description": "A `boot_diagnostics` block as defined below.\n"
},
"deleteDataDisksOnTermination": {
"type": "boolean",
"description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"deleteOsDiskOnTermination": {
"type": "boolean",
"description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"identity": {
"$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
"description": "An `identity` block as defined below.\n"
},
"licenseType": {
"type": "string",
"description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n"
},
"location": {
"type": "string",
"description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n"
},
"name": {
"type": "string",
"description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n"
},
"networkInterfaceIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Network Interface IDs which should be associated with the Virtual Machine.\n"
},
"osProfile": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
"description": "An `os_profile` block as defined below. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
},
"osProfileLinuxConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
"description": "(Required, when a Linux machine) An `os_profile_linux_config` block as defined below.\n"
},
"osProfileSecrets": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
},
"description": "One or more `os_profile_secrets` blocks as defined below.\n"
},
"osProfileWindowsConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
"description": "(Required, when a Windows machine) An `os_profile_windows_config` block as defined below.\n"
},
"plan": {
"$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
"description": "A `plan` block as defined below.\n"
},
"primaryNetworkInterfaceId": {
"type": "string",
"description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n"
},
"proximityPlacementGroupId": {
"type": "string",
"description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n"
},
"resourceGroupName": {
"type": "string",
"description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n"
},
"storageDataDisks": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
},
"description": "One or more `storage_data_disk` blocks as defined below.\n\n> **Please Note:** Data Disks can also be attached either using this block or the `azure.compute.DataDiskAttachment` resource - but not both.\n"
},
"storageImageReference": {
"$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
"description": "A `storage_image_reference` block as defined below. Changing this forces a new resource to be created.\n"
},
"storageOsDisk": {
"$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
"description": "A `storage_os_disk` block as defined below.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the Virtual Machine.\n"
},
"vmSize": {
"type": "string",
"description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n"
},
"zones": {
"type": "string",
"description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.\n\n> **Please Note**: Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).\n\nFor more information on the different example configurations, please check out the [Azure documentation](https://docs.microsoft.com/en-gb/rest/api/compute/virtualmachines/createorupdate#examples)\n"
}
},
"required": [
"availabilitySetId",
"identity",
"licenseType",
"location",
"name",
"networkInterfaceIds",
"resourceGroupName",
"storageDataDisks",
"storageImageReference",
"storageOsDisk",
"vmSize"
],
"inputProperties": {
"additionalCapabilities": {
"$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
"description": "An `additional_capabilities` block as defined below.\n"
},
"availabilitySetId": {
"type": "string",
"description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"bootDiagnostics": {
"$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
"description": "A `boot_diagnostics` block as defined below.\n"
},
"deleteDataDisksOnTermination": {
"type": "boolean",
"description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"deleteOsDiskOnTermination": {
"type": "boolean",
"description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"identity": {
"$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
"description": "An `identity` block as defined below.\n"
},
"licenseType": {
"type": "string",
"description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n"
},
"location": {
"type": "string",
"description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"networkInterfaceIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Network Interface IDs which should be associated with the Virtual Machine.\n"
},
"osProfile": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
"description": "An `os_profile` block as defined below. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
},
"osProfileLinuxConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
"description": "(Required, when a Linux machine) An `os_profile_linux_config` block as defined below.\n"
},
"osProfileSecrets": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
},
"description": "One or more `os_profile_secrets` blocks as defined below.\n"
},
"osProfileWindowsConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
"description": "(Required, when a Windows machine) An `os_profile_windows_config` block as defined below.\n"
},
"plan": {
"$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
"description": "A `plan` block as defined below.\n"
},
"primaryNetworkInterfaceId": {
"type": "string",
"description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n"
},
"proximityPlacementGroupId": {
"type": "string",
"description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
"willReplaceOnChanges": true
},
"resourceGroupName": {
"type": "string",
"description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"storageDataDisks": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
},
"description": "One or more `storage_data_disk` blocks as defined below.\n\n> **Please Note:** Data Disks can also be attached either using this block or the `azure.compute.DataDiskAttachment` resource - but not both.\n"
},
"storageImageReference": {
"$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
"description": "A `storage_image_reference` block as defined below. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"storageOsDisk": {
"$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
"description": "A `storage_os_disk` block as defined below.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the Virtual Machine.\n"
},
"vmSize": {
"type": "string",
"description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n"
},
"zones": {
"type": "string",
"description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.\n\n> **Please Note**: Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).\n\nFor more information on the different example configurations, please check out the [Azure documentation](https://docs.microsoft.com/en-gb/rest/api/compute/virtualmachines/createorupdate#examples)\n",
"willReplaceOnChanges": true
}
},
"requiredInputs": [
"networkInterfaceIds",
"resourceGroupName",
"storageOsDisk",
"vmSize"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering VirtualMachine resources.\n",
"properties": {
"additionalCapabilities": {
"$ref": "#/types/azure:compute/VirtualMachineAdditionalCapabilities:VirtualMachineAdditionalCapabilities",
"description": "An `additional_capabilities` block as defined below.\n"
},
"availabilitySetId": {
"type": "string",
"description": "The ID of the Availability Set in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"bootDiagnostics": {
"$ref": "#/types/azure:compute/VirtualMachineBootDiagnostics:VirtualMachineBootDiagnostics",
"description": "A `boot_diagnostics` block as defined below.\n"
},
"deleteDataDisksOnTermination": {
"type": "boolean",
"description": "Should the Data Disks (either the Managed Disks / VHD Blobs) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"deleteOsDiskOnTermination": {
"type": "boolean",
"description": "Should the OS Disk (either the Managed Disk / VHD Blob) be deleted when the Virtual Machine is destroyed? Defaults to `false`.\n\n> **Note:** This setting works when instance is deleted via the provider only and don't forget to delete disks manually if you deleted VM manually. It can increase spending.\n"
},
"identity": {
"$ref": "#/types/azure:compute/VirtualMachineIdentity:VirtualMachineIdentity",
"description": "An `identity` block as defined below.\n"
},
"licenseType": {
"type": "string",
"description": "Specifies the BYOL Type for this Virtual Machine. This is only applicable to Windows Virtual Machines. Possible values are `Windows_Client` and `Windows_Server`.\n"
},
"location": {
"type": "string",
"description": "Specifies the Azure Region where the Virtual Machine exists. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "Specifies the name of the Virtual Machine. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"networkInterfaceIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of Network Interface IDs which should be associated with the Virtual Machine.\n"
},
"osProfile": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfile:VirtualMachineOsProfile",
"description": "An `os_profile` block as defined below. Required when `create_option` in the `storage_os_disk` block is set to `FromImage`.\n"
},
"osProfileLinuxConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileLinuxConfig:VirtualMachineOsProfileLinuxConfig",
"description": "(Required, when a Linux machine) An `os_profile_linux_config` block as defined below.\n"
},
"osProfileSecrets": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileSecret:VirtualMachineOsProfileSecret"
},
"description": "One or more `os_profile_secrets` blocks as defined below.\n"
},
"osProfileWindowsConfig": {
"$ref": "#/types/azure:compute/VirtualMachineOsProfileWindowsConfig:VirtualMachineOsProfileWindowsConfig",
"description": "(Required, when a Windows machine) An `os_profile_windows_config` block as defined below.\n"
},
"plan": {
"$ref": "#/types/azure:compute/VirtualMachinePlan:VirtualMachinePlan",
"description": "A `plan` block as defined below.\n"
},
"primaryNetworkInterfaceId": {
"type": "string",
"description": "The ID of the Network Interface (which must be attached to the Virtual Machine) which should be the Primary Network Interface for this Virtual Machine.\n"
},
"proximityPlacementGroupId": {
"type": "string",
"description": "The ID of the Proximity Placement Group to which this Virtual Machine should be assigned. Changing this forces a new resource to be created\n",
"willReplaceOnChanges": true
},
"resourceGroupName": {
"type": "string",
"description": "Specifies the name of the Resource Group in which the Virtual Machine should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"storageDataDisks": {
"type": "array",
"items": {
"$ref": "#/types/azure:compute/VirtualMachineStorageDataDisk:VirtualMachineStorageDataDisk"
},
"description": "One or more `storage_data_disk` blocks as defined below.\n\n> **Please Note:** Data Disks can also be attached either using this block or the `azure.compute.DataDiskAttachment` resource - but not both.\n"
},
"storageImageReference": {
"$ref": "#/types/azure:compute/VirtualMachineStorageImageReference:VirtualMachineStorageImageReference",
"description": "A `storage_image_reference` block as defined below. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"storageOsDisk": {
"$ref": "#/types/azure:compute/VirtualMachineStorageOsDisk:VirtualMachineStorageOsDisk",
"description": "A `storage_os_disk` block as defined below.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the Virtual Machine.\n"
},
"vmSize": {
"type": "string",
"description": "Specifies the [size of the Virtual Machine](https://docs.microsoft.com/azure/virtual-machines/sizes-general). See also [Azure VM Naming Conventions](https://docs.microsoft.com/azure/virtual-machines/vm-naming-conventions).\n"
},
"zones": {
"type": "string",
"description": "A list of a single item of the Availability Zone which the Virtual Machine should be allocated in. Changing this forces a new resource to be created.\n\n> **Please Note**: Availability Zones are [only supported in several regions at this time](https://docs.microsoft.com/azure/availability-zones/az-overview).\n\nFor more information on the different example configurations, please check out the [Azure documentation](https://docs.microsoft.com/en-gb/rest/api/compute/virtualmachines/createorupdate#examples)\n",
"willReplaceOnChanges": true
}
},
"type": "object"
}
},
"azure:core/resourceGroup:ResourceGroup": {
"description": "{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst example = new azure.core.ResourceGroup(\"example\", {location: \"West Europe\"});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample = azure.core.ResourceGroup(\"example\", location=\"West Europe\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() => \n{\n var example = new Azure.Core.ResourceGroup(\"example\", new()\n {\n Location = \"West Europe\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := core.NewResourceGroup(ctx, \"example\", &core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var example = new ResourceGroup(\"example\", ResourceGroupArgs.builder() \n .location(\"West Europe\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: azure:core:ResourceGroup\n properties:\n location: West Europe\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nResource Groups can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:core/resourceGroup:ResourceGroup example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example\n```\n\n ",
"properties": {
"location": {
"type": "string",
"description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n"
},
"name": {
"type": "string",
"description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags which should be assigned to the Resource Group.\n"
}
},
"required": [
"location",
"name"
],
"inputProperties": {
"location": {
"type": "string",
"description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n",
"willReplaceOnChanges": true
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags which should be assigned to the Resource Group.\n"
}
},
"stateInputs": {
"description": "Input properties used for looking up and filtering ResourceGroup resources.\n",
"properties": {
"location": {
"type": "string",
"description": "The Azure Region where the Resource Group should exist. Changing this forces a new Resource Group to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "The Name which should be used for this Resource Group. Changing this forces a new Resource Group to be created.\n",
"willReplaceOnChanges": true
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags which should be assigned to the Resource Group.\n"
}
},
"type": "object"
}
},
"azure:network/networkInterface:NetworkInterface": {
"description": "Manages a Network Interface.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n addressSpaces: [\"10.0.0.0/16\"],\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n resourceGroupName: exampleResourceGroup.name,\n virtualNetworkName: exampleVirtualNetwork.name,\n addressPrefixes: [\"10.0.2.0/24\"],\n});\nconst exampleNetworkInterface = new azure.network.NetworkInterface(\"exampleNetworkInterface\", {\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n ipConfigurations: [{\n name: \"internal\",\n subnetId: exampleSubnet.id,\n privateIpAddressAllocation: \"Dynamic\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n address_spaces=[\"10.0.0.0/16\"],\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n resource_group_name=example_resource_group.name,\n virtual_network_name=example_virtual_network.name,\n address_prefixes=[\"10.0.2.0/24\"])\nexample_network_interface = azure.network.NetworkInterface(\"exampleNetworkInterface\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n ip_configurations=[azure.network.NetworkInterfaceIpConfigurationArgs(\n name=\"internal\",\n subnet_id=example_subnet.id,\n private_ip_address_allocation=\"Dynamic\",\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() => \n{\n var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new()\n {\n Location = \"West Europe\",\n });\n\n var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new()\n {\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n });\n\n var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new()\n {\n ResourceGroupName = exampleResourceGroup.Name,\n VirtualNetworkName = exampleVirtualNetwork.Name,\n AddressPrefixes = new[]\n {\n \"10.0.2.0/24\",\n },\n });\n\n var exampleNetworkInterface = new Azure.Network.NetworkInterface(\"exampleNetworkInterface\", new()\n {\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n IpConfigurations = new[]\n {\n new Azure.Network.Inputs.NetworkInterfaceIpConfigurationArgs\n {\n Name = \"internal\",\n SubnetId = exampleSubnet.Id,\n PrivateIpAddressAllocation = \"Dynamic\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", &core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", &network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleSubnet, err := network.NewSubnet(ctx, \"exampleSubnet\", &network.SubnetArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.2.0/24\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewNetworkInterface(ctx, \"exampleNetworkInterface\", &network.NetworkInterfaceArgs{\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tIpConfigurations: network.NetworkInterfaceIpConfigurationArray{\n\t\t\t\t&network.NetworkInterfaceIpConfigurationArgs{\n\t\t\t\t\tName: pulumi.String(\"internal\"),\n\t\t\t\t\tSubnetId: exampleSubnet.ID(),\n\t\t\t\t\tPrivateIpAddressAllocation: pulumi.String(\"Dynamic\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.VirtualNetwork;\nimport com.pulumi.azure.network.VirtualNetworkArgs;\nimport com.pulumi.azure.network.Subnet;\nimport com.pulumi.azure.network.SubnetArgs;\nimport com.pulumi.azure.network.NetworkInterface;\nimport com.pulumi.azure.network.NetworkInterfaceArgs;\nimport com.pulumi.azure.network.inputs.NetworkInterfaceIpConfigurationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .location(\"West Europe\")\n .build());\n\n var exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .addressSpaces(\"10.0.0.0/16\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleSubnet = new Subnet(\"exampleSubnet\", SubnetArgs.builder() \n .resourceGroupName(exampleResourceGroup.name())\n .virtualNetworkName(exampleVirtualNetwork.name())\n .addressPrefixes(\"10.0.2.0/24\")\n .build());\n\n var exampleNetworkInterface = new NetworkInterface(\"exampleNetworkInterface\", NetworkInterfaceArgs.builder() \n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .ipConfigurations(NetworkInterfaceIpConfigurationArgs.builder()\n .name(\"internal\")\n .subnetId(exampleSubnet.id())\n .privateIpAddressAllocation(\"Dynamic\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n properties:\n location: West Europe\n exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n properties:\n addressSpaces:\n - 10.0.0.0/16\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleSubnet:\n type: azure:network:Subnet\n properties:\n resourceGroupName: ${exampleResourceGroup.name}\n virtualNetworkName: ${exampleVirtualNetwork.name}\n addressPrefixes:\n - 10.0.2.0/24\n exampleNetworkInterface:\n type: azure:network:NetworkInterface\n properties:\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n ipConfigurations:\n - name: internal\n subnetId: ${exampleSubnet.id}\n privateIpAddressAllocation: Dynamic\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nNetwork Interfaces can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/networkInterface:NetworkInterface example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/networkInterfaces/nic1\n```\n\n ",
"properties": {
"appliedDnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "If the Virtual Machine using this Network Interface is part of an Availability Set, then this list will have the union of all DNS servers from all Network Interfaces that are part of the Availability Set.\n"
},
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n\n> **Note:** Configuring DNS Servers on the Network Interface will override the DNS Servers defined on the Virtual Network.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Network Interface should exist. Changing this forces a new Network Interface to be created.\n"
},
"enableAcceleratedNetworking": {
"type": "boolean",
"description": "Should Accelerated Networking be enabled? Defaults to `false`.\n\n> **Note:** Only certain Virtual Machine sizes are supported for Accelerated Networking - [more information can be found in this document](https://docs.microsoft.com/azure/virtual-network/create-vm-accelerated-networking-cli).\n\n> **Note:** To use Accelerated Networking in an Availability Set, the Availability Set must be deployed onto an Accelerated Networking enabled cluster.\n"
},
"enableIpForwarding": {
"type": "boolean",
"description": "Should IP Forwarding be enabled? Defaults to `false`.\n"
},
"internalDnsNameLabel": {
"type": "string",
"description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n"
},
"internalDomainNameSuffix": {
"type": "string",
"description": "Even if `internal_dns_name_label` is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of `internal_domain_name_suffix`.\n"
},
"ipConfigurations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
},
"description": "One or more `ip_configuration` blocks as defined below.\n"
},
"location": {
"type": "string",
"description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n"
},
"macAddress": {
"type": "string",
"description": "The Media Access Control (MAC) Address of the Network Interface.\n"
},
"name": {
"type": "string",
"description": "The name of the Network Interface. Changing this forces a new resource to be created.\n"
},
"privateIpAddress": {
"type": "string",
"description": "The Static IP Address which should be used.\n"
},
"privateIpAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The private IP addresses of the network interface.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
},
"virtualMachineId": {
"type": "string",
"description": "The ID of the Virtual Machine which this Network Interface is connected to.\n"
}
},
"required": [
"appliedDnsServers",
"dnsServers",
"internalDnsNameLabel",
"internalDomainNameSuffix",
"ipConfigurations",
"location",
"macAddress",
"name",
"privateIpAddress",
"privateIpAddresses",
"resourceGroupName",
"virtualMachineId"
],
"inputProperties": {
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n\n> **Note:** Configuring DNS Servers on the Network Interface will override the DNS Servers defined on the Virtual Network.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Network Interface should exist. Changing this forces a new Network Interface to be created.\n",
"willReplaceOnChanges": true
},
"enableAcceleratedNetworking": {
"type": "boolean",
"description": "Should Accelerated Networking be enabled? Defaults to `false`.\n\n> **Note:** Only certain Virtual Machine sizes are supported for Accelerated Networking - [more information can be found in this document](https://docs.microsoft.com/azure/virtual-network/create-vm-accelerated-networking-cli).\n\n> **Note:** To use Accelerated Networking in an Availability Set, the Availability Set must be deployed onto an Accelerated Networking enabled cluster.\n"
},
"enableIpForwarding": {
"type": "boolean",
"description": "Should IP Forwarding be enabled? Defaults to `false`.\n"
},
"internalDnsNameLabel": {
"type": "string",
"description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n"
},
"ipConfigurations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
},
"description": "One or more `ip_configuration` blocks as defined below.\n"
},
"location": {
"type": "string",
"description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "The name of the Network Interface. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"resourceGroupName": {
"type": "string",
"description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
}
},
"requiredInputs": [
"ipConfigurations",
"resourceGroupName"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering NetworkInterface resources.\n",
"properties": {
"appliedDnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "If the Virtual Machine using this Network Interface is part of an Availability Set, then this list will have the union of all DNS servers from all Network Interfaces that are part of the Availability Set.\n"
},
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of IP Addresses defining the DNS Servers which should be used for this Network Interface.\n\n> **Note:** Configuring DNS Servers on the Network Interface will override the DNS Servers defined on the Virtual Network.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Network Interface should exist. Changing this forces a new Network Interface to be created.\n",
"willReplaceOnChanges": true
},
"enableAcceleratedNetworking": {
"type": "boolean",
"description": "Should Accelerated Networking be enabled? Defaults to `false`.\n\n> **Note:** Only certain Virtual Machine sizes are supported for Accelerated Networking - [more information can be found in this document](https://docs.microsoft.com/azure/virtual-network/create-vm-accelerated-networking-cli).\n\n> **Note:** To use Accelerated Networking in an Availability Set, the Availability Set must be deployed onto an Accelerated Networking enabled cluster.\n"
},
"enableIpForwarding": {
"type": "boolean",
"description": "Should IP Forwarding be enabled? Defaults to `false`.\n"
},
"internalDnsNameLabel": {
"type": "string",
"description": "The (relative) DNS Name used for internal communications between Virtual Machines in the same Virtual Network.\n"
},
"internalDomainNameSuffix": {
"type": "string",
"description": "Even if `internal_dns_name_label` is not specified, a DNS entry is created for the primary NIC of the VM. This DNS name can be constructed by concatenating the VM name with the value of `internal_domain_name_suffix`.\n"
},
"ipConfigurations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/NetworkInterfaceIpConfiguration:NetworkInterfaceIpConfiguration"
},
"description": "One or more `ip_configuration` blocks as defined below.\n"
},
"location": {
"type": "string",
"description": "The location where the Network Interface should exist. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"macAddress": {
"type": "string",
"description": "The Media Access Control (MAC) Address of the Network Interface.\n"
},
"name": {
"type": "string",
"description": "The name of the Network Interface. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"privateIpAddress": {
"type": "string",
"description": "The Static IP Address which should be used.\n"
},
"privateIpAddresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "The private IP addresses of the network interface.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the Resource Group in which to create the Network Interface. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
},
"virtualMachineId": {
"type": "string",
"description": "The ID of the Virtual Machine which this Network Interface is connected to.\n"
}
},
"type": "object"
}
},
"azure:network/subnet:Subnet": {
"description": "Manages a subnet. Subnets represent network segments within the IP space defined by the virtual network.\n\n> **NOTE on Virtual Networks and Subnet's:** This provider currently\nprovides both a standalone Subnet resource, and allows for Subnets to be defined in-line within the Virtual Network resource.\nAt this time you cannot use a Virtual Network with in-line Subnets in conjunction with any Subnet resources. Doing so will cause a conflict of Subnet configurations and will overwrite Subnet's.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n addressSpaces: [\"10.0.0.0/16\"],\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleSubnet = new azure.network.Subnet(\"exampleSubnet\", {\n resourceGroupName: exampleResourceGroup.name,\n virtualNetworkName: exampleVirtualNetwork.name,\n addressPrefixes: [\"10.0.1.0/24\"],\n delegations: [{\n name: \"delegation\",\n serviceDelegation: {\n name: \"Microsoft.ContainerInstance/containerGroups\",\n actions: [\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n ],\n },\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n address_spaces=[\"10.0.0.0/16\"],\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name)\nexample_subnet = azure.network.Subnet(\"exampleSubnet\",\n resource_group_name=example_resource_group.name,\n virtual_network_name=example_virtual_network.name,\n address_prefixes=[\"10.0.1.0/24\"],\n delegations=[azure.network.SubnetDelegationArgs(\n name=\"delegation\",\n service_delegation=azure.network.SubnetDelegationServiceDelegationArgs(\n name=\"Microsoft.ContainerInstance/containerGroups\",\n actions=[\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n ],\n ),\n )])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() => \n{\n var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new()\n {\n Location = \"West Europe\",\n });\n\n var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new()\n {\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n });\n\n var exampleSubnet = new Azure.Network.Subnet(\"exampleSubnet\", new()\n {\n ResourceGroupName = exampleResourceGroup.Name,\n VirtualNetworkName = exampleVirtualNetwork.Name,\n AddressPrefixes = new[]\n {\n \"10.0.1.0/24\",\n },\n Delegations = new[]\n {\n new Azure.Network.Inputs.SubnetDelegationArgs\n {\n Name = \"delegation\",\n ServiceDelegation = new Azure.Network.Inputs.SubnetDelegationServiceDelegationArgs\n {\n Name = \"Microsoft.ContainerInstance/containerGroups\",\n Actions = new[]\n {\n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\",\n },\n },\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", &core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleVirtualNetwork, err := network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", &network.VirtualNetworkArgs{\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewSubnet(ctx, \"exampleSubnet\", &network.SubnetArgs{\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tVirtualNetworkName: exampleVirtualNetwork.Name,\n\t\t\tAddressPrefixes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.1.0/24\"),\n\t\t\t},\n\t\t\tDelegations: network.SubnetDelegationArray{\n\t\t\t\t&network.SubnetDelegationArgs{\n\t\t\t\t\tName: pulumi.String(\"delegation\"),\n\t\t\t\t\tServiceDelegation: &network.SubnetDelegationServiceDelegationArgs{\n\t\t\t\t\t\tName: pulumi.String(\"Microsoft.ContainerInstance/containerGroups\"),\n\t\t\t\t\t\tActions: pulumi.StringArray{\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/join/action\"),\n\t\t\t\t\t\t\tpulumi.String(\"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.VirtualNetwork;\nimport com.pulumi.azure.network.VirtualNetworkArgs;\nimport com.pulumi.azure.network.Subnet;\nimport com.pulumi.azure.network.SubnetArgs;\nimport com.pulumi.azure.network.inputs.SubnetDelegationArgs;\nimport com.pulumi.azure.network.inputs.SubnetDelegationServiceDelegationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .location(\"West Europe\")\n .build());\n\n var exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .addressSpaces(\"10.0.0.0/16\")\n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleSubnet = new Subnet(\"exampleSubnet\", SubnetArgs.builder() \n .resourceGroupName(exampleResourceGroup.name())\n .virtualNetworkName(exampleVirtualNetwork.name())\n .addressPrefixes(\"10.0.1.0/24\")\n .delegations(SubnetDelegationArgs.builder()\n .name(\"delegation\")\n .serviceDelegation(SubnetDelegationServiceDelegationArgs.builder()\n .name(\"Microsoft.ContainerInstance/containerGroups\")\n .actions( \n \"Microsoft.Network/virtualNetworks/subnets/join/action\",\n \"Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n properties:\n location: West Europe\n exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n properties:\n addressSpaces:\n - 10.0.0.0/16\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleSubnet:\n type: azure:network:Subnet\n properties:\n resourceGroupName: ${exampleResourceGroup.name}\n virtualNetworkName: ${exampleVirtualNetwork.name}\n addressPrefixes:\n - 10.0.1.0/24\n delegations:\n - name: delegation\n serviceDelegation:\n name: Microsoft.ContainerInstance/containerGroups\n actions:\n - Microsoft.Network/virtualNetworks/subnets/join/action\n - Microsoft.Network/virtualNetworks/subnets/prepareNetworkPolicies/action\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nSubnets can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/subnet:Subnet exampleSubnet /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1/subnets/mysubnet1\n```\n\n ",
"properties": {
"addressPrefixes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address prefixes to use for the subnet.\n\n> **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.\n"
},
"delegations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
},
"description": "One or more `delegation` blocks as defined below.\n"
},
"enforcePrivateLinkEndpointNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_endpoint_network_policies` will be removed in favour of the property `private_endpoint_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"enforcePrivateLinkServiceNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_service_network_policies` will be removed in favour of the property `private_link_service_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"name": {
"type": "string",
"description": "The name of the subnet. Changing this forces a new resource to be created.\n"
},
"privateEndpointNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private endpoint on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** Network policies, like network security groups (NSG), are not supported for Private Link Endpoints or Private Link Services. In order to deploy a Private Link Endpoint on a given subnet, you must set the `private_endpoint_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Endpoint, for all other resources in the subnet access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"privateLinkServiceNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** In order to deploy a Private Link Service on a given subnet, you must set the `private_link_service_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Service, for all other resources in the subnet access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n"
},
"serviceEndpointPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n"
},
"serviceEndpoints": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.\n\n> **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.\n"
},
"virtualNetworkName": {
"type": "string",
"description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n"
}
},
"required": [
"addressPrefixes",
"enforcePrivateLinkEndpointNetworkPolicies",
"enforcePrivateLinkServiceNetworkPolicies",
"name",
"privateEndpointNetworkPoliciesEnabled",
"privateLinkServiceNetworkPoliciesEnabled",
"resourceGroupName",
"virtualNetworkName"
],
"inputProperties": {
"addressPrefixes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address prefixes to use for the subnet.\n\n> **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.\n"
},
"delegations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
},
"description": "One or more `delegation` blocks as defined below.\n"
},
"enforcePrivateLinkEndpointNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_endpoint_network_policies` will be removed in favour of the property `private_endpoint_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"enforcePrivateLinkServiceNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_service_network_policies` will be removed in favour of the property `private_link_service_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"name": {
"type": "string",
"description": "The name of the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"privateEndpointNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private endpoint on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** Network policies, like network security groups (NSG), are not supported for Private Link Endpoints or Private Link Services. In order to deploy a Private Link Endpoint on a given subnet, you must set the `private_endpoint_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Endpoint, for all other resources in the subnet access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"privateLinkServiceNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** In order to deploy a Private Link Service on a given subnet, you must set the `private_link_service_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Service, for all other resources in the subnet access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"serviceEndpointPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n"
},
"serviceEndpoints": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.\n\n> **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.\n"
},
"virtualNetworkName": {
"type": "string",
"description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
}
},
"requiredInputs": [
"addressPrefixes",
"resourceGroupName",
"virtualNetworkName"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering Subnet resources.\n",
"properties": {
"addressPrefixes": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address prefixes to use for the subnet.\n\n> **NOTE:** Currently only a single address prefix can be set as the [Multiple Subnet Address Prefixes Feature](https://github.com/Azure/azure-cli/issues/18194#issuecomment-880484269) is not yet in public preview or general availability.\n"
},
"delegations": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/SubnetDelegation:SubnetDelegation"
},
"description": "One or more `delegation` blocks as defined below.\n"
},
"enforcePrivateLinkEndpointNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_endpoint_network_policies` will be removed in favour of the property `private_endpoint_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"enforcePrivateLinkServiceNetworkPolicies": {
"type": "boolean",
"deprecationMessage": "`enforce_private_link_service_network_policies` will be removed in favour of the property `private_link_service_network_policies_enabled` in version 4.0 of the AzureRM Provider"
},
"name": {
"type": "string",
"description": "The name of the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"privateEndpointNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private endpoint on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** Network policies, like network security groups (NSG), are not supported for Private Link Endpoints or Private Link Services. In order to deploy a Private Link Endpoint on a given subnet, you must set the `private_endpoint_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Endpoint, for all other resources in the subnet access is controlled based via the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"privateLinkServiceNetworkPoliciesEnabled": {
"type": "boolean",
"description": "Enable or Disable network policies for the private link service on the subnet. Setting this to `true` will **Enable** the policy and setting this to `false` will **Disable** the policy. Defaults to `true`.\n\n> **NOTE:** In order to deploy a Private Link Service on a given subnet, you must set the `private_link_service_network_policies_enabled` attribute to `false`. This setting is only applicable for the Private Link Service, for all other resources in the subnet access is controlled based on the Network Security Group which can be configured using the `azure.network.SubnetNetworkSecurityGroupAssociation` resource.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"serviceEndpointPolicyIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of IDs of Service Endpoint Policies to associate with the subnet.\n"
},
"serviceEndpoints": {
"type": "array",
"items": {
"type": "string"
},
"description": "The list of Service endpoints to associate with the subnet. Possible values include: `Microsoft.AzureActiveDirectory`, `Microsoft.AzureCosmosDB`, `Microsoft.ContainerRegistry`, `Microsoft.EventHub`, `Microsoft.KeyVault`, `Microsoft.ServiceBus`, `Microsoft.Sql`, `Microsoft.Storage`, `Microsoft.Storage.Global` and `Microsoft.Web`.\n\n> **NOTE:** In order to use `Microsoft.Storage.Global` service endpoint (which allows access to virtual networks in other regions), you must enable the `AllowGlobalTagsForStorage` feature in your subscription. This is currently a preview feature, please see the [official documentation](https://learn.microsoft.com/en-us/azure/storage/common/storage-network-security?tabs=azure-cli#enabling-access-to-virtual-networks-in-other-regions-preview) for more information.\n"
},
"virtualNetworkName": {
"type": "string",
"description": "The name of the virtual network to which to attach the subnet. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
}
},
"type": "object"
}
},
"azure:network/virtualNetwork:VirtualNetwork": {
"description": "Manages a virtual network including any configured subnets. Each subnet can\noptionally be configured with a security group to be associated with the subnet.\n\n> **NOTE on Virtual Networks and Subnet's:** This provider currently\nprovides both a standalone Subnet resource, and allows for Subnets to be defined in-line within the Virtual Network resource.\nAt this time you cannot use a Virtual Network with in-line Subnets in conjunction with any Subnet resources. Doing so will cause a conflict of Subnet configurations and will overwrite Subnet's.\n> **NOTE on Virtual Networks and DNS Servers:** This provider currently provides both a standalone virtual network DNS Servers resource, and allows for DNS servers to be defined in-line within the Virtual Network resource.\nAt this time you cannot use a Virtual Network with in-line DNS servers in conjunction with any Virtual Network DNS Servers resources. Doing so will cause a conflict of Virtual Network DNS Servers configurations and will overwrite virtual networks DNS servers.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as azure from \"@pulumi/azure\";\n\nconst exampleResourceGroup = new azure.core.ResourceGroup(\"exampleResourceGroup\", {location: \"West Europe\"});\nconst exampleNetworkSecurityGroup = new azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", {\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n});\nconst exampleVirtualNetwork = new azure.network.VirtualNetwork(\"exampleVirtualNetwork\", {\n location: exampleResourceGroup.location,\n resourceGroupName: exampleResourceGroup.name,\n addressSpaces: [\"10.0.0.0/16\"],\n dnsServers: [\n \"10.0.0.4\",\n \"10.0.0.5\",\n ],\n subnets: [\n {\n name: \"subnet1\",\n addressPrefix: \"10.0.1.0/24\",\n },\n {\n name: \"subnet2\",\n addressPrefix: \"10.0.2.0/24\",\n securityGroup: exampleNetworkSecurityGroup.id,\n },\n ],\n tags: {\n environment: \"Production\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_azure as azure\n\nexample_resource_group = azure.core.ResourceGroup(\"exampleResourceGroup\", location=\"West Europe\")\nexample_network_security_group = azure.network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name)\nexample_virtual_network = azure.network.VirtualNetwork(\"exampleVirtualNetwork\",\n location=example_resource_group.location,\n resource_group_name=example_resource_group.name,\n address_spaces=[\"10.0.0.0/16\"],\n dns_servers=[\n \"10.0.0.4\",\n \"10.0.0.5\",\n ],\n subnets=[\n azure.network.VirtualNetworkSubnetArgs(\n name=\"subnet1\",\n address_prefix=\"10.0.1.0/24\",\n ),\n azure.network.VirtualNetworkSubnetArgs(\n name=\"subnet2\",\n address_prefix=\"10.0.2.0/24\",\n security_group=example_network_security_group.id,\n ),\n ],\n tags={\n \"environment\": \"Production\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Azure = Pulumi.Azure;\n\nreturn await Deployment.RunAsync(() => \n{\n var exampleResourceGroup = new Azure.Core.ResourceGroup(\"exampleResourceGroup\", new()\n {\n Location = \"West Europe\",\n });\n\n var exampleNetworkSecurityGroup = new Azure.Network.NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", new()\n {\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n });\n\n var exampleVirtualNetwork = new Azure.Network.VirtualNetwork(\"exampleVirtualNetwork\", new()\n {\n Location = exampleResourceGroup.Location,\n ResourceGroupName = exampleResourceGroup.Name,\n AddressSpaces = new[]\n {\n \"10.0.0.0/16\",\n },\n DnsServers = new[]\n {\n \"10.0.0.4\",\n \"10.0.0.5\",\n },\n Subnets = new[]\n {\n new Azure.Network.Inputs.VirtualNetworkSubnetArgs\n {\n Name = \"subnet1\",\n AddressPrefix = \"10.0.1.0/24\",\n },\n new Azure.Network.Inputs.VirtualNetworkSubnetArgs\n {\n Name = \"subnet2\",\n AddressPrefix = \"10.0.2.0/24\",\n SecurityGroup = exampleNetworkSecurityGroup.Id,\n },\n },\n Tags = \n {\n { \"environment\", \"Production\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core\"\n\t\"github.com/pulumi/pulumi-azure/sdk/v5/go/azure/network\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleResourceGroup, err := core.NewResourceGroup(ctx, \"exampleResourceGroup\", &core.ResourceGroupArgs{\n\t\t\tLocation: pulumi.String(\"West Europe\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleNetworkSecurityGroup, err := network.NewNetworkSecurityGroup(ctx, \"exampleNetworkSecurityGroup\", &network.NetworkSecurityGroupArgs{\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = network.NewVirtualNetwork(ctx, \"exampleVirtualNetwork\", &network.VirtualNetworkArgs{\n\t\t\tLocation: exampleResourceGroup.Location,\n\t\t\tResourceGroupName: exampleResourceGroup.Name,\n\t\t\tAddressSpaces: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.0/16\"),\n\t\t\t},\n\t\t\tDnsServers: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"10.0.0.4\"),\n\t\t\t\tpulumi.String(\"10.0.0.5\"),\n\t\t\t},\n\t\t\tSubnets: network.VirtualNetworkSubnetArray{\n\t\t\t\t&network.VirtualNetworkSubnetArgs{\n\t\t\t\t\tName: pulumi.String(\"subnet1\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.0.1.0/24\"),\n\t\t\t\t},\n\t\t\t\t&network.VirtualNetworkSubnetArgs{\n\t\t\t\t\tName: pulumi.String(\"subnet2\"),\n\t\t\t\t\tAddressPrefix: pulumi.String(\"10.0.2.0/24\"),\n\t\t\t\t\tSecurityGroup: exampleNetworkSecurityGroup.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"environment\": pulumi.String(\"Production\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.azure.core.ResourceGroup;\nimport com.pulumi.azure.core.ResourceGroupArgs;\nimport com.pulumi.azure.network.NetworkSecurityGroup;\nimport com.pulumi.azure.network.NetworkSecurityGroupArgs;\nimport com.pulumi.azure.network.VirtualNetwork;\nimport com.pulumi.azure.network.VirtualNetworkArgs;\nimport com.pulumi.azure.network.inputs.VirtualNetworkSubnetArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var exampleResourceGroup = new ResourceGroup(\"exampleResourceGroup\", ResourceGroupArgs.builder() \n .location(\"West Europe\")\n .build());\n\n var exampleNetworkSecurityGroup = new NetworkSecurityGroup(\"exampleNetworkSecurityGroup\", NetworkSecurityGroupArgs.builder() \n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .build());\n\n var exampleVirtualNetwork = new VirtualNetwork(\"exampleVirtualNetwork\", VirtualNetworkArgs.builder() \n .location(exampleResourceGroup.location())\n .resourceGroupName(exampleResourceGroup.name())\n .addressSpaces(\"10.0.0.0/16\")\n .dnsServers( \n \"10.0.0.4\",\n \"10.0.0.5\")\n .subnets( \n VirtualNetworkSubnetArgs.builder()\n .name(\"subnet1\")\n .addressPrefix(\"10.0.1.0/24\")\n .build(),\n VirtualNetworkSubnetArgs.builder()\n .name(\"subnet2\")\n .addressPrefix(\"10.0.2.0/24\")\n .securityGroup(exampleNetworkSecurityGroup.id())\n .build())\n .tags(Map.of(\"environment\", \"Production\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleResourceGroup:\n type: azure:core:ResourceGroup\n properties:\n location: West Europe\n exampleNetworkSecurityGroup:\n type: azure:network:NetworkSecurityGroup\n properties:\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n exampleVirtualNetwork:\n type: azure:network:VirtualNetwork\n properties:\n location: ${exampleResourceGroup.location}\n resourceGroupName: ${exampleResourceGroup.name}\n addressSpaces:\n - 10.0.0.0/16\n dnsServers:\n - 10.0.0.4\n - 10.0.0.5\n subnets:\n - name: subnet1\n addressPrefix: 10.0.1.0/24\n - name: subnet2\n addressPrefix: 10.0.2.0/24\n securityGroup: ${exampleNetworkSecurityGroup.id}\n tags:\n environment: Production\n```\n{{% /example %}}\n{{% /examples %}}\n\n## Import\n\nVirtual Networks can be imported using the `resource id`, e.g.\n\n```sh\n $ pulumi import azure:network/virtualNetwork:VirtualNetwork exampleNetwork /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/virtualNetworks/myvnet1\n```\n\n ",
"properties": {
"addressSpaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address space that is used the virtual network. You can supply more than one address space.\n"
},
"bgpCommunity": {
"type": "string",
"description": "The BGP community attribute in format `<as-number>:<community-value>`.\n\n> **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.\n"
},
"ddosProtectionPlan": {
"$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
"description": "A `ddos_protection_plan` block as documented below.\n"
},
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses of DNS servers\n\n> **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.\n"
},
"flowTimeoutInMinutes": {
"type": "integer",
"description": "The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.\n"
},
"guid": {
"type": "string",
"description": "The GUID of the virtual network.\n"
},
"location": {
"type": "string",
"description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n"
},
"name": {
"type": "string",
"description": "The name of the virtual network. Changing this forces a new resource to be created.\n"
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.\n"
},
"subnets": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
},
"description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n\n> **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
}
},
"required": [
"addressSpaces",
"dnsServers",
"guid",
"location",
"name",
"resourceGroupName",
"subnets"
],
"inputProperties": {
"addressSpaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address space that is used the virtual network. You can supply more than one address space.\n"
},
"bgpCommunity": {
"type": "string",
"description": "The BGP community attribute in format `<as-number>:<community-value>`.\n\n> **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.\n"
},
"ddosProtectionPlan": {
"$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
"description": "A `ddos_protection_plan` block as documented below.\n"
},
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses of DNS servers\n\n> **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.\n",
"willReplaceOnChanges": true
},
"flowTimeoutInMinutes": {
"type": "integer",
"description": "The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.\n"
},
"location": {
"type": "string",
"description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"subnets": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
},
"description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n\n> **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
}
},
"requiredInputs": [
"addressSpaces",
"resourceGroupName"
],
"stateInputs": {
"description": "Input properties used for looking up and filtering VirtualNetwork resources.\n",
"properties": {
"addressSpaces": {
"type": "array",
"items": {
"type": "string"
},
"description": "The address space that is used the virtual network. You can supply more than one address space.\n"
},
"bgpCommunity": {
"type": "string",
"description": "The BGP community attribute in format `<as-number>:<community-value>`.\n\n> **NOTE** The `as-number` segment is the Microsoft ASN, which is always `12076` for now.\n"
},
"ddosProtectionPlan": {
"$ref": "#/types/azure:network/VirtualNetworkDdosProtectionPlan:VirtualNetworkDdosProtectionPlan",
"description": "A `ddos_protection_plan` block as documented below.\n"
},
"dnsServers": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of IP addresses of DNS servers\n\n> **NOTE** Since `dns_servers` can be configured both inline and via the separate `azure.network.VirtualNetworkDnsServers` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"edgeZone": {
"type": "string",
"description": "Specifies the Edge Zone within the Azure Region where this Virtual Network should exist. Changing this forces a new Virtual Network to be created.\n",
"willReplaceOnChanges": true
},
"flowTimeoutInMinutes": {
"type": "integer",
"description": "The flow timeout in minutes for the Virtual Network, which is used to enable connection tracking for intra-VM flows. Possible values are between `4` and `30` minutes.\n"
},
"guid": {
"type": "string",
"description": "The GUID of the virtual network.\n"
},
"location": {
"type": "string",
"description": "The location/region where the virtual network is created. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"name": {
"type": "string",
"description": "The name of the virtual network. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"resourceGroupName": {
"type": "string",
"description": "The name of the resource group in which to create the virtual network. Changing this forces a new resource to be created.\n",
"willReplaceOnChanges": true
},
"subnets": {
"type": "array",
"items": {
"$ref": "#/types/azure:network/VirtualNetworkSubnet:VirtualNetworkSubnet"
},
"description": "Can be specified multiple times to define multiple subnets. Each `subnet` block supports fields documented below.\n\n> **NOTE** Since `subnet` can be configured both inline and via the separate `azure.network.Subnet` resource, we have to explicitly set it to empty slice (`[]`) to remove it.\n"
},
"tags": {
"type": "object",
"additionalProperties": {
"type": "string"
},
"description": "A mapping of tags to assign to the resource.\n"
}
},
"type": "object"
}
}
},
"functions": {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment