import Foundation public enum AlibabaCodingPlanAPIRegion: String, CaseIterable, Sendable { case international = "intl" case chinaMainland = "cn" private static let endpointPath = "data/api.json" public var displayName: String { switch self { case .international: "International (modelstudio.console.alibabacloud.com)" case .chinaMainland: "China mainland (bailian.console.aliyun.com)" } } public var gatewayBaseURLString: String { switch self { case .international: "https://modelstudio.console.alibabacloud.com" case .chinaMainland: "https://bailian.console.aliyun.com" } } public var dashboardURL: URL { switch self { case .international: URL( string: "https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=coding-plan#/efm/coding_plan")! case .chinaMainland: URL(string: "https://bailian.console.aliyun.com/cn-beijing/?tab=model#/efm/coding_plan")! } } public var consoleDomain: String { switch self { case .international: "modelstudio.console.alibabacloud.com" case .chinaMainland: "bailian.console.aliyun.com" } } public var consoleSite: String { switch self { case .international: "MODELSTUDIO_ALIBABACLOUD" case .chinaMainland: "BAILIAN_ALIYUN" } } public var consoleRefererURL: URL { switch self { case .international: URL(string: "https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=coding-plan")! case .chinaMainland: URL(string: "https://bailian.console.aliyun.com/cn-beijing/?tab=model")! } } public var quotaURL: URL { var components = URLComponents(string: self.gatewayBaseURLString)! components.path = "/" + Self.endpointPath components.queryItems = [ URLQueryItem( name: "action", value: "zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2"), URLQueryItem(name: "product", value: "broadscope-bailian"), URLQueryItem(name: "api", value: "queryCodingPlanInstanceInfoV2"), URLQueryItem(name: "currentRegionId", value: self.currentRegionID), ] return components.url! } public var consoleRPCBaseURLString: String { switch self { case .international: "https://bailian-singapore-cs.alibabacloud.com" case .chinaMainland: "https://bailian-cs.console.aliyun.com" } } public var consoleRPCURL: URL { var components = URLComponents(string: self.consoleRPCBaseURLString)! components.path = "/" + Self.endpointPath components.queryItems = [ URLQueryItem(name: "action", value: self.consoleRPCAction), URLQueryItem(name: "product", value: self.consoleRPCProduct), URLQueryItem(name: "api", value: self.consoleQuotaAPIName), URLQueryItem(name: "_v", value: "undefined"), ] return components.url! } public var consoleRPCAction: String { switch self { case .international: "IntlBroadScopeAspnGateway" case .chinaMainland: "BroadScopeAspnGateway" } } public var consoleRPCProduct: String { "sfm_bailian" } public var consoleQuotaAPIName: String { "zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2" } public var commodityCode: String { switch self { case .international: "sfm_codingplan_public_intl" case .chinaMainland: "sfm_codingplan_public_cn" } } public var currentRegionID: String { switch self { case .international: "ap-southeast-1" case .chinaMainland: "cn-beijing" } }}
import Foundation
public enum AlibabaCodingPlanAPIRegion: String, CaseIterable, Sendable {
case international = "intl"
case chinaMainland = "cn"
private static let endpointPath = "data/api.json"
public var displayName: String {
switch self {
case .international:
"International (modelstudio.console.alibabacloud.com)"
case .chinaMainland:
"China mainland (bailian.console.aliyun.com)"
}
}
public var gatewayBaseURLString: String {
switch self {
case .international:
"https://modelstudio.console.alibabacloud.com"
case .chinaMainland:
"https://bailian.console.aliyun.com"
}
}
public var dashboardURL: URL {
switch self {
case .international:
URL(
string: "https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=coding-plan#/efm/coding_plan")!
case .chinaMainland:
URL(string: "https://bailian.console.aliyun.com/cn-beijing/?tab=model#/efm/coding_plan")!
}
}
public var consoleDomain: String {
switch self {
case .international:
"modelstudio.console.alibabacloud.com"
case .chinaMainland:
"bailian.console.aliyun.com"
}
}
public var consoleSite: String {
switch self {
case .international:
"MODELSTUDIO_ALIBABACLOUD"
case .chinaMainland:
"BAILIAN_ALIYUN"
}
}
public var consoleRefererURL: URL {
switch self {
case .international:
URL(string: "https://modelstudio.console.alibabacloud.com/ap-southeast-1/?tab=coding-plan")!
case .chinaMainland:
URL(string: "https://bailian.console.aliyun.com/cn-beijing/?tab=model")!
}
}
public var quotaURL: URL {
var components = URLComponents(string: self.gatewayBaseURLString)!
components.path = "/" + Self.endpointPath
components.queryItems = [
URLQueryItem(
name: "action",
value: "zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2"),
URLQueryItem(name: "product", value: "broadscope-bailian"),
URLQueryItem(name: "api", value: "queryCodingPlanInstanceInfoV2"),
URLQueryItem(name: "currentRegionId", value: self.currentRegionID),
]
return components.url!
}
public var consoleRPCBaseURLString: String {
switch self {
case .international:
"https://bailian-singapore-cs.alibabacloud.com"
case .chinaMainland:
"https://bailian-cs.console.aliyun.com"
}
}
public var consoleRPCURL: URL {
var components = URLComponents(string: self.consoleRPCBaseURLString)!
components.path = "/" + Self.endpointPath
components.queryItems = [
URLQueryItem(name: "action", value: self.consoleRPCAction),
URLQueryItem(name: "product", value: self.consoleRPCProduct),
URLQueryItem(name: "api", value: self.consoleQuotaAPIName),
URLQueryItem(name: "_v", value: "undefined"),
]
return components.url!
}
public var consoleRPCAction: String {
switch self {
case .international:
"IntlBroadScopeAspnGateway"
case .chinaMainland:
"BroadScopeAspnGateway"
}
}
public var consoleRPCProduct: String {
"sfm_bailian"
}
public var consoleQuotaAPIName: String {
"zeldaEasy.broadscope-bailian.codingPlan.queryCodingPlanInstanceInfoV2"
}
public var commodityCode: String {
switch self {
case .international:
"sfm_codingplan_public_intl"
case .chinaMainland:
"sfm_codingplan_public_cn"
}
}
public var currentRegionID: String {
switch self {
case .international:
"ap-southeast-1"
case .chinaMainland:
"cn-beijing"
}
}
}