From b8bff6e33e550202f437b55a0e29b3dcfa9ea8a0 Mon Sep 17 00:00:00 2001 From: tadelesh Date: Fri, 6 Dec 2024 14:14:11 +0800 Subject: [PATCH] filter out credential that python does not support for now --- .../emitter/src/code-model.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/packages/http-client-python/emitter/src/code-model.ts b/packages/http-client-python/emitter/src/code-model.ts index 8595637ebc0..0199c7de218 100644 --- a/packages/http-client-python/emitter/src/code-model.ts +++ b/packages/http-client-python/emitter/src/code-model.ts @@ -2,6 +2,7 @@ import { SdkBasicServiceMethod, SdkClientType, SdkCredentialParameter, + SdkCredentialType, SdkEndpointParameter, SdkEndpointType, SdkLroPagingServiceMethod, @@ -10,6 +11,7 @@ import { SdkPagingServiceMethod, SdkServiceMethod, SdkServiceOperation, + SdkUnionType, UsageFlags, getCrossLanguagePackageId, isAzureCoreModel, @@ -109,6 +111,28 @@ function emitMethodParameter( return emitEndpointType(context, parameter.type); } } + // filter out credential that python does not support for now + if (parameter.kind === "credential") { + const filteredCredentialType = []; + const originalCredentialType = + parameter.type.kind === "union" ? parameter.type.variantTypes : [parameter.type]; + for (const credentialType of originalCredentialType) { + if ( + credentialType.scheme.type === "oauth2" || + credentialType.scheme.type === "http" || + (credentialType.scheme.type === "apiKey" && credentialType.scheme.in === "header") + ) { + filteredCredentialType.push(credentialType); + } + } + if (filteredCredentialType.length === 0) { + return []; + } else if (filteredCredentialType.length === 1) { + parameter.type = filteredCredentialType[0]; + } else { + (parameter.type as SdkUnionType).variantTypes = filteredCredentialType; + } + } const base = { ...emitParamBase(context, parameter), implementation: getImplementation(context, parameter),