Skip to content

Commit

Permalink
CodeGen from PR 19771 in Azure/azure-rest-api-specs
Browse files Browse the repository at this point in the history
Merge 2cdd83576cd4a20e88b0f14e11684b6fe38c7a83 into 8e4e3058fe99ad60910be23703914bb900b39216
  • Loading branch information
SDKAuto committed Jul 14, 2022
1 parent f52066b commit ec51e60
Show file tree
Hide file tree
Showing 138 changed files with 32,016 additions and 0 deletions.
1 change: 1 addition & 0 deletions swaggerci/automation/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text=auto
16 changes: 16 additions & 0 deletions swaggerci/automation/.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
24 changes: 24 additions & 0 deletions swaggerci/automation/Az.Automation.psd1
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@{
GUID = '80d44526-00e8-4133-b701-e7c47992fd4f'
RootModule = './Az.Automation.psm1'
ModuleVersion = '0.1.0'
CompatiblePSEditions = 'Core', 'Desktop'
Author = 'Microsoft Corporation'
CompanyName = 'Microsoft Corporation'
Copyright = 'Microsoft Corporation. All rights reserved.'
Description = 'Microsoft Azure PowerShell: Automation cmdlets'
PowerShellVersion = '5.1'
DotNetFrameworkVersion = '4.7.2'
RequiredAssemblies = './bin/Az.Automation.private.dll'
FormatsToProcess = './Az.Automation.format.ps1xml'
FunctionsToExport = 'Convert-AzAutomationGraphRunbookContent', 'Get-AzAutomationAccount', 'Get-AzAutomationActivity', 'Get-AzAutomationAgentRegistrationInformation', 'Get-AzAutomationCertificate', 'Get-AzAutomationConnection', 'Get-AzAutomationConnectionType', 'Get-AzAutomationCredential', 'Get-AzAutomationDeletedAutomationAccount', 'Get-AzAutomationDscCompilationJob', 'Get-AzAutomationDscCompilationJobStream', 'Get-AzAutomationDscConfiguration', 'Get-AzAutomationDscConfigurationContent', 'Get-AzAutomationDscNode', 'Get-AzAutomationDscNodeConfiguration', 'Get-AzAutomationField', 'Get-AzAutomationHybridRunbookWorker', 'Get-AzAutomationHybridRunbookWorkerGroup', 'Get-AzAutomationJob', 'Get-AzAutomationJobOutput', 'Get-AzAutomationJobRunbookContent', 'Get-AzAutomationJobSchedule', 'Get-AzAutomationJobStream', 'Get-AzAutomationKey', 'Get-AzAutomationLinkedWorkspace', 'Get-AzAutomationModule', 'Get-AzAutomationNodeCountInformation', 'Get-AzAutomationNodeReport', 'Get-AzAutomationNodeReportContent', 'Get-AzAutomationObjectDataTypeField', 'Get-AzAutomationPrivateEndpointConnection', 'Get-AzAutomationPython2Package', 'Get-AzAutomationRunbook', 'Get-AzAutomationRunbookContent', 'Get-AzAutomationRunbookDraft', 'Get-AzAutomationRunbookDraftContent', 'Get-AzAutomationSchedule', 'Get-AzAutomationSoftwareUpdateConfiguration', 'Get-AzAutomationSoftwareUpdateConfigurationMachineRun', 'Get-AzAutomationSoftwareUpdateConfigurationRun', 'Get-AzAutomationSourceControl', 'Get-AzAutomationSourceControlSyncJob', 'Get-AzAutomationSourceControlSyncJobStream', 'Get-AzAutomationStatistics', 'Get-AzAutomationTestJob', 'Get-AzAutomationTestJobStream', 'Get-AzAutomationUsage', 'Get-AzAutomationVariable', 'Get-AzAutomationWatcher', 'Get-AzAutomationWebhook', 'Invoke-AzAutomationPrivateLinkResource', 'Move-AzAutomationHybridRunbookWorker', 'New-AzAutomationAccount', 'New-AzAutomationAgentRegistrationInformationKey', 'New-AzAutomationCertificate', 'New-AzAutomationConnection', 'New-AzAutomationConnectionType', 'New-AzAutomationCredential', 'New-AzAutomationDscCompilationJob', 'New-AzAutomationDscNodeConfiguration', 'New-AzAutomationHybridRunbookWorker', 'New-AzAutomationHybridRunbookWorkerGroup', 'New-AzAutomationJob', 'New-AzAutomationJobSchedule', 'New-AzAutomationModule', 'New-AzAutomationPrivateEndpointConnection', 'New-AzAutomationPython2Package', 'New-AzAutomationRunbook', 'New-AzAutomationSchedule', 'New-AzAutomationSoftwareUpdateConfiguration', 'New-AzAutomationSourceControl', 'New-AzAutomationSourceControlSyncJob', 'New-AzAutomationTestJob', 'New-AzAutomationVariable', 'New-AzAutomationWatcher', 'New-AzAutomationWebhook', 'New-AzAutomationWebhookUri', 'Publish-AzAutomationRunbook', 'Remove-AzAutomationAccount', 'Remove-AzAutomationCertificate', 'Remove-AzAutomationConnection', 'Remove-AzAutomationConnectionType', 'Remove-AzAutomationCredential', 'Remove-AzAutomationDscConfiguration', 'Remove-AzAutomationDscNode', 'Remove-AzAutomationDscNodeConfiguration', 'Remove-AzAutomationHybridRunbookWorker', 'Remove-AzAutomationHybridRunbookWorkerGroup', 'Remove-AzAutomationJobSchedule', 'Remove-AzAutomationModule', 'Remove-AzAutomationPrivateEndpointConnection', 'Remove-AzAutomationPython2Package', 'Remove-AzAutomationRunbook', 'Remove-AzAutomationSchedule', 'Remove-AzAutomationSoftwareUpdateConfiguration', 'Remove-AzAutomationSourceControl', 'Remove-AzAutomationVariable', 'Remove-AzAutomationWatcher', 'Remove-AzAutomationWebhook', 'Resume-AzAutomationJob', 'Resume-AzAutomationTestJob', 'Start-AzAutomationWatcher', 'Stop-AzAutomationJob', 'Stop-AzAutomationTestJob', 'Stop-AzAutomationWatcher', 'Suspend-AzAutomationJob', 'Suspend-AzAutomationTestJob', 'Undo-AzAutomationRunbookDraftEdit', 'Update-AzAutomationAccount', 'Update-AzAutomationCertificate', 'Update-AzAutomationConnection', 'Update-AzAutomationCredential', 'Update-AzAutomationDscNode', 'Update-AzAutomationHybridRunbookWorkerGroup', 'Update-AzAutomationModule', 'Update-AzAutomationPython2Package', 'Update-AzAutomationRunbook', 'Update-AzAutomationSchedule', 'Update-AzAutomationSourceControl', 'Update-AzAutomationVariable', 'Update-AzAutomationWatcher', 'Update-AzAutomationWebhook', '*'
AliasesToExport = '*'
PrivateData = @{
PSData = @{
Tags = 'Azure', 'ResourceManager', 'ARM', 'PSModule', 'Automation'
LicenseUri = 'https://aka.ms/azps-license'
ProjectUri = 'https://github.com/Azure/azure-powershell'
ReleaseNotes = ''
}
}
}
27 changes: 27 additions & 0 deletions swaggerci/automation/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<!-- region Generated -->
# Az.Automation
This directory contains the PowerShell module for the Automation service.

