forked from googleapis/google-api-go-client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
playintegrity-api.json
319 lines (319 loc) · 11.3 KB
/
playintegrity-api.json
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
{
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/playintegrity": {
"description": "Private Service: https://www.googleapis.com/auth/playintegrity"
}
}
}
},
"basePath": "",
"baseUrl": "https://playintegrity.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Play Integrity",
"description": "Play Integrity",
"discoveryVersion": "v1",
"documentationLink": "https://developer.android.com/google/play/integrity",
"fullyEncodeReservedExpansion": true,
"icons": {
"x16": "http://www.google.com/images/icons/product/search-16.gif",
"x32": "http://www.google.com/images/icons/product/search-32.gif"
},
"id": "playintegrity:v1",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://playintegrity.mtls.googleapis.com/",
"name": "playintegrity",
"ownerDomain": "google.com",
"ownerName": "Google",
"parameters": {
"$.xgafv": {
"description": "V1 error format.",
"enum": [
"1",
"2"
],
"enumDescriptions": [
"v1 error format",
"v2 error format"
],
"location": "query",
"type": "string"
},
"access_token": {
"description": "OAuth access token.",
"location": "query",
"type": "string"
},
"alt": {
"default": "json",
"description": "Data format for response.",
"enum": [
"json",
"media",
"proto"
],
"enumDescriptions": [
"Responses with Content-Type of application/json",
"Media download with context-dependent Content-Type",
"Responses with Content-Type of application/x-protobuf"
],
"location": "query",
"type": "string"
},
"callback": {
"description": "JSONP",
"location": "query",
"type": "string"
},
"fields": {
"description": "Selector specifying which fields to include in a partial response.",
"location": "query",
"type": "string"
},
"key": {
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query",
"type": "string"
},
"oauth_token": {
"description": "OAuth 2.0 token for the current user.",
"location": "query",
"type": "string"
},
"prettyPrint": {
"default": "true",
"description": "Returns response with indentations and line breaks.",
"location": "query",
"type": "boolean"
},
"quotaUser": {
"description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
"location": "query",
"type": "string"
},
"uploadType": {
"description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
"location": "query",
"type": "string"
},
"upload_protocol": {
"description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
"location": "query",
"type": "string"
}
},
"protocol": "rest",
"resources": {
"v1": {
"methods": {
"decodeIntegrityToken": {
"description": "Decodes the integrity token and returns the token payload.",
"flatPath": "v1/{v1Id}:decodeIntegrityToken",
"httpMethod": "POST",
"id": "playintegrity.decodeIntegrityToken",
"parameterOrder": [
"packageName"
],
"parameters": {
"packageName": {
"description": " Package name of the app the attached integrity token belongs to.",
"location": "path",
"pattern": "^[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1/{+packageName}:decodeIntegrityToken",
"request": {
"$ref": "DecodeIntegrityTokenRequest"
},
"response": {
"$ref": "DecodeIntegrityTokenResponse"
},
"scopes": [
"https://www.googleapis.com/auth/playintegrity"
]
}
}
}
},
"revision": "20220315",
"rootUrl": "https://playintegrity.googleapis.com/",
"schemas": {
"AccountDetails": {
"description": "Contains the account information such as the licensing status for the user in the scope.",
"id": "AccountDetails",
"properties": {
"appLicensingVerdict": {
"description": "Required. Details about the licensing status of the user for the app in the scope.",
"enum": [
"UNKNOWN",
"LICENSED",
"UNLICENSED",
"UNEVALUATED"
],
"enumDescriptions": [
"Play does not have sufficient information to evaluate licensing details",
"The app and certificate match the versions distributed by Play.",
"The certificate or package name does not match Google Play records.",
"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."
],
"type": "string"
}
},
"type": "object"
},
"AppIntegrity": {
"description": "Contains the application integrity information.",
"id": "AppIntegrity",
"properties": {
"appRecognitionVerdict": {
"description": "Required. Details about the app recognition verdict",
"enum": [
"UNKNOWN",
"PLAY_RECOGNIZED",
"UNRECOGNIZED_VERSION",
"UNEVALUATED"
],
"enumDescriptions": [
"Play does not have sufficient information to evaluate app integrity",
"The app and certificate match the versions distributed by Play.",
"The certificate or package name does not match Google Play records.",
"Application integrity was not evaluated since a necessary requirement was missed. For example DeviceIntegrity did not meet the minimum bar."
],
"type": "string"
},
"certificateSha256Digest": {
"description": "Hex fingerprint of the application signing certificate. e.g. “ABCE1F....” Set iff app_recognition_verdict != UNEVALUATED.",
"items": {
"type": "string"
},
"type": "array"
},
"packageName": {
"description": "Package name of the application under attestation. Set iff app_recognition_verdict != UNEVALUATED.",
"type": "string"
},
"versionCode": {
"description": "Version code of the application. Set iff app_recognition_verdict != UNEVALUATED.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"DecodeIntegrityTokenRequest": {
"description": "Request to decode the integrity token.",
"id": "DecodeIntegrityTokenRequest",
"properties": {
"integrityToken": {
"description": "Encoded integrity token.",
"type": "string"
}
},
"type": "object"
},
"DecodeIntegrityTokenResponse": {
"description": "Response containing the decoded integrity payload.",
"id": "DecodeIntegrityTokenResponse",
"properties": {
"tokenPayloadExternal": {
"$ref": "TokenPayloadExternal",
"description": "Plain token payload generated from the decoded integrity token."
}
},
"type": "object"
},
"DeviceIntegrity": {
"description": "Contains the device attestation information.",
"id": "DeviceIntegrity",
"properties": {
"deviceRecognitionVerdict": {
"description": "Details about the integrity of the device the app is running on",
"items": {
"enum": [
"UNKNOWN",
"MEETS_BASIC_INTEGRITY",
"MEETS_DEVICE_INTEGRITY",
"MEETS_STRONG_INTEGRITY",
"MEETS_VIRTUAL_INTEGRITY"
],
"enumDescriptions": [
"Play does not have sufficient information to evaluate device integrity",
"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.",
"App is running on GMS Android device with Google Play services.",
"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.",
"App is running on an Android emulator with Google Play services which meets core Android compatibility requirements."
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"RequestDetails": {
"description": "Contains the integrity request information.",
"id": "RequestDetails",
"properties": {
"nonce": {
"description": "Required. Nonce that was provided in the request (which is base64 web-safe no-wrap).",
"type": "string"
},
"requestPackageName": {
"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.",
"type": "string"
},
"timestampMillis": {
"description": "Required. Timestamp, in milliseconds, of the integrity application request.",
"format": "int64",
"type": "string"
}
},
"type": "object"
},
"TestingDetails": {
"description": "Contains additional information generated for testing responses.",
"id": "TestingDetails",
"properties": {
"isTestingResponse": {
"description": "Required. Indicates that the information contained in this payload is a testing response that is statically overridden for a tester.",
"type": "boolean"
}
},
"type": "object"
},
"TokenPayloadExternal": {
"description": "Contains basic app information and integrity signals like device attestation and licensing details.",
"id": "TokenPayloadExternal",
"properties": {
"accountDetails": {
"$ref": "AccountDetails",
"description": "Required. Details about the Play Store account."
},
"appIntegrity": {
"$ref": "AppIntegrity",
"description": "Required. Details about the application integrity."
},
"deviceIntegrity": {
"$ref": "DeviceIntegrity",
"description": "Required. Details about the device integrity."
},
"requestDetails": {
"$ref": "RequestDetails",
"description": "Required. Details about the integrity request."
},
"testingDetails": {
"$ref": "TestingDetails",
"description": "Indicates that this payload is generated for testing purposes and contains any additional data that is linked with testing status."
}
},
"type": "object"
}
},
"servicePath": "",
"title": "Google Play Integrity API",
"version": "v1",
"version_module": true
}