Skip to content

Commit

Permalink
Adds support for Multipart API requests (#31)
Browse files Browse the repository at this point in the history
  • Loading branch information
stevapple committed Oct 2, 2023
1 parent d6907d9 commit 10f7a10
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 12 deletions.
74 changes: 74 additions & 0 deletions Sources/Teco/Cii/V20210408/actions/DescribeQualityScore.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
//===----------------------------------------------------------------------===//
//
// This source file is part of the Teco open source project
//
// Copyright (c) 2022-2023 the Teco project authors
// Licensed under Apache License v2.0
//
// See LICENSE.txt for license information
//
// SPDX-License-Identifier: Apache-2.0
//
//===----------------------------------------------------------------------===//

// THIS FILE IS AUTOMATICALLY GENERATED by TecoServiceGenerator.
// DO NOT EDIT.

import struct Foundation.Data
import Logging
import NIOCore
import TecoCore

extension Cii {
/// DescribeQualityScore请求参数结构体
public struct DescribeQualityScoreRequest: TCMultipartRequest {
/// 文件二进制数据
public let file: Data

public init(file: Data) {
self.file = file
}

enum CodingKeys: String, CodingKey {
case file = "File"
}
}

/// DescribeQualityScore返回参数结构体
public struct DescribeQualityScoreResponse: TCResponse {
/// 质量分
public let qualityScore: Float

/// 唯一请求 ID,每次请求都会返回。定位问题时需要提供该次请求的 RequestId。
public let requestId: String

enum CodingKeys: String, CodingKey {
case qualityScore = "QualityScore"
case requestId = "RequestId"
}
}

/// 获取图片质量分
@inlinable
public func describeQualityScore(_ input: DescribeQualityScoreRequest, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeQualityScoreResponse> {
self.client.execute(action: "DescribeQualityScore", region: region, serviceConfig: self.config, input: input, logger: logger, on: eventLoop)
}

/// 获取图片质量分
@inlinable
public func describeQualityScore(_ input: DescribeQualityScoreRequest, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> DescribeQualityScoreResponse {
try await self.client.execute(action: "DescribeQualityScore", region: region, serviceConfig: self.config, input: input, logger: logger, on: eventLoop).get()
}

/// 获取图片质量分
@inlinable
public func describeQualityScore(file: Data, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<DescribeQualityScoreResponse> {
self.describeQualityScore(.init(file: file), region: region, logger: logger, on: eventLoop)
}

/// 获取图片质量分
@inlinable
public func describeQualityScore(file: Data, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> DescribeQualityScoreResponse {
try await self.describeQualityScore(.init(file: file), region: region, logger: logger, on: eventLoop)
}
}
18 changes: 12 additions & 6 deletions Sources/Teco/Cii/V20210408/actions/UploadMedicalFile.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,27 @@
// THIS FILE IS AUTOMATICALLY GENERATED by TecoServiceGenerator.
// DO NOT EDIT.

import struct Foundation.Data
import Logging
import NIOCore
import TecoCore

extension Cii {
/// UploadMedicalFile请求参数结构体
public struct UploadMedicalFileRequest: TCRequest {
public struct UploadMedicalFileRequest: TCMultipartRequest {
/// 文件的字节内容。File与FileURL有一个不为空即可,若FileURL参数也存在,会只取File的内容。
public let file: Data?

/// 文件的URL地址。File与FileURL不能同时为空,若File参数也存在,会只取File的内容。
public let fileURL: String?

public init(fileURL: String? = nil) {
public init(file: Data? = nil, fileURL: String? = nil) {
self.file = file
self.fileURL = fileURL
}

enum CodingKeys: String, CodingKey {
case file = "File"
case fileURL = "FileURL"
}
}
Expand Down Expand Up @@ -68,15 +74,15 @@ extension Cii {
///
/// 上传医疗影像文件,可以用来做结构化。
@inlinable
public func uploadMedicalFile(fileURL: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UploadMedicalFileResponse> {
self.uploadMedicalFile(.init(fileURL: fileURL), region: region, logger: logger, on: eventLoop)
public func uploadMedicalFile(file: Data? = nil, fileURL: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UploadMedicalFileResponse> {
self.uploadMedicalFile(.init(file: file, fileURL: fileURL), region: region, logger: logger, on: eventLoop)
}

/// 上传医疗影像文件
///
/// 上传医疗影像文件,可以用来做结构化。
@inlinable
public func uploadMedicalFile(fileURL: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> UploadMedicalFileResponse {
try await self.uploadMedicalFile(.init(fileURL: fileURL), region: region, logger: logger, on: eventLoop)
public func uploadMedicalFile(file: Data? = nil, fileURL: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> UploadMedicalFileResponse {
try await self.uploadMedicalFile(.init(file: file, fileURL: fileURL), region: region, logger: logger, on: eventLoop)
}
}
2 changes: 2 additions & 0 deletions Sources/Teco/Cii/V20210408/exports.swift
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,6 @@

#if !BUILDING_DOCC
@_exported import TecoCore

@_exported import struct Foundation.Data
#endif
18 changes: 12 additions & 6 deletions Sources/Teco/Cr/V20180321/actions/UploadDataFile.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
// THIS FILE IS AUTOMATICALLY GENERATED by TecoServiceGenerator.
// DO NOT EDIT.

import struct Foundation.Data
import Logging
import NIOCore
import TecoCore

extension Cr {
/// UploadDataFile请求参数结构体
public struct UploadDataFileRequest: TCRequest {
public struct UploadDataFileRequest: TCMultipartRequest {
/// 模块名,本接口取值:Data
public let module: String

Expand All @@ -39,17 +40,21 @@ extension Cr {
/// - blacklist:黑名单文件
public let uploadModel: String?

/// 文件,文件与文件地址上传只可选用一种,必须使用multipart/form-data协议来上传二进制流文件,建议使用xlsx格式,大小不超过5MB。
public let file: Data?

/// 文件上传地址,文件与文件地址上传只可选用一种,大小不超过50MB。
public let fileUrl: String?

/// 实例ID,不传默认为系统分配的初始实例。
public let instId: String?

public init(module: String, operation: String, fileName: String, uploadModel: String? = nil, fileUrl: String? = nil, instId: String? = nil) {
public init(module: String, operation: String, fileName: String, uploadModel: String? = nil, file: Data? = nil, fileUrl: String? = nil, instId: String? = nil) {
self.module = module
self.operation = operation
self.fileName = fileName
self.uploadModel = uploadModel
self.file = file
self.fileUrl = fileUrl
self.instId = instId
}
Expand All @@ -59,6 +64,7 @@ extension Cr {
case operation = "Operation"
case fileName = "FileName"
case uploadModel = "UploadModel"
case file = "File"
case fileUrl = "FileUrl"
case instId = "InstId"
}
Expand Down Expand Up @@ -98,15 +104,15 @@ extension Cr {
///
/// 上传文件,接口返回数据任务ID,支持xlsx、xls、csv、zip格式。
@inlinable
public func uploadDataFile(module: String, operation: String, fileName: String, uploadModel: String? = nil, fileUrl: String? = nil, instId: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UploadDataFileResponse> {
self.uploadDataFile(.init(module: module, operation: operation, fileName: fileName, uploadModel: uploadModel, fileUrl: fileUrl, instId: instId), region: region, logger: logger, on: eventLoop)
public func uploadDataFile(module: String, operation: String, fileName: String, uploadModel: String? = nil, file: Data? = nil, fileUrl: String? = nil, instId: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) -> EventLoopFuture<UploadDataFileResponse> {
self.uploadDataFile(.init(module: module, operation: operation, fileName: fileName, uploadModel: uploadModel, file: file, fileUrl: fileUrl, instId: instId), region: region, logger: logger, on: eventLoop)
}

/// 上传文件
///
/// 上传文件,接口返回数据任务ID,支持xlsx、xls、csv、zip格式。
@inlinable
public func uploadDataFile(module: String, operation: String, fileName: String, uploadModel: String? = nil, fileUrl: String? = nil, instId: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> UploadDataFileResponse {
try await self.uploadDataFile(.init(module: module, operation: operation, fileName: fileName, uploadModel: uploadModel, fileUrl: fileUrl, instId: instId), region: region, logger: logger, on: eventLoop)
public func uploadDataFile(module: String, operation: String, fileName: String, uploadModel: String? = nil, file: Data? = nil, fileUrl: String? = nil, instId: String? = nil, region: TCRegion? = nil, logger: Logger = TCClient.loggingDisabled, on eventLoop: EventLoop? = nil) async throws -> UploadDataFileResponse {
try await self.uploadDataFile(.init(module: module, operation: operation, fileName: fileName, uploadModel: uploadModel, file: file, fileUrl: fileUrl, instId: instId), region: region, logger: logger, on: eventLoop)
}
}
1 change: 1 addition & 0 deletions Sources/Teco/Cr/V20180321/exports.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
#if !BUILDING_DOCC
@_exported import TecoCore

@_exported import struct Foundation.Data
@_exported import struct Foundation.Date
#endif

0 comments on commit 10f7a10

Please sign in to comment.