Skip to content

Commit c5169ce

Browse files
committed
get identity properties from InputObject and allow override by parameters
1 parent 9afe33e commit c5169ce

File tree

47 files changed

+431
-232
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+431
-232
lines changed

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/ApiManagementClient.cs

Lines changed: 62 additions & 87 deletions
Large diffs are not rendered by default.

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands.ApiManagement.ServiceManagement.csproj

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<WarningLevel>4</WarningLevel>
2525
<RunCodeAnalysis>true</RunCodeAnalysis>
2626
<UseVSHostingProcess>true</UseVSHostingProcess>
27-
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
27+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
2828
<Prefer32Bit>false</Prefer32Bit>
2929
</PropertyGroup>
3030
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@@ -51,10 +51,6 @@
5151
<HintPath>..\..\..\packages\AutoMapper.6.0.2\lib\net45\AutoMapper.dll</HintPath>
5252
<Private>True</Private>
5353
</Reference>
54-
<Reference Include="Microsoft.Azure.KeyVault.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
55-
<HintPath>..\..\..\packages\Microsoft.Azure.KeyVault.Core.1.0.0\lib\net40\Microsoft.Azure.KeyVault.Core.dll</HintPath>
56-
<Private>True</Private>
57-
</Reference>
5854
<Reference Include="Microsoft.Azure.Management.ApiManagement, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
5955
<HintPath>..\..\..\packages\Microsoft.Azure.Management.ApiManagement.4.0.2-preview\lib\net452\Microsoft.Azure.Management.ApiManagement.dll</HintPath>
6056
<Private>True</Private>
@@ -63,10 +59,6 @@
6359
<HintPath>..\..\..\packages\WindowsAzure.Storage.8.1.1\lib\net45\Microsoft.WindowsAzure.Storage.dll</HintPath>
6460
<Private>True</Private>
6561
</Reference>
66-
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
67-
<HintPath>..\..\..\packages\Newtonsoft.Json.6.0.8\lib\net45\Newtonsoft.Json.dll</HintPath>
68-
<Private>True</Private>
69-
</Reference>
7062
</ItemGroup>
7163
<ItemGroup>
7264
<Compile Include="ApiManagementClient.cs" />
@@ -171,6 +163,7 @@
171163
<Compile Include="Models\PsApiManagementIdentityProviderType.cs" />
172164
<Compile Include="Models\PsApiManagementOperationResult.cs" />
173165
<Compile Include="Models\PsApiManagementApiRelease.cs" />
166+
<Compile Include="Models\PsApiManagementArmResource.cs" />
174167
<Compile Include="Models\PsApiManagementServiceFabric.cs" />
175168
<Compile Include="Models\PsApiManagementTenantConfigurationSyncState.cs" />
176169
<Compile Include="Models\PsApiManagementAuthorizationHeaderCredential.cs" />

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/NewAzureApiManagementLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class NewAzureApiManagementLogger : AzureApiManagementCmdletBase
5252
ParameterSetName = EventHubLoggerSet,
5353
ValueFromPipelineByPropertyName = true,
5454
Mandatory = true,
55-
HelpMessage = "EventHub Connection String with Send Policy Rights. This parameter is optional.")]
55+
HelpMessage = "EventHub Connection String with Send Policy Rights. This parameter is required.")]
5656
[ValidateNotNullOrEmpty]
5757
public String ConnectionString { get; set; }
5858

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/RemoveAzureApiManagementApiRelease.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class RemoveAzureApiManagementApiRelease : AzureApiManagementCmdletBase
3636

3737
[Parameter(
3838
ParameterSetName = ByApiReleaseIdParameterSet,
39+
ValueFromPipelineByPropertyName = true,
3940
ValueFromPipeline = true,
4041
Mandatory = true,
4142
HelpMessage = "Instance of PsApiManagementContext. This parameter is required.")]

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/SetAzureApiManagementApi.cs

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,14 @@ public class SetAzureApiManagementApi : AzureApiManagementCmdletBase
4747
public String ApiId { get; set; }
4848

