'1.0', 'info' => ['style' => 'RPC', 'product' => 'saf', 'version' => '2019-05-21'], 'directories' => [ [ 'children' => ['ExecuteRequest'], 'type' => 'directory', 'title' => '国内公共服务调用', 'id' => 45868, ], [ 'children' => ['ExecuteRequestML', 'ExecuteRequestSG'], 'type' => 'directory', 'title' => '海外公共服务调用', 'id' => 45870, ], [ 'children' => ['RequestDecision'], 'type' => 'directory', 'title' => '自定义事件服务调用', 'id' => 45873, ], ], 'components' => [ 'schemas' => [], ], 'apis' => [ 'ExecuteRequest' => [ 'summary' => '风险检测接口,该接口支持公共服务调用和自定义事件调用。', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '48720', 'abilityTreeNodes' => ['FEATUREsaf7L0MVB'], ], 'parameters' => [ [ 'name' => 'ServiceParameters', 'in' => 'query', 'schema' => ['description' => '服务入参,Json格式的字符串,完整Json字符串信息。如果是自定义事件,这里需要添加eventCode属性。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"accountId": "1233***"}'], ], [ 'name' => 'Service', 'in' => 'query', 'schema' => ['description' => '服务产品码。如果是自定义事件,这里填saf_de。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'account_abuse_pro'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'Code' => ['description' => '状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'Message' => ['description' => '结果信息。', 'type' => 'string', 'example' => 'OK'], 'Data' => ['description' => '数据信息,包含:tags、score、extend等字段。', 'type' => 'object', 'example' => '{"score": 80.4, "tags": "ra0601,rnk0002,rn0312"}'], 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A5F41DC6-2070-5CE7-8B2D-7A23D882932D'], 'AccessDeniedDetail' => [ 'description' => '无权限诊断详情。', 'type' => 'object', 'properties' => [ 'AuthAction' => ['description' => '访问者尝试执行的具体操作(如 s3:PutObject, ec2:DescribeInstances 等)。', 'type' => 'string', 'example' => 'yundun-saf:Execute'], 'AuthPrincipalType' => ['description' => '请求主体的身份类型。'."\n" .'- SubUser:子账号(主账号创建的子用户)。'."\n" .'- AssumedRoleUser:角色(通过 AssumeRole 操作获得的临时身份)。', 'type' => 'string', 'example' => 'SubUser'], 'AuthPrincipalOwnerId' => ['description' => '发起请求的访问主体所属的云账号UID。', 'type' => 'string', 'example' => '178059440630****'], 'AuthPrincipalDisplayName' => ['description' => '请求主体的可读标识名称(如用户名、角色名)。', 'type' => 'string', 'example' => '29918048924096****'], 'PolicyType' => ['description' => '标识无权限场景下的策略作用范围及类型'."\n" .'- AccountLevelIdentityBasedPolicy:账号层级身份策略(作用于整个云账号)。'."\n" .'- ResourceGroupLevelIdentityBasedPolicy:资源组层级身份策略(作用于指定资源组)。'."\n" .'- SessionPolicy:角色会话策略(临时会话生效的附加策略)。'."\n" .'- ControlPolicy:管控策略(核心权限控制策略)。'."\n" .'- AssumeRolePolicy:角色信任策略(定义角色被哪些实体信任)。', 'type' => 'string', 'example' => 'AccountLevelIdentityBasedPolicy'], 'NoPermissionType' => ['description' => '无权限的具体判定类型。'."\n" .'- ImplicitDeny:隐式拒绝(无显式授权)。'."\n" .'- ExplicitDeny:显式拒绝(策略中明确拒绝该操作)。', 'type' => 'string', 'example' => 'ImplicitDeny'], 'EncodedDiagnosticMessage' => ['description' => 'Base64编码的权限诊断日志,用于问题排查和自动化分析。', 'type' => 'string', 'example' => 'AQIBIAAAA...r+ow=='], ], ], ], ], ], ], 'title' => '多个场景风险识别检测', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '15000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequest'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"OK\\",\\n \\"Data\\": {\\n \\"score\\": 80.4,\\n \\"tags\\": \\"ra0601,rnk0002,rn0312\\"\\n },\\n \\"RequestId\\": \\"A5F41DC6-2070-5CE7-8B2D-7A23D882932D\\",\\n \\"AccessDeniedDetail\\": {\\n \\"AuthAction\\": \\"yundun-saf:Execute\\",\\n \\"AuthPrincipalType\\": \\"SubUser\\",\\n \\"AuthPrincipalOwnerId\\": \\"178059440630****\\",\\n \\"AuthPrincipalDisplayName\\": \\"29918048924096****\\",\\n \\"PolicyType\\": \\"AccountLevelIdentityBasedPolicy\\",\\n \\"NoPermissionType\\": \\"ImplicitDeny\\",\\n \\"EncodedDiagnosticMessage\\": \\"AQIBIAAAA...r+ow==\\"\\n }\\n}","type":"json"}]', ], 'ExecuteRequestML' => [ 'summary' => '风险检测接口,该接口只支持自定义事件调用,并且只适用于马来西亚区域。', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'readAndWrite', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '48721', 'abilityTreeNodes' => ['FEATUREsaf6MRPQF'], ], 'parameters' => [ [ 'name' => 'ServiceParameters', 'in' => 'query', 'schema' => ['description' => '服务入参,Json格式的字符串,完整Json字符串信息。这里需要添加自定义事件的eventCode属性。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"accountId": "1233***"}'], ], [ 'name' => 'Service', 'in' => 'query', 'schema' => ['description' => '服务产品码。因为该接口只支持自定义事件,所以这里填saf_de。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'saf_de'], ], [ 'name' => 'Lang', 'in' => 'query', 'schema' => ['description' => '语言。', 'type' => 'string', 'required' => false, 'example' => 'en', 'default' => 'en-us'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'Code' => ['description' => '状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'Message' => ['description' => '结果信息。', 'type' => 'string', 'example' => 'OK'], 'Data' => ['description' => '数据信息,包含:tags、score、extend等字段。', 'type' => 'object', 'example' => '{"score": 80.4, "tags": "ra0601,rnk0002,rn0312"}'], 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A5F41DC6-2070-5CE7-8B2D-7A23D882932D'], ], 'description' => '', ], ], ], 'title' => '调用决策引擎马来集群', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequestML'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"OK\\",\\n \\"Data\\": {\\n \\"score\\": 80.4,\\n \\"tags\\": \\"ra0601,rnk0002,rn0312\\"\\n },\\n \\"RequestId\\": \\"A5F41DC6-2070-5CE7-8B2D-7A23D882932D\\"\\n}","type":"json"}]', ], 'ExecuteRequestSG' => [ 'summary' => '风险检测接口,该接口支持公共服务调用和自定义事件调用。', 'methods' => ['post', 'get'], 'schemes' => ['https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '48722', 'abilityTreeNodes' => ['FEATUREsaf6MRPQF'], ], 'parameters' => [ [ 'name' => 'ServiceParameters', 'in' => 'query', 'schema' => ['description' => '服务入参,Json格式的字符串,完整Json字符串信息。如果是自定义事件,这里需要添加eventCode属性。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => '{"accountId": "1233***"}'], ], [ 'name' => 'Service', 'in' => 'query', 'schema' => ['description' => '服务产品码。如果是自定义事件,这里填saf_de。', 'type' => 'string', 'required' => true, 'docRequired' => true, 'example' => 'account_abuse_intl_pro'], ], [ 'name' => 'Lang', 'in' => 'query', 'schema' => ['description' => '语言。', 'type' => 'string', 'required' => false, 'example' => 'en', 'default' => 'en-us'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'type' => 'object', 'properties' => [ 'Code' => ['description' => '状态码。', 'type' => 'integer', 'format' => 'int32', 'example' => '200'], 'Message' => ['description' => '结果信息。', 'type' => 'string', 'example' => 'OK'], 'Data' => ['description' => '数据信息,包含:tags、score、extend等字段。', 'type' => 'object', 'example' => '{"score": 80.4, "tags": "ra0601,rnk0002,rn0312"}'], 'RequestId' => ['description' => '请求ID。', 'type' => 'string', 'example' => 'A5F41DC6-2070-5CE7-8B2D-7A23D882932D'], ], 'description' => '', ], ], ], 'title' => '调用决策引擎新加坡集群', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequestSG'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Code\\": 200,\\n \\"Message\\": \\"OK\\",\\n \\"Data\\": {\\n \\"score\\": 80.4,\\n \\"tags\\": \\"ra0601,rnk0002,rn0312\\"\\n },\\n \\"RequestId\\": \\"A5F41DC6-2070-5CE7-8B2D-7A23D882932D\\"\\n}","type":"json"}]', ], 'RequestDecision' => [ 'summary' => '风险检测接口,该接口只支持自定义事件调用。', 'methods' => ['post'], 'schemes' => ['http', 'https'], 'security' => [ [ 'AK' => [], ], ], 'operationType' => 'read', 'deprecated' => false, 'systemTags' => [ 'operationType' => 'none', 'riskType' => 'none', 'chargeType' => 'paid', 'abilityTreeCode' => '114081', 'abilityTreeNodes' => ['FEATUREsaf6MRPQF'], ], 'parameters' => [ [ 'name' => 'ServiceParameters', 'in' => 'query', 'schema' => ['description' => '服务入参,Json格式的字符串,完整Json字符串信息。', 'type' => 'string', 'required' => false, 'example' => '{"accountId": "1233***"}'], ], [ 'name' => 'EventCode', 'in' => 'query', 'schema' => ['description' => '事件编码。', 'type' => 'string', 'required' => false, 'example' => 'de_*'], ], ], 'responses' => [ 200 => [ 'schema' => [ 'title' => 'Schema of Response', 'description' => 'Schema of Response', 'type' => 'object', 'properties' => [ 'RequestId' => ['title' => 'Id of the request', 'description' => '请求ID。', 'type' => 'string', 'example' => 'A5F41DC6-2070-5CE7-8B2D-7A23D882932D'], 'Code' => ['description' => '状态码。', 'type' => 'integer', 'format' => 'int64', 'example' => '200'], 'Message' => ['description' => '结果信息。', 'type' => 'string', 'example' => 'OK'], 'Data' => ['description' => '数据信息,包含:tags、score、extend等字段。', 'type' => 'object', 'example' => '{"score": 80.4, "tags": "ra0601,rnk0002,rn0312"}'], ], ], ], ], 'title' => '调用决策引擎自定义事件', 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RequestDecision'], ], ], 'ramActions' => [ [ 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A5F41DC6-2070-5CE7-8B2D-7A23D882932D\\",\\n \\"Code\\": 200,\\n \\"Message\\": \\"OK\\",\\n \\"Data\\": {\\n \\"score\\": 80.4,\\n \\"tags\\": \\"ra0601,rnk0002,rn0312\\"\\n }\\n}","type":"json"}]', ], ], 'endpoints' => [ ['regionId' => 'ap-southeast-1', 'regionName' => '新加坡', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.ap-southeast-1.aliyuncs.com', 'endpoint' => 'saf.ap-southeast-1.aliyuncs.com', 'vpc' => 'saf-vpc.ap-southeast-1.aliyuncs.com'], ['regionId' => 'ap-southeast-3', 'regionName' => '马来西亚(吉隆坡)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.ap-southeast-3.aliyuncs.com', 'endpoint' => 'saf.ap-southeast-3.aliyuncs.com', 'vpc' => 'saf-vpc.ap-southeast-3.aliyuncs.com'], ['regionId' => 'cn-beijing', 'regionName' => '华北2(北京)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-beijing.aliyuncs.com', 'endpoint' => 'saf.cn-beijing.aliyuncs.com', 'vpc' => 'saf-vpc.cn-beijing.aliyuncs.com'], ['regionId' => 'cn-hangzhou', 'regionName' => '华东1(杭州)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-hangzhou.aliyuncs.com', 'endpoint' => 'saf.cn-hangzhou.aliyuncs.com', 'vpc' => 'saf-vpc.cn-hangzhou.aliyuncs.com'], ['regionId' => 'cn-hongkong', 'regionName' => '中国香港', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-hongkong.aliyuncs.com', 'endpoint' => 'saf.cn-hongkong.aliyuncs.com', 'vpc' => 'saf-vpc.cn-hongkong.aliyuncs.com'], ['regionId' => 'cn-shanghai', 'regionName' => '华东2(上海)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-shanghai.aliyuncs.com', 'endpoint' => 'saf.cn-shanghai.aliyuncs.com', 'vpc' => 'saf-vpc.cn-shanghai.aliyuncs.com'], ['regionId' => 'cn-shenzhen', 'regionName' => '华南1(深圳)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-shenzhen.aliyuncs.com', 'endpoint' => 'saf.cn-shenzhen.aliyuncs.com', 'vpc' => 'saf-vpc.cn-shenzhen.aliyuncs.com'], ['regionId' => 'cn-zhangjiakou', 'regionName' => '华北3(张家口)', 'areaId' => 'asiaPacific', 'areaName' => '亚太', 'public' => 'saf.cn-zhangjiakou.aliyuncs.com', 'endpoint' => 'saf.cn-zhangjiakou.aliyuncs.com', 'vpc' => 'saf-vpc.cn-zhangjiakou.aliyuncs.com'], ['regionId' => 'us-west-1', 'regionName' => '美国(硅谷)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'saf.us-west-1.aliyuncs.com', 'endpoint' => 'saf.us-west-1.aliyuncs.com', 'vpc' => 'saf-vpc.us-west-1.aliyuncs.com'], ['regionId' => 'us-east-1', 'regionName' => '美国(弗吉尼亚)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'saf.us-east-1.aliyuncs.com', 'endpoint' => 'saf.us-east-1.aliyuncs.com', 'vpc' => 'saf-vpc.us-east-1.aliyuncs.com'], ['regionId' => 'eu-central-1', 'regionName' => '德国(法兰克福)', 'areaId' => 'europeAmerica', 'areaName' => '欧洲与美洲', 'public' => 'saf.eu-central-1.aliyuncs.com', 'endpoint' => 'saf.eu-central-1.aliyuncs.com', 'vpc' => 'saf-vpc.eu-central-1.aliyuncs.com'], ['regionId' => 'ap-south-1', 'regionName' => '印度(孟买)已关停', 'areaId' => 'middleEast', 'areaName' => '中东', 'public' => 'saf.ap-south-1.aliyuncs.com', 'endpoint' => 'saf.ap-south-1.aliyuncs.com', 'vpc' => 'saf-vpc.ap-south-1.aliyuncs.com'], ], 'errorCodes' => [ ['code' => '10001', 'message' => 'The current operation is not authorized. Please authorize it on RAM console using primary account.', 'http_code' => 200, 'description' => '当前操作未被授权,请联系主账号在RAM控制台进行授权。'], ['code' => '1004', 'message' => 'The format of default value is wrong. The default value of boolean type only allows true / false, case-insensitive. The default value of type double / int / long allows all numeric formats.', 'http_code' => 200, 'description' => '默认值格式错误, boolean类型的默认值只允许true/false,忽略大小写;double/int/long类型的默认值允许所有数字格式。'], ['code' => '1101', 'message' => 'The network or system is abnormal. Please try again later. Error code: 1101', 'http_code' => 200, 'description' => '网络或系统异常,请稍后重试。错误code:1101'], ['code' => '1216', 'message' => 'The policy is being approved or the current policy state does not support the operation. Error code: 1216', 'http_code' => 200, 'description' => '该策略正在审批中或当前策略状态不支持该操作。错误code:1216'], ['code' => '1302', 'message' => 'An error occurred in your request. Please try again later.', 'http_code' => 200, 'description' => '您的请求发生错误,请稍后重试!'], ['code' => '1401', 'message' => 'The decision engine has not been purchased yet. Please buy it and try again. Error code: 1401', 'http_code' => 200, 'description' => '暂未购买决策引擎,请购买后重试。错误code:1401'], ['code' => 'ConsoleSystemError_1009', 'message' => 'CSRF token has expired, please login again.', 'http_code' => 200, 'description' => 'CSRF TOKEN已过期,请重新登录!'], ], 'changeSet' => [], 'flowControl' => [ 'flowControlList' => [ ['threshold' => '15000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequest'], ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'RequestDecision'], ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequestML'], ['threshold' => '2000', 'countWindow' => 1, 'regionId' => '*', 'api' => 'ExecuteRequestSG'], ], ], 'ram' => [ 'productCode' => 'SAF', 'productName' => '风险识别', 'ramCodes' => ['yundun-saf'], 'ramLevel' => '操作级', 'ramConditions' => [], 'ramActions' => [ [ 'apiName' => 'ExecuteRequestSG', 'description' => '调用决策引擎新加坡集群', 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], [ 'apiName' => 'ExecuteRequestML', 'description' => '调用决策引擎马来集群', 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], [ 'apiName' => 'GetToken', 'description' => '', 'operationType' => '', 'ramAction' => [ 'action' => 'yundun-saf:GetToken', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], [ 'apiName' => 'RequestDecision', 'description' => '调用自定义事件', 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], [ 'apiName' => 'ExecuteRequest', 'description' => '多个场景风险识别检测', 'operationType' => 'none', 'ramAction' => [ 'action' => 'yundun-saf:Execute', 'authLevel' => 'operate', 'actionConditions' => [], 'resources' => [ ['validationType' => 'always', 'product' => 'SAF', 'resourceType' => '全部资源', 'arn' => '*'], ], ], ], ], 'resourceTypes' => [], ], ];