diff options
Diffstat (limited to 'data/en_us/aideepsign')
| -rw-r--r-- | data/en_us/aideepsign/2026-05-11/api-docs.php | 949 |
1 files changed, 949 insertions, 0 deletions
diff --git a/data/en_us/aideepsign/2026-05-11/api-docs.php b/data/en_us/aideepsign/2026-05-11/api-docs.php new file mode 100644 index 0000000..e1b2c93 --- /dev/null +++ b/data/en_us/aideepsign/2026-05-11/api-docs.php @@ -0,0 +1,949 @@ +<?php return [ + 'version' => '1.0', + 'info' => ['style' => 'RPC', 'product' => 'AIDeepSign', 'version' => '2026-05-11'], + 'directories' => ['CreateImageDetectionTask', 'CreateImageTask', 'CreateSensitiveScanTask', 'DetectAigcImage', 'DetectImageBasicInfo', 'GetImageDetectionTaskResult', 'GetImageTaskResult', 'GetSensitiveScanResult', 'SignUserImage', 'VerifyImageSignature'], + 'components' => [ + 'schemas' => [], + ], + 'apis' => [ + 'CreateImageDetectionTask' => [ + 'summary' => 'Creates an asynchronous image detection task that supports AIGC and tampering detection.', + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'The ObjectKey of the image to be detected in OSS. When you use ObjectKey, make sure that the key belongs to the namespace of the current caller. You must specify at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/scan/abc12345.jpg', 'title' => ''], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image to be detected. Only HTTP and HTTPS protocols are supported. You must specify at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/id-card.jpg', 'title' => ''], + ], + [ + 'name' => 'DetectType', + 'in' => 'query', + 'schema' => ['description' => 'The detection type. Valid values:'."\n" + .'- auto (default): automatic detection.'."\n" + .'- aigc: AIGC detection only.'."\n" + .'- tamper: credential tampering detection.', 'type' => 'string', 'required' => false, 'example' => 'auto', 'title' => ''], + ], + [ + 'name' => 'CredType', + 'in' => 'query', + 'schema' => ['description' => 'This parameter is deprecated.', 'type' => 'string', 'required' => false, 'example' => 'deprecated', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'The response includes the request ID and task ID, which are used to call GetImageDetectionTaskResult to query the result.', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. The value `success` is returned if the request was successful.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned if the request was successful.', 'type' => 'string', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value `OK` is returned if the request was successful.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'TaskId' => ['description' => 'The task ID, which is used to call GetImageDetectionTaskResult to query the result.', 'type' => 'string', 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create an image detection task', + 'description' => '## Operation description'."\n" + .'- This operation creates an asynchronous image detection task that supports automatic classification, AIGC detection, and tampering detection.'."\n" + .'- You must specify at least one of ImageUrl and ObjectKey. If both are specified, ObjectKey takes precedence.'."\n" + .'- If you set DetectType to `auto`, the system automatically determines whether to perform AIGC detection or tampering detection based on the image content.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": \\"200\\",\\n \\"Code\\": \\"OK\\",\\n \\"TaskId\\": \\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\"\\n}","type":"json"}]', + ], + 'CreateImageTask' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The idempotency token. This parameter is used to ensure the idempotence of the request. The value is generated by the client and must be unique across different requests. ClientToken supports only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'Prompt', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The image description (positive prompt), up to 800 characters.', 'type' => 'string', 'required' => false, 'example' => '一间全是猫的会议室'], + ], + [ + 'name' => 'NegativePrompt', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The negative prompt, up to 500 characters.', 'type' => 'string', 'required' => false, 'example' => '低质量,模糊,变形'], + ], + [ + 'name' => 'Model', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The model name. Default value: `qwen-image-2.0-pro`.', 'type' => 'string', 'required' => false, 'example' => 'qwen-image-2.0-pro'], + ], + [ + 'name' => 'Size', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The image size (format: width×height). Default value: `2048*2048`.', 'type' => 'string', 'required' => false, 'example' => '1024*1024'], + ], + [ + 'name' => 'N', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The number of images to generate (1 to 6). Default value: `1`.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '1'], + ], + [ + 'name' => 'Seed', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The random seed (0 to 2147483647). A value of 0 indicates random.', 'type' => 'integer', 'format' => 'int32', 'required' => false, 'example' => '42'], + ], + [ + 'name' => 'PromptExtend', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'Specifies whether to enable intelligent prompt rewriting. Default value: true.', 'type' => 'boolean', 'required' => false, 'example' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'TaskId' => ['title' => '', 'description' => 'The task ID. Use this ID to call the GetImageTaskResult operation to query the results.', 'type' => 'string', 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479'], + 'Success' => ['description' => 'Indicates whether the call was successful. Valid values: true and false.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. The value `success` is returned if the request was successful.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned if the request was successful.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value `OK` is returned if the request was successful.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create an image generation task', + 'summary' => 'Generates images based on a provided text description and returns a task ID.', + 'description' => '## Operation description'."\n" + .'- This operation creates an AI image generation task. The system generates images based on the positive prompt provided by the user.'."\n" + .'- You can configure parameters such as negative prompt, model, and image size to optimize the generation results.'."\n" + .'- By default, generated images are automatically embedded with a C2PA digital signature. You can optionally add a watermark in the lower-right corner.'."\n" + .'- Set the ClientToken parameter to ensure the idempotence of the request and guarantee uniqueness across different requests.'."\n" + .'- After the task is created, call the GetImageTaskResult operation with the TaskId to query the generation results.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"TaskId\\": \\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\",\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'CreateSensitiveScanTask' => [ + 'summary' => 'Creates an image sensitive information scan task and returns the task ID.', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'write', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'create', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The ObjectKey of the image to scan in OSS. When you use ObjectKey, make sure that the key belongs to the namespace of the current caller. You must specify at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/scan/abc12345.jpg'], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image to scan. Only HTTP and HTTPS protocols are supported. The image size cannot exceed 10 MB. You must specify at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/document.jpg', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'TaskId' => ['description' => 'The task ID. You can use this ID to call the GetSensitiveScanResult operation to query the result.', 'type' => 'string', 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the call was successful. Valid values:'."\n" + .'- true: The call was successful.'."\n" + .'- false: The call failed.', 'type' => 'boolean', 'example' => 'True', 'title' => ''], + 'Message' => ['description' => 'The additional information.', 'type' => 'string', 'example' => 'null', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The internal error code.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Create a sensitive information scan task', + 'description' => '## Operation description'."\n" + .'- This operation creates an image sensitive information scan task. The system performs sensitive data identification on the specified image.'."\n" + .'- You can specify the image to scan by using an image URL or an OSS ObjectKey.'."\n" + .'- The image size cannot exceed 10 MB.'."\n" + .'- You must specify at least one of ImageUrl and ObjectKey. If both are specified, ObjectKey takes precedence.'."\n" + .'- When you use ObjectKey, make sure that the key belongs to the namespace of the current caller. Cross-tenant access is not allowed.'."\n" + .'- You can use the ClientToken parameter to ensure the idempotence of the request.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"TaskId\\": \\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\",\\n \\"Success\\": true,\\n \\"Message\\": \\"null\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'DetectAigcImage' => [ + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'The ObjectKey of the image to detect in OSS. When you use ObjectKey, make sure that the key belongs to the namespace of the current caller. You must provide at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image to detect. Only HTTP and HTTPS protocols are supported. You must provide at least one of ImageUrl and ObjectKey.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/photo.jpg', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'Body' => [ + 'description' => 'The list of AIGC detection result labels.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => 'The detection label. Valid values:'."\n" + .'- `ai_generated`: AI-generated.'."\n" + .'- `non_ai_generated`: Not AI-generated.', 'type' => 'string', 'example' => 'ai_generated', 'title' => ''], + 'Confidence' => ['description' => 'The confidence level. Value range: 0 to 1. A higher value indicates a higher probability.', 'type' => 'string', 'example' => '0.51', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Success' => ['description' => 'Indicates whether the call was successful. Valid values:'."\n" + .'- true: The call was successful.'."\n" + .'- false: The call failed.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. The value `success` is returned if the request was successful.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned if the request was successful.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value `OK` is returned if the request was successful.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Detect aI-generated images', + 'summary' => 'Determines whether an image is AI-generated and returns detection labels and confidence levels.', + 'description' => '## Operation description'."\n" + .'- This operation detects whether a specified image is AI-generated content (AIGC). You can specify the image to detect by using an image URL or an OSS ObjectKey.'."\n" + .'- You must provide at least one of ImageUrl and ObjectKey. If both are provided, ObjectKey takes precedence.'."\n" + .'- When you use the ObjectKey method, the system verifies whether the ObjectKey belongs to the current caller. Cross-tenant access is not allowed.'."\n" + .'- This is a synchronous operation suitable for real-time detection of a single image. To perform asynchronous detection or credential detection at the same time, use the CreateImageDetectionTask operation.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"Body\\": [\\n {\\n \\"Label\\": \\"ai_generated\\",\\n \\"Confidence\\": \\"0.51\\"\\n }\\n ],\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'DetectImageBasicInfo' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image. Only HTTP and HTTPS protocols are supported. Specify either ImageUrl or ObjectKey. At least one of them is required.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/photo.jpg', 'title' => ''], + ], + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'The ObjectKey of the image in OSS. When using ObjectKey, ensure that the key belongs to the namespace of the current caller. Specify either ImageUrl or ObjectKey. At least one of them is required.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Type' => ['description' => 'The image format, such as JPEG, PNG, GIF, or WEBP. UNKNOWN is returned if the format cannot be identified.', 'type' => 'string', 'example' => 'PNG', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890', 'title' => ''], + 'Size' => ['description' => 'The file size in a human-readable format, such as 1.5 MB or 256 KB.', 'type' => 'string', 'example' => '2.3 MB', 'title' => ''], + 'Dpi' => ['description' => 'The image resolution (width × height), such as 1920 × 1080. This value is empty if the resolution cannot be identified.', 'type' => 'string', 'example' => '2048 * 2048', 'title' => ''], + 'Name' => ['description' => 'The file name.', 'type' => 'string', 'example' => 'photo.jpg', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. "success" is returned if the request was successful.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. 200 is returned if the request was successful.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. "OK" is returned if the request was successful.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Detect basic image information', + 'summary' => 'Retrieves basic information about a specified image, such as the file name, format, size, and resolution.', + 'description' => '## Description'."\n" + .'- This operation detects and returns basic information about an image, including but not limited to the file name, image format (such as JPEG or PNG), file size, and resolution.'."\n" + .'- You can specify the image to detect by providing an image URL or an OSS ObjectKey. If both ImageUrl and ObjectKey are provided, ObjectKey takes precedence.'."\n" + .'- When using ObjectKey, ensure that the object belongs to the namespace of the current caller. Cross-tenant access is not allowed.'."\n" + .'- The optional parameter ClientToken ensures the idempotence of the request. Generate a new unique value for each request.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Type\\": \\"PNG\\",\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"Size\\": \\"2.3 MB\\",\\n \\"Dpi\\": \\"2048 * 2048\\",\\n \\"Name\\": \\"photo.jpg\\",\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'GetImageDetectionTaskResult' => [ + 'path' => '', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. You can use the client to generate the token, but you must make sure that the token is unique among different requests. The token can contain only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['description' => 'The task ID returned by `CreateImageDetectionTask`.', 'type' => 'string', 'required' => true, 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'TaskId' => ['description' => 'The task ID.', 'type' => 'string', 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'DetectMode' => ['description' => 'The detection mode that was actually executed. Valid values:'."\n" + .'- aigc: AIGC only.'."\n" + .'- tamper: tamper detection.'."\n" + ."\n" + .'This parameter is returned only when `Status` is `succeeded`.', 'type' => 'string', 'example' => 'tamper', 'title' => ''], + 'Labels' => [ + 'description' => 'The list of AIGC detection result labels. This parameter is returned only when `Status` is `succeeded` and the task includes AIGC detection.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Label' => ['description' => 'The detection label. Valid values:'."\n" + .'- ai_generated: AI-generated.'."\n" + .'- non_ai_generated: not AI-generated.', 'type' => 'string', 'example' => 'non_ai_generated', 'title' => ''], + 'Confidence' => ['description' => 'The confidence level. Value range: 0 to 1.', 'type' => 'number', 'format' => 'float', 'example' => '0.9562', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Message' => ['description' => 'The additional information. The value `"success"` is returned when the request succeeds. An error message is returned when the task fails. This parameter is returned only when `Status` is `failed`.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned when the request succeeds.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value `"OK"` is returned when the request succeeds.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + 'Tamper' => [ + 'description' => 'The tamper detection results. This parameter is returned only when `DetectType` is `tamper` or `auto` (and the image is identified as a credential-type image).', + 'type' => 'object', + 'properties' => [ + 'RiskCode' => ['description' => 'The risk code. A value of `"0"` indicates no risk.', 'type' => 'string', 'example' => '0', 'title' => ''], + 'RiskReasons' => [ + 'description' => 'The list of risk reasons. An empty array is returned when no risk is detected.', + 'type' => 'array', + 'items' => ['description' => 'The risk reason.', 'type' => 'string', 'example' => '图片存在AI生成痕迹', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'BaseResults' => [ + 'description' => 'The basic detection results, including detection scores across multiple dimensions.', + 'type' => 'object', + 'properties' => [ + 'Aigc' => [ + 'description' => 'The AIGC detection score.', + 'type' => 'object', + 'properties' => [ + 'Score' => ['description' => 'The AIGC detection score. Value range: 0 to 1. A higher value indicates a greater likelihood of AI generation.', 'type' => 'number', 'format' => 'float', 'example' => '0.47', 'title' => ''], + 'Desc' => ['description' => 'The description of the AIGC detection result.', 'type' => 'string', 'example' => '疑似AI生成图片', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'Aips' => [ + 'description' => 'The AI post-processing detection score.', + 'type' => 'object', + 'properties' => [ + 'Score' => ['description' => 'The AI post-processing detection score. Value range: 0 to 1. A higher value indicates a greater likelihood of AI post-processing.', 'type' => 'number', 'format' => 'float', 'example' => '0.12', 'title' => ''], + 'Desc' => ['description' => 'The description of the AI post-processing detection result.', 'type' => 'string', 'example' => '未发现AI后处理痕迹', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'PsLoc' => [ + 'description' => 'The PS tamper localization results.', + 'type' => 'object', + 'properties' => [ + 'Items' => [ + 'description' => 'The list of tampered regions.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Bbox' => [ + 'description' => 'The bounding box coordinates of the tampered region in the format `[x1, y1, x2, y2]`.', + 'type' => 'array', + 'items' => ['description' => 'The bounding box coordinate of the tampered region.', 'type' => 'number', 'format' => 'float', 'example' => '[120.0, 80.0, 350.0, 260.0]', 'title' => ''], + 'title' => '', + 'example' => '', + ], + 'Score' => ['description' => 'The tamper confidence level for the region. Value range: `0 to 1`.', 'type' => 'number', 'format' => 'float', 'example' => '0.67', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Desc' => ['description' => 'The description of the PS tamper localization result.', 'type' => 'string', 'example' => '发现1处疑似PS修改区域', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'ImgType' => ['description' => 'The image type.', 'type' => 'string', 'example' => 'natural', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'LlmResult' => ['description' => 'The comprehensive analysis result from the large language model.', 'type' => 'string', 'example' => '该图片经检测存在AI生成痕迹,AIGC检测得分0.95,建议进一步核实图片来源。', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'Status' => ['description' => 'The task status. Valid values:'."\n" + .'- `pending`: waiting.'."\n" + .'- `running`: in progress.'."\n" + .'- `succeeded`: completed.'."\n" + .'- `failed`: failed.', 'type' => 'string', 'example' => 'succeeded', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query image detection task results', + 'summary' => 'Queries the status and results of an image detection task, including AIGC detection labels and tamper detection results.', + 'description' => '## Operation description'."\n" + .'Call this operation to query the execution status and results of an asynchronous detection task created by `CreateImageDetectionTask`. Poll at intervals of 2 to 5 seconds until the task status changes to `succeeded` or `failed`.'."\n" + ."\n" + .'### Before you begin'."\n" + .'- Use a valid `TaskId` for the query.'."\n" + .'- If the task is not complete, increase the polling interval to avoid unnecessary resource consumption caused by frequent requests.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"TaskId\\": \\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\",\\n \\"Success\\": false,\\n \\"DetectMode\\": \\"tamper\\",\\n \\"Labels\\": [\\n {\\n \\"Label\\": \\"non_ai_generated\\",\\n \\"Confidence\\": 0.9562\\n }\\n ],\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\",\\n \\"Tamper\\": {\\n \\"RiskCode\\": \\"0\\",\\n \\"RiskReasons\\": [\\n \\"图片存在AI生成痕迹\\"\\n ],\\n \\"BaseResults\\": {\\n \\"Aigc\\": {\\n \\"Score\\": 0.47,\\n \\"Desc\\": \\"疑似AI生成图片\\"\\n },\\n \\"Aips\\": {\\n \\"Score\\": 0.12,\\n \\"Desc\\": \\"未发现AI后处理痕迹\\"\\n },\\n \\"PsLoc\\": {\\n \\"Items\\": [\\n {\\n \\"Bbox\\": [\\n 0\\n ],\\n \\"Score\\": 0.67\\n }\\n ],\\n \\"Desc\\": \\"发现1处疑似PS修改区域\\"\\n },\\n \\"ImgType\\": \\"natural\\"\\n },\\n \\"LlmResult\\": \\"该图片经检测存在AI生成痕迹,AIGC检测得分0.95,建议进一步核实图片来源。\\"\\n },\\n \\"Status\\": \\"succeeded\\"\\n}","type":"json"}]', + ], + 'GetImageTaskResult' => [ + 'summary' => 'Queries the status and result of an asynchronous image generation task and retrieves the image download URL.', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The task ID returned by `CreateImageTask`.', 'type' => 'string', 'required' => true, 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'TaskId' => ['title' => '', 'description' => 'The task ID.', 'type' => 'string', 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479'], + 'Status' => ['title' => '', 'description' => 'The task status. Valid values: `pending` (waiting), `running` (in progress), `succeeded` (completed), `failed` (failed).', 'type' => 'string', 'example' => 'succeeded'], + 'ErrorMessage' => ['title' => '', 'description' => 'The error message. This parameter is returned only when the task status is `failed`.', 'type' => 'string', 'example' => 'Instance access forbidden.'], + 'Images' => [ + 'description' => 'The list of generated images. This parameter is returned only when `Status` is `succeeded`.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Url' => ['description' => 'The pre-signed download URL of the image. The URL is valid for 1 hour.', 'type' => 'string', 'example' => 'https://bucket.oss-cn-hangzhou.aliyuncs.com/deepsign/123456789/image-generation/abc12345.png?Expires=1718700000&OSSAccessKeyId=...', 'title' => ''], + 'ObjectKey' => ['description' => 'The `ObjectKey` of the image in OSS. You can use this value in subsequent API calls.', 'type' => 'string', 'example' => 'deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'example' => 'true', 'title' => ''], + 'Message' => ['description' => 'The additional information. The value `success` is returned if the request succeeds. An error message is returned if the task fails. This parameter is returned only when `Status` is `failed`.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned if the request succeeds.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value `OK` is returned if the request succeeds.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query image generation result', + 'description' => '## Operation description'."\n" + .'- Call this operation to query the execution status and result of an asynchronous image generation task created by `CreateImageTask`.'."\n" + .'- Poll at intervals of 2 to 5 seconds until the task status changes to `succeeded` or `failed`.'."\n" + .'- The image download URL (Url) returned after the task succeeds is a pre-signed URL that is valid for 1 hour.'."\n" + .'- To ensure idempotence of the request, set the `ClientToken` parameter.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"TaskId\\": \\"f47ac10b-58cc-4372-a567-0e02b2c3d479\\",\\n \\"Status\\": \\"succeeded\\",\\n \\"ErrorMessage\\": \\"Instance access forbidden.\\",\\n \\"Images\\": [\\n {\\n \\"Url\\": \\"https://bucket.oss-cn-hangzhou.aliyuncs.com/deepsign/123456789/image-generation/abc12345.png?Expires=1718700000&OSSAccessKeyId=...\\",\\n \\"ObjectKey\\": \\"deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png\\"\\n }\\n ],\\n \\"Success\\": true,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'GetSensitiveScanResult' => [ + 'summary' => 'Queries the status and result of a sensitive information scan task and returns the details of the sensitive data discovered during the scan.', + 'methods' => ['get', 'post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'TaskId', + 'in' => 'query', + 'schema' => ['title' => '', 'description' => 'The task ID returned by `CreateSensitiveScanTask`.', 'type' => 'string', 'required' => true, 'example' => 'f47ac10b-58cc-4372-a567-0e02b2c3d479'], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'title' => '', + 'description' => 'Schema of Response', + 'type' => 'object', + 'properties' => [ + 'RequestId' => ['title' => '', 'description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890'], + 'Status' => ['title' => '', 'description' => 'The task status. Valid values:'."\n" + .'- running: The task is running.'."\n" + .'- completed: The task is completed.'."\n" + .'- terminated: The task is terminated or failed.', 'type' => 'string', 'example' => 'completed'], + 'Result' => [ + 'title' => '', + 'description' => 'The scan result. This parameter is returned only when the status is completed.', + 'type' => 'object', + 'properties' => [ + 'OssObjectDetail' => [ + 'description' => 'The name of the scanned object.', + 'type' => 'object', + 'properties' => [ + 'Name' => ['description' => 'The name of the scanned object.', 'type' => 'string', 'example' => 'abc12345.jpg', 'title' => ''], + 'BucketName' => ['description' => 'The name of the bucket to which the object belongs.', 'type' => 'string', 'example' => 'aideepsign-bucket', 'title' => ''], + 'RiskLevelName' => ['description' => 'The overall risk level name.', 'type' => 'string', 'example' => 'S2', 'title' => ''], + 'CategoryName' => ['description' => 'The sensitive data category name.', 'type' => 'string', 'example' => '个人信息', 'title' => ''], + 'RuleList' => [ + 'description' => 'The list of sensitive data rules that are hit.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'CategoryName' => ['description' => 'The category name of the rule.', 'type' => 'string', 'example' => '个人信息', 'title' => ''], + 'RuleName' => ['description' => 'The rule name.', 'type' => 'string', 'example' => '身份证号', 'title' => ''], + 'Count' => ['description' => 'The number of hits.', 'type' => 'integer', 'format' => 'int32', 'example' => '1', 'title' => ''], + 'RiskLevelName' => ['description' => 'The risk level name of the rule.', 'type' => 'string', 'example' => 'S2', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + ], + 'example' => '', + ], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. The value "success" is returned when the request succeeds.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value 200 is returned when the request succeeds.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value "OK" is returned when the request succeeds.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Query sensitive information scan results', + 'description' => '## Operation description'."\n" + .'- Call this operation to query the execution status and result of a sensitive information scan task created by `CreateSensitiveScanTask`.'."\n" + .'- Poll at intervals of 3 to 5 seconds until the task status changes to `completed` or `terminated`.'."\n" + .'- The `ClientToken` parameter ensures the idempotence of the request. It is generated by the client, must be unique across different requests, supports ASCII characters, and cannot exceed 64 characters in length.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"Status\\": \\"completed\\",\\n \\"Result\\": {\\n \\"OssObjectDetail\\": {\\n \\"Name\\": \\"abc12345.jpg\\",\\n \\"BucketName\\": \\"aideepsign-bucket\\",\\n \\"RiskLevelName\\": \\"S2\\",\\n \\"CategoryName\\": \\"个人信息\\",\\n \\"RuleList\\": [\\n {\\n \\"CategoryName\\": \\"个人信息\\",\\n \\"RuleName\\": \\"身份证号\\",\\n \\"Count\\": 1,\\n \\"RiskLevelName\\": \\"S2\\"\\n }\\n ]\\n }\\n },\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'SignUserImage' => [ + 'summary' => 'Embeds a C2PA digital signature into a user-uploaded image and returns the download URL.', + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'readAndWrite', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'update', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ClientToken', + 'in' => 'query', + 'allowEmptyValue' => false, + 'schema' => ['title' => '', 'description' => 'The client token that is used to ensure the idempotence of the request. The client generates this value. Make sure the value is unique across different requests. ClientToken supports only ASCII characters and cannot exceed 64 characters in length.', 'type' => 'string', 'required' => false, 'example' => '5A2CFF0E-5718-45B5-9D4D-70B3FF3898'], + ], + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image to be signed. HTTP and HTTPS URLs are supported. Specify at least one of `ImageUrl` and `ObjectKey`.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/photo.jpg', 'title' => ''], + ], + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'The ObjectKey of the image to be signed in OSS. When you use `ObjectKey`, make sure the key belongs to the namespace of the current caller. Specify at least one of `ImageUrl` and `ObjectKey`.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'SignTime' => ['description' => 'The signing time in ISO 8601 format, such as `2026-01-15T08:30:00Z`.', 'type' => 'string', 'example' => '2026-06-18T10:30:00Z', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890', 'title' => ''], + 'SignedImageUrl' => ['description' => 'The pre-signed download URL of the signed image.', 'type' => 'string', 'example' => 'https://bucket.oss-cn-hangzhou.aliyuncs.com/deepsign/123456789/signed/abc12345.png?Expires=1718700000&OSSAccessKeyId=...', 'title' => ''], + 'CertificateSubject' => ['description' => 'The subject information of the signing certificate.', 'type' => 'string', 'example' => 'CN=AIDeepSign User Certificate,O=Alibaba Cloud', 'title' => ''], + 'ObjectKey' => ['description' => 'The ObjectKey of the signed image in OSS. You can use this value for subsequent API calls.', 'type' => 'string', 'example' => 'deepsign/123456789/signed/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + 'Algorithm' => ['description' => 'The algorithm used for signing, such as ps256 or es256.', 'type' => 'string', 'example' => 'ps256', 'title' => ''], + 'Success' => ['description' => 'Indicates whether the request was successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Message' => ['description' => 'The additional information. The value "success" is returned if the request succeeds.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value 200 is returned if the request succeeds.', 'type' => 'integer', 'format' => 'int32', 'example' => '200', 'title' => ''], + 'Code' => ['description' => 'The business error code. The value "OK" is returned if the request succeeds.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Sign an image', + 'description' => '## Operation description'."\n" + .'- Specify at least one of `ImageUrl` and `ObjectKey`. If both are specified, `ObjectKey` takes precedence.'."\n" + .'- When you use `ObjectKey`, the system verifies that the `ObjectKey` belongs to the current caller. Cross-tenant access is not allowed.'."\n" + .'- Supported image formats are JPEG and PNG. Unsupported formats return the `C2PA_FORMAT_UNSUPPORTED` error.'."\n" + .'- If the original image already contains a C2PA signature, the system retains the original signature as an ingredient and appends a new signature.'."\n" + .'- Use the `ClientToken` parameter to ensure idempotence. Make sure the value is unique across different requests and does not exceed 64 characters.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"SignTime\\": \\"2026-06-18T10:30:00Z\\",\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"SignedImageUrl\\": \\"https://bucket.oss-cn-hangzhou.aliyuncs.com/deepsign/123456789/signed/abc12345.png?Expires=1718700000&OSSAccessKeyId=...\\",\\n \\"CertificateSubject\\": \\"CN=AIDeepSign User Certificate,O=Alibaba Cloud\\",\\n \\"ObjectKey\\": \\"deepsign/123456789/signed/abc12345-def6-7890-abcd-ef1234567890.png\\",\\n \\"Algorithm\\": \\"ps256\\",\\n \\"Success\\": false,\\n \\"Message\\": \\"success\\",\\n \\"HttpStatusCode\\": 200,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + 'VerifyImageSignature' => [ + 'methods' => ['post'], + 'schemes' => ['https'], + 'security' => [ + [ + 'AK' => [], + ], + ], + 'operationType' => 'read', + 'deprecated' => false, + 'systemTags' => [ + 'operationType' => 'get', + 'riskType' => 'none', + 'chargeType' => 'free', + 'abilityTreeNodes' => ['FEATUREkms586TOR'], + 'autoTest' => true, + 'tenantRelevance' => 'publicInformation', + ], + 'parameters' => [ + [ + 'name' => 'ImageUrl', + 'in' => 'query', + 'schema' => ['description' => 'The URL of the image to verify. Specify either ImageUrl or ObjectKey. At least one of them is required.', 'type' => 'string', 'required' => false, 'example' => 'https://example.com/signed-photo.jpg', 'title' => ''], + ], + [ + 'name' => 'ObjectKey', + 'in' => 'query', + 'schema' => ['description' => 'The ObjectKey of the image in OSS. When you use ObjectKey, ensure that the key belongs to the namespace of the current caller. Specify either ImageUrl or ObjectKey. At least one of them is required.', 'type' => 'string', 'required' => false, 'example' => 'deepsign/123456789/image-generation/abc12345-def6-7890-abcd-ef1234567890.png', 'title' => ''], + ], + ], + 'responses' => [ + 200 => [ + 'schema' => [ + 'type' => 'object', + 'properties' => [ + 'Message' => ['description' => 'The additional information. The value `success` is returned if the request is successful.', 'type' => 'string', 'example' => 'success', 'title' => ''], + 'RequestId' => ['description' => 'The request ID.', 'type' => 'string', 'example' => 'A1B2C3D4-E5F6-7890-ABCD-EF1234567890', 'title' => ''], + 'Issuer' => [ + 'description' => 'The issuer information.', + 'type' => 'object', + 'properties' => [ + 'CommonName' => ['description' => 'The common name (CN) of the issuer.', 'type' => 'string', 'example' => 'AIDeepSign User Certificate', 'title' => ''], + 'Organization' => ['description' => 'The organization name (O) of the issuer.', 'type' => 'string', 'example' => 'Alibaba Cloud', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + 'HttpStatusCode' => ['description' => 'The HTTP status code. The value `200` is returned if the request is successful.', 'type' => 'integer', 'format' => 'int64', 'example' => '200', 'title' => ''], + 'VerificationState' => ['description' => 'The signature verification status. Valid values:'."\n" + .'- Valid: The signature is valid.'."\n" + .'- Invalid: The signature is invalid or has been tampered with.'."\n" + .'- Trusted: The signature is valid and trusted.', 'type' => 'string', 'example' => 'Valid', 'title' => ''], + 'IssuerTrusted' => ['description' => 'Indicates whether the issuer is trusted. A value of true indicates that the issuer certificate is issued by a trusted CA.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Manifest' => [ + 'description' => 'The content credentials manifest information. This parameter is returned only when the image contains a C2PA signature.', + 'type' => 'object', + 'properties' => [ + 'Assertions' => [ + 'description' => 'The list of assertions, which contains metadata such as the origin and editing history of the image.', + 'type' => 'array', + 'items' => [ + 'type' => 'object', + 'properties' => [ + 'Data' => ['description' => 'The assertion data, which is detailed metadata in JSON format.', 'type' => 'string', 'example' => '{"actions":[{"action":"c2pa.created"}]}', 'title' => ''], + 'Label' => ['description' => 'The assertion label, such as c2pa.actions or stds.exif.', 'type' => 'string', 'example' => 'c2pa.actions', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + 'title' => '', + 'example' => '', + ], + 'SignatureInfo' => [ + 'description' => 'The signature details.', + 'type' => 'object', + 'properties' => [ + 'Alg' => ['description' => 'The signature algorithm, such as `ps256` or `es256`.', 'type' => 'string', 'example' => 'ps256', 'title' => ''], + 'Issuer' => ['description' => 'The distinguished name (DN) of the signing certificate issuer.', 'type' => 'string', 'example' => 'CN=AIDeepSign CA,O=Alibaba Cloud', 'title' => ''], + 'Time' => ['description' => 'The signing time in ISO 8601 format.', 'type' => 'string', 'example' => '2026-06-18T10:30:00Z', 'title' => ''], + ], + 'title' => '', + 'example' => '', + ], + ], + 'title' => '', + 'example' => '', + ], + 'Success' => ['description' => 'Indicates whether the request is successful.', 'type' => 'boolean', 'title' => '', 'example' => ''], + 'Code' => ['description' => 'The business error code. The value "OK" is returned if the request is successful.', 'type' => 'string', 'example' => 'OK', 'title' => ''], + ], + 'description' => '', + 'title' => '', + 'example' => '', + ], + ], + ], + 'errorCodes' => [ + 400 => [ + ['errorCode' => 'IdempotentParameterMismatch', 'errorMessage' => 'The request uses the same client token as a previous, but non-identical request. Do not reuse a client token with different requests, unless the requests are identical.', 'description' => ''], + ], + ], + 'staticInfo' => ['returnType' => 'synchronous'], + 'title' => 'Verify image signature', + 'summary' => 'Verifies the C2PA digital signature in an image and returns the signature status and issuer information.', + 'description' => '## Operation description'."\n" + .'- This operation verifies the C2PA digital signature embedded in an image and returns the signature verification status, issuer trustworthiness, issuer information, and the complete content credentials manifest.'."\n" + .'- You can specify the image to verify by using an image URL or an OSS ObjectKey. If both ImageUrl and ObjectKey are provided, ObjectKey takes precedence.'."\n" + .'- When you use the ObjectKey method, the system verifies whether the ObjectKey belongs to the current caller. Cross-tenant access is not allowed.'."\n" + .'- To ensure request idempotency, provide the ClientToken parameter. Ensure that the value is unique across different requests and does not exceed 64 characters.', + 'changeSet' => [], + 'responseDemo' => '[{"errorExample":"","example":"{\\n \\"Message\\": \\"success\\",\\n \\"RequestId\\": \\"A1B2C3D4-E5F6-7890-ABCD-EF1234567890\\",\\n \\"Issuer\\": {\\n \\"CommonName\\": \\"AIDeepSign User Certificate\\",\\n \\"Organization\\": \\"Alibaba Cloud\\"\\n },\\n \\"HttpStatusCode\\": 200,\\n \\"VerificationState\\": \\"Valid\\",\\n \\"IssuerTrusted\\": false,\\n \\"Manifest\\": {\\n \\"Assertions\\": [\\n {\\n \\"Data\\": \\"{\\\\\\"actions\\\\\\":[{\\\\\\"action\\\\\\":\\\\\\"c2pa.created\\\\\\"}]}\\",\\n \\"Label\\": \\"c2pa.actions\\"\\n }\\n ],\\n \\"SignatureInfo\\": {\\n \\"Alg\\": \\"ps256\\",\\n \\"Issuer\\": \\"CN=AIDeepSign CA,O=Alibaba Cloud\\",\\n \\"Time\\": \\"2026-06-18T10:30:00Z\\"\\n }\\n },\\n \\"Success\\": false,\\n \\"Code\\": \\"OK\\"\\n}","type":"json"}]', + ], + ], + 'endpoints' => [ + ['regionId' => 'cn-hangzhou', 'regionName' => 'China (Hangzhou)', 'areaId' => 'asiaPacific', 'areaName' => 'Asia Pacific', 'public' => 'aideepsign.cn-hangzhou.aliyuncs.com', 'endpoint' => 'aideepsign.cn-hangzhou.aliyuncs.com', 'vpc' => 'aideepsign-vpc.cn-hangzhou.aliyuncs.com'], + ], + 'errorCodes' => [ + ['code' => 'Throttling', 'message' => 'user xxx does not hold a valid subscription.', 'http_code' => 429, 'description' => ''], + ], + 'changeSet' => [], +]; |