4949
[Parameter(
50-
ParameterSetName = ExpandedParameterSet,
50+
ParameterSetName = ByInputObjectParameterSet,
51+
ValueFromPipeline = true,
52+
Mandatory = true,
53+
HelpMessage = "Instance of PsApiManagementApi. This parameter is required.")]
54+
[ValidateNotNullOrEmpty]
55+
public PsApiManagementApi InputObject { get; set; }
56+
57+
[Parameter(
5158
ValueFromPipelineByPropertyName = true,
5259
Mandatory = true,
5360
HelpMessage = "Web API name. Public name of the API as it would appear on the developer and admin portals. " +
@@ -56,14 +63,12 @@ public class SetAzureApiManagementApi : AzureApiManagementCmdletBase
5663
public String Name { get; set; }
5764

5865
[Parameter(
59-
ParameterSetName = ExpandedParameterSet,
6066
ValueFromPipelineByPropertyName = true,
6167
Mandatory = false,
6268
HelpMessage = "Web API description. This parameter is optional.")]
6369
public String Description { get; set; }
6470

6571
[Parameter(
66-
ParameterSetName = ExpandedParameterSet,
6772
ValueFromPipelineByPropertyName = true,
6873
Mandatory = true,
6974
HelpMessage = "A URL of the web service exposing the API. " +
@@ -73,7 +78,6 @@ public class SetAzureApiManagementApi : AzureApiManagementCmdletBase
7378
public String ServiceUrl { get; set; }
7479

7580
[Parameter(
76-
ParameterSetName = ExpandedParameterSet,
7781
ValueFromPipelineByPropertyName = true,
7882
Mandatory = false,
7983
HelpMessage = "Web API Path. Last part of the API's public URL." +
@@ -82,7 +86,6 @@ public class SetAzureApiManagementApi : AzureApiManagementCmdletBase
8286
public String Path { get; set; }
8387

8488
[Parameter(
85-
ParameterSetName = ExpandedParameterSet,
8689
ValueFromPipelineByPropertyName = true,
8790
Mandatory = true,
8891
HelpMessage = "Web API protocols (http, https). Protocols over which API is made available." +
@@ -91,41 +94,29 @@ public class SetAzureApiManagementApi : AzureApiManagementCmdletBase
9194
public PsApiManagementSchema[] Protocols { get; set; }
9295

9396
[Parameter(
94-
ParameterSetName = ExpandedParameterSet,
9597
ValueFromPipelineByPropertyName = true,
9698
Mandatory = false,
9799
HelpMessage = "OAuth authorization server identifier. This parameter is optional. Default value is $null. " +
98100
"Must be specified if AuthorizationScope specified.")]
99101
public String AuthorizationServerId { get; set; }
100102

101103
[Parameter(
102-
ParameterSetName = ExpandedParameterSet,
103104
ValueFromPipelineByPropertyName = true,
104105
Mandatory = false,
105106
HelpMessage = "OAuth operations scope. This parameter is optional. Default value is $null.")]
106107
public String AuthorizationScope { get; set; }
107108

108109
[Parameter(
109-
ParameterSetName = ExpandedParameterSet,
110110
ValueFromPipelineByPropertyName = true,
111111
Mandatory = false,
112112
HelpMessage = "Subscription key header name. This parameter is optional. Default value is $null.")]
113113
public String SubscriptionKeyHeaderName { get; set; }
114114

115115
[Parameter(
116-
ParameterSetName = ExpandedParameterSet,
117116
ValueFromPipelineByPropertyName = true,
118117
Mandatory = false,
119118
HelpMessage = "Subscription key query string parameter name. This parameter is optional. Default value is $null.")]
120119
public String SubscriptionKeyQueryParamName { get; set; }
121-
122-
[Parameter(
123-
ParameterSetName = ByInputObjectParameterSet,
124-
ValueFromPipeline = true,
125-
Mandatory = true,
126-
HelpMessage = "Instance of PsApiManagementApi. This parameter is required.")]
127-
[ValidateNotNullOrEmpty]
128-
public PsApiManagementApi InputObject { get; set; }
129120

130121
[Parameter(
131122
ValueFromPipelineByPropertyName = true,
@@ -154,7 +145,7 @@ public override void ExecuteApiManagementCmdlet()
154145
apiId = ApiId;
155146
}
156147

157-
Client.ApiSet(
148+
var updatedApi = Client.ApiSet(
158149
resourcegroupName,
159150
serviceName,
160151
apiId,
@@ -171,8 +162,7 @@ public override void ExecuteApiManagementCmdlet()
171162

172163
if (PassThru.IsPresent)
173164
{
174-
var api = Client.ApiById(resourcegroupName, serviceName, ApiId);
175-
WriteObject(api);
165+
WriteObject(updatedApi);
176166
}
177167
}
178168
}

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/SetAzureApiManagementApiRevision.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@
1414

1515
namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Commands
1616
{
17-
using Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Models;
1817
using System;
1918
using System.Linq;
2019
using System.Management.Automation;
21-
using Properties;
2220
using Management.ApiManagement.Models;
21+
using Models;
22+
using Properties;
2323

2424
[Cmdlet(VerbsCommon.Set,
2525
Constants.ApiManagementApiRevision,
2626
DefaultParameterSetName = ExpandedParameterSet,
2727
SupportsShouldProcess = true)]
28-
[OutputType(typeof(PsApiManagementApi))]
28+
[OutputType(typeof(PsApiManagementApi), ParameterSetName = new[] { ExpandedParameterSet, ByInputObjectParameterSet })]
2929
public class SetAzureApiManagementApiRevision : SetAzureApiManagementApi
3030
{
3131
[Parameter(
@@ -45,13 +45,15 @@ public override void ExecuteApiManagementCmdlet()
4545

4646
if (ParameterSetName.Equals(ByInputObjectParameterSet))
4747
{
48+
// identity properties from InputObject
4849
resourcegroupName = InputObject.ResourceGroupName;
4950
serviceName = InputObject.ServiceName;
5051
apiId = InputObject.ApiId;
5152
apiRevision = InputObject.ApiRevision;
5253
}
5354
else
5455
{
56+
// identity properties from individual variables
5557
resourcegroupName = Context.ResourceGroupName;
5658
serviceName = Context.ServiceName;
5759
apiId = ApiId;
@@ -62,7 +64,7 @@ public override void ExecuteApiManagementCmdlet()
6264

6365
if (ShouldProcess(id, Resources.SetApiRevision))
6466
{
65-
Client.ApiSet(
67+
var updatedApiRevision = Client.ApiSet(
6668
resourcegroupName,
6769
serviceName,
6870
id,
@@ -78,9 +80,8 @@ public override void ExecuteApiManagementCmdlet()
7880
InputObject);
7981

8082
if (PassThru.IsPresent)
81-
{
82-
var api = Client.ApiById(resourcegroupName, serviceName, id);
83-
WriteObject(api);
83+
{
84+
WriteObject(updatedApiRevision);
8485
}
8586
}
8687
}

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/SetAzureApiManagementApiVersionSet.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,37 +57,32 @@ public class SetAzureApiManagementApiVersionSet : AzureApiManagementCmdletBase
5757
public String ApiVersionSetId { get; set; }
5858

5959
[Parameter(
60-
ParameterSetName = ExpandedParameterSet,
6160
ValueFromPipelineByPropertyName = true,
6261
Mandatory = false,
6362
HelpMessage = "The name of the ApiVersion Set. This parameter is optional.")]
6463
public String Name { get; set; }
6564

6665
[Parameter(
67-
ParameterSetName = ExpandedParameterSet,
6866
ValueFromPipelineByPropertyName = true,
6967
Mandatory = false,
7068
HelpMessage = "Versioning Scheme to select for the Api Versioning Set. This parameter is optional.")]
7169
public PsApiManagementVersioningScheme Scheme { get; set; }
7270

7371
[Parameter(
74-
ParameterSetName = ExpandedParameterSet,
7572
ValueFromPipelineByPropertyName = true,
7673
Mandatory = false,
7774
HelpMessage = "The Header value which will contain the versioning information. " +
7875
"If versioning Scheme HEADER is choosen, then this value must be specified.")]
7976
public String HeaderName { get; set; }
8077

8178
[Parameter(
82-
ParameterSetName = ExpandedParameterSet,
8379
ValueFromPipelineByPropertyName = true,
8480
Mandatory = false,
8581
HelpMessage = "The Query value which will contain the versioning information. " +
8682
"If versioning Scheme Query is choosen, then this value must be specified.")]
8783
public String QueryName { get; set; }
8884

8985
[Parameter(
90-
ParameterSetName = ExpandedParameterSet,
9186
ValueFromPipelineByPropertyName = true,
9287
Mandatory = false,
9388
HelpMessage = "Description of the Api Version set.")]

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Commands/UpdateAzureApiManagementApiRelease.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ public class UpdateAzureApiManagementApiRelease : AzureApiManagementCmdletBase
5858

5959
[Parameter(
6060
ValueFromPipelineByPropertyName = true,
61-
ParameterSetName = ExpandedParameterSet,
6261
Mandatory = false,
6362
HelpMessage = "Api Release Notes. This parameter is optional.")]
6463
public String Note { get; set; }
@@ -87,20 +86,22 @@ public override void ExecuteApiManagementCmdlet()
8786

8887
if (ParameterSetName == ExpandedParameterSet)
8988
{
89+
// get identity properties from individual variables
9090
resourceGroupName = Context.ResourceGroupName;
9191
serviceName = Context.ServiceName;
9292
apiId = ApiId;
9393
releaseId = ReleaseId;
9494
}
9595
else
9696
{
97+
// get identity properties from InputObject
9798
resourceGroupName = InputObject.ResourceGroupName;
9899
serviceName = InputObject.ServiceName;
99100
apiId = InputObject.ApiId;
100101
releaseId = InputObject.ReleaseId;
101102
}
102103

103-
if (ShouldProcess(releaseId, Resources.SetApiRelease))
104+
if (ShouldProcess(releaseId, Resources.UpdateApiRelease))
104105
{
105106
Client.UpdateApiRelease(
106107
resourceGroupName,

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Models/PsApiManagementApi.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,8 @@
1414

1515
namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Models
1616
{
17-
public class PsApiManagementApi
17+
public class PsApiManagementApi : PsApiManagementArmResource
1818
{
19-
public string ResourceGroupName { get; set; }
20-
21-
public string ServiceName { get; set; }
22-
2319
public string ApiId { get; set; }
2420

2521
public string Name { get; set; }

src/ResourceManager/ApiManagement/Commands.ApiManagement.ServiceManagement/Models/PsApiManagementApiRelease.cs

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,42 @@
1515
namespace Microsoft.Azure.Commands.ApiManagement.ServiceManagement.Models
1616
{
1717
using System;
18+
using System.Text.RegularExpressions;
1819

19-
public class PsApiManagementApiRelease
20+
public class PsApiManagementApiRelease : PsApiManagementArmResource
2021
{
21-
public string ResourceGroupName { get; set;}
22-
23-
public string ServiceName { get; set; }
22+
// resource group regex
23+
static readonly Regex ApiNameRegex = new Regex(@"(.*?)/apis/(?<apiName>\S+)/releases/(.*?)", RegexOptions.IgnoreCase);
2424

2525
public string ReleaseId { get; set; }
2626

27-
public string ApiId { get; set; }
28-
27+
private string apiId;
28+
public string ApiId
29+
{
30+
get
31+
{
32+
if (!string.IsNullOrWhiteSpace(Id))
33+
{
34+
var match = ApiNameRegex.Match(Id);
35+
if (match.Success)
36+
{
37+
var apiNameGroup = match.Groups["apiName"];
38+
if (apiNameGroup != null && apiNameGroup.Success)
39+
{
40+
return apiNameGroup.Value;
41+
}
42+
}
43+
}
44+
45+
return this.apiId;
46+
}
47+
48+
set
49+
{
50+
this.apiId = value;
51+
}
52+
}
53+
2954
public DateTime? CreatedDateTime { get; private set; }
3055

3156
public DateTime? UpdatedDateTime { get; private set; }

0 commit comments

Comments
 (0)