Skip to content

Commit 9dd2e15

Browse files
authored
Test image creation for image aliases (#21189)
* test play * test good going * dev and test and haiders dev * changelog * example and help doc * Update ChangeLog.md * clean * clean * clean * versioned linux aliases except rhel * versioned tests and cleanup * clean * breaking change update * breaking update * clean breaking * break change update * break * test cleanup * Update NewAzureVMCommand.cs * Update NewAzureVMCommand.cs * Update New-AzVM.md * Update New-AzVM.md * Update Images.json * rhel versioned alias * ubuntu22 test * test creating images * new imgs and tested * changelog and descriptions * image alias
1 parent cad98b0 commit 9dd2e15

File tree

8 files changed

+4251
-482
lines changed

8 files changed

+4251
-482
lines changed

src/Compute/Compute.Test/ScenarioTests/ImageTests.ps1

Lines changed: 57 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,18 @@ function Test-DefaultImagesExistManual
318318
# Setup
319319
#$rgname = Get-ComputeTestResourceName;
320320
$loc = Get-ComputeVMLocation;
321-
321+
$rgname = Get-ComputeTestResourceName;
322+
322323
try
323324
{
325+
New-AzResourceGroup -Name $rgname -Location $loc -Force;
326+
327+
$user = Get-ComputeTestResourceName;
328+
$password = Get-PasswordForVM;
329+
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force;
330+
$cred = New-Object System.Management.Automation.PSCredential ($user, $securePassword);
331+
$domainNameLabel = "d" + $rgname;
332+
324333
# assuming the below file path:
325334
# C:\repos\ps3\azure-powershell\src\Compute\Compute\Strategies\ComputeRp\Images.json
326335
#$imagesFile = Get-Content -Path "..\..\..\..\Compute\Compute\Strategies\ComputeRp\Images.json";
@@ -335,6 +344,7 @@ function Test-DefaultImagesExistManual
335344
$version = $images.Linux.UbuntuLTS.version;
336345
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
337346
Assert-NotNull $img;
347+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image UbuntuLTS;
338348

339349
# Ubuntu2204 test
340350
$publisher = $images.Linux.Ubuntu2204.publisher;
@@ -343,6 +353,7 @@ function Test-DefaultImagesExistManual
343353
$version = $images.Linux.Ubuntu2204.version;
344354
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
345355
Assert-NotNull $img;
356+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Ubuntu2204;
346357

347358
# CentOS test
348359
$publisher = $images.Linux.CentOS.publisher;
@@ -351,6 +362,7 @@ function Test-DefaultImagesExistManual
351362
$version = $images.Linux.CentOS.version;
352363
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
353364
Assert-NotNull $img;
365+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image CentOS;
354366

355367
# CentOS versioned test
356368
$publisher = $images.Linux.CentOS85Gen2.publisher;
@@ -359,6 +371,7 @@ function Test-DefaultImagesExistManual
359371
$version = $images.Linux.CentOS85Gen2.version;
360372
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
361373
Assert-NotNull $img;
374+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image CentOS85Gen2;
362375

363376
# Debian test
364377
$publisher = $images.Linux.Debian.publisher;
@@ -367,22 +380,25 @@ function Test-DefaultImagesExistManual
367380
$version = $images.Linux.Debian.version;
368381
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
369382
Assert-NotNull $img;
370-
383+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Debian;
384+
371385
# Debian versioned test
372-
$publisher = $images.Linux.Debian9.publisher;
373-
$offer = $images.Linux.Debian9.offer;
374-
$sku = $images.Linux.Debian9.sku;
375-
$version = $images.Linux.Debian9.version;
386+
$publisher = $images.Linux.Debian11.publisher;
387+
$offer = $images.Linux.Debian11.offer;
388+
$sku = $images.Linux.Debian11.sku;
389+
$version = $images.Linux.Debian11.version;
376390
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
377391
Assert-NotNull $img;
378-
379-
# LinOpenSuseLeap154 versioned test
380-
$publisher = $images.Linux.OpenSuseLeap154.publisher;
381-
$offer = $images.Linux.OpenSuseLeap154.offer;
382-
$sku = $images.Linux.OpenSuseLeap154.sku;
383-
$version = $images.Linux.OpenSuseLeap154.version;
392+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Debian11;
393+
394+
# OpenSuseLeap154Gen2 versioned test
395+
$publisher = $images.Linux.OpenSuseLeap154Gen2.publisher;
396+
$offer = $images.Linux.OpenSuseLeap154Gen2.offer;
397+
$sku = $images.Linux.OpenSuseLeap154Gen2.sku;
398+
$version = $images.Linux.OpenSuseLeap154Gen2.version;
384399
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
385400
Assert-NotNull $img;
401+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image OpenSuseLeap154Gen2;
386402

387403
# RHEL test
388404
$publisher = $images.Linux.RHEL.publisher;
@@ -391,23 +407,36 @@ function Test-DefaultImagesExistManual
391407
$version = $images.Linux.RHEL.version;
392408
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
393409
Assert-NotNull $img;
410+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image RHEL;
394411

395-
# RHELRaw91Gen2 test
396-
$publisher = $images.Linux.RHELRaw91Gen2.publisher;
397-
$offer = $images.Linux.RHELRaw91Gen2.offer;
398-
$sku = $images.Linux.RHELRaw91Gen2.sku;
399-
$version = $images.Linux.RHELRaw91Gen2.version;
412+
# RHELRaw8LVMGen2 test
413+
$publisher = $images.Linux.RHELRaw8LVMGen2.publisher;
414+
$offer = $images.Linux.RHELRaw8LVMGen2.offer;
415+
$sku = $images.Linux.RHELRaw8LVMGen2.sku;
416+
$version = $images.Linux.RHELRaw8LVMGen2.version;
400417
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
401418
Assert-NotNull $img;
419+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image RHELRaw8LVMGen2;
402420

403-
# LinSuseSles15SP4 versioned test
404-
$publisher = $images.Linux.SuseSles15SP4.publisher;
405-
$offer = $images.Linux.SuseSles15SP4.offer;
406-
$sku = $images.Linux.SuseSles15SP4.sku;
407-
$version = $images.Linux.SuseSles15SP4.version;
421+
# SuseSles15SP3 versioned test
422+
$publisher = $images.Linux.SuseSles15SP3.publisher;
423+
$offer = $images.Linux.SuseSles15SP3.offer;
424+
$sku = $images.Linux.SuseSles15SP3.sku;
425+
$version = $images.Linux.SuseSles15SP3.version;
408426
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
409427
Assert-NotNull $img;
428+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image SuseSles15SP3;
410429

430+
# FlatcarLinuxFreeGen2 versioned test
431+
$publisher = $images.Linux.FlatcarLinuxFreeGen2.publisher;
432+
$offer = $images.Linux.FlatcarLinuxFreeGen2.offer;
433+
$sku = $images.Linux.FlatcarLinuxFreeGen2.sku;
434+
$version = $images.Linux.FlatcarLinuxFreeGen2.version;
435+
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
436+
Assert-NotNull $img;
437+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image FlatcarLinuxFreeGen2;
438+
439+
411440
# Windows
412441
# Win2022AzureEditionCore test
413442
$publisher = $images.Windows.Win2022AzureEditionCore.publisher;
@@ -416,6 +445,7 @@ function Test-DefaultImagesExistManual
416445
$version = $images.Windows.Win2022AzureEditionCore.version;
417446
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
418447
Assert-NotNull $img;
448+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win2022AzureEditionCore;
419449

420450
# Win2019Datacenter test
421451
$publisher = $images.Windows.Win2019Datacenter.publisher;
@@ -424,6 +454,7 @@ function Test-DefaultImagesExistManual
424454
$version = $images.Windows.Win2019Datacenter.version;
425455
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
426456
Assert-NotNull $img;
457+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win2019Datacenter;
427458

428459
# Win2016Datacenter test
429460
$publisher = $images.Windows.Win2016Datacenter.publisher;
@@ -432,6 +463,7 @@ function Test-DefaultImagesExistManual
432463
$version = $images.Windows.Win2016Datacenter.version;
433464
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
434465
Assert-NotNull $img;
466+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win2016Datacenter;
435467

436468
# Win2012R2Datacenter test
437469
$publisher = $images.Windows.Win2012R2Datacenter.publisher;
@@ -440,6 +472,7 @@ function Test-DefaultImagesExistManual
440472
$version = $images.Windows.Win2012R2Datacenter.version;
441473
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
442474
Assert-NotNull $img;
475+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win2012R2Datacenter;
443476

444477
# Win2012Datacenter test
445478
$publisher = $images.Windows.Win2012Datacenter.publisher;
@@ -448,6 +481,7 @@ function Test-DefaultImagesExistManual
448481
$version = $images.Windows.Win2012Datacenter.version;
449482
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
450483
Assert-NotNull $img;
484+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win2012Datacenter;
451485

452486
# Win10 test
453487
$publisher = $images.Windows.Win10.publisher;
@@ -456,6 +490,7 @@ function Test-DefaultImagesExistManual
456490
$version = $images.Windows.Win10.version;
457491
$img = Get-AzVMImage -Location $loc -Publisher $publisher -Offer $offer -Sku $sku -Version $version;
458492
Assert-NotNull $img;
493+
New-AzVM -ResourceGroupName MyResourceGroup -Name mytestvm -Location $loc -Credential $cred -DomainNameLabel $domainNameLabel -Image Win10;
459494
}
460495
finally
461496
{

src/Compute/Compute.Test/SessionRecords/Microsoft.Azure.Commands.Compute.Test.ScenarioTests.ImageTests/TestDefaultImagesExistManual.json

Lines changed: 4150 additions & 436 deletions
Large diffs are not rendered by default.

src/Compute/Compute/ChangeLog.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@
2424
* Updated the names of the `openSUSE-Leap` and `SLES` aliases to `OpenSuseLeap154` and `SuseSles15SP4` respectively. Updated these aliases to point to an image that actually exists and updated the alias names to be descriptive and versioned.
2525
* Added new descriptive and versioned alias names for the Linux image aliases.
2626
* Addressed bug in `Remove-AzVmss` to throw error when `-InstanceId` is null. [#21162]
27+
* Removed the image alias `CoreOS` as the publisher CoreOS no longer has any images for Azure.
28+
Updated the names of the `openSUSE-Leap` and `SLES` aliases to `OpenSuseLeap154` and `SuseSles15SP4` respectively. Updated these aliases to point to an image that actually exists.
29+
* Added a breaking change warning to `New-AzVM` and `New-AzVmss` for future planned image alias removals due to the images reaching their End of Support date.
30+
* Added new descriptive and versioned alias names for the Linux image aliases, including a new alias for the `Kinvolk` publisher.
2731

2832
## Version 5.6.0
2933
* Added `-NetworkAccessPolicy` parameter to `New-AzSnapshotUpdateConfig`.

src/Compute/Compute/Manual/VirtualMachineScaleSetCreateOrUpdateMethod.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,11 @@
2929
using Microsoft.Azure.Management.Compute.Models;
3030
using Microsoft.WindowsAzure.Commands.Utilities.Common;
3131
using Microsoft.Azure.Commands.Compute.Common;
32+
using Microsoft.WindowsAzure.Commands.Common.CustomAttributes;
3233

3334
namespace Microsoft.Azure.Commands.Compute.Automation
3435
{
36+
[GenericBreakingChange("Consider using the image alias including the version of the distribution you want to use in the \"-ImageName\" parameter of the \"New-AzVmss\" cmdlet. On April 30, 2023, the image deployed using `UbuntuLTS` will reach its end of life.")]
3537
public partial class NewAzureRmVmss : ComputeAutomationBaseCmdlet
3638
{
3739
private const string flexibleOrchestrationMode = "Flexible", uniformOrchestrationMode = "Uniform";
@@ -42,16 +44,23 @@ public partial class NewAzureRmVmss : ComputeAutomationBaseCmdlet
4244
HelpMessage = "The name of the image for VMs in this Scale Set. If no value is provided, the 'Windows Server 2016 DataCenter' image will be used.")]
4345
[PSArgumentCompleter(
4446
"CentOS",
45-
"CoreOS",
47+
"CentOS85Gen2",
4648
"Debian",
47-
"openSUSE-Leap",
49+
"Debian11",
50+
"OpenSuseLeap154Gen2",
4851
"RHEL",
49-
"SLES",
52+
"RHELRaw8LVMGen2",
53+
"SuseSles15SP3",
5054
"UbuntuLTS",
55+
"Ubuntu2204",
56+
"FlatcarLinuxFreeGen2",
57+
"Win2022AzureEditionCore",
58+
"Win2019Datacenter",
5159
"Win2016Datacenter",
5260
"Win2012R2Datacenter",
5361
"Win2012Datacenter",
5462
"Win10")]
63+
[Alias("Image")]
5564
public string ImageName { get; set; } = "Win2016Datacenter";
5665

5766
[Parameter(ParameterSetName = SimpleParameterSet, Mandatory = true)]

src/Compute/Compute/Strategies/ComputeRp/Images.json

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@
1818
"sku": "8",
1919
"version": "latest"
2020
},
21-
"Debian9": {
22-
"publisher": "credativ",
23-
"offer": "Debian",
24-
"sku": "9",
21+
"Debian11": {
22+
"publisher": "Debian",
23+
"offer": "debian-11",
24+
"sku": "11-backports-gen2",
2525
"version": "latest"
2626
},
27-
"OpenSuseLeap154": {
27+
"OpenSuseLeap154Gen2": {
2828
"publisher": "SUSE",
2929
"offer": "openSUSE-leap-15-4",
3030
"sku": "gen2",
@@ -36,15 +36,15 @@
3636
"sku": "7-RAW",
3737
"version": "latest"
3838
},
39-
"RHELRaw91Gen2": {
39+
"RHELRaw8LVMGen2": {
4040
"publisher": "RedHat",
41-
"offer": "rhel-raw",
42-
"sku": "91-gen2",
41+
"offer": "RHEL",
42+
"sku": "8-lvm-gen2",
4343
"version": "latest"
4444
},
45-
"SuseSles15SP4": {
45+
"SuseSles15SP3": {
4646
"publisher": "SUSE",
47-
"offer": "sles-15-sp4",
47+
"offer": "sles-15-sp3",
4848
"sku": "gen2",
4949
"version": "latest"
5050
},
@@ -56,8 +56,14 @@
5656
},
5757
"Ubuntu2204": {
5858
"publisher": "Canonical",
59-
"offer": "0001-com-ubuntu-pro-advanced-sla-ca",
60-
"sku": "22_04",
59+
"offer": "0001-com-ubuntu-server-jammy",
60+
"sku": "22_04-lts-gen2",
61+
"version": "latest"
62+
},
63+
"FlatcarLinuxFreeGen2": {
64+
"publisher": "kinvolk",
65+
"offer": "flatcar-container-linux-free",
66+
"sku": "stable-gen2",
6167
"version": "latest"
6268
}
6369
},

src/Compute/Compute/VirtualMachine/Operation/NewAzureVMCommand.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555
namespace Microsoft.Azure.Commands.Compute
5656
{
57-
[GenericBreakingChange("Consider using the image alias including the version of the distribution you want to use in the \"-Image\" parameter of the \"New-AzVM\" cmdlet. On April 30, 2023, the image deployed using `UbuntuLTS` will reach its end of life. ")]
57+
[GenericBreakingChange("Consider using the image alias including the version of the distribution you want to use in the \"-Image\" parameter of the \"New-AzVM\" cmdlet. On April 30, 2023, the image deployed using `UbuntuLTS` will reach its end of life.")]
5858
[GenericBreakingChange("Starting in May 2023 the \"New-AzVM\" cmdlet will deploy with the Trusted Launch configuration by default. To know more about Trusted Launch, please visit https://docs.microsoft.com/en-us/azure/virtual-machines/trusted-launch")]
5959
[GenericBreakingChange("It is recommended to use parameter \"-PublicIpSku Standard\" in order to create a new VM with a Standard public IP.Specifying zone(s) using the \"-Zone\" parameter will also result in a Standard public IP.If \"-Zone\" and \"-PublicIpSku\" are not specified, the VM will be created with a Basic public IP instead.Please note that the Standard SKU IPs will become the default behavior for VM creation in the future")]
6060
[Cmdlet("New", ResourceManager.Common.AzureRMConstants.AzureRMPrefix + "VM", SupportsShouldProcess = true, DefaultParameterSetName = "SimpleParameterSet")]
@@ -213,13 +213,14 @@ public class NewAzureVMCommand : VirtualMachineBaseCmdlet
213213
"CentOS",
214214
"CentOS85Gen2",
215215
"Debian",
216-
"Debian9",
217-
"OpenSuseLeap154",
216+
"Debian11",
217+
"OpenSuseLeap154Gen2",
218218
"RHEL",
219-
"RHELRaw91Gen2",
220-
"SuseSles15SP4",
219+
"RHELRaw8LVMGen2",
220+
"SuseSles15SP3",
221221
"UbuntuLTS",
222222
"Ubuntu2204",
223+
"FlatcarLinuxFreeGen2",
223224
"Win2022AzureEditionCore",
224225
"Win2019Datacenter",
225226
"Win2016Datacenter",

src/Compute/Compute/help/New-AzVM.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ New-AzResourceGroup -Name $rgname -Location $loc -Force
333333
# Create a VM using an Image alias.
334334
$vmname = 'v' + $rgname
335335
$domainNameLabel = "d" + $rgname
336-
$vm = New-AzVM -ResourceGroupName $rgname -Name $vmname -Credential $cred -Image LinOpenSuseLeap154 -DomainNameLabel $domainNameLabel
336+
$vm = New-AzVM -ResourceGroupName $rgname -Name $vmname -Credential $cred -Image OpenSuseLeap154Gen2 -DomainNameLabel $domainNameLabel
337337
338338
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmname
339339
```
@@ -687,7 +687,7 @@ Accept wildcard characters: False
687687
```
688688

689689
### -Image
690-
The friendly image name upon which the VM will be built. The available aliases are: Win2022AzureEditionCore, Win2019Datacenter, Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, UbuntuLTS, Ubuntu2204, CentOS, CentOS85Gen2, Debian, Debian9, OpenSuseLeap154, RHEL, RHELRaw91Gen2, SuseSles15SP4.
690+
The friendly image name upon which the VM will be built. The available aliases are: Win2022AzureEditionCore, Win2019Datacenter, Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, UbuntuLTS, Ubuntu2204, CentOS, CentOS85Gen2, Debian, Debian11, OpenSuseLeap154Gen2, RHEL, RHELRaw8LVMGen2, SuseSles15SP3, FlatcarLinuxFreeGen2.
691691

692692
```yaml
693693
Type: System.String

src/Compute/Compute/help/New-AzVmss.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -524,12 +524,12 @@ Accept wildcard characters: False
524524
```
525525

526526
### -ImageName
527-
The name of the image for VMs in this Scale Set. If no value is provided, the "Windows Server 2016 DataCenter" image will be used.
527+
The alias of the image for VMs in this Scale Set. If no value is provided, the "Windows Server 2016 DataCenter" image will be used. The available aliases are: Win2022AzureEditionCore, Win2019Datacenter, Win2016Datacenter, Win2012R2Datacenter, Win2012Datacenter, UbuntuLTS, Ubuntu2204, CentOS, CentOS85Gen2, Debian, Debian11, OpenSuseLeap154Gen2, RHEL, RHELRaw8LVMGen2, SuseSles15SP3, FlatcarLinuxFreeGen2.
528528

529529
```yaml
530530
Type: System.String
531531
Parameter Sets: SimpleParameterSet
532-
Aliases:
532+
Aliases: Image
533533
534534
Required: False
535535
Position: Named

0 commit comments

Comments
 (0)