---
## Status
[![Az.Automation](https://img.shields.io/powershellgallery/v/Az.Automation.svg?style=flat-square&label=Az.Automation "Az.Automation")](https://www.powershellgallery.com/packages/Az.Automation/)

## 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.Automation`, see [how-to.md](how-to.md).
<!-- endregion -->
41 changes: 41 additions & 0 deletions swaggerci/automation/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.Automation` 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.Automation.custom.psm1`. This file should not be modified.

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

## Details
For `Az.Automation` 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.Automation.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.Automation.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.Automation`. 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.Automation.DescriptionAttribute`
- Used in C# cmdlets to provide a high-level description of the cmdlet. This is propagated to reference documentation via [help comments](https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_comment_based_help) in the exported scripts.
- `Microsoft.Azure.PowerShell.Cmdlets.Automation.DoNotExportAttribute`
- Used in C# and script cmdlets to suppress creating an exported cmdlet at build-time. These cmdlets will *not be exposed* by `Az.Automation`.
- `Microsoft.Azure.PowerShell.Cmdlets.Automation.InternalExportAttribute`
- Used in C# cmdlets to route exported cmdlets to the `../internal`, which are *not exposed* by `Az.Automation`. For more information, see [README.md](../internal/README.md) in the `../internal` folder.
- `Microsoft.Azure.PowerShell.Cmdlets.Automation.ProfileAttribute`
- Used in C# and script cmdlets to define which Azure profiles the cmdlet supports. This is only supported for Azure (`--azure`) modules.
Loading

0 comments on commit ec51e60

Please sign in to comment.