pspulumiyaml.azurenative.edgeorder.psm1

using module pspulumiyaml
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-AzureNativeFunctionEdgeorderListProductFamilies
{
    param (
        [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,
        [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='$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
    )

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

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

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

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

        $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 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 name of the resource group. The name is case insensitive.)')]
        [string]
        $resourceGroupName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:edgeorder:getAddressByName -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionEdgeorderGetOrderItemByName
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the order item)')]
        [string]
        $orderItemName,
        [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
    )

    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-AzureNativeFunctionEdgeorderListConfigurations
{
    param (
        [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='Holds details about product hierarchy information and filterable property.)')]
        $configurationFilters,
        [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
    }
}
class HierarchyInformation
{
    [string] $productLineName
    [string] $configurationName
    [string] $productName
    [string] $productFamilyName
}
function New-AzureNativeTypeEdgeorderHierarchyInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='Represents product line name that uniquely identifies product line)')]
        [string]
        $productLineName,
        [parameter(mandatory=$False,HelpMessage='Represents configuration name that uniquely identifies configuration)')]
        [string]
        $configurationName,
        [parameter(mandatory=$False,HelpMessage='Represents product name that uniquely identifies product)')]
        [string]
        $productName,
        [parameter(mandatory=$False,HelpMessage='Represents product family name that uniquely identifies product family)')]
        [string]
        $productFamilyName
    )

    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 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]
        [ValidateSet('Disabled', 'Enabled')]
        $doubleEncryptionStatus
    )

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

    process
    {
        return $([NotificationPreference]$PSBoundParameters)
    }
}
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]
        [ValidateSet('CustomerManaged', 'MicrosoftManaged')]
        $preferredShipmentType
    )

    process
    {
        return $([TransportPreferences]$PSBoundParameters)
    }
}
class Preferences
{
    [EncryptionPreferences] $encryptionPreferences
    [NotificationPreference[]] $notificationPreferences
    [ManagementResourcePreferences] $managementResourcePreferences
    [TransportPreferences] $transportPreferences
}
function New-AzureNativeTypeEdgeorderPreferences
{
    param (
        [parameter(mandatory=$False,HelpMessage='Preferences related to the Encryption.)')]
        [EncryptionPreferences]
        $encryptionPreferences,
        [parameter(mandatory=$False,HelpMessage='Notification preferences.)')]
        $notificationPreferences,
        [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
    )

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

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

    process
    {
        return $([ContactDetails]$PSBoundParameters)
    }
}
class ShippingAddress
{
    [string] $country
    [string] $zipExtendedCode
    [string] $streetAddress1
    [string] $companyName
    [string] $postalCode
    [ArgumentCompletions('None', 'Residential', 'Commercial')]
    [string] $addressType
    [string] $city
    [string] $streetAddress3
    [string] $streetAddress2
    [string] $stateOrProvince
}
function New-AzureNativeTypeEdgeorderShippingAddress
{
    param (
        [parameter(mandatory=$False,HelpMessage='Name of the Country.)')]
        [string]
        $country,
        [parameter(mandatory=$False,HelpMessage='Extended Zip Code.)')]
        [string]
        $zipExtendedCode,
        [parameter(mandatory=$False,HelpMessage='Street Address line 1.)')]
        [string]
        $streetAddress1,
        [parameter(mandatory=$False,HelpMessage='Name of the company.)')]
        [string]
        $companyName,
        [parameter(mandatory=$False,HelpMessage='Postal code.)')]
        [string]
        $postalCode,
        [parameter(mandatory=$False,HelpMessage='Type of address.)')]
        [string]
        [ValidateSet('None', 'Residential', 'Commercial')]
        $addressType,
        [parameter(mandatory=$False,HelpMessage='Name of the City.)')]
        [string]
        $city,
        [parameter(mandatory=$False,HelpMessage='Street Address line 3.)')]
        [string]
        $streetAddress3,
        [parameter(mandatory=$False,HelpMessage='Street Address line 2.)')]
        [string]
        $streetAddress2,
        [parameter(mandatory=$False,HelpMessage='Name of the State or Province.)')]
        [string]
        $stateOrProvince
    )

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

    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 name of the order item)')]
        [string]
        $orderItemName,
        [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=$False,HelpMessage='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='The geo-location where the resource lives)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["addressDetails"] = $addressDetails
        $resource.properties["orderId"] = $orderId
        $resource.properties["orderItemDetails"] = $orderItemDetails
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

        $global:pulumiresources += $resource
        return $resource
    }
}
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='Resource tags.)')]
        [hashtable]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Shipping details for the address)')]
        [ShippingAddress]
        $shippingAddress,
        [parameter(mandatory=$False,HelpMessage='Contact details for the address)')]
        [ContactDetails]
        $contactDetails,
        [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,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid,
        [parameter(mandatory,HelpMessage='Pass in the resources you make to make this resource dependant on')]
        [object]
        $DependsOn
    )

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

        foreach($Dependency in $DependsOn)
        {
            if($Dependency -is [pulumiresource])
            {
                $resource.dependson += $Dependency.Reference()
            } else
            {
                $resource.dependson += $Dependency
            }
        }
        $resource.properties["contactDetails"] = $contactDetails
        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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