Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/StorageAction/StorageAction.Autorest/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto
16 changes: 16 additions & 0 deletions src/StorageAction/StorageAction.Autorest/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
bin
obj
.vs
generated
internal
exports
tools
custom/*.psm1
custom/autogen-model-cmdlets
test/*-TestResults.xml
/*.ps1
/*.ps1xml
/*.psm1
/*.snk
/*.csproj
/*.nuspec
23 changes: 23 additions & 0 deletions src/StorageAction/StorageAction.Autorest/Az.StorageAction.psd1
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@{
GUID = 'cc1d1de1-1601-4440-82c6-76c6673d8aba'
RootModule = './Az.StorageAction.psm1'
ModuleVersion = '0.1.0'
CompatiblePSEditions = 'Core', 'Desktop'
Author = 'Microsoft Corporation'
CompanyName = 'Microsoft Corporation'
Copyright = 'Microsoft Corporation. All rights reserved.'
Description = 'Microsoft Azure PowerShell: StorageAction cmdlets'
PowerShellVersion = '5.1'
DotNetFrameworkVersion = '4.7.2'
RequiredAssemblies = './bin/Az.StorageAction.private.dll'
FormatsToProcess = './Az.StorageAction.format.ps1xml'
FunctionsToExport = 'Get-AzStorageActionTask', 'Get-AzStorageActionTaskAssignment', 'Get-AzStorageActionTasksReport', 'Invoke-AzStorageActionTaskPreviewAction', 'New-AzStorageActionTask', 'New-AzStorageActionTaskOperationObject', 'New-AzStorageActionTaskPreviewBlobPropertiesObject', 'New-AzStorageActionTaskPreviewKeyValuePropertiesObject', 'Remove-AzStorageActionTask', 'Update-AzStorageActionTask'
PrivateData = @{
PSData = @{
Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'StorageAction'
LicenseUri = 'https://aka.ms/azps-license'
ProjectUri = 'https://github.com/Azure/azure-powershell'
ReleaseNotes = ''
}
}
}
91 changes: 91 additions & 0 deletions src/StorageAction/StorageAction.Autorest/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
<!-- region Generated -->
# Az.StorageAction
This directory contains the PowerShell module for the StorageAction service.

---
## Info
- Modifiable: yes
- Generated: all
- Committed: yes
- Packaged: yes

---
## Detail
This module was primarily generated via [AutoRest](https://github.com/Azure/autorest) using the [PowerShell](https://github.com/Azure/autorest.powershell) extension.

## Module Requirements
- [Az.Accounts module](https://www.powershellgallery.com/packages/Az.Accounts/), version 2.7.5 or greater

## Authentication
AutoRest does not generate authentication code for the module. Authentication is handled via Az.Accounts by altering the HTTP payload before it is sent.

## Development
For information on how to develop for `Az.StorageAction`, see [how-to.md](how-to.md).
<!-- endregion -->

### AutoRest Configuration
> see https://aka.ms/autorest

```yaml
# pin the swagger version by using the commit id instead of branch name
commit: 8f196886782fc5b48b75322944dc60d1cafaf7fa
tag: package-2023-01-01
require:
# readme.azure.noprofile.md is the common configuration file
- $(this-folder)/../../readme.azure.noprofile.md
- $(repo)/specification/storageactions/resource-manager/readme.md
# If the swagger has not been put in the repo, you may uncomment the following line and refer to it locally
# - (this-folder)/relative-path-to-your-local-readme.md

try-require:
- $(repo)/specification/storageactions/resource-manager/readme.powershell.md

# The next three configurations are activated by default.
# identity-correction-for-post: true
# resourcegroup-append: true
# nested-object-to-string: true

# For new RP, the version is 0.1.0
module-version: 0.1.0
# Normally, title is the service name
title: StorageAction
subject-prefix: $(service-name)

directive:
# # Following are common directives which are normally required in all the RPs
# # 1. Remove the unexpanded parameter set
# # 2. For New-* cmdlets, ViaIdentity is not required
# # Following two directives are v4 specific
- where:
variant: ^(Create|Update|Preview)(?!.*?(Expanded|JsonFilePath|JsonString))
remove: true
- where:
variant: ^CreateViaIdentity.*$
remove: true
# Rename commands
- where:
subject: StorageTask
set:
subject: Task
- where:
verb: Invoke
subject: PreviewStorageTaskAction
set:
subject: TaskPreviewAction
- where:
subject: StorageTaskAssignment
set:
subject: TaskAssignment
- where:
subject: StorageTasksReport
set:
subject: TasksReport
# Add model
- model-cmdlet:
- model-name: StorageTaskOperation
cmdlet-name: New-AzStorageActionTaskOperationObject
- model-name: StorageTaskPreviewBlobProperties
cmdlet-name: New-AzStorageActionTaskPreviewBlobPropertiesObject
- model-name: StorageTaskPreviewKeyValueProperties
cmdlet-name: New-AzStorageActionTaskPreviewKeyValuePropertiesObject
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"resourceType": "storageTasks",
"apiVersion": "2023-01-01",
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.storageaction"
},
"commands": [
{
"name": "Get-AzStorageActionTask",
"description": "Get the storage task properties",
"path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageActions/storageTasks/{storageTaskName}",
"help": {
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.storageaction/get-azstorageactiontask"
},
"parameterSets": [
{
"parameters": [
"-Name <String>",
"-ResourceGroupName <String>",
"[-SubscriptionId <String[]>]"
]
}
]
},
"examples": [
{
"description": "Get the storage task properties",
"parameters": [
{
"name": "-Name",
"value": "[Path.storageTaskName]"
},
{
"name": "-ResourceGroupName",
"value": "[Path.resourceGroupName]"
},
{
"name": "-SubscriptionId",
"value": "[Path.subscriptionId]"
}
]
}
]
},
{
"name": "Remove-AzStorageActionTask",
"description": "Delete the storage task resource.",
"path": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.StorageActions/storageTasks/{storageTaskName}",
"help": {
"learnMore": {
"url": "https://learn.microsoft.com/powershell/module/az.storageaction/remove-azstorageactiontask"
},
"parameterSets": [
{
"parameters": [
"-Name <String>",
"-ResourceGroupName <String>",
"[-SubscriptionId <String>]"
]
}
]
},
"examples": [
{
"description": "Delete the storage task resource.",
"parameters": [
{
"name": "-Name",
"value": "[Path.storageTaskName]"
},
{
"name": "-ResourceGroupName",
"value": "[Path.resourceGroupName]"
},
{
"name": "-SubscriptionId",
"value": "[Path.subscriptionId]"
}
]
}
]
}
]
}
41 changes: 41 additions & 0 deletions src/StorageAction/StorageAction.Autorest/custom/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Custom
This directory contains custom implementation for non-generated cmdlets for the `Az.StorageAction` module. Both scripts (`.ps1`) and C# files (`.cs`) can be implemented here. They will be used during the build process in `build-module.ps1`, and create cmdlets into the `..\exports` folder. The only generated file into this folder is the `Az.StorageAction.custom.psm1`. This file should not be modified.

## Info
- Modifiable: yes
- Generated: partial
- Committed: yes
- Packaged: yes

## Details
For `Az.StorageAction` to use custom cmdlets, it does this two different ways. We **highly recommend** creating script cmdlets, as they are easier to write and allow access to the other exported cmdlets. C# cmdlets *cannot access exported cmdlets*.

For C# cmdlets, they are compiled with the rest of the generated low-level cmdlets into the `./bin/Az.StorageAction.private.dll`. The names of the cmdlets (methods) and files must follow the `[cmdletName]_[variantName]` syntax used for generated cmdlets. The `variantName` is used as the `ParameterSetName`, so use something appropriate that doesn't clash with already created variant or parameter set names. You cannot use the `ParameterSetName` property in the `Parameter` attribute on C# cmdlets. Each cmdlet must be separated into variants using the same pattern as seen in the `generated/cmdlets` folder.

For script cmdlets, these are loaded via the `Az.StorageAction.custom.psm1`. Then, during the build process, this module is loaded and processed in the same manner as the C# cmdlets. The fundamental difference is the script cmdlets use the `ParameterSetName` attribute and C# cmdlets do not. To create a script cmdlet variant of a generated cmdlet, simply decorate all parameters in the script with the new `ParameterSetName` in the `Parameter` attribute. This will appropriately treat each parameter set as a separate variant when processed to be exported during the build.

## Purpose
This allows the modules to have cmdlets that were not defined in the REST specification. It also allows combining logic using generated cmdlets. This is a level of customization beyond what can be done using the [readme configuration options](https://github.com/Azure/autorest/blob/master/docs/powershell/options.md) that are currently available. These custom cmdlets are then referenced by the cmdlets created at build-time in the `..\exports` folder.

## Usage
The easiest way currently to start developing custom cmdlets is to copy an existing cmdlet. For C# cmdlets, copy one from the `generated/cmdlets` folder. For script cmdlets, build the project using `build-module.ps1` and copy one of the scripts from the `..\exports` folder. After that, if you want to add new parameter sets, follow the guidelines in the `Details` section above. For implementing a new cmdlets, at minimum, please keep these parameters:
- Break
- DefaultProfile
- HttpPipelineAppend
- HttpPipelinePrepend
- Proxy
- ProxyCredential
- ProxyUseDefaultCredentials

These provide functionality to our HTTP pipeline and other useful features. In script, you can forward these parameters using `$PSBoundParameters` to the other cmdlets you're calling within `Az.StorageAction`. For C#, follow the usage seen in the `ProcessRecordAsync` method.

### Attributes
For processing the cmdlets, we've created some additional attributes:
- `Microsoft.Azure.PowerShell.Cmdlets.StorageAction.DescriptionAttribute`
- Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts.
- `Microsoft.Azure.PowerShell.Cmdlets.StorageAction.DoNotExportAttribute`
- Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.StorageAction`.
- `Microsoft.Azure.PowerShell.Cmdlets.StorageAction.InternalExportAttribute`
- Used in C# cmdlets to route exported cmdlets to the `..\internal`, which are *not exposed* by `Az.StorageAction`. For more information, see [README.md](..\internal/README.md) in the `..\internal` folder.
- `Microsoft.Azure.PowerShell.Cmdlets.StorageAction.ProfileAttribute`
- Used in C# and script cmdlets to define which Azure profiles the cmdlet supports. This is only supported for Azure (`--azure`) modules.
47 changes: 47 additions & 0 deletions src/StorageAction/StorageAction.Autorest/docs/Az.StorageAction.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
Module Name: Az.StorageAction
Module Guid: cc1d1de1-1601-4440-82c6-76c6673d8aba
Download Help Link: https://learn.microsoft.com/powershell/module/az.storageaction
Help Version: 1.0.0.0
Locale: en-US
---

# Az.StorageAction Module
## Description
Microsoft Azure PowerShell: StorageAction cmdlets

## Az.StorageAction Cmdlets
### [Get-AzStorageActionTask](Get-AzStorageActionTask.md)
Get the storage task properties

### [Get-AzStorageActionTaskAssignment](Get-AzStorageActionTaskAssignment.md)
Lists Resource IDs of the Storage Task Assignments associated with this Storage Task.

### [Get-AzStorageActionTasksReport](Get-AzStorageActionTasksReport.md)
Fetch the storage tasks run report summary for each assignment.

### [Invoke-AzStorageActionTaskPreviewAction](Invoke-AzStorageActionTaskPreviewAction.md)
Runs the input conditions against input object metadata properties and designates matched objects in response.

### [New-AzStorageActionTask](New-AzStorageActionTask.md)
Asynchronously creates a new storage task resource with the specified parameters.
If a storage task is already created and a subsequent create request is issued with different properties, the storage task properties will be updated.
If a storage task is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.

### [New-AzStorageActionTaskOperationObject](New-AzStorageActionTaskOperationObject.md)
Create an in-memory object for StorageTaskOperation.

### [New-AzStorageActionTaskPreviewBlobPropertiesObject](New-AzStorageActionTaskPreviewBlobPropertiesObject.md)
Create an in-memory object for StorageTaskPreviewBlobProperties.

### [New-AzStorageActionTaskPreviewKeyValuePropertiesObject](New-AzStorageActionTaskPreviewKeyValuePropertiesObject.md)
Create an in-memory object for StorageTaskPreviewKeyValueProperties.

### [Remove-AzStorageActionTask](Remove-AzStorageActionTask.md)
Delete the storage task resource.

### [Update-AzStorageActionTask](Update-AzStorageActionTask.md)
Asynchronously creates a new storage task resource with the specified parameters.
If a storage task is already created and a subsequent create request is issued with different properties, the storage task properties will be updated.
If a storage task is already created and a subsequent create or update request is issued with the exact same set of properties, the request will succeed.

Loading