rmc-20211104/Sources/AlibabacloudRMC20211104/Client.swift (108 lines of code) (raw):
import Foundation
import Tea
import TeaUtils
import AlibabacloudOpenApi
import AlibabaCloudOpenApiUtil
import AlibabacloudEndpointUtil
open class Client : AlibabacloudOpenApi.Client {
public override init(_ config: AlibabacloudOpenApi.Config) throws {
try super.init(config)
self._endpointRule = ""
try checkConfig(config as! AlibabacloudOpenApi.Config)
self._endpoint = try getEndpoint("rmc", self._regionId ?? "", self._endpointRule ?? "", self._network ?? "", self._suffix ?? "", self._endpointMap ?? [:], self._endpoint ?? "")
}
public func getEndpoint(_ productId: String, _ regionId: String, _ endpointRule: String, _ network: String, _ suffix: String, _ endpointMap: [String: String], _ endpoint: String) throws -> String {
if (!TeaUtils.Client.empty(endpoint)) {
return endpoint as! String
}
if (!TeaUtils.Client.isUnset(endpointMap) && !TeaUtils.Client.empty(endpointMap[regionId as! String])) {
return endpointMap[regionId as! String] ?? ""
}
return try AlibabacloudEndpointUtil.Client.getEndpointRules(productId, regionId, endpointRule, network, suffix)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func listResourceRelationshipsWithOptions(_ request: ListResourceRelationshipsRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> ListResourceRelationshipsResponse {
try TeaUtils.Client.validateModel(request)
var query: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.maxResults)) {
query["MaxResults"] = request.maxResults!;
}
if (!TeaUtils.Client.isUnset(request.nextToken)) {
query["NextToken"] = request.nextToken ?? "";
}
if (!TeaUtils.Client.isUnset(request.sourceRegionId)) {
query["SourceRegionId"] = request.sourceRegionId ?? "";
}
if (!TeaUtils.Client.isUnset(request.sourceResourceId)) {
query["SourceResourceId"] = request.sourceResourceId ?? [];
}
if (!TeaUtils.Client.isUnset(request.sourceResourceType)) {
query["SourceResourceType"] = request.sourceResourceType ?? "";
}
if (!TeaUtils.Client.isUnset(request.targetResourceType)) {
query["TargetResourceType"] = request.targetResourceType ?? [];
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"query": AlibabaCloudOpenApiUtil.Client.query(query)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "ListResourceRelationships",
"version": "2021-11-04",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(ListResourceRelationshipsResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func listResourceRelationships(_ request: ListResourceRelationshipsRequest) async throws -> ListResourceRelationshipsResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await listResourceRelationshipsWithOptions(request as! ListResourceRelationshipsRequest, runtime as! TeaUtils.RuntimeOptions)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func searchResourcesWithOptions(_ request: SearchResourcesRequest, _ runtime: TeaUtils.RuntimeOptions) async throws -> SearchResourcesResponse {
try TeaUtils.Client.validateModel(request)
var query: [String: Any] = [:]
if (!TeaUtils.Client.isUnset(request.filter)) {
query["Filter"] = request.filter ?? [];
}
if (!TeaUtils.Client.isUnset(request.maxResults)) {
query["MaxResults"] = request.maxResults!;
}
if (!TeaUtils.Client.isUnset(request.nextToken)) {
query["NextToken"] = request.nextToken ?? "";
}
if (!TeaUtils.Client.isUnset(request.resourceGroupId)) {
query["ResourceGroupId"] = request.resourceGroupId ?? "";
}
if (!TeaUtils.Client.isUnset(request.sortCriterion)) {
query["SortCriterion"] = request.sortCriterion!;
}
var req: AlibabacloudOpenApi.OpenApiRequest = AlibabacloudOpenApi.OpenApiRequest([
"query": AlibabaCloudOpenApiUtil.Client.query(query)
])
var params: AlibabacloudOpenApi.Params = AlibabacloudOpenApi.Params([
"action": "SearchResources",
"version": "2021-11-04",
"protocol": "HTTPS",
"pathname": "/",
"method": "POST",
"authType": "AK",
"style": "RPC",
"reqBodyType": "formData",
"bodyType": "json"
])
var tmp: [String: Any] = try await callApi(params as! AlibabacloudOpenApi.Params, req as! AlibabacloudOpenApi.OpenApiRequest, runtime as! TeaUtils.RuntimeOptions)
return Tea.TeaConverter.fromMap(SearchResourcesResponse(), tmp)
}
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, *)
public func searchResources(_ request: SearchResourcesRequest) async throws -> SearchResourcesResponse {
var runtime: TeaUtils.RuntimeOptions = TeaUtils.RuntimeOptions([:])
return try await searchResourcesWithOptions(request as! SearchResourcesRequest, runtime as! TeaUtils.RuntimeOptions)
}
}