From fc5fef727b057f56c1a35470c5926fc9d0d6320b Mon Sep 17 00:00:00 2001 From: Chris Klug Date: Mon, 12 Oct 2020 13:24:30 +0200 Subject: [PATCH 1/4] Added default customDomainHttpsParameters value --- .../arm-cdn/src/operations/customDomains.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sdk/cdn/arm-cdn/src/operations/customDomains.ts b/sdk/cdn/arm-cdn/src/operations/customDomains.ts index 83415680c61c..a849d0491d57 100644 --- a/sdk/cdn/arm-cdn/src/operations/customDomains.ts +++ b/sdk/cdn/arm-cdn/src/operations/customDomains.ts @@ -200,6 +200,25 @@ export class CustomDomains { */ enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options: Models.CustomDomainsEnableCustomHttpsOptionalParams, callback: msRest.ServiceCallback): void; enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options?: Models.CustomDomainsEnableCustomHttpsOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + if (typeof options === "function") { + callback = options; + options = undefined; + } + + if (!options) { + options = {}; + } + + if (!options.customDomainHttpsParameters) { + options.customDomainHttpsParameters = { + certificateSource: "Cdn", + certificateSourceParameters: { + certificateType: "Dedicated" + }, + protocolType: "ServerNameIndication" + } + } + return this.client.sendOperationRequest( { resourceGroupName, From 1182f313ee529999fc49a0d2229e39eeb32eedb1 Mon Sep 17 00:00:00 2001 From: Chris Klug Date: Mon, 12 Oct 2020 15:54:49 +0200 Subject: [PATCH 2/4] Updated default customDomainHttpsParameters --- .../arm-cdn/src/operations/customDomains.ts | 93 ++++++++++++++----- 1 file changed, 68 insertions(+), 25 deletions(-) diff --git a/sdk/cdn/arm-cdn/src/operations/customDomains.ts b/sdk/cdn/arm-cdn/src/operations/customDomains.ts index a849d0491d57..7a9d28576fa9 100644 --- a/sdk/cdn/arm-cdn/src/operations/customDomains.ts +++ b/sdk/cdn/arm-cdn/src/operations/customDomains.ts @@ -14,6 +14,7 @@ import * as Models from "../models"; import * as Mappers from "../models/customDomainsMappers"; import * as Parameters from "../models/parameters"; import { CdnManagementClientContext } from "../cdnManagementClientContext"; +import { Profiles } from "./profiles"; /** Class representing a CustomDomains. */ export class CustomDomains { @@ -114,7 +115,7 @@ export class CustomDomains { * @returns Promise */ create(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, hostName: string, options?: msRest.RequestOptionsBase): Promise { - return this.beginCreate(resourceGroupName,profileName,endpointName,customDomainName,hostName,options) + return this.beginCreate(resourceGroupName, profileName, endpointName, customDomainName, hostName, options) .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; } @@ -128,7 +129,7 @@ export class CustomDomains { * @returns Promise */ deleteMethod(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options?: msRest.RequestOptionsBase): Promise { - return this.beginDeleteMethod(resourceGroupName,profileName,endpointName,customDomainName,options) + return this.beginDeleteMethod(resourceGroupName, profileName, endpointName, customDomainName, options) .then(lroPoller => lroPoller.pollUntilFinished()) as Promise; } @@ -200,35 +201,40 @@ export class CustomDomains { */ enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options: Models.CustomDomainsEnableCustomHttpsOptionalParams, callback: msRest.ServiceCallback): void; enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options?: Models.CustomDomainsEnableCustomHttpsOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + let newOptions: Models.CustomDomainsEnableCustomHttpsOptionalParams = {}; + if (typeof options === "function") { callback = options; - options = undefined; + } else { + newOptions = options as Models.CustomDomainsEnableCustomHttpsOptionalParams; } - if (!options) { - options = {}; + if (!newOptions) { + newOptions = {}; } - - if (!options.customDomainHttpsParameters) { - options.customDomainHttpsParameters = { - certificateSource: "Cdn", - certificateSourceParameters: { - certificateType: "Dedicated" - }, - protocolType: "ServerNameIndication" - } + + let optionsPreparationPromise = Promise.resolve(options); + + if (!newOptions.customDomainHttpsParameters) { + let profiles = new Profiles(this.client); + optionsPreparationPromise = profiles.get(resourceGroupName, profileName).then(profile => { + newOptions.customDomainHttpsParameters = getDefaultCustomDomainHttpsParameters(profile); + return newOptions; + }) } - - return this.client.sendOperationRequest( - { - resourceGroupName, - profileName, - endpointName, - customDomainName, - options - }, - enableCustomHttpsOperationSpec, - callback) as Promise; + + return optionsPreparationPromise.then(options => + this.client.sendOperationRequest( + { + resourceGroupName, + profileName, + endpointName, + customDomainName, + options + }, + enableCustomHttpsOperationSpec, + callback) as Promise + ); } /** @@ -306,6 +312,43 @@ export class CustomDomains { } } +class SkuNames { + public static get standard_microsoft() { return "Standard_Microsoft"; } + public static get standard_verizon() { return "Standard_Verizon"; } + public static get standard_akamai() { return "Standard_Akamai"; } +} + +function getDefaultCustomDomainHttpsParameters(profile: Models.Profile): Models.CdnManagedHttpsParameters | undefined { + switch (profile.sku.name) { + case SkuNames.standard_microsoft: + return { + certificateSource: "Cdn", + certificateSourceParameters: { + certificateType: "Dedicated" + }, + protocolType: "ServerNameIndication" + } + case SkuNames.standard_akamai: + return { + certificateSource: "Cdn", + certificateSourceParameters: { + certificateType: "Shared" + }, + protocolType: "ServerNameIndication" + } + case SkuNames.standard_verizon: + return { + certificateSource: "Cdn", + certificateSourceParameters: { + certificateType: "Shared" + }, + protocolType: "IPBased" + } + default: + return undefined; + } +} + // Operation Specifications const serializer = new msRest.Serializer(Mappers); const listByEndpointOperationSpec: msRest.OperationSpec = { From c7d78d3e5e8f3dfe950c33bef5e4509106c740a3 Mon Sep 17 00:00:00 2001 From: Chris Klug Date: Thu, 15 Oct 2020 08:17:07 +0200 Subject: [PATCH 3/4] Minor version bump --- sdk/cdn/arm-cdn/package.json | 2 +- sdk/cdn/arm-cdn/src/cdnManagementClientContext.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/cdn/arm-cdn/package.json b/sdk/cdn/arm-cdn/package.json index b3198861bf78..18ccee5fa637 100644 --- a/sdk/cdn/arm-cdn/package.json +++ b/sdk/cdn/arm-cdn/package.json @@ -2,7 +2,7 @@ "name": "@azure/arm-cdn", "author": "Microsoft Corporation", "description": "CdnManagementClient Library with typescript type definitions for node.js and browser.", - "version": "5.0.0", + "version": "5.1.0", "dependencies": { "@azure/ms-rest-azure-js": "^2.0.1", "@azure/ms-rest-js": "^2.0.4", diff --git a/sdk/cdn/arm-cdn/src/cdnManagementClientContext.ts b/sdk/cdn/arm-cdn/src/cdnManagementClientContext.ts index a6b2b1482e39..34cc747ef32d 100644 --- a/sdk/cdn/arm-cdn/src/cdnManagementClientContext.ts +++ b/sdk/cdn/arm-cdn/src/cdnManagementClientContext.ts @@ -13,7 +13,7 @@ import * as msRest from "@azure/ms-rest-js"; import * as msRestAzure from "@azure/ms-rest-azure-js"; const packageName = "@azure/arm-cdn"; -const packageVersion = "5.0.0"; +const packageVersion = "5.1.0"; export class CdnManagementClientContext extends msRestAzure.AzureServiceClient { credentials: msRest.ServiceClientCredentials; From 82541e1f6150ddb556044058c18421ef79c4cd3e Mon Sep 17 00:00:00 2001 From: Chris Klug Date: Tue, 20 Oct 2020 08:53:55 +0200 Subject: [PATCH 4/4] Added regions to mark manually added code --- sdk/cdn/arm-cdn/src/operations/customDomains.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sdk/cdn/arm-cdn/src/operations/customDomains.ts b/sdk/cdn/arm-cdn/src/operations/customDomains.ts index 7a9d28576fa9..c05b4b4c92bc 100644 --- a/sdk/cdn/arm-cdn/src/operations/customDomains.ts +++ b/sdk/cdn/arm-cdn/src/operations/customDomains.ts @@ -201,6 +201,7 @@ export class CustomDomains { */ enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options: Models.CustomDomainsEnableCustomHttpsOptionalParams, callback: msRest.ServiceCallback): void; enableCustomHttps(resourceGroupName: string, profileName: string, endpointName: string, customDomainName: string, options?: Models.CustomDomainsEnableCustomHttpsOptionalParams | msRest.ServiceCallback, callback?: msRest.ServiceCallback): Promise { + // #region Added default values to add backwards compatibility let newOptions: Models.CustomDomainsEnableCustomHttpsOptionalParams = {}; if (typeof options === "function") { @@ -235,6 +236,7 @@ export class CustomDomains { enableCustomHttpsOperationSpec, callback) as Promise ); + // #endregion } /** @@ -312,6 +314,7 @@ export class CustomDomains { } } +// #region Added default values to add backwards compatibility class SkuNames { public static get standard_microsoft() { return "Standard_Microsoft"; } public static get standard_verizon() { return "Standard_Verizon"; } @@ -349,6 +352,8 @@ function getDefaultCustomDomainHttpsParameters(profile: Models.Profile): Models. } } +// #endregion + // Operation Specifications const serializer = new msRest.Serializer(Mappers); const listByEndpointOperationSpec: msRest.OperationSpec = {