@@ -8,14 +8,6 @@ import com.intellij.openapi.application.ApplicationManager
88import com.intellij.openapi.components.service
99import com.intellij.openapi.project.Project
1010import com.intellij.util.text.nullize
11- import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider
12- import software.amazon.awssdk.services.codewhisperer.CodeWhispererClient
13- import software.amazon.awssdk.services.codewhisperer.model.CreateCodeScanRequest
14- import software.amazon.awssdk.services.codewhisperer.model.CreateCodeScanResponse
15- import software.amazon.awssdk.services.codewhisperer.model.GetCodeScanRequest
16- import software.amazon.awssdk.services.codewhisperer.model.GetCodeScanResponse
17- import software.amazon.awssdk.services.codewhisperer.model.ListCodeScanFindingsRequest
18- import software.amazon.awssdk.services.codewhisperer.model.ListCodeScanFindingsResponse
1911import software.amazon.awssdk.services.codewhispererruntime.CodeWhispererRuntimeClient
2012import software.amazon.awssdk.services.codewhispererruntime.model.ChatInteractWithMessageEvent
2113import software.amazon.awssdk.services.codewhispererruntime.model.ChatMessageInteractionType
@@ -25,14 +17,20 @@ import software.amazon.awssdk.services.codewhispererruntime.model.CreateUploadUr
2517import software.amazon.awssdk.services.codewhispererruntime.model.Dimension
2618import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsRequest
2719import software.amazon.awssdk.services.codewhispererruntime.model.GenerateCompletionsResponse
20+ import software.amazon.awssdk.services.codewhispererruntime.model.GetCodeAnalysisRequest
21+ import software.amazon.awssdk.services.codewhispererruntime.model.GetCodeAnalysisResponse
2822import software.amazon.awssdk.services.codewhispererruntime.model.GetCodeFixJobRequest
2923import software.amazon.awssdk.services.codewhispererruntime.model.GetCodeFixJobResponse
3024import software.amazon.awssdk.services.codewhispererruntime.model.GetTestGenerationResponse
3125import software.amazon.awssdk.services.codewhispererruntime.model.IdeCategory
3226import software.amazon.awssdk.services.codewhispererruntime.model.InlineChatUserDecision
3327import software.amazon.awssdk.services.codewhispererruntime.model.ListAvailableCustomizationsRequest
28+ import software.amazon.awssdk.services.codewhispererruntime.model.ListCodeAnalysisFindingsRequest
29+ import software.amazon.awssdk.services.codewhispererruntime.model.ListCodeAnalysisFindingsResponse
3430import software.amazon.awssdk.services.codewhispererruntime.model.ListFeatureEvaluationsResponse
3531import software.amazon.awssdk.services.codewhispererruntime.model.SendTelemetryEventResponse
32+ import software.amazon.awssdk.services.codewhispererruntime.model.StartCodeAnalysisRequest
33+ import software.amazon.awssdk.services.codewhispererruntime.model.StartCodeAnalysisResponse
3634import software.amazon.awssdk.services.codewhispererruntime.model.StartCodeFixJobRequest
3735import software.amazon.awssdk.services.codewhispererruntime.model.StartCodeFixJobResponse
3836import software.amazon.awssdk.services.codewhispererruntime.model.StartTestGenerationResponse
@@ -51,23 +49,18 @@ import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager
5149import software.aws.toolkits.jetbrains.core.credentials.pinning.CodeWhispererConnection
5250import software.aws.toolkits.jetbrains.services.amazonq.codeWhispererUserContext
5351import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization
54- import software.aws.toolkits.jetbrains.services.codewhisperer.explorer.CodeWhispererExplorerActionManager
5552import software.aws.toolkits.jetbrains.services.codewhisperer.language.CodeWhispererProgrammingLanguage
5653import software.aws.toolkits.jetbrains.services.codewhisperer.model.SessionContextNew
5754import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContext
5855import software.aws.toolkits.jetbrains.services.codewhisperer.service.RequestContextNew
5956import software.aws.toolkits.jetbrains.services.codewhisperer.service.ResponseContext
6057import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererConstants
6158import software.aws.toolkits.jetbrains.services.codewhisperer.util.CodeWhispererUtil.getTelemetryOptOutPreference
62- import software.aws.toolkits.jetbrains.services.codewhisperer.util.transform
6359import software.aws.toolkits.telemetry.CodewhispererCompletionType
6460import software.aws.toolkits.telemetry.CodewhispererSuggestionState
6561import java.time.Instant
6662import java.util.concurrent.TimeUnit
67- import kotlin.reflect.KProperty0
68- import kotlin.reflect.jvm.isAccessible
6963
70- // TODO: move this file to package "/client"
7164// As the connection is project-level, we need to make this project-level too
7265@Deprecated(" Methods can throw a NullPointerException if callee does not check if connection is valid" )
7366interface CodeWhispererClientAdaptor : Disposable {
@@ -81,20 +74,11 @@ interface CodeWhispererClientAdaptor : Disposable {
8174 request : CreateUploadUrlRequest ,
8275 ): CreateUploadUrlResponse
8376
84- fun createCodeScan (
85- request : CreateCodeScanRequest ,
86- isSigv4 : Boolean = shouldUseSigv4Client(project),
87- ): CreateCodeScanResponse
77+ fun createCodeScan (request : StartCodeAnalysisRequest ): StartCodeAnalysisResponse
8878
89- fun getCodeScan (
90- request : GetCodeScanRequest ,
91- isSigv4 : Boolean = shouldUseSigv4Client(project),
92- ): GetCodeScanResponse
79+ fun getCodeScan (request : GetCodeAnalysisRequest ): GetCodeAnalysisResponse
9380
94- fun listCodeScanFindings (
95- request : ListCodeScanFindingsRequest ,
96- isSigv4 : Boolean = shouldUseSigv4Client(project),
97- ): ListCodeScanFindingsResponse
81+ fun listCodeScanFindings (request : ListCodeAnalysisFindingsRequest ): ListCodeAnalysisFindingsResponse
9882
9983 fun startCodeFixJob (request : StartCodeFixJobRequest ): StartCodeFixJobResponse
10084
@@ -272,26 +256,15 @@ interface CodeWhispererClientAdaptor : Disposable {
272256 companion object {
273257 fun getInstance (project : Project ): CodeWhispererClientAdaptor = project.service()
274258
275- private fun shouldUseSigv4Client (project : Project ) =
276- CodeWhispererExplorerActionManager .getInstance().checkActiveCodeWhispererConnectionType(project) == CodeWhispererLoginType .Accountless
277-
278259 const val INVALID_CODESCANJOBID = " Invalid_CodeScanJobID"
279260 const val INVALID_CODEFIXJOBID = " Invalid_CodeFixJobID"
280261 }
281262}
282263
283264open class CodeWhispererClientAdaptorImpl (override val project : Project ) : CodeWhispererClientAdaptor {
284- private val mySigv4Client by lazy { createUnmanagedSigv4Client() }
285-
286265 @Volatile
287266 private var myBearerClient: CodeWhispererRuntimeClient ? = null
288267
289- private val KProperty0 <* >.isLazyInitialized: Boolean
290- get() {
291- isAccessible = true
292- return (getDelegate() as Lazy <* >).isInitialized()
293- }
294-
295268 init {
296269 initClientUpdateListener()
297270 }
@@ -327,26 +300,12 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
327300 override fun createUploadUrl (request : CreateUploadUrlRequest ): CreateUploadUrlResponse =
328301 bearerClient().createUploadUrl(request)
329302
330- override fun createCodeScan (request : CreateCodeScanRequest , isSigv4 : Boolean ): CreateCodeScanResponse =
331- if (isSigv4) {
332- mySigv4Client.createCodeScan(request)
333- } else {
334- bearerClient().startCodeAnalysis(request.transform()).transform()
335- }
303+ override fun createCodeScan (request : StartCodeAnalysisRequest ): StartCodeAnalysisResponse = bearerClient().startCodeAnalysis(request)
336304
337- override fun getCodeScan (request : GetCodeScanRequest , isSigv4 : Boolean ): GetCodeScanResponse =
338- if (isSigv4) {
339- mySigv4Client.getCodeScan(request)
340- } else {
341- bearerClient().getCodeAnalysis(request.transform()).transform()
342- }
305+ override fun getCodeScan (request : GetCodeAnalysisRequest ): GetCodeAnalysisResponse = bearerClient().getCodeAnalysis(request)
343306
344- override fun listCodeScanFindings (request : ListCodeScanFindingsRequest , isSigv4 : Boolean ): ListCodeScanFindingsResponse =
345- if (isSigv4) {
346- mySigv4Client.listCodeScanFindings(request)
347- } else {
348- bearerClient().listCodeAnalysisFindings(request.transform()).transform()
349- }
307+ override fun listCodeScanFindings (request : ListCodeAnalysisFindingsRequest ): ListCodeAnalysisFindingsResponse =
308+ bearerClient().listCodeAnalysisFindings(request)
350309
351310 override fun startCodeFixJob (request : StartCodeFixJobRequest ): StartCodeFixJobResponse = bearerClient().startCodeFixJob(request)
352311
@@ -851,9 +810,6 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
851810 }
852811
853812 override fun dispose () {
854- if (this ::mySigv4Client.isLazyInitialized) {
855- mySigv4Client.close()
856- }
857813 myBearerClient?.close()
858814 }
859815
@@ -880,11 +836,6 @@ open class CodeWhispererClientAdaptorImpl(override val project: Project) : CodeW
880836
881837 companion object {
882838 private val LOG = getLogger<CodeWhispererClientAdaptorImpl >()
883- private fun createUnmanagedSigv4Client (): CodeWhispererClient = AwsClientManager .getInstance().createUnmanagedClient(
884- AnonymousCredentialsProvider .create(),
885- CodeWhispererConstants .Config .Sigv4ClientRegion ,
886- CodeWhispererConstants .Config .CODEWHISPERER_ENDPOINT
887- )
888839 }
889840}
890841
0 commit comments