华为云用户手册
-
放音文件及语音模板配置 放音文件和语音模板必须要审核通过后才可使用吗? 语音通话有哪些可自定义的呼叫提示音,如何上传审核? 语音通话的放音文件是固定的还是要用户上传呢? 语音通知中使用放音文件和语音模板有什么区别? 放音文件的音频格式要求是什么? 一个语音通知可以播放几个语音文件?格式是什么? 想要指定自己的语音通知模板,需要遵循哪些配置规则? 语音模板内容支持小数吗? 如何查看语音模板内容?是否支持下载或迁移? 语音模板中的变量是如何填充的? 语音通知可以设置播放多遍吗,如何设置?
-
服务开通相关 如何订购并开通语音通话服务?需要审核多久? 为什么语音通话开通服务时“立即申请”点击不了? 开通服务时,遇到报错该如何处理? 语音通话应用是否能修改、删除? 如果新建一个应用,需要重新申请该应用的固话号码吗? 语音通话最多可添加几个应用?需要添加更多的应用怎么办? 语音通话号码资源下发需要多久? 华为云语音通话服务中,导致企业审核审核不通过的原因有哪些?如何处理? 语音通话的企业管理中,添加了企业信息,多久能审核通过?如何查询审核结果? 语音通话添加企业时的“预估日通话次数”有最低限制吗? 添加企业后,是否支持修改或删除企业信息? 语音通话服务中,创建了多个应用,可以每个应用对应不同的开发者账号和密码吗? 添加号码时,遇到报错该如何处理? 已通过华为云企业实名认证的用户还需要在控制台添加企业信息吗? 为什么添加企业时经办人手持身份证照片不规范? 如果修改华为云账号的实名认证信息,是否影响语音通话的业务? 不再使用语音通话业务了,是否需要退订?如何退订?
-
如何配置和接收呼叫状态和话单通知?地址是否支持http? 呼叫状态接收地址和话单接收地址有以下两种提供方式: 在控制台添加应用时填写呼叫状态接收地址和话单接收地址。 在调用业务接口时加入statusUrl和feeUrl两个参数,参数具体说明可参考语音回呼场景API。不同业务接口的feeUrl和statusUrl的参数填写方式相同(feeUrl和statusUrl可设置成同一个),参考其中一个进行配置即可。 注:配置的地址格式为http://IP:Port或 域名 ,推荐使用域名,支持http和https。 具体的华为云平台推送的呼叫状态和话单的消息内容可参考每个业务中对应的呼叫状态和话单通知API。 注:语音通话平台推送给客户服务器的数据为字节流。 父主题: 呼叫状态和话单通知
-
接口示例 请求示例 示例1 POST /rest/httpsessions/callnotify/v2.0 HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx { "displayNbr":"+86186****5611", "calleeNbr":"+8675581****01", "playInfoList":[{"notifyVoice":"welcome.wav"},{"notifyVoice":"welcome.wav","collectInd":4}], "statusUrl":"****", "feeUrl":"****", "userData":"testUserData" } 示例2 语音通话平台上设置的模板ID=test_template,模板内容为“您有${NUM_2}件快递请到${TXT_32}领取”。 下面的API将播放文本“您有3件快递请到人民公园正门领取”。 POST /rest/httpsessions/callnotify/v2.0?app_key=z4Sdu8p7nml5Wd790aENW64oV5Fp HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx { "displayNbr":"+86186****5611", "calleeNbr":"+8675581****01", "playInfoList":[{"templateId":"test_template", "templateParas":["3","人民公园正门"],"collectInd":5}], "statusUrl":"****", "feeUrl":"****", "userData":"testUserData" } 响应示例 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "resultcode":"0", "resultdesc":"Success", "sessionId":"1200_366_0_20161228102743@callenabler.home1.com" }
-
结果码 请根据以下结果码进行调测,如果有疑问,可联系管理员进行确认。 表8 结果码说明 响应码 结果码 英文描述 中文描述 处理方法 200 0 Success. 成功。 无需处理。 400 1023006 Authorization not contained in the HTTP header. Authentication fails. Check whether the authentication request is correct. 鉴权失败,请检查鉴权请求正确性。 请检查消息头中是否携带了Authorization,PasswordDigest字段填写是否正确,携带的app_key填写是否正确,且生成随机数的时间与发送请求时的本地时间不能相差太大。 请检查账户余额是否充足,若不足请充值后再次尝试。如何给账户充值 1023007 realm not contained in Authorization. Authorization字段中未找到realm属性。 请检查Authorization字段中的是否携带了realm属性。 1023008 profile not contained in Authorization. Authorization字段中未找到profile属性。 请检查Authorization字段中的是否携带了profile属性。 1023009 The value of realm in Authorization must be SDP. Authorization中realm属性值应该为“SDP”。 请检查Authorization字段中的realm属性值是否为“SDP”。 1023010 The value of profile in Authorization must be UsernameToken. Authorization中profile属性值应该为“UsernameToken”。 请检查Authorization字段中的profile属性值是否为“UsernameToken”。 1023011 The value of type in Authorization must be app_key. Authorization中type属性值应该为“Appkey”。 请检查Authorization字段中的type属性值是否为“Appkey”。 1023012 type not contained in Authorization. Authorization字段中未找到type属性。 请检查Authorization字段中是否携带了type属性。 1023033 HTTP header not found X-AKSK field. HTTP头未找到X-AKSK字段。 请检查HTTP消息头中是否携带了X-AKSK字段。 1023034 UserName not contained in X-AKSK. X-AKSK字段中未找到UserName属性。 请检查X-AKSK字段中的是否携带了Username属性。 1023035 Nonce not contained in X-AKSK. X-AKSK字段中未找到Nonce属性。 请检查X-AKSK字段中的是否携带了Nonce属性。 1023036 Created not contained in X-AKSK. X-AKSK字段中未找到Created属性。 请检查X-AKSK字段中的是否携带了Created属性。 1023037 PasswordDigest not contained in X-AKSK. X-AKSK字段中未找到PasswordDigest属性。 请检查X-AKSK字段中的是否携带了PasswordDigest属性。 1023038 UsernameToken not contained in X-AKSK. X-AKSK中没有携带UsernameToken。 请检查X-AKSK字段中的是否携带了UsernameToken属性。 401 1010010 Invalid digest. PasswordDigest校验失败。 请检查PasswordDigest字段填写是否正确。 1010013 Time out limit. 时间超出限制。 请确认X-AKSK鉴权时,生成随机数的时间与发送请求时的本地时间不能相差太大(具体差值请与管理员确认) 403 1010002 Invalid request. 非法请求。 检查请求携带的参数格式是否都合法。 1010003 Invalid app_key. 无效的app_key。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010006 Invalid Rest API. 无效的Rest API。 检查请求方法填写是否正确。 1010008 The status of the app_key is unavailable. app_key被暂停使用。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010009 No more APIs can be invoked. API达到调用上限。 请稍等一分钟后再试,并联系管理员申请更高的应用使用配额。 1010010 The flow control upper limit is reached on the platform. 平台达到系统流控上限。 请稍等一分钟后再试。 1010011 The app is not allowed to access a commercial address. APP没有访问商用地址的权限。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010021 Application unavailable. 应用不可用。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010023 Invalid display number. 号码填写不合法。 检查displayNbr和displayCalleeNbr参数的填写是否合法,与号码管理页面的“固话号码”保持一致。若合法,请确认该号码是否已申请并下发。申请号码在号码订购页面申请,号码下发后可在号码管理页面查看。 1010024 Invalid caller number. 主叫号码不合法。 检查callerNbr参数的填写是否合法。 1010040 The app_key is not allowed to invoke the API. app_key没有调用本API的权限。 请联系管理员确认该app_key对应的应用是否具有语音通知能力。 1012001 Resource of number is not to be applied. 资源未申请。 app_key和业务号码未绑定。 1012005 %s of templateParas does not meet template requirements. 参数templateParas中的%s不符合模板定义的要求。 请检查templateParas携带的变量值格式与长度是否符合templateId对应的模板内容中变量的定义。 1012006 The service number is not applied. 业务号码未申请。 请确认是否申请业务号码。 1012012 Application does not open recording function. 应用未开启录音功能。 请在应用管理页面确认请求携带的app_key是否开启了录音功能。 1013001 Calls exceed the SP limit. 请求次数超过SP配置上限。 请和管理员确认开发者呼叫数量限制。 1013002 Calls exceed the APP limit. 请求次数超过应用配置上限。 请和管理员确认应用呼叫数量限制。 1013003 Calls exceed the display number limit. SP的主显号码受限。 请和管理员确认显示号码呼叫数量限制。 1013004 Callee in blacklist. 被叫用户是黑名单。 被叫号码在运营商黑名单库。 1013010 Caller in blacklist. 主叫用户是黑名单。 主叫号码在运营商黑名单库。 1013011 Callee is not on the whitelist. 被叫用户不在白名单中。 请和管理员确认被叫号码白名单限制。 1013100 Common error code . 未知错误。 请和管理员确认安全管控限制。 1013101 Abnormal call restricted . 呼叫行为异常。 请和管理员确认安全管控限制。 1013111 International callin is forbidden. 国际呼入限制。 请检查请求的号码格式是否为国际号码格式。 1013112 International callout is forbidden. 国际呼出限制。 请检查请求的号码格式是否为国际号码格式。 1013113 Abnormal call duration restricted. 通话时间异常。 请检查请求的号码是否通话时间异常。 1013115 Abnormal call completion rate restricted. 呼叫接通率异常。 请检查请求的号码是否呼叫接通率异常。 1013116 Caller call frequency restricted. 主叫呼叫频次限制。 请检查主叫号码是否有呼叫频次限制。 1013117 Callee call frequency restricted. 被叫呼叫频次限制。 请检查被叫号码是否有呼叫频次限制。 1013118 Service number call frequency restricted. 业务号码呼叫频次限制。 请检查业务号码是否有呼叫频次限制。 1013119 Service number suspend. 业务号码被暂停。 请和管理员确认号码状态。 1013120 Ip address is null. IPv4地址未携带。 请客户接口携带请求发送方IPv4地址。 1013121 Call black time forbidden. 呼叫时段限制。 呼叫时段为休息时段,请工作时段再呼叫。 1013122 Sub enterprise is suspended. 子企业已被暂停。 查看是否因投诉被下线,可查看订购号码时填写的邮箱是否有业务下线通知邮件。 1020165 The number of app_key voice call ports exceeds the upper limit. 超出语音呼叫端口数限制。 请稍等一分钟后再试。建议联系管理员为该应用申请更多的端口配额。 1020166 The app client ip is not in ip white list. 请求发送方app IP不在白名单列表中。 运营商IP地域管控,此地区无法呼通。 1020168 The call is rejected because the login IP of the peer app is blacklisted . 请求发送方app登录IP是黑名单。 运营商IP地域管控,此地区无法呼通。 1020171 The call is rejected because the login IP of the peer app is blacklisted area. 请求发送方app登录IP在受限地域。 运营商IP地域管控,此地区无法呼通。 1020176 Authentication failed, try again later 鉴权失败,稍后重试。 IP因鉴权失败次数过多导致被拉黑,请30分钟后重试,或联系管理员放通该IP。 500 1010001 Internal system error. 系统错误。 请联系管理员处理。 1020001 Parameter error. 参数错误。 检查请求携带的参数格式是否都合法。 1020002 Internal error. 内部错误。 请联系管理员处理。 1020150 The app_key is invalid. app_key无效。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1020151 The bindNum is invalid. 业务号码无效。 业务号码无效,请联系管理员处理。 1020154 Insufficient voice ports. 语音端口不足。 请稍等一分钟后再试,并联系管理员申请扩容语音端口。 1023001 Internal error. 内部错误。 请联系管理员处理。 1023002 Response timeout. 响应超时。 重新发送一次请求。
-
响应参数 表7 响应消息参数说明 参数名称 是否必选 参数类型 默认值 说明 resultcode 是 String(1-32) 无 请求返回的结果码。 resultdesc 是 String(1-128) 无 请求返回的结果描述。 sessionId 是 String(1-256) 无 请求返回的会话sessionId,如果请求失败,则sessionId为空。 idlePort 否 Integer 无 请求参数中returnIdlePort为true时响应消息携带该参数。 该参数表示平台呼叫端口空闲可用数量,取值范围0~65535。
-
接口功能 语音通知是SP将被叫号码和语音通知文件名(语音文件需要提前通过放音文件管理页面上传)或语音通知文本(通过语音模板管理页面提交)发送给业务平台,由业务平台呼叫被叫,被叫接听后业务平台向被叫播放语音,并进行收号。SP可以要求业务平台播放多段语音,每段语音的内容都可以是下列两种语音中的一种: 语音文件中录制的语音。 文本(需要先通过模板定义)通过 TTS 服务转换成的语音。 业务体验描述: SP想要给用户A通知一段或多段语音。 SP向语音通话平台发送播放语音通知业务请求。 语音通话平台呼叫用户A的号码。 用户A接听。 语音通话平台向用户A播放语音。
-
请求参数 表2 请求URL参数说明 参数名称 是否必选 参数类型 默认值 说明 version 是 String(枚举) 无 版本,取值为v2.0。 表3 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 X-AKSK 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表4。 表4 不同编程语言的时间格式 编程语言 时间格式 Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ Node.js toISOString().replace(/.[0-9]+\Z/, 'Z') 注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表5 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 displayNbr 是 String(4-31) 无 固话号码,被叫终端上显示的主叫号码,需要提前在订购号码页面申请该号码。 号码格式(固话):国家码+区号+固话,与号码管理页面的“固话号码”保持一致。 若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。 calleeNbr 是 String(4-31) 无 被叫号码。 手机号码格式:+{国家码}{手机号码}。示例:+86134****2222。 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****01,填写为+8675528****01。 playInfoList 是 PlayContentInfo[1-5] 无 播放信息列表,最大支持5个,每个播放信息携带的参数都可以不相同。 statusUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此字段用于设置SP接收状态上报的URL。 语音通话平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收通知。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 feeUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此参数用于设置SP接收话单上报的URL。 语音通话平台将业务产生的话单推送至此服务器。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收话单。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 returnIdlePort 否 String(枚举) false 指示是否需要返回平台的空闲端口数量。 true:需要返回 false:不需要返回 如果不携带该参数,系统默认该参数为false。 userData 否 String(1-256) 无 用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。 不允许携带以下字符:“{”,“}”(即大括号)。 不允许包含中文字符,如果包含中文字符请采用Base64编码。 表6 PlayContentInfo定义 参数名称 是否必选 参数类型 默认值 说明 notifyVoice 否 String(1-128) 无 通知语音的放音文件名。需要先通过放音文件管理页面上传放音文件并通过审核才能使用。 当前系统只支持Wave格式的音频文件,文件如“notifyvoice.wav”。 该参数和templateId是二选一的关系,即两个参数必须携带其中一个。 templateId 否 String(1-32) 无 语音通知模板ID,用于唯一标识语音通知模板。语音通知模板为TTS文本的模板,需要先通过语音模板管理页面提交模板并通过审核才能使用,并获取对应的模板ID。 该参数和notifyVoice是二选一的关系。需要与templateParas参数配合使用。 templateParas 否 String(1-32)[1-10] 无 语音通知模板的变量值列表,用于依次填充templateId参数指定的模板内容中的变量。 该参数需填写为JSONArray格式。具体可参考变量规则。 参数内容必须是“UTF-8”编码,不能包含以下3个字符:“$”,“{”,“}”。 当接口中携带“templateId”参数时,必须携带此参数,若未携带此参数系统将返回“非法请求”错误。 列表中变量值的个数及长度必须和templateId对应模板内容中定义的变量个数及长度保持一致;例如templateId对应的模板内容有2个变量且变量长度分别为5和6,则此处需要设置2个变量值且内容长度分别小于等于5和6。 如模板内容为“您有${NUM_2}件快递请到${TXT_32}领取”时,该参数可填写为["3","人民公园正门"]。 collectInd 否 Integer(0-32) 0 是否进行收号。若进行收号,请在语音通知内容播放完毕后的5秒之内进行按键操作,系统会将用户输入的号码通过语音通知呼叫状态通知API发送给SP。 取值范围: 0:不收号 1~32:收号,并且取值表示收号位长,最大支持32位。 若不携带该参数,则默认不收号。 replayAfterCollection 否 String(枚举) false 当collectInd字段设置为非0时此参数有效。 此字段用于设置是否在收号后重新播放notifyVoice、ttsContent或templateId指定的放音。 true:播放。 false:不播放。 默认值:false。 collectContentTriggerReplaying 否 String(1-32) 无 当replayAfterCollection字段设置为true时此参数有效。 此字段用于设置触发重新放音的收号内容。只有实际收号内容与该参数值一致时,才重新放音。例如:该参数设置为1,当用户根据收号语音提示按1,两者一致,则重复放音。
-
接口示例 请求示例 POST /rest/httpsessions/callVerify/v1.0 HTTP/1.1 content-type: application/json;charset=UTF-8 authorization: AKSK realm="SDP",profile="UsernameToken",type="Appkey" x-aksk: UsernameToken Username="ZRBRz4bAXoFgEH7o4Ew308eXc1RA",PasswordDigest="****",Nonce="ac1c911c4792492687f8f6b2264a491e",Created="2018-05-26T00:35:30Z" content-length:xx { "displayNbr":"+8675528****88", "calleeNbr":"+86189****0007", "languageType":2, "preTone":"welcome.wav", "verifyCode":"12345678", "times":3, "userData":"cwgtest" } 响应示例 HTTP/1.1 200 OK Content-Type: application/json;charset=UTF-8 { "resultcode":"0", "resultdesc":"Success", "sessionId":"1200_366_0_20161228102743@callenabler.home1.com" }
-
结果码 请根据以下结果码进行调测,如果有疑问,可联系管理员进行确认。 表6 结果码说明 响应码 结果码 英文描述 中文描述 处理方法 200 0 Success. 成功。 无需处理。 400 1023006 Authorization not contained in the HTTP header. 鉴权失败,请检查鉴权请求正确性。 请检查消息头中是否携带了Authorization,PasswordDigest字段填写是否正确,携带的app_key填写是否正确,且生成随机数的时间与发送请求时的本地时间不能相差太大。 1023007 realm not contained in Authorization. Authorization字段中未找到realm属性。 请检查Authorization字段中的是否携带了realm属性。 1023008 profile not contained in Authorization. Authorization字段中未找到profile属性。 请检查Authorization字段中的是否携带了profile属性。 1023009 The value of realm in Authorization must be SDP. Authorization中realm属性值应该为“SDP”。 请检查Authorization字段中的realm属性值是否为“SDP”。 1023010 The value of profile in Authorization must be UsernameToken. Authorization中profile属性值应该为“UsernameToken”。 请检查Authorization字段中的profile属性值是否为“UsernameToken”。 1023011 The value of type in Authorization must be app_key. Authorization中type属性值应该为“Appkey”。 请检查Authorization字段中的type属性值是否为“Appkey”。 1023012 type not contained in Authorization. Authorization字段中未找到type属性。 请检查Authorization字段中是否携带了type属性。 1023033 HTTP header not found X-AKSK field. HTTP头未找到X-AKSK字段。 请检查HTTP消息头中是否携带了X-AKSK字段。 1023034 UserName not contained in X-AKSK. X-AKSK字段中未找到UserName属性。 请检查X-AKSK字段中的是否携带了Username属性。 1023035 Nonce not contained in X-AKSK. X-AKSK字段中未找到Nonce属性。 请检查X-AKSK字段中的是否携带了Nonce属性。 1023036 Created not contained in X-AKSK. X-AKSK字段中未找到Created属性。 请检查X-AKSK字段中的是否携带了Created属性。 1023037 PasswordDigest not contained in X-AKSK. X-AKSK字段中未找到PasswordDigest属性。 请检查X-AKSK字段中的是否携带了PasswordDigest属性。 1023038 UsernameToken not contained in X-AKSK. X-AKSK中没有携带UsernameToken。 请检查X-AKSK字段中的是否携带了UsernameToken属性。 401 1010010 Invalid digest. PasswordDigest校验失败。 请检查PasswordDigest字段填写是否正确。 1010013 Time out limit. 时间超出限制。 请确认X-AKSK鉴权时,生成随机数的时间与发送请求时的本地时间不能相差太大(具体差值请与管理员确认) 403 1010002 Invalid request. 非法请求。 检查请求携带的参数格式是否都合法。 1010003 Invalid app_key. 无效的app_key。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010006 Invalid Rest API. 无效的Rest API。 检查请求方法填写是否正确。 1010008 The status of the app_key is unavailable. app_key被暂停使用。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010009 No more APIs can be invoked. API达到调用上限。 请稍等一分钟后再试,并联系管理员申请更高的应用使用配额。 1010010 The flow control upper limit is reached on the platform. 平台达到系统流控上限。 请稍等一分钟后再试。 1010011 The app is not allowed to access a commercial address. APP没有访问商用地址的权限。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010021 Application unavailable. 应用不可用。 请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1010023 Invalid display number. 号显号码不合法。 检查displayNbr和displayCalleeNbr参数的填写是否合法,与号码管理页面的“固话号码”保持一致。若合法,请确认该号码是否已申请并下发。申请号码在号码订购页面申请,号码下发后可在号码管理页面查看。 1010024 Invalid caller number. 主叫号码不合法。 检查callerNbr参数的填写是否合法。 1010040 The app_key is not allowed to invoke the API. app_key没有调用本API的权限。 请联系管理员确认该app_key对应的应用是否具语音验证码能力。 1012001 Resource of number is not to be applied. 资源未申请。 app_key和业务号码未绑定。 1012006 The service number is not applied. 业务号码未申请。 请确认是否申请业务号码。 1012012 Application does not open recording function. 应用未开启录音功能。 请在应用管理页面确认请求携带的app_key是否开启了录音功能。 1013001 Calls exceed the SP limit. 请求次数超过SP配置上限。 请和管理员确认开发者呼叫数量限制。 1013002 Calls exceed the APP limit. 请求次数超过应用配置上限。 请和管理员确认应用呼叫数量限制。 1013003 Calls exceed the display number limit. SP的主显号码受限。 请和管理员确认显示号码呼叫数量限制。 1013004 Callee in blacklist. 被叫用户是黑名单。 被叫号码在运营商黑名单库。 1013010 Caller in blacklist. 主叫用户是黑名单。 主叫号码在运营商黑名单库。 1013011 Callee is not on the whitelist. 被叫用户不在白名单中。 请和管理员确认被叫号码白名单限制。 1013100 Common error code . 未知错误。 请和管理员确认安全管控限制。 1013101 Abnormal call restricted . 呼叫行为异常。 请和管理员确认安全管控限制。 1013111 International callin is forbidden. 国际呼入限制。 请检查请求的号码格式是否为国际号码格式。 1013112 International callout is forbidden. 国际呼出限制。 请检查请求的号码格式是否为国际号码格式。 1013113 Abnormal call duration restricted. 通话时间异常。 请检查请求的号码是否通话时间异常。 1013115 Abnormal call completion rate restricted. 呼叫接通率异常。 请检查请求的号码是否呼叫接通率异常。 1013116 Caller call frequency restricted. 主叫呼叫频次限制。 请检查主叫号码是否有呼叫频次限制。 1013117 Callee call frequency restricted. 被叫呼叫频次限制。 请检查被叫号码是否有呼叫频次限制。 1013118 Service number call frequency restricted. 业务号码呼叫频次限制。 请检查业务号码是否有呼叫频次限制。 1013119 Service number suspend. 业务号码被暂停。 请和管理员确认号码状态。 1013120 Ip address is null. IPv4地址未携带。 请客户接口携带请求发送方IPv4地址。 1013121 Call black time forbidden. 呼叫时段限制。 呼叫时段为休息时段,请工作时段再呼叫。 1013122 Sub enterprise is suspended. 子企业已被暂停。 查看是否因投诉被下线,可查看订购号码时填写的邮箱是否有业务下线通知邮件。 1020165 The number of app_key voice call ports exceeds the upper limit. 超出语音呼叫端口数限制。 请稍等一分钟后再试。建议联系管理员为该应用申请更多的端口配额。 1020166 The app client ip is not in ip white list. 请求发送方app IP不在白名单列表中。 运营商IP地域管控,此地区无法呼通。 1020168 The call is rejected because the login IP of the peer app is blacklisted . 请求发送方app登录IP是黑名单。 运营商IP地域管控,此地区无法呼通。 1020171 The call is rejected because the login IP of the peer app is blacklisted area. 请求发送方app登录IP在受限地域。 运营商IP地域管控,此地区无法呼通。 1020176 Authentication failed, try again later 鉴权失败,稍后重试。 IP因鉴权失败次数过多导致被拉黑,请30分钟后重试,或联系管理员放通该IP。 500 1010001 Internal system error. 系统错误。 请联系管理员处理。 1020001 Parameter error. 参数错误。 检查请求携带的参数格式是否都合法。 1020002 Internal error. 内部错误。 请联系管理员处理。 1020150 The app_key is invalid. app_key无效。 检查请求携带的app_key是否填写正确,app_key从应用管理页面获取,若填写正确,请在应用管理页面检查请求携带的app_key所属应用状态是否正常。 1020151 The bindNum is invalid. 业务号码无效。 业务号码无效,请联系管理员处理。 1020154 Insufficient voice ports. 语音端口不足。 请稍等一分钟后再试,并联系管理员申请扩容语音端口。 1023001 Internal error. 内部错误。 请联系管理员处理。 1023002 Response timeout. 响应超时。 重新发送一次请求。
-
响应参数 表5 响应消息参数说明 参数名称 是否必选 参数类型 默认值 说明 resultcode 是 String(1-32) 无 请求返回的结果码。 resultdesc 是 String(1-128) 无 请求返回的结果描述。 sessionId 是 String(1-256) 无 请求返回的会话sessionId,如果请求失败,则sessionId为空。 idlePort 否 Integer 无 请求参数中returnIdlePort为true时响应消息携带该参数。 该参数表示平台呼叫端口空闲可用数量,取值范围0~65535。
-
请求参数 表2 请求Headers参数说明 参数名称 是否必选 参数类型 说明 Content-Type 是 String 固定填写为application/json;charset=UTF-8。 Authorization 是 String 固定填写为AKSK realm="SDP",profile="UsernameToken",type="Appkey"。 X-AKSK 是 String 取值为UsernameToken Username="APP_Key的值", PasswordDigest="PasswordDigest的值", Nonce="随机数", Created="随机数生成时间"。 PasswordDigest:根据PasswordDigest = Base64 (HMAC-SHA256 (Password,Nonce + Created))生成。其中,Password为APP_Secret的值。Nonce、Created、Password直接进行字符串拼接即可,无需包含+号和空格。 Nonce:客户发送请求时生成的一个随机数,长度为1~128位,可包含数字和大小写字母。例如:66C92B11FF8A425FB8D4CCFE0ED9ED1F。 Created:随机数生成时间。采用标准UTC格式,例如:2018-02-12T15:30:20Z。不同编程语言中将UTC时间戳转换为普通时间时使用的格式不同,部分语言可参考表3。 表3 不同编程语言的时间格式 编程语言 时间格式 Java yyyy-MM-dd'T'HH:mm:ss'Z' PHP Y-m-d\TH:i:s\Z Python %Y-%m-%dT%H:%M:%SZ C# yyyy-MM-ddTHH:mm:ssZ Node.js toISOString().replace(/.[0-9]+\Z/, 'Z') 注:Node.js中,使用toISOString()转换后的时间格式去除毫秒后即为本接口要求的时间格式。 表4 请求Body参数说明 参数名称 是否必选 参数类型 默认值 说明 displayNbr 是 String(4-31) 无 固话号码,被叫终端上显示的主叫号码,需要提前在订购号码页面申请该号码。 号码格式(固话):国家码+区号+固话,与号码管理页面的“号显号码”保持一致。 若该号码为“暂停”状态,语音通话平台会从该应用下随机选取一个其他可用的固话号码进行外呼。 calleeNbr 是 String(4-31) 无 被叫号码。 手机号码格式:+{国家码}{手机号码}。示例:+86134****2222。 固话格式:+{国家码}{区号}{固话号码},其中区号需去掉首位的0。示例:国家码86,区号0755,固话号码28****01,填写为+8675528****01。 languageType 是 Integer 无 验证码播放的语言类型。 取值范围: 2:中文 preTone 是 String(1-128) 无 播放语音验证码之前需要播放的放音文件名,放音文件需要提前通过放音文件管理页面上传并审核通过才能使用。 当前系统只支持Wave格式的音频文件,文件名如“pretone.wav”。 verifyCode 是 String(2-8) 无 验证码:只支持0~9的数字,最大8位。 如“12345678”。 posTone 否 String(1-128) 无 播放语音验证码之后需要播放的放音文件名。 如果携带该参数,放音文件需要提前通过放音文件管理页面上传并审核通过才能使用。 当前系统只支持Wave格式的音频文件,文件名如“postone.wav”。 如果不携带该参数,系统将在语音验证码播放完毕后结束通话。 times 否 Integer 3 播放次数:0~9。 0表示无限循环。 如果不携带该参数,默认播放3次。 statusUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此字段用于设置SP接收状态上报的URL。 语音通话平台将业务触发过程中通话的状态信息(包括呼出、振铃、摘机和挂机信息)推送至此服务器,SP根据通话状态信息确定用户状态。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收通知。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 feeUrl 否 String(1-128) 无 此参数请采用BASE64编码进行加密。 此参数用于设置SP接收话单上报的URL。 语音通话平台将业务产生的话单推送至此服务器。 URL可填写为http://IP:Port或域名,推荐使用域名,支持http和https。且该域名对应多个服务器,避免单点故障无法接收话单。 URL只能由大小写字母(a-z、A-Z),数字(0-9),中划线(-),英文冒号(:),英文点号(.),以及英文斜杠(/)组成,不支持其它字符。 returnIdlePort 否 String(枚举) false 指示是否需要返回空闲端口数量。 true:需要返回 false:不需要返回 如果不携带该参数,系统默认该参数为false。 userData 否 String(1-256) 无 用户附属信息,此标识由第三方服务器定义,会在后续的通知消息中携带此信息。 不允许携带以下字符:“{”,“}”(即大括号)。 不允许包含中文字符,如果包含中文字符请采用Base64编码。
-
添加企业 添加应用后,需要补充完善企业认证信息(已通过华为云企业实名认证的用户仍需添加企业认证信息),可按照以下步骤进行操作: 请登录并进入语音通话控制台。 进入“企业管理”页面,点击页面右上角的“添加企业”按钮,请阅读并勾选“授权声明”(不勾选无法添加企业信息)。 勾选“授权声明”后,根据页面提示填写企业相关信息。详细可参考企业资质审核标准。若对填写内容有疑问,请联系您的客户经理确认。 营业执照、身份证照等文件支持jpg格式,单个文件最大支持2MB;“其他材料”支持jpg/png/rar/zip格式,多文件需合并为单文件上传,最大支持20MB。请确保上传的文件清晰,所有信息可见。 申请固话号码,请先下载申请函和承诺书模板,填写完成并加盖公章后上传。 如果您需要为子企业添加业务,可点击“选择已有企业”项进行选择;如果您需要新增企业,可直接在文本框中填写企业名称。 点击“提交”,完成添加企业。 审核一般需要2个工作日,企业资料提交后可在“企业管理”页中查看企业审核状态、修改已提交的企业信息或者下载企业资料。 只有审核通过的企业才可以订购号码。 导出企业信息 进入企业管理页面,根据业务类型、企业名称、状态,按需筛选,点击页面右上角的按钮导出相关企业信息。
-
添加应用 语音通话应用是用户使用华为云语音通话服务的载体。请根据您所开展的业务,填写应用信息: 语音通话服务默认可添加5个应用。 应用添加成功后将无法删除且无法修改“业务类型”。 请登录并进入语音通话控制台。 进入“应用管理”页面,点击“添加应用”。 按照页面提示填写应用信息。 应用名称:用户自定义。可以包含中文、英文字母、数字、下划线,不能包含空格,最大长度为64个字符。 业务类型:请根据实际业务场景选择。点此了解各个模式 注:选择业务类型后,若有以下提示,请根据提示执行不同的操作。没有提示请忽略。 提示 说明 您尚未开通权限,去开通 添加应用的业务类型与开通服务时调研表的业务类型不一致,请点击链接跳转到语音通话开通服务调研表页面,填写完成后点击“立即开通”。 业务需审核(1个工作日),请等待审核通过后再添加应用。 您的权限申请还在审核中,请等待 已在语音通话开通服务调研表页面申请开通权限,运营经理审核中,请耐心等待审核结果(1个工作日)。 您的权限申请已被驳回,驳回原因:xxx,去修改 语音通话开通服务调研表页面的某些内容不符合规范,请点击链接跳转到语音通话开通服务调研表页面后按要求修改,修改完成后点击“立即开通”,等待审核通过后(1个工作日)再添加应用。 您的权限已被取消,重新提交 请联系运营经理确认具体情况。确认完成后点击链接跳转到语音通话开通服务调研表页面,填写完成后点击“立即开通”。 业务需审核(1个工作日),请等待审核通过后再添加应用。 是否开通录音: “是否开通录音”选择“是”,并在调用语音通话接口时设置了录音参数,语音通话才会被录音。(已开通录音的应用无法进行“是否开通录音”的修改) “是否开通录音”选择“否”,后续使用应用时若想修改此项,可在该应用对应的“操作”列点击“修改”,“是否开通录音”选择“是”即可。 是否开通语音质检: 该参数仅在“是否开通录音”选择“是”时出现。 只有此处选择“是”,才会开启应用的语音质检功能。 为保证业务合规运营,您授权并同意语音通话服务随机抽查录音进行质检,我们会充分尊重您的隐私,并遵从华为云《隐私政策声明》。 随机抽检录音提示音:用于指定个性化随机抽检录音提示音。 该参数仅在“是否开通录音”和“是否开通语音质检”都选择“是”时出现。 需提前在放音文件管理页面上传并审核通过才可使用。若不设置,则选择“不播放提示音”。 呼叫状态接收地址&呼叫话单接收地址:用于接收语音通话平台推送的呼叫状态或话单的URL地址。 可填写为http://IP:Port或域名,推荐使用域名,支持http和https。 请确保提供的地址正确,且地址前后不要有多余的空格和回车。 被授权通知接收地址:用于接收语音通知业务被授权应用的通知信息的URL地址。如果需要接收被授权通知,则必须填写该地址。 请确保提供的地址正确,且地址前后不要有多余的空格和回车。 企业项目:已开通企业项目,才有该选项。用于设置应用所属的企业项目。若已开通企业管理但无企业项目要求,可选择默认企业项目。点此了解企业管理 企业项目的项目类型分为“商用生产项目”和“测试类项目”,若您的资源是按合同商务扣费,请选择“商用生产项目”类型的企业项目。 已创建的企业项目的类型可进入项目管理页面查看。 若已选择“测试类项目”,请参考测试类项目转商用生产项目将测试类项目转为商用生产项目 点击“提交”。 提交后,点击提示框中的“立即下载”按钮,下载并保存应用APP_Secret。 APP_Secret仅支持首次更新下载,也可在应用管理页面点击“更新”,完成身份验证后下载新的APP_Secret。 应用创建后,可以在应用管理页中查看应用信息,修改应用和添加应用授权。 当“是否开通语音质检”由“是”改为“否”时,需要运营经理审核且审核通过后才能生效,请点击“确认”后耐心等待审核结果。审核结果请在应用详情(点击应用名称左侧的)中查看,如果审核通过,则“是否开通语音质检”显示为“否”,否则仍显示为“是”。 导出应用信息 进入应用管理页面,根据业务类型、应用名称、创建时间、状态,按需筛选,点击页面右上角的按钮导出相关应用信息。
-
创建类别为负载均衡的M CS 对象 使用kubectl连接集群联邦,详细操作请参见使用kubectl连接集群联邦。 创建并编辑 mcs.yaml 文件,文件内容定义如下所示,参数定义请参见表1。 示例YAML定义的MCS对象关联了名为nginx的Service,将nginx的Service注册到华为云ELB的监听器上。 vi mcs.yaml apiVersion: networking.karmada.io/v1alpha1 kind: MultiClusterService metadata: name: nginx namespace: default annotations: karmada.io/elb.id: 2050857a-45ff-4312-8fdb-4a4e2052e7dc karmada.io/elb.projectid: c6629a1623df4596a4e05bb6f0a2e166 karmada.io/elb.port: "802" karmada.io/elb.health-check-flag: "on" spec: ports: - port: 80 types: - LoadBalancer 表1 关键参数说明 参数 是否必填 参数类型 描述 metadata.name 是 String MCS对象的名称,应与关联Service保持一致。 etadata.namespace 否 String MCS对象所在命名空间名称,应与关联Service所在命名空间名称保持一致。不填则默认为default。 spec.types 是 String 流量方向。 实现集群间服务发现能力应配置为CrossCluster; 将服务通过ELB对外暴露应配置为LoadBalancer。 spec.ports.port 否 Integer 关联的Service需要注册到ELB监听器上的服务端口。 spec.consumerClusters.name 否 String Service的访问集群名称,应配置为期望通过MCS实现跨集群访问Service的集群名称。不填则默认设置为所有集群联邦内集群可访问该Service。 karmada.io/elb.id 是 String MCS关联的elb的id,不允许为空。 取值范围:1-32个字符。 karmada.io/elb.projectid 是 String MCS关联的elb所属的项目ID,获取方法请参见获取项目ID。 取值范围:1-32个字符。 karmada.io/elb.port 否 String MCS关联的elb的端口,不填时默认为80。 取值范围:1-65535。 karmada.io/elb.health-check-flag 否 String 是否启用健康检查,可选值为: on:开启 off:不开启 不填写时默认为off。 karmada.io/elb.health-check-option 否 HealthCheck Object 健康检查参数,详情请参见HealthCheck。 说明: 健康检查参数配置示例: karmada.io/elb.health-check-option: '{"protocol":"TCP","delay":"5","connect_port":"80","timeout":"1","max_retries":"1","path":"/wd"}' 在annotation开启健康检查配置的情况下,Service名称的长度不应超过39个字符。 karmada.io/elb.lb-algorithm 否 String 转发算法: ROUND_ROBIN:加权轮询算法。 LEAST_CONNECTIONS:加权最少连接算法。 SOURCE_IP:源IP算法。 不填写时默认为ROUND_ROBIN。 表2 HealthCheck参数说明 参数 是否必填 参数类型 描述 protocol 否 String 健康检查使用的协议。支持TCP/HTTP,默认值是TCP。 connect_port 否 Int 健康检查使用的端口。取值范围[1,65535],为可选参数。 说明: 默认使用后端服务器默认业务端口进行健康检查。指定特定端口后,使用指定的端口进行健康检查。 delay 否 Int 健康检查的延迟时间,以秒为单位,1-50,默认值是5秒。 timeout 否 Int 健康检查的超时时间,以秒为单位,1-50,默认值是10秒。 path 否 String 健康检查的请求URL,当type为HTTP/HTTPS时生效。 以"/"开头,默认为"/"。支持使用字母、数字和短划线(-)、正斜线(/)、半角句号(.)、百分号(%)、半角问号(?)、井号(#)和and(&)以及扩展字符集。长度为1-80个字符。 max_retries 否 Int 最大重试次数,取值范围1-10,默认值是3次。 执行如下命令创建MCS对象。 kubectl apply -f mcs.yaml 创建完成后,可以执行如下命令操作MCS对象。其中nginx为MCS对象的名称。 获取MCS对象:kubectl get mcs nginx 更新MCS对象:kubectl edit mcs nginx 删除MCS对象:kubectl delete mcs nginx
-
准备工作 如您没有可用的ELB实例,需要先创建ELB实例,具体请参考创建独享型负载均衡器。该ELB实例需要满足以下条件: ELB为独享型。 ELB必须支持网络型(TCP/UDP)。 ELB网络类型必须支持私网(有私有IP地址)。 如果ELB与成员集群的网络不在同一VPC内,ELB需要支持开启跨VPC访问的开关。 MCS为跨集群后端工作负载提供统一入口和四层网络访问,因此需要在联邦中提前部署可用的工作负载(Deployment)和服务(Service)。若您无可用工作负载和服务,请参考无状态负载和集群内访问(ClusterIP)创建。 设置集群为underlay网络,支持underlay网络的集群类型请参见设置集群网络。
-
错误码 当您调用API时,如果遇到“APIGW”开头的错误码,请参见API网关错误码进行处理。 表1 错误码 状态码 错误码 错误信息 描述 处理措施 400 RGC.400 Bad Request: {0}. 云服务内部错误,请重试。 请联系技术支持。 400 RGC.1001 bad request for query icc instance. 查询是否开通IAM身份中心实例失败。 请稍后重试。 400 RGC.1002 bad request for register region. 注册区域失败。 请稍后重试。 400 RGC.1003 bad request for start identity center. 启动IAM身份中心失败。 请稍后重试。 400 RGC.1004 bad request for get registered regions. 查询IAM身份中心实例已开通的区域列表失败。 请稍后重试。 400 RGC.1005 the queried region is different from the registered region. 所选主区域和已注册的IAM身份中心的区域不一致。 请重新选择主区域。 400 RGC.1006 create instance fail. 创建IAM身份中心实例失败。 请稍后重试。 400 RGC.1007 create instance status is not enable. IAM身份中心实例状态不可用。 请稍后重试。 400 RGC.1008 create permission set fail. 创建权限失败。 请稍后重试。 400 RGC.1009 create user fail. 创建用户失败。 请稍后重试。 400 RGC.1010 bad request for get identity center service status. 获取IAM身份中心状态失败。 请稍后重试。 400 RGC.1011 bad request for create permission set. 在IIC实例中创建权限集失败。 请稍后重试。 400 RGC.1012 bad request for attach managed policy to permission set. 将系统管理策略附加到权限集失败。 请稍后重试。 400 RGC.1013 bad request for create account assignment. 给账号分配权限失败。 请稍后重试。 400 RGC.1014 bad request for describe account assignment creation status. 获取账号分配创建状态失败。 请稍后重试。 400 RGC.1015 bad request for create group membership. 用户组绑定用户失败。 请稍后重试。 400 RGC.1016 bad request for create group. 创建用户组失败。 请稍后重试。 400 RGC.1017 bad request for create user. 创建IIC用户失败。 请稍后重试。 400 RGC.1018 bad request for get projects. 查询项目信息失败。 请稍后重试。 403 RGC.1019 does not have {0} permissions. 当前账号没有权限。 请检查账号权限。 400 RGC.1021 bad request for create agency. 创建委托失败。 请稍后重试。 400/403 RGC.1022 fail request for assume with service principal. 委托切换失败。 请稍后重试。 400 RGC.1024 bad request for create service linked agency. 创建服务关联委托失败。 请稍后重试。 403 RGC.1028 Not a management account. 当前账号不是管理账号。 请检查账号是否管理账号。 400 RGC.1032 bad request for enable trust service. 启用可信服务失败。 请稍后重试。 400 RGC.1033 organizations service not provision. 组织服务未开通。 请开通组织服务。 400 RGC.1034 bad request for authorization header pattern. Token请求头非法。 请检查authorization请求头是否合法传入。 403 RGC.1035 not found for http header:{0}. 无法找到HTTP请求头。 请检查HTTP请求头是否存在。 400 RGC.1036 bad request for request proof. proof请求头非法。 请检查proof请求头是否合法传入。 400 RGC.1037 bad request for impersonate. 获取凭据失败。 请联系技术支持。 400 RGC.1038 bad request for listRoles. 查询权限列表失败。 请联系技术支持。 400 RGC.1039 create base line group fail. 创建基线用户组失败。 请联系技术支持。 400 RGC.1040 retrieve user fail. 检索用户失败。 请联系技术支持。 400 RGC.1041 describe user fail. 查询用户详情失败。 请联系技术支持。 400 RGC.1042 show compliance details fail. 查询合规性信息失败。 请联系技术支持。 400 RGC.1043 list aggregate compliance fail. 查询资源聚合器合规规则列表失败。 请联系技术支持。 400 RGC.1044 list aggregator fail. 查询资源聚合器列表失败。 请联系技术支持。 400 RGC.1045 bad request for list groups. 请求用户组列表失败。 请联系技术支持。 400 RGC.1046 The user already exists, but the user name is different. IAM身份中心用户已存在,但用户名与预留用户名不同。 请检查用户名是否正确,填写保持一致。 500 RGC.1049 create account failed,failure reason {0}. 创建账号失败。 请稍后重试。 400 RGC.1050 Bad Request:{0} not found. 请求错误,未找到相关资源。 请确认资源是否存在。 400 RGC.1052 The parent is not managed by RGC. 父级组织单元未注册。 请检查父级组织单元是否已注册。 400 RGC.1053 The organization unit child resource is not empty. 当前组织单元的子资源不为空。 请检查是否存在子组织单元或成员账号 400 RGC.1054 The account is not managed by RGC. 当前账号未纳管。 请检查当前账号。 400 RGC.1055 The organization unit is not managed by RGC. 当前组织单元未注册。 请检查当前组织单元。 400 RGC.1056 bad request for query iam assume agency. 切换到成员账号身份失败。 请联系技术支持。 400 RGC.1057 The organization unit is not found. 组织单元不存在。 请检查组织单元是否已注册成功。 400 RGC.1058 The requested control policy does not exist. 控制策略不存在。 请检查操作的控制策略是否存在。 400 RGC.1059 The relationship between the control and the specified target does not exist. 组织单元未启用请求的控制策略。 不允许关闭未开启的控制策略。 400 RGC.1060 The Root and core organizational units cannot implement additional control strategies. root和核心组织单元不允许开启或禁用控制策略。 根组织单元和核心组织单元不允许进行控制策略开启与关闭操作。 400 RGC.1062 Not allowed to perform operations on an OU that is not successfully registered. 未注册的组织单元不能开启或禁用控制策略。 请操作注册成功的组织单元。 400 RGC.1065 The {0} operation is not complete. 操作尚未完成,请稍后重试。 请稍后重试。 400 RGC.1067 The landing zone environment is not set. Landing Zone环境未设置。 请设置Landing Zone环境。 400 RGC.1068 The selected region is invalid. 所选主区域无效。 请检查主区域可用性状态。 400 RGC.1069 The bucket policy is empty. 桶策略为空。 请联系技术支持。 400 RGC.1070 bad request for obs. 请求云服务OBS失败。 请稍后重试。 400 RGC.1072 Get a unexpected status code. 请求云服务Organizations失败。 请联系技术支持。 400 RGC.1073 Org list accounts occur error. 查询组织单元中账号列表失败。 请稍后重试。 400 RGC.1074 Failed to call the API for deleting a stackSetInstance. 调用云服务 RFS 删除stackSet实例失败。 请检查云服务RFS运行是否正常,stackSet实例资源是否正常。 400 RGC.1075 The baseLine control cannot be operated. 基线控制策略不支持开启与禁用操作。 基线控制策略不允许进行控制策略开启与关闭操作。 400 RGC.1076 The control state is {0}, can not do current organization unit operation. 控制策略操作状态异常,不允许进行操作。 请确认控制策略与组织单元的关系处于正确的结束态后再进行操作。 500 RGC.1077 This account has existed,should not be our account,failed reason {0}. 账号已存在。 请检查当前账号是否已存在。 400 RGC.1078 Manage account should not be our set up account. 管理账号不能作为核心账号。 请检查账号,管理账号不能作为核心账号。 500 RGC.1079 Move account Organizations report failed. 移动账号失败。 请联系技术支持。 400 RGC.1080 The core and root organization unit can not be delete or deregister. 不能删除或取消注册核心组织单元和根组织单元。 不能删除或取消注册核心组织单元和根组织单元。 400 RGC.1081 The parent organization unit type could not be core. 父组织单元不能是核心组织单元。 父组织单元不能是核心组织单元。 400 RGC.1082 bad request for create iic user. 创建IAM身份中心用户失败。 请稍后重试。 400 RGC.1083 Create account failed. Reason: The ou type is incorrect. 创建账号失败,组织单元类型不正确。 请检查组织单元类型。 400 RGC.1084 Create account failed. The action is not supported. 创建账号失败,账号状态不支持。 请检查账号当前状态是否为纳管中。 400 RGC.1085 The account already exists or is not managed by the RGC. 账号已经存在或没有被RGC纳管。 请检查账号是否由RGC纳管。 400 RGC.1086 fixed parameters cannot be changed. 固定参数不允许被修改。 请不要修改固定参数。 400 RGC.1087 The landing zone environment has been set, any parameter cannot be changed. Landing Zone环境已经设置完成,参数不能被修改。 请不要修改参数。 400 RGC.1088 organizationUnitId and accountId can not exist together. 组织单元ID与账号ID不能同时作为查询条件。 仅使用组织单元ID或账号ID进行查询。 404 RGC.1089 The account is not found. 账号不存在。 请检查账号是否存在。 400 RGC.1090 create assignment failed, failure reason is {0}. 给账号的IIC用户分配权限失败。 请联系技术支持。 400 RGC.1091 The resource {0} create or deploy failed, you can check detail at RFS view. 资源创建或部署失败,请前往RFS查看详情。 请前往RFS查看详情。 400 RGC.1092 [RFS]The RFS returns a failure message to deploy stackSet instances. 调用云服务RFS部署stackSet实例返回失败。 请检查云服务RFS或对应资源stackSet实例是否正常,正常后请再次重试。 400 RGC.1093 [RFS]The RFS returns a failure message to create stackSet instances. 调用云服务RFS创建stackSet实例返回失败。 请检查云服务RFS或对应资源stackSet实例是否正常,正常后请再次重试。 400 RGC.1094 [RFS]The RFS returns a failure message to create stackSet. 调用云服务RFS创建stackSet返回失败。 请检查云服务RFS或对应资源stackSet是否正常,正常后请再次重试。 400 RGC.1095 The user already exists, but the user details cannot be queried. 用户已存在,但无法查询用户详情。 请稍后重试。 400 RGC.1096 The user already exists, but the email address of the user is different. 账号已存在,账号邮箱与用户之前配置的邮箱不同。 请检查账号邮箱,填写保持一致。 404 RGC.1097 No user information is found. 找不到用户信息。 请联系技术支持。 400 RGC.1098 The account type is not custom, can not be un-enroll. 非自定义账号,不能取消纳管。 请检查要取消纳管的账号是否正确。 400 RGC.1099 The pap returned error. 调用云服务PAP接口失败。 请稍后重试。 400 RGC.1100 The account already exists and is managed by the RGC. 该账号已被RGC纳管。 请检查纳管的账号是否正确。 400 RGC.1102 The account already exists, but the parentOrganizationUnitId is different. 该账号已存在,但父组织单元ID与预留ID不同。 请检查账号所属父组织单元是否正确,填写保持一致。 400 RGC.1103 The account already exists, but the parentOrganizationUnitName is different. 该账号已存在,但父组织单元名称与预留名称不同。 请检查账号所属父组织单元是否正确,填写保持一致。 400 RGC.1104 The create account task is timeout. 创建账号超时。 请稍后重试。 400 RGC.1105 bad request for list entrity. The entrity is empty. 查询账号所属父组织单元失败。 请检查账号信息是否正确。 400 RGC.1106 Org list create account status occur error. 查询创建的账号状态异常。 请检查Organization账号是否正在创建中或Organization服务是否正常,正常后请再次尝试。 400 RGC.1107 The administrator user does not exist. IAM身份中心管理员用户不存在。 请检查账号信息是否正确。 400 RGC.1108 The control detail is not found. 查询控制策略详情失败,控制策略不存在。 请检查控制策略ID是否正确。 400 RGC.1109 The bucket policy does not exist. 查询桶策略失败,该桶策略不存在。 请稍后重试。 400 RGC.1110 Please accept the open beta of resource access service. 账号未开通RGC公测。 请申请开通RGC公测。 404 RGC.1111 not found for http header. HTTP请求头不存在。 请稍后重试。 400 RGC.1112 bad request for invalid user profile. 获取用户配置文件失败。 请稍后重试。 400 RGC.1113 get op svc pki token fail. 获取pkiToken失败。 请联系技术支持。 400 RGC.1114 The account already exists, but the account phone number is different. 设置Landing Zone失败,手机号与之前填写不一致。 请检查账号的电话号码。 400 RGC.1115 phone number is required in domestic. 请填写手机号。 请检查核心组织单元下的账号的手机号码是否存在。 400 RGC.1116 get a empty pki token. 获取 PKIToken 为空。 请联系技术支持。 500 RGC.1117 can't find {0} in v3 or v5 policy. 查询策略失败,策略不存在。 请检查策略名是否正确。 404 RGC.1118 The account type is invalid. 查询核心账号详情失败,账号类型不合法。 请检查查询的核心账号类型是否正确。 500/400 RGC.1119 Rfs list templates occur error. 查询RFS模版失败。 请联系技术支持。 409 RGC.1200 concurrent modification. 设置Landing Zone冲突。 请稍后重试。 400 RGC.1201 The core and root organization unit can not be register. 无法注册根和核心组织单元。 请检查注册的组织单元是否已存在并检查类型。 400 RGC.1202 The account already exists, but the account type is not custom. 当前的账号非自定义账号。 请检查纳管的账号的类型。 400 RGC.1203 The account status is {0}, can not do current account operation. 当前账号无法执行该操作,请检查账号状态。 请检查账号状态。 400 RGC.1204 The organization unit status is {0}, can not do current account operation. 组织单元状态异常,无法进行账户操作。 请检查账号所属的组织单元状态。 400 RGC.1205 The organization unit status is {0}, can not do current organization unit operation. 组织单元状态异常,无法进行组织单元操作。 请检查组织单元状态。 409 RGC.1206 The organization unit conflict, the organization unit is registered. 组织单元已注册成功,不能再次注册。 如果需要再次注册请调用重注册接口。 400 RGC.1207 The parent organization unit type could not be core or root. 父组织单元类型不能是根组织单元。 请检查父组织单元类型。 400 RGC.1208 The organization unit is managed by other management account. 组织单元由其他管理账号管理。 请检查组织单元ID。 404 RGC.1209 No landing zone has been created for this account. 当前账号未开通Landing Zone。 请检查当前账号是否已开通LandingZone。 404 RGC.1210 The landing zone environment status is failed. Landing Zone开通失败,暂不支持该操作。 请检查当前账号是否已成功开通LandingZone。 400 RGC.1211 The organization unit name has existed in Organization,please input unique and unused organization unit name. 组织单元名称重复,请输入唯一的组织单元名称。 请检查要注册的组织单元是否正确。 400 RGC.1212 Failed to query role id from pap. 调用云服务PAP查询权限失败。 请联系技术支持。 400 RGC.1213 Failed to create agency pap. 调用云服务PAP创建委托失败。 请联系技术支持。 400 RGC.1214 Failed to allpy role id pap. 调用云服务PAP为委托授予项目的权限失败。 请联系技术支持。 400 RGC.1215 The account maybe invited to Organization,you need manually create a full access agency named OrganizationAccountAccessAgency to its manage account. 邀请作为Landing Zone核心账号的子账号,需要创建该账号到管理账号的委托,委托应该包括子账号所有权限,该权限名称为OrganizationAccountAccessAgency。 请为邀请的子账号创建Full Access权限的委托OrganizationAccountAccessAgency,委托给管理账号。 400 RGC.1216 bad request for delete service linked agency. 调用云服务PAP删除服务关联委托失败。 请联系技术支持。 400 RGC.1217 IAM list projects occur error. 调用云服务IAM列出项目失败。 请联系技术支持。 400 RGC.1218 The account status conflict, the account is enrolled. 当前账号已纳管。 当前账号已为纳管状态,无需再次纳管。 400 RGC.1220 Domain tag not found, domainId is {0}. 未查询到租户标签。 请确认租户ID是否正确。 400 RGC.1221 Domain info not found, domainId is {0}. 未查询到租户信息。 请确认租户ID是否正确。 400 RGC.1222 email is required in global. 请填写Email信息。 请输入Email。 400 RGC.1223 Failed to create role. 创建自定义策略失败。 请联系技术支持。 400 RGC.1224 startTime should not be later than endTime. 请正确填写时间段,开始时间不能晚于结束时间。 请正确填写时间区域。 400 RGC.1225 Some accounts under the organization unit are in the Operation state. 组织单元下存在正在操作的账号。 请稍后重试。 403 RGC.1226 Can't find the ou, ouId is {0}. 组织单元不存在。 请检查组织单元ID。 403 RGC.1227 Can't find the account, accountId is {0}. 账号不存在。 请检查账号ID。 400 RGC.1230 Should not have custom account. 不支持自定义账号。 请检查账号类型。 400 RGC.1231 Should have one Core Organization Unit. 必须包含核心组织单元。 请检查组织单元类型。 400 RGC.1232 Core Organization Unit should has two accounts. 核心组织单元必须包含两个账号。 请检查账号个数。 400 RGC.1233 Core Organization can only has two accounts,one must be AUDIT type,another one must be LOG GING type. Landing Zone只有两个核心账号,一个为审计账号,一个为日志账号。 请调整输入参数。 400 RGC.1234 An existed Core Account has been created,the same name should be given. Landing Zone重新设置时,核心账号不能修改名称。 请调整输入参数。 400 RGC.1235 Audit account's notification email should be given. 审计账号需要填写通知邮箱。 请调整输入参数。 400 RGC.1236 When exist account scene, account name should be given. 账号已存在,但账号名称为空。 请调整输入参数。 400 RGC.1237 The organization name is empty. 组织单元名称为空。 请正确填写组织单元名称。 403 RGC.1238 The parent organization unit not found. 父组织单元不存在。 请检查是否存在父组织单元。 400 RGC.1239 When exist account scene, account id and name does not match. 账号已存在,但账号ID和名称不匹配。 请调整输入参数。 父主题: 附录
-
支持的授权项 策略包含系统策略和自定义策略,如果系统策略不满足授权要求,管理员可以创建自定义策略,并通过给用户组授予自定义策略来进行精细的访问控制。策略支持的操作与API相对应,授权项列表说明如下: 权限:允许或拒绝对指定资源在特定条件下进行某项操作。 对应API接口:自定义策略实际调用的API接口。 授权项:自定义策略中支持的Action,在自定义策略中的Action中写入授权项,可以实现授权项对应的权限功能。 依赖的授权项:部分Action存在对其他Action的依赖,需要将依赖的Action同时写入授权项,才能实现对应的权限功能。 IAM项目(Project)/企业项目(Enterprise Project):自定义策略的授权范围,包括IAM项目与企业项目。授权范围如果同时支持IAM项目和企业项目,表示此授权项对应的自定义策略,可以在IAM和企业管理两个服务中给用户组授权并生效。如果仅支持IAM项目,不支持企业项目,表示仅能在IAM中给用户组授权并生效,如果在企业管理中授权,则该自定义策略不生效。 关于IAM项目与企业项目的区别,详情请参见:IAM与企业管理的区别。 “√”表示支持,“x”表示暂不支持。 DLI 支持自定义策略授权项如下表所示。 表1 API授权项列表 权限 对应API接口 授权项 IAM项目 (Project) 企业项目 (Enterprise Project) 创建队列 POST /v1.0/{project_id}/queues dli:queue:createQueue √ √ 删除队列 DELETE /v1.0/{project_id}/queues/{queue_name} dli:queue:dropQueue √ √ 提交作业 POST /v1.0/{project_id}/jobs/submit-job dli:queue:submitJob √ × 取消作业 DELETE /v1.0/{project_id}/jobs/{job_id} dli:queue:cancelJob √ × 查看其他用户具备的队列权限 GET /v1.0/{project_id}/queues/{queue_name}/users dli:queue:showPrivileges √ × 重启队列 PUT /v1.0/{project_id}/queues/{queue_name}/action dli:queue:restart √ × 扩缩容队列 PUT /v1.0/{project_id}/queues/{queue_name}/action dli:queue:scaleQueue √ × 赋予指定用户弹性资源权限 PUT /v1.0/{project_id}/user-authorization dli:elasticresourcepool:grantPrivilege √ × 移除指定用户弹性资源池权限 PUT /v1.0/{project_id}/user-authorization dli:elasticresourcepool:revokePrivilege √ × 创建数据库 POST /v1.0/{project_id}/databases dli:database:createDatabase √ × 删除数据库 DELETE /v1.0/{project_id}/databases/{database_name} dli:database:dropDatabase √ × 修改数据库配置 POST /v1.0/{project_id}/jobs/submit-job dli:database:alterDatabaseProperties √ × 将SQL语句解释为执行计划 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:explain √ × 创建表 POST /v1.0/{project_id}/databases/{database_name}/tables dli:database:createTable √ × 创建视图 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createView √ × 创建函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createFunction √ × 描述函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:describeFunction √ × 删除函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:dropFunction √ × 显示函数 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showFunctions √ × 创建角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:createRole √ × 删除角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:dropRole √ × 显示角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showRoles √ × 显示所有角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showAllRoles √ × 绑定角色 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:grantRole √ × 解除角色绑定 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:revokeRole √ × 显示所有角色和用户的绑定关系 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:database:showUsers √ × 查看其他用户具备的数据库权限 GET /v1.0/{project_id}/databases/{database_name}/users dli:database:showPrivileges √ × 显示数据库 GET /v1.0/{project_id}/databases dli:database:displayDatabase √ × 显示所有数据库 GET /v1.0/{project_id}/databases dli:database:displayAllDatabases √ × 显示所有表 GET /v1.0/{project_id}/databases dli:database:displayAllTables √ × 赋予指定用户数据库权限 PUT /v1.0/{project_id}/user-authorization dli:database:grantPrivilege √ × 移除指定用户数据库权限 PUT /v1.0/{project_id}/user-authorization dli:database:revokePrivilege √ × 删除表 DELETE /v1.0/{project_id}/databases/{database_name}/tables/{table_name} dli:table:dropTable √ × 显示表结构 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name} dli:table:describeTable √ × 查询表 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview dli:table:select √ × 显示表配置 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:showTableProperties √ × 显示建表语句 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/preview dli:table:showCreateTable √ × 显示所有分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:showPartitions √ × 设置表配置 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableSetProperties √ × 添加列 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableAddColumns √ × 在分区表中添加分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableAddPartition √ × 重命名表分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRenamePartition √ × 删除分区表的分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableDropPartition √ × 恢复表分区 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRecoverPartition √ × 重命名表 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableRename √ × 设置分区路径 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterTableSetLocation √ × 插入表数据 POST /v1.0/{project_id}/jobs/submit-job,语句调用 dli:table:insertIntoTable √ × 重写表数据 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:insertOverwriteTable √ × 查看其他用户具备的表权限 GET /v1.0/{project_id}/databases/{database_name}/tables/{table_name}/users dli:table:showPrivileges √ × 清空表 POST /v1.0/{project_id}/jobs/submit-job dli:table:truncateTable √ × 更新表 POST /v1.0/{project_id}/jobs/submit-job dli:table:update √ × 删除表数据 POST /v1.0/{project_id}/jobs/submit-job dli:table:delete √ × 修改列信息 POST /v1.0/{project_id}/jobs/submit-job dli:table:alterTableChangeColumn √ × 删除列 POST /v1.0/{project_id}/jobs/submit-job dli:table:alterTableDropColumns √ × 显示数据段 POST /v1.0/{project_id}/jobs/submit-job dli:table:showSegments √ × 合并数据段 POST /v1.0/{project_id}/jobs/submit-job dli:table:compaction √ × 修改视图 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:table:alterView √ × 显示表结构 POST /v1.0/{project_id}/jobs/submit-job,执行对应SQL dli:table:describeTable √ × 赋予指定用户数据表权限 PUT /v1.0/{project_id}/user-authorization dli:table:grantPrivilege √ × 移除指定用户数据表权限 PUT /v1.0/{project_id}/user-authorization dli:table:revokePrivilege √ × 查看其它用户的安全认证信息权限列表 GET /v1.0/{project_id}/datasource/auth-infos/{auth_name}/users dli:datasourceauth:showPrivileges √ × 使用安全认证信息 POST /v1.0/{project_id}/jobs/submit-job dli:datasourceauth:useAuth √ × 删除安全认证信息 DELETE /v2.0/{project_id}/datasource/auth-infos/{auth_info_name} dli:datasourceauth:dropAuth √ × 更新安全认证信息 PUT /v2.0/{project_id}/datasource/auth-infos dli:datasourceauth:updateAuth √ × 赋予指定用户安全认证权限 PUT /v1.0/{project_id}/user-authorization dli:datasourceauth:grantPrivilege √ × 移除指定用户安全认证权限 PUT /v1.0/{project_id}/user-authorization dli:datasourceauth:revokePrivilege √ × 移除指定用户作业权限 PUT /v1.0/{{project_id}}/authorization dli:jobs:revokePrivilege √ × 查询列 POST /v1.0/{project_id}/jobs/submit-job,SQL语句调用 dli:column:select √ × 赋予指定用户列权限 PUT /v1.0/{project_id}/user-authorization dli:column:grantPrivilege √ × 移除指定用户列权限 PUT /v1.0/{project_id}/user-authorization dli:column:revokePrivilege √ × 查询flink作业列表 GET /v1.0/{project_id}/streaming/jobs dli:jobs:listAll √ × 查询flink作业详情 GET /v1.0/{project_id}/streaming/jobs/{job_id} dli:jobs:get √ × 创建flink SQL作业 POST /v1.0/{project_id}/streaming/sql-jobs dli:jobs:create √ × 创建flinkJar作业 POST /v1.0/{project_id}/streaming/flink-jobs dli:jobs:create √ × 更新flinkSQL作业 PUT /v1.0/{project_id}/streaming/sql-jobs/{job_id} dli:jobs:update √ × 更新flinkJar作业 PUT /v1.0/{project_id}/streaming/flink-jobs/{job_id} dli:jobs:update √ × 删除flink作业 DELETE /v1.0/{project_id}/streaming/jobs/{job_id} dli:jobs:delete √ × 批量运行flink作业 POST /v1.0/{project_id}/streaming/jobs/run dli:jobs:start √ × 停止flink作业 POST /v1.0/{project_id}/streaming/jobs/stopob_id/stop dli:jobs:stop √ ×
-
响应示例 { "resources": [ { "resource_detail": null, "resource_id": "test1", "resource_name": "resouece1", "tags": [ { "key": "key1", "value": "value1" }, { "key": "key2", "value": "value1" } ] } ], "total_count": 1000 }
-
请求参数 表3 请求Body参数 参数 是否必选 参数类型 描述 without_any_tag 否 Boolean 是否不包含任意一个标签。默认值false。 true:不包含任意一个标签。 false:指定标签。 tags 否 Array of objects 包含标签。请参考tags。 最多支持20个标签。 每个资源中的键不能重复,同一个键中值不能重复。 无tag过滤条件时返回全量数据。 matches 否 Array of objects 搜索字段。 请参考matches。 表4 tags 参数 是否必选 参数类型 描述 key 是 String 键。 标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : +-@,但首尾不能含有空格,不能以_sys_开头。 values 是 Array of strings 值列表。 标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : +-@,但首尾不能含有空格。 value可为空数组但不可缺省。 如果values为空列表,则表示any_value(查询任意value)。value之间为或的关系。 表5 matches 参数 是否必选 参数类型 描述 key 是 String 键。当前仅支持resource_name。 resource_name:资源名称。 默认按输入的资源名称前缀模糊搜索。 value 是 String 值。每个值最大长度255。
-
请求示例 { "tags":[ { "key":"key1", "values":[ "value1", "value2" ] }, { "key":"key2", "values":[ "value1", "value2" ] } ], "matches":[ { "key":"resource_name", "value":"resource1" } ], "without_any_tag":"false" }
-
URI POST /v3/{project_id}/{resource_type}/resource-instances/filter 表1 路径参数 参数 是否必选 参数类型 描述 project_id 是 String 项目编号,用于资源隔离。获取方式请参考获取项目ID。 resource_type 是 String 资源类型。 dli_queue:队列 dli_elastic_resource_pool:弹性资源池 dli_enhanced_datasource:增强型跨源连接 dli_database:数据库 dli_package_resource:资源包(不支持指定有Module ID的内置资源包) dli_flink_job:Flink作业 表2 Query参数 参数 是否必选 参数类型 描述 limit 否 Integer 每页显示条数,默认为1000。 offset 否 Integer 查询结果偏移量,默认为0。
-
请求示例 新建名为test的Flink Jar作业,并设置作业执行在testQueue上,设置作业运行所使用的CU数、开启作业日志。 { "name": "test", "desc": "job for test", "queue_name": "testQueue", "manager_cu_number": 1, "cu_number": 2, "parallel_number": 1, "tm_cus": 1, "tm_slot_num": 1, "log_enabled": true, "obs_bucket": "bucketName", "smn_topic": "topic", "main_class": "org.apache.flink.examples.streaming.JavaQueueStream", "restart_when_exception": false, "entrypoint": "javaQueueStream.jar", "entrypoint_args":"-windowSize 2000 -rate 3", "dependency_jars": [ "myGroup/test.jar", "myGroup/test1.jar" ], "dependency_files": [ "myGroup/test.csv", "myGroup/test1.csv" ] }
-
响应消息 表4 响应参数说明 参数名称 是否必选 参数类型 说明 is_success 否 String 执行请求是否成功。“true”表示请求执行成功。 message 否 String 消息内容。 job 否 Object 作业状态信息。具体请参考表5。 表5 job参数说明 参数名称 是否必选 参数类型 说明 job_id 是 Long 作业ID。 status_name 否 String 当前状态名称。 status_desc 否 String 当前状态描述。包含异常状态原因及建议。
-
请求消息 表2 参数说明 参数名称 是否必选 参数类型 说明 name 是 String 作业名称。长度限制:1-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 queue_name 否 String 队列名称。长度限制:0-128个字符。 cu_number 否 Integer 用户为作业选择的CU数量。 manager_cu_number 否 Integer 用户为作业选择的管理节点CU数量,对应为flink jobmanager数量。默认值为“1”。 parallel_number 否 Integer 用户为作业选择的并发量。 log_enabled 否 Boolean 是否开启作业日志。 开启:true 关闭:false 默认:false obs_bucket 否 String 当“log_enabled”为“true”时, 用户授权保存作业日志的OBS桶名。 smn_topic 否 String 当作业异常时,向该 SMN 主题推送告警信息。 main_class 否 String 作业入口类。 entrypoint_args 否 String 作业入口类参数,多个参数之间空格分隔。 restart_when_exception 否 Boolean 是否开启异常重启功能,默认值为“false”。 entrypoint 否 String 用户已上传到DLI资源管理系统的程序包名,用户自定义作业主类所在的jar包。 dependency_jars 否 Array of Strings 用户已上传到DLI资源管理系统的程序包名,用户自定义作业的其他依赖包。 示例“myGroup/test.jar,myGroup/test1.jar”。 dependency_files 否 Array of Strings 用户已上传到DLI资源管理系统的资源包名,用户自定义作业的依赖文件。 示例:"myGroup/test.cvs,myGroup/test1.csv"。 通过在应用程序中添加以下内容可访问对应的依赖文件。其中,“fileName”为需要访问的文件名,“ClassName”为需要访问该文件的类名。 ClassName.class.getClassLoader().getResource("userData/fileName") tm_cus 否 Integer 每个taskmanager的CU数,默认值为“1”。 tm_slot_num 否 Integer 每个taskmanager的slot数,默认值为“(parallel_number*tm_cus)/(cu_number-manager_cu_number)”。 feature 否 String 作业特性。表示用户作业使用的Flink镜像类型。 basic:表示使用DLI提供的基础Flink镜像。 custom:表示使用用户自定义的Flink镜像。 flink_version 否 String Flink版本。当用户设置“feature”为“basic”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用的DLI基础Flink镜像的版本。 image 否 String 自定义镜像 。格式为:组织名/镜像名:镜像版本。 当用户设置“feature”为“custom”时,该参数生效。用户可通过与“feature”参数配合使用,指定作业运行使用自定义的Flink镜像。关于如何使用自定义镜像,请参考《 数据湖探索 用户指南》。 resume_checkpoint 否 Boolean 异常重启是否从checkpoint恢复。 resume_max_num 否 Integer 异常重试最大次数,单位:次/小时。取值范围:-1或大于0。默认值为“-1”,表示无限次数。 checkpoint_path 否 String 用户Jar中checkpoint的储存地址,不同作业路径需要保持不同。 tags 否 Array of Objects Flink jar作业的标签。具体请参考表3。 runtime_config 否 String Flink作业运行时自定义优化参数。 表3 tags参数 参数名称 是否必选 参数类型 说明 key 是 String 标签的键。 说明: 标签的键的最大长度为128个字符,标签的键可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格,不能以_sys_开头。 value 是 String 标签的值。 说明: 标签值的最大长度为255个字符,标签的值可以包含任意语种字母、数字、空格和_ . : =+-@ ,但首尾不能含有空格。
-
请求示例 更新已有的SQL作业,更新后的作业名称为myjob,以共享模式运行在testQueue上。 { "name": "myjob", "desc": "这是我的第一个作业", "queue_name": "testQueue", "sql_body": "select * from source_table", "run_mode": "shared_cluster", "cu_number": 4, "parallel_number": 4, "checkpoint_enabled": false, "checkpoint_mode": "exactly_once", "checkpoint_interval": 10, "obs_bucket": "", "log_enabled": false, "smn_topic": "", "restart_when_exception": false, "idle_state_retention": 3600, "edge_group_ids": [ "62de1e1c-066e-48a8-a79d-f461a31b2ee1", "2eb00f85-99f2-4144-bcb7-d39ff47f9002" ], "dirty_data_strategy": "0", "udf_jar_url": "group/test.jar" }
-
请求消息 表2 请求参数说明 参数名称 是否必选 参数类型 说明 name 否 String 作业名称。长度限制:0-57个字符。 desc 否 String 作业描述。长度限制:0-512个字符。 queue_name 否 String 队列名称。长度限制:0-128个字符。 sql_body 否 String Stream SQL语句,至少包含source, query, sink三个部分。长度限制:0-1024*1024个字符。 run_mode 否 String 作业运行模式: shared_cluster:共享。 exclusive_cluster:独享。 edge_node:边缘节点。 默认值为“shared_cluster”。 cu_number 否 Integer 用户为作业选择的CU数量。默认值为“2”。 parallel_number 否 Integer 用户设置的作业并行数目。默认值为“1”。 checkpoint_enabled 否 Boolean 是否开启作业自动快照功能。 开启:true 关闭:false 默认:false checkpoint_mode 否 Integer 快照模式,。两种可选: 1:表示exactly_once,数据只被消费一次。 2:at_least_once,数据至少被消费一次。 默认值为1。 checkpoint_interval 否 Integer 快照时间间隔。单位为秒,默认值为“10”。 obs_bucket 否 String 当“checkpoint_enabled”为“true”时,该参数是用户授权保存快照的OBS桶名称。 当“log_enabled” 为“true”时,该参数是用户授权保存作业日志的OBS桶名称。 log_enabled 否 Boolean 是否开启作业的日志上传到用户的OBS功能。默认为“false”。 smn_topic 否 String 当作业异常时,向该SMN主题推送告警信息。 restart_when_exception 否 Boolean 是否开启作业异常自动重启。默认为“false”。 idle_state_retention 否 Integer 空闲状态过期周期,单位为秒,默认值为“3600”。 edge_group_ids 否 Array of Strings 边缘计算组ID列表, 多个ID以逗号分隔。 dirty_data_strategy 否 String 作业脏数据策略。 “2:obsDir”:保存,obsDir表示脏数据存储路径。 “1”:抛出异常。 “0”:忽略。 默认值为“0”。 udf_jar_url 否 String 用户已上传到DLI资源管理系统的资源包名,用户sql作业的udf jar通过该参数传入。 manager_cu_number 否 Integer 用户为作业选择的管理单元(jobmanager)CU数量,默认值为“1”。 tm_cus 否 Integer 每个taskmanager的CU数,默认值为“1”。 tm_slot_num 否 Integer 每个taskmanager的slot数,默认值为“(parallel_number*tm_cus)/(cu_number-manager_cu_number)”。 operator_config 否 String 算子的并行度配置。 resume_checkpoint 否 Boolean 异常重启是否从checkpoint恢复。 resume_max_num 否 Integer 异常重试最大次数,单位:次/小时。取值范围:-1或大于0。默认值为“-1”,表示无限次数。 static_estimator_config 否 String 每个算子的流量/命中率配置,json格式的字符串。例如: {"operator_list":[{"id":"0a448493b4782967b150582570326227","rate_factor":0.55},{"id":"6d2677a0ecc3fd8df0b72ec675edf8f4","rate_factor":1},{"id":"ea632d67b7d595e5b851708ae9ad79d6","rate_factor":0.55},{"id":"bc764cd8ddf7a0cff126f51c16239658","output_rate":2000}]} runtime_config 否 String Flink作业运行时自定义优化参数。 flink_version 否 String Flink版本。当前只支持1.10和1.12。
-
响应参数 表9 响应Body参数 参数 参数类型 描述 credential Object 认证结果信息。 表10 credential 参数 参数类型 描述 expires_at String AK/SK和securitytoken的过期时间。响应参数为UTC时间格式,北京时间为UTC+8小时。 如返回: "expires_at": "2020-01-08T02:56:19.587000Z" 北京时间:2020-01-08 10:56:19.587 access String 获取的AK。 secret String 获取的SK。 securitytoken String securitytoken是将所获的AK、SK等信息进行加密后的字符串。
-
请求示例 填写"session_user"参数,即委托方对应的企业用户信息,包含委托方对应的企业用户名。 POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens { "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600, "session_user": { "name": "SessionUserName" } } } } } 填写"policy"参数,即用户自定义策略的信息,用于限制获取到的临时访问密钥和securitytoken的权限(当前仅适用限制OBS服务的权限)。如果填写此参数,则临时访问密钥和securitytoken的权限为:委托具有的权限和policy参数限制的权限交集。 POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens { "auth": { "identity": { "methods": [ "assume_role" ], "policy": { "Version": "1.1", "Statement": [{ "Effect": "allow", "Action": [ "obs:object:*" ], "Resource": ["obs:*:*:object:*"], "Condition": { "StringEquals": { "obs:prefix": ["public"] } } }] }, "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600 } } } } 不填写"session_user"和policy参数。 POST https://iam.myhuaweicloud.com/v3.0/OS-CREDENTIAL/securitytokens { "auth": { "identity": { "methods": [ "assume_role" ], "assume_role": { "domain_name": "IAMDomainA", "agency_name": "IAMAgency", "duration_seconds": 3600 } } } }
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- ...
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章