pspulumiyaml.azurenative.edgeorder.psm1

using module @{ ModuleName = "PSPulumiYaml"; ModuleVersion = "0.0.3"; GUID = "909344e0-a08f-45f6-8177-80e36bb2ba58" }
class CustomerSubscriptionRegisteredFeatures
{
    [string] $name
    [string] $state
}
function New-AzureNativeTypeEdgeorderCustomerSubscriptionRegisteredFeatures
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of subscription registered feature)')]
        [string]
        $name,
        [parameter(mandatory=$False,HelpMessage='State of subscription registered feature)')]
        [string]
        $state
    )

    process
    {
        return $([CustomerSubscriptionRegisteredFeatures]$PSBoundParameters)
    }
}
class CustomerSubscriptionDetails
{
    [string] $quotaId
    [string] $locationPlacementId
    [CustomerSubscriptionRegisteredFeatures[]] $registeredFeatures
}
function New-AzureNativeTypeEdgeorderCustomerSubscriptionDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Quota ID of a subscription)')]
        [string]
        $quotaId,
        [parameter(mandatory=$False,HelpMessage='Location placement Id of a subscription)')]
        [string]
        $locationPlacementId,
        [parameter(mandatory=$False,HelpMessage='List of registered feature flags for subscription)')]
        $registeredFeatures
    )

    process
    {
        return $([CustomerSubscriptionDetails]$PSBoundParameters)
    }
}
function Invoke-AzureNativeFunctionEdgeorderListConfigurations
{
    param (
        [parameter(mandatory=$False,HelpMessage='Holds details about product hierarchy information and filterable property.)')]
        $configurationFilters,
        [parameter(mandatory=$False,HelpMessage='Customer subscription properties. Clients can display available products to unregistered customers by explicitly passing subscription details)')]
        [CustomerSubscriptionDetails]
        $customerSubscriptionDetails,
        [parameter(mandatory=$False,HelpMessage='$skipToken is supported on list of configurations, which provides the next page in the list of configurations.)')]
        [string]
        $skipToken
    )

    process
    {
        $arguments = @{}
        $arguments["configurationFilters"] = $configurationFilters

        if($PSBoundParameters.Keys -icontains 'customerSubscriptionDetails')
        {
            $arguments["customerSubscriptionDetails"] = $customerSubscriptionDetails
        }

        if($PSBoundParameters.Keys -icontains 'skipToken')
        {
            $arguments["skipToken"] = $skipToken
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:edgeorder:listConfigurations -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionEdgeorderGetOrderItemByName
{
    param (
        [parameter(mandatory=$False,HelpMessage='$expand is supported on device details, forward shipping details and reverse shipping details parameters. Each of these can be provided as a comma separated list. Device Details for order item provides details on the devices of the product, Forward and Reverse Shipping details provide forward and reverse shipping details respectively.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the order item)')]
        [string]
        $orderItemName
    )

    process
    {
        $arguments = @{}
        $arguments["orderItemName"] = $orderItemName
        $arguments["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'expand')
        {
            $arguments["expand"] = $expand
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:edgeorder:getOrderItemByName -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionEdgeorderListProductFamilies
{
    param (
        [parameter(mandatory=$False,HelpMessage='$expand is supported on configurations parameter for product, which provides details on the configurations for the product.)')]
        [string]
        $expand,
        [parameter(mandatory=$False,HelpMessage='Dictionary of filterable properties on product family.)')]
        [object]
        $filterableProperties,
        [parameter(mandatory=$False,HelpMessage='Customer subscription properties. Clients can display available products to unregistered customers by explicitly passing subscription details)')]
        [CustomerSubscriptionDetails]
        $customerSubscriptionDetails,
        [parameter(mandatory=$False,HelpMessage='$skipToken is supported on list of product families, which provides the next page in the list of product families.)')]
        [string]
        $skipToken
    )

    process
    {
        $arguments = @{}
        $arguments["filterableProperties"] = $filterableProperties

        if($PSBoundParameters.Keys -icontains 'expand')
        {
            $arguments["expand"] = $expand
        }

        if($PSBoundParameters.Keys -icontains 'customerSubscriptionDetails')
        {
            $arguments["customerSubscriptionDetails"] = $customerSubscriptionDetails
        }

        if($PSBoundParameters.Keys -icontains 'skipToken')
        {
            $arguments["skipToken"] = $skipToken
        }

        $functionObject = Invoke-PulumiFunction -Name azure-native:edgeorder:listProductFamilies -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionEdgeorderGetAddressByName
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only)')]
        [string]
        $addressName
    )

    process
    {
        $arguments = @{}
        $arguments["addressName"] = $addressName
        $arguments["resourceGroupName"] = $resourceGroupName

        $functionObject = Invoke-PulumiFunction -Name azure-native:edgeorder:getAddressByName -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class ShippingAddress
{
    [string] $streetAddress1
    [string] $stateOrProvince
    [string] $companyName
    [string] $streetAddress3
    [string] $city
    [ArgumentCompletions('None', 'Residential', 'Commercial')]
    [string] $addressType
    [string] $country
    [string] $postalCode
    [string] $streetAddress2
    [string] $zipExtendedCode
}
function New-AzureNativeTypeEdgeorderShippingAddress
{
    param (
        [parameter(mandatory=$False,HelpMessage='Street Address line 1.)')]
        [string]
        $streetAddress1,
        [parameter(mandatory=$False,HelpMessage='Name of the State or Province.)')]
        [string]
        $stateOrProvince,
        [parameter(mandatory=$False,HelpMessage='Name of the company.)')]
        [string]
        $companyName,
        [parameter(mandatory=$False,HelpMessage='Street Address line 3.)')]
        [string]
        $streetAddress3,
        [parameter(mandatory=$False,HelpMessage='Name of the City.)')]
        [string]
        $city,
        [parameter(mandatory=$False,HelpMessage='Type of address.)')]
        [string]
        [ArgumentCompletions('None', 'Residential', 'Commercial')]
        $addressType,
        [parameter(mandatory=$False,HelpMessage='Name of the Country.)')]
        [string]
        $country,
        [parameter(mandatory=$False,HelpMessage='Postal code.)')]
        [string]
        $postalCode,
        [parameter(mandatory=$False,HelpMessage='Street Address line 2.)')]
        [string]
        $streetAddress2,
        [parameter(mandatory=$False,HelpMessage='Extended Zip Code.)')]
        [string]
        $zipExtendedCode
    )

    process
    {
        return $([ShippingAddress]$PSBoundParameters)
    }
}
class ContactDetails
{
    [string] $phoneExtension
    [string] $contactName
    [string[]] $emailList
    [string] $mobile
    [string] $phone
}
function New-AzureNativeTypeEdgeorderContactDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Phone extension number of the contact person.)')]
        [string]
        $phoneExtension,
        [parameter(mandatory=$False,HelpMessage='Contact name of the person.)')]
        [string]
        $contactName,
        [parameter(mandatory=$False,HelpMessage='List of Email-ids to be notified about job progress.)')]
        [string[]]
        $emailList,
        [parameter(mandatory=$False,HelpMessage='Mobile number of the contact person.)')]
        [string]
        $mobile,
        [parameter(mandatory=$False,HelpMessage='Phone number of the contact person.)')]
        [string]
        $phone
    )

    process
    {
        return $([ContactDetails]$PSBoundParameters)
    }
}
function New-AzureNativeEdgeorderAddressByName
{
    [Alias('azure_native_edgeorder_addressbyname')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the address Resource within the specified resource group. address names must be between 3 and 24 characters in length and use any alphanumeric and underscore only)')]
        [string]
        $addressName,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='Shipping details for the address)')]
        [ShippingAddress]
        $shippingAddress,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Contact details for the address)')]
        [ContactDetails]
        $contactDetails,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:edgeorder:AddressByName")

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["contactDetails"] = $contactDetails
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'addressName')
        {
            $resource.properties["addressName"] = $addressName
        }

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'shippingAddress')
        {
            $resource.properties["shippingAddress"] = $shippingAddress
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        $global:pulumiresources += $resource
        return $resource
    }
}
class ManagementResourcePreferences
{
    [string] $preferredManagementResourceId
}
function New-AzureNativeTypeEdgeorderManagementResourcePreferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Customer preferred Management resource ARM ID)')]
        [string]
        $preferredManagementResourceId
    )

    process
    {
        return $([ManagementResourcePreferences]$PSBoundParameters)
    }
}
class TransportPreferences
{
    [ArgumentCompletions('CustomerManaged', 'MicrosoftManaged')]
    [string] $preferredShipmentType
}
function New-AzureNativeTypeEdgeorderTransportPreferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Indicates Shipment Logistics type that the customer preferred.)')]
        [string]
        [ArgumentCompletions('CustomerManaged', 'MicrosoftManaged')]
        $preferredShipmentType
    )

    process
    {
        return $([TransportPreferences]$PSBoundParameters)
    }
}
class NotificationPreference
{
    [ArgumentCompletions('Shipped', 'Delivered')]
    [string] $stageName
    [bool] $sendNotification
}
function New-AzureNativeTypeEdgeorderNotificationPreference
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the stage.)')]
        [string]
        [ArgumentCompletions('Shipped', 'Delivered')]
        $stageName,
        [parameter(mandatory=$False,HelpMessage='Notification is required or not.)')]
        [bool]
        $sendNotification
    )

    process
    {
        return $([NotificationPreference]$PSBoundParameters)
    }
}
class EncryptionPreferences
{
    [ArgumentCompletions('Disabled', 'Enabled')]
    [string] $doubleEncryptionStatus
}
function New-AzureNativeTypeEdgeorderEncryptionPreferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Double encryption status as entered by the customer. It is compulsory to give this parameter if the ''Deny'' or ''Disabled'' policy is configured.)')]
        [string]
        [ArgumentCompletions('Disabled', 'Enabled')]
        $doubleEncryptionStatus
    )

    process
    {
        return $([EncryptionPreferences]$PSBoundParameters)
    }
}
class Preferences
{
    [ManagementResourcePreferences] $managementResourcePreferences
    [TransportPreferences] $transportPreferences
    [NotificationPreference[]] $notificationPreferences
    [EncryptionPreferences] $encryptionPreferences
}
function New-AzureNativeTypeEdgeorderPreferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Preferences related to the Management resource.)')]
        [ManagementResourcePreferences]
        $managementResourcePreferences,
        [parameter(mandatory=$False,HelpMessage='Preferences related to the shipment logistics of the order.)')]
        [TransportPreferences]
        $transportPreferences,
        [parameter(mandatory=$False,HelpMessage='Notification preferences.)')]
        $notificationPreferences,
        [parameter(mandatory=$False,HelpMessage='Preferences related to the Encryption.)')]
        [EncryptionPreferences]
        $encryptionPreferences
    )

    process
    {
        return $([Preferences]$PSBoundParameters)
    }
}
class HierarchyInformation
{
    [string] $configurationName
    [string] $productFamilyName
    [string] $productLineName
    [string] $productName
}
function New-AzureNativeTypeEdgeorderHierarchyInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Represents configuration name that uniquely identifies configuration)')]
        [string]
        $configurationName,
        [parameter(mandatory=$False,HelpMessage='Represents product family name that uniquely identifies product family)')]
        [string]
        $productFamilyName,
        [parameter(mandatory=$False,HelpMessage='Represents product line name that uniquely identifies product line)')]
        [string]
        $productLineName,
        [parameter(mandatory=$False,HelpMessage='Represents product name that uniquely identifies product)')]
        [string]
        $productName
    )

    process
    {
        return $([HierarchyInformation]$PSBoundParameters)
    }
}
class ProductDetails
{
    [HierarchyInformation] $hierarchyInformation
}
function New-AzureNativeTypeEdgeorderProductDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Hierarchy of the product which uniquely identifies the product)')]
        [HierarchyInformation]
        $hierarchyInformation
    )

    process
    {
        return $([ProductDetails]$PSBoundParameters)
    }
}
class OrderItemDetails
{
    [Preferences] $preferences
    [ProductDetails] $productDetails
    [ArgumentCompletions('Purchase', 'Rental')]
    [string] $orderItemType
    [string[]] $notificationEmailList
}
function New-AzureNativeTypeEdgeorderOrderItemDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Customer notification Preferences)')]
        [Preferences]
        $preferences,
        [parameter(mandatory=$False,HelpMessage='Unique identifier for configuration.)')]
        [ProductDetails]
        $productDetails,
        [parameter(mandatory=$False,HelpMessage='Order item type.)')]
        [string]
        [ArgumentCompletions('Purchase', 'Rental')]
        $orderItemType,
        [parameter(mandatory=$False,HelpMessage='Additional notification email list)')]
        [string[]]
        $notificationEmailList
    )

    process
    {
        return $([OrderItemDetails]$PSBoundParameters)
    }
}
class AddressProperties
{
    [ShippingAddress] $shippingAddress
    [ContactDetails] $contactDetails
}
function New-AzureNativeTypeEdgeorderAddressProperties
{
    param (
        [parameter(mandatory=$False,HelpMessage='Shipping details for the address)')]
        [ShippingAddress]
        $shippingAddress,
        [parameter(mandatory=$False,HelpMessage='Contact details for the address)')]
        [ContactDetails]
        $contactDetails
    )

    process
    {
        return $([AddressProperties]$PSBoundParameters)
    }
}
class AddressDetails
{
    [AddressProperties] $forwardAddress
}
function New-AzureNativeTypeEdgeorderAddressDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Customer address and contact details. It should be address resource)')]
        [AddressProperties]
        $forwardAddress
    )

    process
    {
        return $([AddressDetails]$PSBoundParameters)
    }
}
function New-AzureNativeEdgeorderOrderItemByName
{
    [Alias('azure_native_edgeorder_orderitembyname')]
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='Id of the order to which order item belongs to)')]
        [string]
        $orderId,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory=$False,HelpMessage='The name of the order item)')]
        [string]
        $orderItemName,
        [parameter(mandatory=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Represents order item details.)')]
        [OrderItemDetails]
        $orderItemDetails,
        [parameter(mandatory=$False,HelpMessage='Represents shipping and return address for order item)')]
        [AddressDetails]
        $addressDetails,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(HelpMessage='Specifies a list of named output properties that should be treated as secrets, which means they will be encrypted. It augments the list of values that Pulumi detects, based on secret inputs to the resource.')]
        [string[]]
        $PulumiSecretOutputs,
        [parameter(HelpMessage='The aliases parameter provides a list of aliases for a resource or component resource. If youre changing the name, type, or parent path of a resource or component resource, you can add the old name to the list of aliases for a resource to ensure that existing resources will be migrated to the new name instead of being deleted and replaced with the new named resource.')]
        [string[]]
        $PulumiAliases,
        [parameter(HelpMessage='The customTimeouts parameter provides a set of custom timeouts for create, update, and delete operations on a resource. These timeouts are specified using a duration string such as 5m (5 minutes), 40s (40 seconds), or 1d (1 day). Supported duration units are ns, us (or µs), ms, s, m, and h (nanoseconds, microseconds, milliseconds, seconds, minutes, and hours, respectively).')]
        [pulumicustomtimeouts]
        $PulumiCustomTimeouts,
        [parameter(HelpMessage='Setting the PulumiDeleteBeforeReplace parameter to true means that Pulumi will delete the existing resource before creating its replacement. Be aware that this behavior has a cascading impact on dependencies so more resources may be replaced, which can lead to downtime. However, this option may be necessary for some resources that manage scarce resources behind the scenes, and/or resources that cannot exist side-by-side.')]
        [bool]
        $PulumiDeleteBeforeReplace,
        [parameter(HelpMessage='Creates a list of explicit dependencies between resources.The DependsOn parameter ensures that resource creation, update, and deletion operations are done in the correct order.')]
        [object[]]
        $PulumiDependsOn,
        [parameter(HelpMessage='Specifies a list of properties that Pulumi will ignore when it updates existing resources. Any properties specified in this list that are also specified in the resources arguments will only be used when creating the resource.')]
        [string[]]
        $PulumiIgnoreChanges,
        [parameter(HelpMessage='Imports an existing cloud resource so that Pulumi can manage it. To import a resource, first specify the PulumiImport parameter with the resources ID')]
        [string]
        $PulumiImport = [NullString]::Value,
        [parameter(HelpMessage='Specifies a parent for a resource. It is used to associate children with the parents that encapsulate or are responsible for them.')]
        [object]
        $PulumiParent = [NullString]::Value,
        [parameter(HelpMessage='Marks a resource as protected. A protected resource cannot be deleted directly, and it will be an error to do a Pulumi deployment which tries to delete a protected resource for any reason.')]
        [bool]
        $PulumiProtect,
        [parameter(HelpMessage='Sets a provider for the resource. The default is to inherit this value from the parent resource, and to use the ambient provider specified by Pulumi configuration for resources without a parent.')]
        [object]
        $PulumiProvider = [NullString]::Value,
        [parameter(HelpMessage='Sets a list of providers for the resource and its children. This list is combined with resource parents providers lists. If no value is provided, the providers list is identical to the parent. When determining which provider to use for a resource, the providers list is used if provider is not supplied.')]
        [object[]]
        $PulumiProviders,
        [parameter(HelpMessage='Used to indicate that changes to certain properties on a resource should force a replacement of the resource instead of an in-place update. Typically users rely on the resource provider to make this decision based on whether the input property is one that the provider knows how to update in place, or if not, requires a replacement to modify. However, there are cases where users want to replace a resource on a change to an input property even if the resource provider itself doesnt believe it has to replace the resource.')]
        [string[]]
        $PulumiReplaceOnChanges,
        [parameter(HelpMessage='Marks a resource to be retained. If this option is set then Pulumi will not call through to the resource providers Delete method when deleting or replacing the resource during pulumi up or pulumi destroy. As a result, the resource will not be deleted from the backing cloud provider, but will be removed from the Pulumi state.')]
        [bool]
        $PulumiRetainOnDelete,
        [parameter(HelpMessage='Specifies a provider version to use when operating on a resource. This version overrides the version information inferred from the current package. This option should be used rarely.')]
        [string]
        $PulumiProviderVersion = [NullString]::Value
    )

    process
    {
        $resource = [pulumiresource]::new($pulumiid, "azure-native:edgeorder:OrderItemByName")

        $resource.options.additionalSecretOutputs = $PulumiSecretOutputs
        $resource.options.aliases = $PulumiAliases
        $resource.options.customTimeouts = $PulumiCustomTimeouts
        $resource.options.deleteBeforeReplace = $PulumiDeleteBeforeReplace
        $resource.options.ignoreChanges = $PulumiIgnoreChanges
        $resource.options.import = if([string]::IsNullOrEmpty($PulumiImport)) { [NullString]::Value } else { $PulumiImport }
        $resource.options.protect = $PulumiProtect
        $resource.options.replaceOnChanges = $PulumiReplaceOnChanges
        $resource.options.retainOnDelete = $PulumiRetainOnDelete
        $resource.options.version = if([string]::IsNullOrEmpty($PulumiProviderVersion)) { [NullString]::Value } else { $PulumiProviderVersion }

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.options.dependson += $Dependency.Reference()
            } else
            {
                $resource.options.dependson += $Dependency
            }
        }
        if($PulumiParent -is [pulumiresource])
        {
            $resource.options.parent = $PulumiParent.Reference()
        } else
        {
            $resource.options.parent = $PulumiParent
        }
        foreach($provider in $PulumiProviders)
        {
            if($provider -is [pulumiprovider])
            {
                $resource.options.providers += $provider.Reference()
            } else
            {
                $resource.options.providers += $provider
            }
        }
        if($PulumiProvider -is [pulumiprovider])
        {
            $resource.options.provider = $PulumiProvider.Reference()
        } else
        {
            $resource.options.provider = $PulumiProvider
        }
        $resource.properties["addressDetails"] = $addressDetails
        $resource.properties["orderId"] = $orderId
        $resource.properties["orderItemDetails"] = $orderItemDetails
        $resource.properties["resourceGroupName"] = $resourceGroupName

        if($PSBoundParameters.Keys -icontains 'location')
        {
            $resource.properties["location"] = $location
        }

        if($PSBoundParameters.Keys -icontains 'orderItemName')
        {
            $resource.properties["orderItemName"] = $orderItemName
        }

        if($PSBoundParameters.Keys -icontains 'tags')
        {
            $resource.properties["tags"] = $tags
        }

        $global:pulumiresources += $resource
        return $resource
    }
}