in aws-iotcoredeviceadvisor-suitedefinition/src/main/kotlin/software/amazon/iotcoredeviceadvisor/suitedefinition/ReadHandler.kt [16:45]
override fun handleRequest(
proxy: AmazonWebServicesClientProxy,
request: ResourceHandlerRequest<ResourceModel>,
callbackContext: CallbackContext?,
logger: Logger): ProgressEvent<ResourceModel, CallbackContext?> {
logger.log("Read SuiteDefinition Request: $request")
val deviceAdvisorClient = ClientBuilder.getDeviceAdvisorClient()
val model = request.desiredResourceState
val suiteDefinitionId = model.suiteDefinitionId
if (suiteDefinitionId.isNullOrEmpty()) {
throw ResourceNotFoundException(ResourceModel.TYPE_NAME, null)
}
val getSuiteDefinitionRequest = if (model.suiteDefinitionVersion.isNullOrBlank()) {
GetSuiteDefinitionRequest.builder()
.suiteDefinitionId(model.suiteDefinitionId).build()
} else {
GetSuiteDefinitionRequest.builder()
.suiteDefinitionId(model.suiteDefinitionId)
.suiteDefinitionVersion(model.suiteDefinitionVersion).build()
}
return try {
val getSuiteDefinitionResponse: GetSuiteDefinitionResponse = proxy.injectCredentialsAndInvokeV2(getSuiteDefinitionRequest, deviceAdvisorClient::getSuiteDefinition)
ProgressEvent.defaultSuccessHandler(convertFromGetSuiteDefinitionResponse(getSuiteDefinitionResponse))
} catch (e: Exception) {
ExceptionHandler.handleDeviceAdvisorException(e)
}
}