|
1 | 1 | {
|
| 2 | + "auth": { |
| 3 | + "oauth2": { |
| 4 | + "scopes": { |
| 5 | + "https://www.googleapis.com/auth/playintegrity": { |
| 6 | + "description": "Private Service: https://www.googleapis.com/auth/playintegrity" |
| 7 | + } |
| 8 | + } |
| 9 | + } |
| 10 | + }, |
2 | 11 | "basePath": "",
|
3 | 12 | "baseUrl": "https://playintegrity.googleapis.com/",
|
4 | 13 | "batchPath": "batch",
|
| 14 | + "canonicalName": "Play Integrity", |
5 | 15 | "description": "Play Integrity",
|
6 | 16 | "discoveryVersion": "v1",
|
7 | 17 | "documentationLink": "https://developer.android.com/google/play/integrity",
|
|
94 | 104 | }
|
95 | 105 | },
|
96 | 106 | "protocol": "rest",
|
97 |
| - "resources": {}, |
98 |
| - "revision": "20220205", |
| 107 | + "resources": { |
| 108 | + "v1": { |
| 109 | + "methods": { |
| 110 | + "decodeIntegrityToken": { |
| 111 | + "description": "Decodes the integrity token and returns the token payload.", |
| 112 | + "flatPath": "v1/{v1Id}:decodeIntegrityToken", |
| 113 | + "httpMethod": "POST", |
| 114 | + "id": "playintegrity.decodeIntegrityToken", |
| 115 | + "parameterOrder": [ |
| 116 | + "packageName" |
| 117 | + ], |
| 118 | + "parameters": { |
| 119 | + "packageName": { |
| 120 | + "description": " Package name of the app the attached integrity token belongs to.", |
| 121 | + "location": "path", |
| 122 | + "pattern": "^[^/]+$", |
| 123 | + "required": true, |
| 124 | + "type": "string" |
| 125 | + } |
| 126 | + }, |
| 127 | + "path": "v1/{+packageName}:decodeIntegrityToken", |
| 128 | + "request": { |
| 129 | + "$ref": "DecodeIntegrityTokenRequest" |
| 130 | + }, |
| 131 | + "response": { |
| 132 | + "$ref": "DecodeIntegrityTokenResponse" |
| 133 | + }, |
| 134 | + "scopes": [ |
| 135 | + "https://www.googleapis.com/auth/playintegrity" |
| 136 | + ] |
| 137 | + } |
| 138 | + } |
| 139 | + } |
| 140 | + }, |
| 141 | + "revision": "20220216", |
99 | 142 | "rootUrl": "https://playintegrity.googleapis.com/",
|
100 |
| - "schemas": {}, |
| 143 | + "schemas": { |
| 144 | + "AccountDetails": { |
| 145 | + "description": "Contains the account information such as the licensing status for the user in the scope.", |
| 146 | + "id": "AccountDetails", |
| 147 | + "properties": { |
| 148 | + "appLicensingVerdict": { |
| 149 | + "description": "Required. Details about the licensing status of the user for the app in the scope.", |
| 150 | + "enum": [ |
| 151 | + "UNKNOWN", |
| 152 | + "LICENSED", |
| 153 | + "UNLICENSED", |
| 154 | + "UNEVALUATED" |
| 155 | + ], |
| 156 | + "enumDescriptions": [ |
| 157 | + "Play does not have sufficient information to evaluate licensing details", |
| 158 | + "The app and certificate match the versions distributed by Play.", |
| 159 | + "The certificate or package name does not match Google Play records.", |
| 160 | + "Licensing details were not evaluated since a necessary requirement was missed. For example DeviceIntegrity did not meet the minimum bar or the application was not a known Play version." |
| 161 | + ], |
| 162 | + "type": "string" |
| 163 | + } |
| 164 | + }, |
| 165 | + "type": "object" |
| 166 | + }, |
| 167 | + "AppIntegrity": { |
| 168 | + "description": "Contains the application integrity information.", |
| 169 | + "id": "AppIntegrity", |
| 170 | + "properties": { |
| 171 | + "appRecognitionVerdict": { |
| 172 | + "description": "Required. Details about the app recognition verdict", |
| 173 | + "enum": [ |
| 174 | + "UNKNOWN", |
| 175 | + "PLAY_RECOGNIZED", |
| 176 | + "UNRECOGNIZED_VERSION", |
| 177 | + "UNEVALUATED" |
| 178 | + ], |
| 179 | + "enumDescriptions": [ |
| 180 | + "Play does not have sufficient information to evaluate app integrity", |
| 181 | + "The app and certificate match the versions distributed by Play.", |
| 182 | + "The certificate or package name does not match Google Play records.", |
| 183 | + "Application integrity was not evaluated since a necessary requirement was missed. For example DeviceIntegrity did not meet the minimum bar." |
| 184 | + ], |
| 185 | + "type": "string" |
| 186 | + }, |
| 187 | + "certificateSha256Digest": { |
| 188 | + "description": "Hex fingerprint of the application signing certificate. e.g. \u201cABCE1F....\u201d Set iff app_recognition_verdict != UNEVALUATED.", |
| 189 | + "items": { |
| 190 | + "type": "string" |
| 191 | + }, |
| 192 | + "type": "array" |
| 193 | + }, |
| 194 | + "packageName": { |
| 195 | + "description": "Package name of the application under attestation. Set iff app_recognition_verdict != UNEVALUATED.", |
| 196 | + "type": "string" |
| 197 | + }, |
| 198 | + "versionCode": { |
| 199 | + "description": "Version code of the application. Set iff app_recognition_verdict != UNEVALUATED.", |
| 200 | + "format": "int64", |
| 201 | + "type": "string" |
| 202 | + } |
| 203 | + }, |
| 204 | + "type": "object" |
| 205 | + }, |
| 206 | + "DecodeIntegrityTokenRequest": { |
| 207 | + "description": "Request to decode the integrity token.", |
| 208 | + "id": "DecodeIntegrityTokenRequest", |
| 209 | + "properties": { |
| 210 | + "integrityToken": { |
| 211 | + "description": "Encoded integrity token.", |
| 212 | + "type": "string" |
| 213 | + } |
| 214 | + }, |
| 215 | + "type": "object" |
| 216 | + }, |
| 217 | + "DecodeIntegrityTokenResponse": { |
| 218 | + "description": "Response containing the decoded integrity payload.", |
| 219 | + "id": "DecodeIntegrityTokenResponse", |
| 220 | + "properties": { |
| 221 | + "tokenPayloadExternal": { |
| 222 | + "$ref": "TokenPayloadExternal", |
| 223 | + "description": "Plain token payload generated from the decoded integrity token." |
| 224 | + } |
| 225 | + }, |
| 226 | + "type": "object" |
| 227 | + }, |
| 228 | + "DeviceIntegrity": { |
| 229 | + "description": "Contains the device attestation information.", |
| 230 | + "id": "DeviceIntegrity", |
| 231 | + "properties": { |
| 232 | + "deviceRecognitionVerdict": { |
| 233 | + "description": "Details about the integrity of the device the app is running on", |
| 234 | + "items": { |
| 235 | + "enum": [ |
| 236 | + "UNKNOWN", |
| 237 | + "MEETS_BASIC_INTEGRITY", |
| 238 | + "MEETS_DEVICE_INTEGRITY", |
| 239 | + "MEETS_STRONG_INTEGRITY", |
| 240 | + "MEETS_VIRTUAL_INTEGRITY" |
| 241 | + ], |
| 242 | + "enumDescriptions": [ |
| 243 | + "Play does not have sufficient information to evaluate device integrity", |
| 244 | + "App is running on a device that passes basic system integrity checks, but may not meet Android platform compatibility requirements and may not be approved to run Google Play services.", |
| 245 | + "App is running on GMS Android device with Google Play services.", |
| 246 | + "App is running on GMS Android device with Google Play services and has a strong guarantee of system integrity such as a hardware-backed keystore.", |
| 247 | + "App is running on an Android emulator with Google Play services which meets core Android compatibility requirements." |
| 248 | + ], |
| 249 | + "type": "string" |
| 250 | + }, |
| 251 | + "type": "array" |
| 252 | + } |
| 253 | + }, |
| 254 | + "type": "object" |
| 255 | + }, |
| 256 | + "RequestDetails": { |
| 257 | + "description": "Contains the integrity request information.", |
| 258 | + "id": "RequestDetails", |
| 259 | + "properties": { |
| 260 | + "nonce": { |
| 261 | + "description": "Required. Nonce that was provided in the request (which is base64 web-safe no-wrap).", |
| 262 | + "type": "string" |
| 263 | + }, |
| 264 | + "requestPackageName": { |
| 265 | + "description": "Required. Application package name this attestation was requested for. Note: This field makes no guarantees or promises on the caller integrity. For details on application integrity, check application_integrity.", |
| 266 | + "type": "string" |
| 267 | + }, |
| 268 | + "timestampMillis": { |
| 269 | + "description": "Required. Timestamp, in milliseconds, of the integrity application request.", |
| 270 | + "format": "int64", |
| 271 | + "type": "string" |
| 272 | + } |
| 273 | + }, |
| 274 | + "type": "object" |
| 275 | + }, |
| 276 | + "TestingDetails": { |
| 277 | + "description": "Contains additional information generated for testing responses.", |
| 278 | + "id": "TestingDetails", |
| 279 | + "properties": { |
| 280 | + "isTestingResponse": { |
| 281 | + "description": "Required. Indicates that the information contained in this payload is a testing response that is statically overridden for a tester.", |
| 282 | + "type": "boolean" |
| 283 | + } |
| 284 | + }, |
| 285 | + "type": "object" |
| 286 | + }, |
| 287 | + "TokenPayloadExternal": { |
| 288 | + "description": "Contains basic app information and integrity signals like device attestation and licensing details.", |
| 289 | + "id": "TokenPayloadExternal", |
| 290 | + "properties": { |
| 291 | + "accountDetails": { |
| 292 | + "$ref": "AccountDetails", |
| 293 | + "description": "Required. Details about the Play Store account." |
| 294 | + }, |
| 295 | + "appIntegrity": { |
| 296 | + "$ref": "AppIntegrity", |
| 297 | + "description": "Required. Details about the application integrity." |
| 298 | + }, |
| 299 | + "deviceIntegrity": { |
| 300 | + "$ref": "DeviceIntegrity", |
| 301 | + "description": "Required. Details about the device integrity." |
| 302 | + }, |
| 303 | + "requestDetails": { |
| 304 | + "$ref": "RequestDetails", |
| 305 | + "description": "Required. Details about the integrity request." |
| 306 | + }, |
| 307 | + "testingDetails": { |
| 308 | + "$ref": "TestingDetails", |
| 309 | + "description": "Indicates that this payload is generated for testing purposes and contains any additional data that is linked with testing status." |
| 310 | + } |
| 311 | + }, |
| 312 | + "type": "object" |
| 313 | + } |
| 314 | + }, |
101 | 315 | "servicePath": "",
|
102 | 316 | "title": "Google Play Integrity API",
|
103 | 317 | "version": "v1",
|
|
0 commit comments