productcatalog-20180918/main.tea (179 lines of code) (raw):
/**
*
*/
import Util;
import OpenApi;
import OpenApiUtil;
import EndpointUtil;
extends OpenApi;
init(config: OpenApi.Config){
super(config);
@endpointRule = '';
checkConfig(config);
@endpoint = getEndpoint('productcatalog', @regionId, @endpointRule, @network, @suffix, @endpointMap, @endpoint);
}
function getEndpoint(productId: string, regionId: string, endpointRule: string, network: string, suffix: string, endpointMap: map[string]string, endpoint: string) throws: string{
if (!Util.empty(endpoint)) {
return endpoint;
}
if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) {
return endpointMap[regionId];
}
return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix);
}
model GetApiRequest {
language?: string(name='Language'),
reader?: string(name='Reader'),
}
model GetApiResponse = {
headers: map[string]string(name='headers'),
}
async function getApi(ProductId: string, VersionId: string, ApiId: string, request: GetApiRequest): GetApiResponse {
var runtime = new Util.RuntimeOptions{};
var headers : map[string]string = {};
return getApiWithOptions(ProductId, VersionId, ApiId, request, headers, runtime);
}
async function getApiWithOptions(ProductId: string, VersionId: string, ApiId: string, request: GetApiRequest, headers: map[string]string, runtime: Util.RuntimeOptions): GetApiResponse {
Util.validateModel(request);
var query : map[string]any= {};
if (!Util.isUnset(request.language)) {
query.Language = request.language;
}
if (!Util.isUnset(request.reader)) {
query.Reader = request.reader;
}
var req = new OpenApi.OpenApiRequest{
headers = headers,
query = OpenApiUtil.query(query),
};
var params = new OpenApi.Params{
action = 'GetApi',
version = '2018-09-18',
protocol = 'HTTPS',
pathname = `/products/v1/public/${ProductId}/versions/{VersionId}/apis/{ApiId}`,
method = 'GET',
authType = 'AK',
style = 'ROA',
reqBodyType = 'json',
bodyType = 'none',
};
return callApi(params, req, runtime);
}
model GetProductRequest {
language?: string(name='Language'),
}
model GetProductResponse = {
headers: map[string]string(name='headers'),
}
async function getProduct(ProductId: string, request: GetProductRequest): GetProductResponse {
var runtime = new Util.RuntimeOptions{};
var headers : map[string]string = {};
return getProductWithOptions(ProductId, request, headers, runtime);
}
async function getProductWithOptions(ProductId: string, request: GetProductRequest, headers: map[string]string, runtime: Util.RuntimeOptions): GetProductResponse {
Util.validateModel(request);
var query : map[string]any= {};
if (!Util.isUnset(request.language)) {
query.Language = request.language;
}
var req = new OpenApi.OpenApiRequest{
headers = headers,
query = OpenApiUtil.query(query),
};
var params = new OpenApi.Params{
action = 'GetProduct',
version = '2018-09-18',
protocol = 'HTTPS',
pathname = `/products/v1/public/${ProductId}/`,
method = 'GET',
authType = 'AK',
style = 'ROA',
reqBodyType = 'json',
bodyType = 'none',
};
return callApi(params, req, runtime);
}
model ListApisRequest {
language?: string(name='Language'),
page?: string(name='Page'),
limit?: string(name='Limit'),
}
model ListApisResponse = {
headers: map[string]string(name='headers'),
}
async function listApis(ProductId: string, VersionId: string, request: ListApisRequest): ListApisResponse {
var runtime = new Util.RuntimeOptions{};
var headers : map[string]string = {};
return listApisWithOptions(ProductId, VersionId, request, headers, runtime);
}
async function listApisWithOptions(ProductId: string, VersionId: string, request: ListApisRequest, headers: map[string]string, runtime: Util.RuntimeOptions): ListApisResponse {
Util.validateModel(request);
var query : map[string]any= {};
if (!Util.isUnset(request.language)) {
query.Language = request.language;
}
if (!Util.isUnset(request.page)) {
query.Page = request.page;
}
if (!Util.isUnset(request.limit)) {
query.Limit = request.limit;
}
var req = new OpenApi.OpenApiRequest{
headers = headers,
query = OpenApiUtil.query(query),
};
var params = new OpenApi.Params{
action = 'ListApis',
version = '2018-09-18',
protocol = 'HTTPS',
pathname = `/products/v1/public/${ProductId}/versions/{VersionId}/apis/`,
method = 'GET',
authType = 'AK',
style = 'ROA',
reqBodyType = 'json',
bodyType = 'none',
};
return callApi(params, req, runtime);
}
model ListProductsRequest {
language?: string(name='Language'),
page?: string(name='Page'),
limit?: string(name='Limit'),
}
model ListProductsResponse = {
headers: map[string]string(name='headers'),
}
async function listProducts(request: ListProductsRequest): ListProductsResponse {
var runtime = new Util.RuntimeOptions{};
var headers : map[string]string = {};
return listProductsWithOptions(request, headers, runtime);
}
async function listProductsWithOptions(request: ListProductsRequest, headers: map[string]string, runtime: Util.RuntimeOptions): ListProductsResponse {
Util.validateModel(request);
var query : map[string]any= {};
if (!Util.isUnset(request.language)) {
query.Language = request.language;
}
if (!Util.isUnset(request.page)) {
query.Page = request.page;
}
if (!Util.isUnset(request.limit)) {
query.Limit = request.limit;
}
var req = new OpenApi.OpenApiRequest{
headers = headers,
query = OpenApiUtil.query(query),
};
var params = new OpenApi.Params{
action = 'ListProducts',
version = '2018-09-18',
protocol = 'HTTPS',
pathname = `/products/v1/public/`,
method = 'GET',
authType = 'AK',
style = 'ROA',
reqBodyType = 'json',
bodyType = 'none',
};
return callApi(params, req, runtime);
}