.. AUTO-GENERATED FILE. DO NOT EDIT. Get latest playstore app version by package name ================================================ Summary ------- - **Source repository:** ``jef-systems/jef-playstore-backend`` - **Source SHA:** ``eb793550a12d9e11927e529c3cd85e40d94c5421`` - **Source run id:** ``29434262589`` - **Module:** ``Playstore`` - **Lambda function:** ``jef-playstore-get-latest-app-version-by-package-name`` - **HTTP method:** ``GET`` - **Invocation mode:** ``sync`` - **Package mode:** ``no-package`` - **API category:** ``Playstore Complex Sync No Package GET APIs`` - **API path:** ``/playstore/complex-sync-no-packages/jef-playstore-get-latest-app-version-by-package-name`` - **Endpoint URL:** ``https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-latest-app-version-by-package-name`` - **Documentation scope:** ``lambda-complex-sync-no-packages`` Synchronous Lambda Complex Rule ------------------------------- This API is documented as a synchronous Lambda complex no-package API. API Gateway waits for the Lambda result and returns the final Lambda response. Description ----------- GET endpoint that queries the JEF Playstore S3 release folder and returns the latest APK version for a package name. Payload Example --------------- .. code-block:: json { "package_name": "com.jef.playstore", "build_type": "release" } Payload Schema -------------- .. code-block:: json { "root": { "type": "M", "required": true, "attributes": { "package_name": { "type": "S", "required": true, "regex": "^[a-zA-Z][a-zA-Z0-9_]*(?:[.][a-zA-Z][a-zA-Z0-9_]*){1,}$" }, "build_type": { "type": "S", "required": false, "regex": "^(debug|release)$" } } }, "notes": [ "Input is received from GET query parameters, not a JSON request body.", "package_name maps directly to the S3 folder under github-artifacts.", "build_type is optional; Android production callers should explicitly request release.", "The newest semantic version is returned only after full object hash, ZIP header, signing block, signer certificate, path, and S3 metadata verification." ] } Response Schema --------------- .. code-block:: json { "root": { "type": "M", "required": true, "attributes": { "is_accepted": { "type": "BOOL", "required": true }, "exists": { "type": "BOOL", "required": true }, "latest_version_found": { "type": "BOOL", "required": true }, "ok": { "type": "BOOL", "required": false }, "retryable": { "type": "BOOL", "required": false }, "message_type": { "type": "S", "required": true }, "message": { "type": "S", "required": true }, "operation": { "type": "S", "required": true }, "status_code": { "type": "N", "required": true }, "package_name": { "type": "S", "required": false }, "latest_version": { "type": "S", "required": false }, "version": { "type": "S", "required": false }, "version_name": { "type": "S", "required": false }, "version_code": { "type": "N", "required": false }, "build_type": { "type": "S", "required": false }, "requested_build_type": { "type": "S", "required": false }, "apk_sha256": { "type": "S", "required": false }, "sha256": { "type": "S", "required": false }, "apk_size_bytes": { "type": "N", "required": false }, "content_length": { "type": "N", "required": false }, "size": { "type": "N", "required": false }, "content_type": { "type": "S", "required": false }, "signing_certificate_sha256": { "type": "S", "required": false }, "signing_certificate_source": { "type": "S", "required": false }, "signing_scheme": { "type": "S", "required": false }, "object_key": { "type": "S", "required": false }, "canonical_object_key": { "type": "S", "required": false }, "object_file_name": { "type": "S", "required": false }, "s3_uri": { "type": "S", "required": false }, "bucket_name": { "type": "S", "required": false }, "bucket_prefix": { "type": "S", "required": false }, "package_prefix": { "type": "S", "required": false }, "etag": { "type": "S", "required": false }, "cache_control": { "type": "S", "required": false }, "last_modified": { "type": "S", "required": false }, "metadata_verified": { "type": "BOOL", "required": false }, "apk_magic_verified": { "type": "BOOL", "required": false }, "apk_format_verified": { "type": "BOOL", "required": false }, "apk_sha256_verified": { "type": "BOOL", "required": false }, "apk_signing_block_verified": { "type": "BOOL", "required": false }, "apk_magic_hex": { "type": "S", "required": false }, "metadata": { "type": "M", "required": false, "attributes": { "package_name": { "type": "S", "required": false }, "version": { "type": "S", "required": false }, "version_code": { "type": "S", "required": false }, "build_type": { "type": "S", "required": false }, "apk_sha256": { "type": "S", "required": false }, "signing_certificate_sha256": { "type": "S", "required": false } } }, "s3_metadata": { "type": "M", "required": false }, "available_versions": { "type": "L", "required": false }, "invalid_version_folders": { "type": "L", "required": false }, "skipped_missing_apk_versions": { "type": "L", "required": false }, "skipped_invalid_releases": { "type": "L", "required": false }, "failure_code": { "type": "S", "required": false }, "failure_reason": { "type": "S", "required": false } } }, "notes": [ "A success response is emitted only after the complete S3 object SHA-256 matches publication metadata.", "The APK ZIP header and APK v2/v3/v3.1 signing block are parsed using Python standard-library code.", "signing_certificate_sha256 is derived from the first signer certificate in the APK signing block and cross-checked with S3 metadata when present.", "metadata_verified, apk_magic_verified, apk_format_verified, apk_sha256_verified, and apk_signing_block_verified are never true when their verification step was skipped.", "When discovering the latest release, invalid newer releases are recorded in skipped_invalid_releases and the next semantic version is evaluated." ] } CMD curl -------- .. code-block:: bat curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-latest-app-version-by-package-name" PowerShell curl --------------- .. code-block:: powershell curl.exe -X GET "https://api.jefoffice.com/playstore/complex-sync-no-packages/jef-playstore-get-latest-app-version-by-package-name"