pspulumiyaml.azurenative.importexport.psm1

using module pspulumiyaml
function Invoke-AzureNativeFunctionImportexportGetJob
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name uniquely identifies the resource group within the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the import/export job.)')]
        [string]
        $jobName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:importexport:getJob -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
function Invoke-AzureNativeFunctionImportexportListBitLockerKey
{
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name uniquely identifies the resource group within the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the import/export job.)')]
        [string]
        $jobName
    )

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

        $functionObject = Invoke-PulumiFunction -Name azure-native:importexport:listBitLockerKey -variableName $([guid]::NewGuid().Guid) -Arguments $arguments
        return $functionObject
    }
}
class DeliveryPackageInformation
{
    [string] $carrierName
    [int] $driveCount
    [string] $trackingNumber
    [string] $shipDate
}
function New-AzureNativeTypeImportexportDeliveryPackageInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the carrier that is used to ship the import or export drives.)')]
        [string]
        $carrierName,
        [parameter(mandatory=$False,HelpMessage='The number of drives included in the package.)')]
        [int]
        $driveCount,
        [parameter(mandatory=$False,HelpMessage='The tracking number of the package.)')]
        [string]
        $trackingNumber,
        [parameter(mandatory=$False,HelpMessage='The date when the package is shipped.)')]
        [string]
        $shipDate
    )

    process
    {
        return $([DeliveryPackageInformation]$PSBoundParameters)
    }
}
class DriveStatus
{
    [string] $bitLockerKey
    [string] $verboseLogUri
    [int] $bytesSucceeded
    [string] $manifestFile
    [int] $percentComplete
    [string] $driveHeaderHash
    [string] $errorLogUri
    [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
    [string] $state
    [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
    [string] $manifestHash
    [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
    [string] $copyStatus
    [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
    [string] $manifestUri
    [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
    [string] $driveId
}
function New-AzureNativeTypeImportexportDriveStatus
{
    param (
        [parameter(mandatory=$False,HelpMessage='The BitLocker key used to encrypt the drive.)')]
        [string]
        $bitLockerKey,
        [parameter(mandatory=$False,HelpMessage='A URI that points to the blob containing the verbose log for the data transfer operation. )')]
        [string]
        $verboseLogUri,
        [parameter(mandatory=$False,HelpMessage='Bytes successfully transferred for the drive.)')]
        [int]
        $bytesSucceeded,
        [parameter(mandatory=$False,HelpMessage='The relative path of the manifest file on the drive. )')]
        [string]
        $manifestFile,
        [parameter(mandatory=$False,HelpMessage='Percentage completed for the drive. )')]
        [int]
        $percentComplete,
        [parameter(mandatory=$False,HelpMessage='The drive header hash value.)')]
        [string]
        $driveHeaderHash,
        [parameter(mandatory=$False,HelpMessage='A URI that points to the blob containing the error log for the data transfer operation.)')]
        [string]
        $errorLogUri,
        [parameter(mandatory=$False,HelpMessage='The drive''s current state. )')]
        [string]
        [ValidateSet('Specified', 'Received', 'NeverReceived', 'Transferring', 'Completed', 'CompletedMoreInfo', 'ShippedBack')]
        $state,
        [parameter(mandatory=$False,HelpMessage='The Base16-encoded MD5 hash of the manifest file on the drive.)')]
        [string]
        $manifestHash,
        [parameter(mandatory=$False,HelpMessage='Detailed status about the data transfer process. This field is not returned in the response until the drive is in the Transferring state.)')]
        [string]
        $copyStatus,
        [parameter(mandatory=$False,HelpMessage='A URI that points to the blob containing the drive manifest file. )')]
        [string]
        $manifestUri,
        [parameter(mandatory=$False,HelpMessage='The drive''s hardware serial number, without spaces.)')]
        [string]
        $driveId
    )

    process
    {
        return $([DriveStatus]$PSBoundParameters)
    }
}
class ShippingInformation
{
    [string] $stateOrProvince
    [string] $postalCode
    [string] $city
    [string] $streetAddress2
    [string] $streetAddress1
    [string] $countryOrRegion
    [string] $phone
    [string] $recipientName
}
function New-AzureNativeTypeImportexportShippingInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The state or province to use when returning the drives.)')]
        [string]
        $stateOrProvince,
        [parameter(mandatory=$False,HelpMessage='The postal code to use when returning the drives.)')]
        [string]
        $postalCode,
        [parameter(mandatory=$False,HelpMessage='The city name to use when returning the drives.)')]
        [string]
        $city,
        [parameter(mandatory=$False,HelpMessage='The second line of the street address to use when returning the drives. )')]
        [string]
        $streetAddress2,
        [parameter(mandatory=$False,HelpMessage='The first line of the street address to use when returning the drives. )')]
        [string]
        $streetAddress1,
        [parameter(mandatory=$False,HelpMessage='The country or region to use when returning the drives. )')]
        [string]
        $countryOrRegion,
        [parameter(mandatory=$False,HelpMessage='Phone number of the recipient of the returned drives.)')]
        [string]
        $phone,
        [parameter(mandatory=$False,HelpMessage='The name of the recipient who will receive the hard drives when they are returned. )')]
        [string]
        $recipientName
    )

    process
    {
        return $([ShippingInformation]$PSBoundParameters)
    }
}
class EncryptionKeyDetails
{
    [string] $kekVaultResourceID
    [ValidateSet('MicrosoftManaged', 'CustomerManaged')]
    [string] $kekType
    [ValidateSet('MicrosoftManaged', 'CustomerManaged')]
    [string] $kekUrl
}
function New-AzureNativeTypeImportexportEncryptionKeyDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Specifies the keyvault resource id for kek encryption key. )')]
        [string]
        $kekVaultResourceID,
        [parameter(mandatory=$False,HelpMessage='The type of kek encryption key)')]
        [string]
        [ValidateSet('MicrosoftManaged', 'CustomerManaged')]
        $kekType,
        [parameter(mandatory=$False,HelpMessage='Specifies the url for kek encryption key. )')]
        [string]
        $kekUrl
    )

    process
    {
        return $([EncryptionKeyDetails]$PSBoundParameters)
    }
}
class PackageInformation
{
    [string] $carrierName
    [int] $driveCount
    [string] $trackingNumber
    [string] $shipDate
}
function New-AzureNativeTypeImportexportPackageInformation
{
    param (
        [parameter(mandatory=$False,HelpMessage='The name of the carrier that is used to ship the import or export drives.)')]
        [string]
        $carrierName,
        [parameter(mandatory=$False,HelpMessage='The number of drives included in the package.)')]
        [int]
        $driveCount,
        [parameter(mandatory=$False,HelpMessage='The tracking number of the package.)')]
        [string]
        $trackingNumber,
        [parameter(mandatory=$False,HelpMessage='The date when the package is shipped.)')]
        [string]
        $shipDate
    )

    process
    {
        return $([PackageInformation]$PSBoundParameters)
    }
}
class ReturnShipping
{
    [string] $carrierName
    [string] $carrierAccountNumber
}
function New-AzureNativeTypeImportexportReturnShipping
{
    param (
        [parameter(mandatory=$False,HelpMessage='The carrier''s name.)')]
        [string]
        $carrierName,
        [parameter(mandatory=$False,HelpMessage='The customer''s account number with the carrier.)')]
        [string]
        $carrierAccountNumber
    )

    process
    {
        return $([ReturnShipping]$PSBoundParameters)
    }
}
class ReturnAddress
{
    [string] $phone
    [string] $email
    [string] $streetAddress1
    [string] $countryOrRegion
    [string] $streetAddress2
    [string] $postalCode
    [string] $recipientName
    [string] $stateOrProvince
    [string] $city
}
function New-AzureNativeTypeImportexportReturnAddress
{
    param (
        [parameter(mandatory=$False,HelpMessage='Phone number of the recipient of the returned drives.)')]
        [string]
        $phone,
        [parameter(mandatory=$False,HelpMessage='Email address of the recipient of the returned drives.)')]
        [string]
        $email,
        [parameter(mandatory=$False,HelpMessage='The first line of the street address to use when returning the drives. )')]
        [string]
        $streetAddress1,
        [parameter(mandatory=$False,HelpMessage='The country or region to use when returning the drives. )')]
        [string]
        $countryOrRegion,
        [parameter(mandatory=$False,HelpMessage='The second line of the street address to use when returning the drives. )')]
        [string]
        $streetAddress2,
        [parameter(mandatory=$False,HelpMessage='The postal code to use when returning the drives.)')]
        [string]
        $postalCode,
        [parameter(mandatory=$False,HelpMessage='The name of the recipient who will receive the hard drives when they are returned. )')]
        [string]
        $recipientName,
        [parameter(mandatory=$False,HelpMessage='The state or province to use when returning the drives.)')]
        [string]
        $stateOrProvince,
        [parameter(mandatory=$False,HelpMessage='The city name to use when returning the drives.)')]
        [string]
        $city
    )

    process
    {
        return $([ReturnAddress]$PSBoundParameters)
    }
}
class Export
{
    [string] $blobListBlobPath
    [string[]] $blobPath
    [string[]] $blobPathPrefix
}
function New-AzureNativeTypeImportexportExport
{
    param (
        [parameter(mandatory=$False,HelpMessage='The relative URI to the block blob that contains the list of blob paths or blob path prefixes as defined above, beginning with the container name. If the blob is in root container, the URI must begin with $root. )')]
        [string]
        $blobListBlobPath,
        [parameter(mandatory=$False,HelpMessage='A collection of blob-path strings.)')]
        [string[]]
        $blobPath,
        [parameter(mandatory=$False,HelpMessage='A collection of blob-prefix strings.)')]
        [string[]]
        $blobPathPrefix
    )

    process
    {
        return $([Export]$PSBoundParameters)
    }
}
class JobDetails
{
    [DeliveryPackageInformation] $deliveryPackage
    [bool] $cancelRequested
    [string] $state
    [DriveStatus[]] $driveList
    [string] $incompleteBlobListUri
    [ShippingInformation] $shippingInformation
    [EncryptionKeyDetails] $encryptionKey
    [string] $logLevel
    [string] $provisioningState
    [PackageInformation] $returnPackage
    [ReturnShipping] $returnShipping
    [string] $storageAccountId
    [int] $percentComplete
    [string] $jobType
    [ReturnAddress] $returnAddress
    [string] $diagnosticsPath
    [Export] $export
    [bool] $backupDriveManifest
}
function New-AzureNativeTypeImportexportJobDetails
{
    param (
        [parameter(mandatory=$False,HelpMessage='Contains information about the package being shipped by the customer to the Microsoft data center. )')]
        [DeliveryPackageInformation]
        $deliveryPackage,
        [parameter(mandatory=$False,HelpMessage='Indicates whether a request has been submitted to cancel the job.)')]
        [bool]
        $cancelRequested,
        [parameter(mandatory=$False,HelpMessage='Current state of the job.)')]
        [string]
        $state,
        [parameter(mandatory=$False,HelpMessage='List of up to ten drives that comprise the job. The drive list is a required element for an import job; it is not specified for export jobs.)')]
        $driveList,
        [parameter(mandatory=$False,HelpMessage='A blob path that points to a block blob containing a list of blob names that were not exported due to insufficient drive space. If all blobs were exported successfully, then this element is not included in the response.)')]
        [string]
        $incompleteBlobListUri,
        [parameter(mandatory=$False,HelpMessage='Contains information about the Microsoft datacenter to which the drives should be shipped. )')]
        [ShippingInformation]
        $shippingInformation,
        [parameter(mandatory=$False,HelpMessage='Contains information about the encryption key.)')]
        [EncryptionKeyDetails]
        $encryptionKey,
        [parameter(mandatory=$False,HelpMessage='Default value is Error. Indicates whether error logging or verbose logging will be enabled.)')]
        [string]
        $logLevel,
        [parameter(mandatory=$False,HelpMessage='Specifies the provisioning state of the job.)')]
        [string]
        $provisioningState,
        [parameter(mandatory=$False,HelpMessage='Contains information about the package being shipped from the Microsoft data center to the customer to return the drives. The format is the same as the deliveryPackage property above. This property is not included if the drives have not yet been returned. )')]
        [PackageInformation]
        $returnPackage,
        [parameter(mandatory=$False,HelpMessage='Specifies the return carrier and customer''s account with the carrier. )')]
        [ReturnShipping]
        $returnShipping,
        [parameter(mandatory=$False,HelpMessage='The resource identifier of the storage account where data will be imported to or exported from.)')]
        [string]
        $storageAccountId,
        [parameter(mandatory=$False,HelpMessage='Overall percentage completed for the job.)')]
        [int]
        $percentComplete,
        [parameter(mandatory=$False,HelpMessage='The type of job)')]
        [string]
        $jobType,
        [parameter(mandatory=$False,HelpMessage='Specifies the return address information for the job. )')]
        [ReturnAddress]
        $returnAddress,
        [parameter(mandatory=$False,HelpMessage='The virtual blob directory to which the copy logs and backups of drive manifest files (if enabled) will be stored.)')]
        [string]
        $diagnosticsPath,
        [parameter(mandatory=$False,HelpMessage='A property containing information about the blobs to be exported for an export job. This property is included for export jobs only.)')]
        [Export]
        $export,
        [parameter(mandatory=$False,HelpMessage='Default value is false. Indicates whether the manifest files on the drives should be copied to block blobs.)')]
        [bool]
        $backupDriveManifest
    )

    process
    {
        return $([JobDetails]$PSBoundParameters)
    }
}
function New-AzureNativeImportexportJob
{
    [Alias('azure_native_importexport_job')]
    param (
        [parameter(mandatory=$False,HelpMessage='The resource group name uniquely identifies the resource group within the user subscription.)')]
        [string]
        $resourceGroupName,
        [parameter(mandatory=$False,HelpMessage='The name of the import/export job.)')]
        [string]
        $jobName,
        [parameter(mandatory=$False,HelpMessage='Specifies the job properties)')]
        [JobDetails]
        $properties,
        [parameter(mandatory=$False,HelpMessage='Specifies the tags that will be assigned to the job.)')]
        $tags,
        [parameter(mandatory=$False,HelpMessage='Specifies the supported Azure location where the job should be created)')]
        [string]
        $location,
        [parameter(mandatory,HelpMessage='The reference to call when you want to make a dependency to another resource')]
        [string]
        $pulumiid
    )

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

        $resource.properties["resourceGroupName"] = $resourceGroupName

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

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

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

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

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