import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages an SAP Single Node Virtual Instance with new SAP System. * * > **Note:** Before using this resource, it's required to submit the request of registering the Resource Provider with Azure CLI `az provider register --namespace "Microsoft.Workloads"`. The Resource Provider can take a while to register, you can check the status by running `az provider show --namespace "Microsoft.Workloads" --query "registrationState"`. Once this outputs "Registered" the Resource Provider is available for use. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as azure from "@pulumi/azure"; * import * as tls from "@pulumi/tls"; * * const current = azure.core.getSubscription({}); * const examplePrivateKey = new tls.index.PrivateKey("example", { * algorithm: "RSA", * rsaBits: 4096, * }); * const example = tls.PublicKey({ * privateKeyPem: examplePrivateKey.privateKeyPem, * }); * const exampleResourceGroup = new azure.core.ResourceGroup("example", { * name: "example-resources", * location: "West Europe", * }); * const exampleUserAssignedIdentity = new azure.authorization.UserAssignedIdentity("example", { * name: "example-uai", * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * }); * const exampleAssignment = new azure.authorization.Assignment("example", { * scope: current.then(current => current.id), * roleDefinitionName: "Azure Center for SAP solutions service role", * principalId: exampleUserAssignedIdentity.principalId, * }); * const exampleVirtualNetwork = new azure.network.VirtualNetwork("example", { * name: "example-vnet", * addressSpaces: ["10.0.0.0/16"], * location: exampleResourceGroup.location, * resourceGroupName: exampleResourceGroup.name, * }); * const exampleSubnet = new azure.network.Subnet("example", { * name: "example-subnet", * resourceGroupName: exampleResourceGroup.name, * virtualNetworkName: exampleVirtualNetwork.name, * addressPrefixes: ["10.0.2.0/24"], * }); * const app = new azure.core.ResourceGroup("app", { * name: "example-sapapp", * location: "West Europe", * }, { * dependsOn: [exampleSubnet], * }); * const exampleSingleNodeVirtualInstance = new azure.workloadssap.SingleNodeVirtualInstance("example", { * name: "X05", * resourceGroupName: exampleResourceGroup.name, * location: exampleResourceGroup.location, * environment: "NonProd", * sapProduct: "S4HANA", * managedResourceGroupName: "managedTestRG", * appLocation: app.location, * sapFqdn: "sap.bpaas.com", * singleServerConfiguration: { * appResourceGroupName: app.name, * subnetId: exampleSubnet.id, * databaseType: "HANA", * secondaryIpEnabled: true, * virtualMachineConfiguration: { * virtualMachineSize: "Standard_E32ds_v4", * image: { * offer: "RHEL-SAP-HA", * publisher: "RedHat", * sku: "82sapha-gen2", * version: "latest", * }, * osProfile: { * adminUsername: "testAdmin", * sshPrivateKey: examplePrivateKey.privateKeyPem, * sshPublicKey: example.publicKeyOpenssh, * }, * }, * diskVolumeConfigurations: [ * { * volumeName: "hana/data", * numberOfDisks: 3, * sizeInGb: 128, * skuName: "Premium_LRS", * }, * { * volumeName: "hana/log", * numberOfDisks: 3, * sizeInGb: 128, * skuName: "Premium_LRS", * }, * { * volumeName: "hana/shared", * numberOfDisks: 1, * sizeInGb: 256, * skuName: "Premium_LRS", * }, * { * volumeName: "usr/sap", * numberOfDisks: 1, * sizeInGb: 128, * skuName: "Premium_LRS", * }, * { * volumeName: "backup", * numberOfDisks: 2, * sizeInGb: 256, * skuName: "StandardSSD_LRS", * }, * { * volumeName: "os", * numberOfDisks: 1, * sizeInGb: 64, * skuName: "StandardSSD_LRS", * }, * ], * virtualMachineResourceNames: { * hostName: "apphostName0", * osDiskName: "app0osdisk", * virtualMachineName: "appvm0", * networkInterfaceNames: ["appnic0"], * dataDisks: [{ * volumeName: "default", * names: ["app0disk0"], * }], * }, * }, * identity: { * type: "UserAssigned", * identityIds: [exampleUserAssignedIdentity.id], * }, * }, { * dependsOn: [exampleAssignment], * }); * ``` * * ## API Providers * * * This resource uses the following Azure API Providers: * * * `Microsoft.Workloads` - 2024-09-01 * * ## Import * * SAP Single Node Virtual Instances with new SAP Systems can be imported using the `resource id`, e.g. * * ```sh * $ pulumi import azure:workloadssap/singleNodeVirtualInstance:SingleNodeVirtualInstance example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Workloads/sapVirtualInstances/vis1 * ``` */ export declare class SingleNodeVirtualInstance extends pulumi.CustomResource { /** * Get an existing SingleNodeVirtualInstance resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input, state?: SingleNodeVirtualInstanceState, opts?: pulumi.CustomResourceOptions): SingleNodeVirtualInstance; /** * Returns true if the given object is an instance of SingleNodeVirtualInstance. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is SingleNodeVirtualInstance; /** * The Geo-Location where the SAP system is to be created. Changing this forces a new resource to be created. */ readonly appLocation: pulumi.Output; /** * The environment type for the SAP Single Node Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. */ readonly environment: pulumi.Output; /** * An `identity` block as defined below. */ readonly identity: pulumi.Output; /** * The Azure Region where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ readonly location: pulumi.Output; /** * The name of the managed Resource Group for the SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ readonly managedResourceGroupName: pulumi.Output; /** * The network access type for managed resources. Possible values are `Private` and `Public`. Defaults to `Public`. */ readonly managedResourcesNetworkAccessType: pulumi.Output; /** * Specifies the name of this SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ readonly name: pulumi.Output; /** * The name of the Resource Group where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ readonly resourceGroupName: pulumi.Output; /** * The fully qualified domain name for the SAP system. Changing this forces a new resource to be created. */ readonly sapFqdn: pulumi.Output; /** * The SAP Product type for the SAP Single Node Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. */ readonly sapProduct: pulumi.Output; /** * A `singleServerConfiguration` block as defined below. Changing this forces a new resource to be created. */ readonly singleServerConfiguration: pulumi.Output; /** * A mapping of tags which should be assigned to the SAP Single Node Virtual Instance. */ readonly tags: pulumi.Output<{ [key: string]: string; } | undefined>; /** * Create a SingleNodeVirtualInstance resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: SingleNodeVirtualInstanceArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SingleNodeVirtualInstance resources. */ export interface SingleNodeVirtualInstanceState { /** * The Geo-Location where the SAP system is to be created. Changing this forces a new resource to be created. */ appLocation?: pulumi.Input; /** * The environment type for the SAP Single Node Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. */ environment?: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * The Azure Region where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the managed Resource Group for the SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ managedResourceGroupName?: pulumi.Input; /** * The network access type for managed resources. Possible values are `Private` and `Public`. Defaults to `Public`. */ managedResourcesNetworkAccessType?: pulumi.Input; /** * Specifies the name of this SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The name of the Resource Group where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ resourceGroupName?: pulumi.Input; /** * The fully qualified domain name for the SAP system. Changing this forces a new resource to be created. */ sapFqdn?: pulumi.Input; /** * The SAP Product type for the SAP Single Node Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. */ sapProduct?: pulumi.Input; /** * A `singleServerConfiguration` block as defined below. Changing this forces a new resource to be created. */ singleServerConfiguration?: pulumi.Input; /** * A mapping of tags which should be assigned to the SAP Single Node Virtual Instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; } /** * The set of arguments for constructing a SingleNodeVirtualInstance resource. */ export interface SingleNodeVirtualInstanceArgs { /** * The Geo-Location where the SAP system is to be created. Changing this forces a new resource to be created. */ appLocation: pulumi.Input; /** * The environment type for the SAP Single Node Virtual Instance. Possible values are `NonProd` and `Prod`. Changing this forces a new resource to be created. */ environment: pulumi.Input; /** * An `identity` block as defined below. */ identity?: pulumi.Input; /** * The Azure Region where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ location?: pulumi.Input; /** * The name of the managed Resource Group for the SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ managedResourceGroupName?: pulumi.Input; /** * The network access type for managed resources. Possible values are `Private` and `Public`. Defaults to `Public`. */ managedResourcesNetworkAccessType?: pulumi.Input; /** * Specifies the name of this SAP Single Node Virtual Instance. Changing this forces a new resource to be created. */ name?: pulumi.Input; /** * The name of the Resource Group where the SAP Single Node Virtual Instance should exist. Changing this forces a new resource to be created. */ resourceGroupName: pulumi.Input; /** * The fully qualified domain name for the SAP system. Changing this forces a new resource to be created. */ sapFqdn: pulumi.Input; /** * The SAP Product type for the SAP Single Node Virtual Instance. Possible values are `ECC`, `Other` and `S4HANA`. Changing this forces a new resource to be created. */ sapProduct: pulumi.Input; /** * A `singleServerConfiguration` block as defined below. Changing this forces a new resource to be created. */ singleServerConfiguration: pulumi.Input; /** * A mapping of tags which should be assigned to the SAP Single Node Virtual Instance. */ tags?: pulumi.Input<{ [key: string]: pulumi.Input; }>; }