Files
2026-07-13 12:22:33 +08:00

134 lines
4.0 KiB
Swift

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"
}
}
}