override fun writeAdditionalFiles()

in codegen/smithy-aws-swift-codegen/src/main/kotlin/software/amazon/smithy/aws/swift/codegen/customization/machinelearning/PredictEndpointIntegration.kt [33:52]


    override fun writeAdditionalFiles(ctx: CodegenContext, delegator: SwiftDelegator) {
        val serviceShape = ctx.model.expectShape<ServiceShape>(ctx.settings.service)
        val protocolGeneratorContext = ctx.toProtocolGenerationContext(serviceShape, delegator)?.let { it } ?: run { return }
        val service = ctx.model.expectShape<ServiceShape>(ctx.settings.service)
        val operationsToGenerate = enabledOperations.getOrDefault(service.id.toString(), setOf())

        operationsToGenerate.forEach { operation ->
            val op = ctx.model.expectShape<OperationShape>(operation)
            val inputSymbol = MiddlewareShapeUtils.inputSymbol(ctx.symbolProvider, ctx.model, op)
            val outputSymbol = MiddlewareShapeUtils.outputSymbol(ctx.symbolProvider, ctx.model, op)
            val outputErrorSymbol = MiddlewareShapeUtils.outputErrorSymbol(op)

            val inputType = op.input.get()
            delegator.useFileWriter("${ctx.settings.moduleName}/models/$inputType+EndpointURLHostMiddleware.swift") { writer ->
                writer.addImport(SwiftDependency.CLIENT_RUNTIME.target)
                val predictMiddleware = PredictInputEndpointURLHostMiddlewareHandler(writer, protocolGeneratorContext, inputSymbol, outputSymbol, outputErrorSymbol)
                MiddlewareGenerator(writer, predictMiddleware).generate()
            }
        }
    }