-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
checks-api.json
1745 lines (1745 loc) · 81.9 KB
/
checks-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
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"basePath": "",
"baseUrl": "https://checks.googleapis.com/",
"batchPath": "batch",
"canonicalName": "Checks Service",
"description": "The Checks API contains powerful and easy-to-use privacy and compliance APIs that interact with the Checks product and its underlying technology.",
"discoveryVersion": "v1",
"documentationLink": "https://developers.google.com/checks",
"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": "checks:v1alpha",
"kind": "discovery#restDescription",
"mtlsRootUrl": "https://checks.mtls.googleapis.com/",
"name": "checks",
"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": {
"accounts": {
"resources": {
"apps": {
"methods": {
"get": {
"description": "Gets an app.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}",
"httpMethod": "GET",
"id": "checks.accounts.apps.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}",
"response": {
"$ref": "GoogleChecksAccountV1alphaApp"
}
},
"list": {
"description": "Lists the apps under the given account.",
"flatPath": "v1alpha/accounts/{accountsId}/apps",
"httpMethod": "GET",
"id": "checks.accounts.apps.list",
"parameterOrder": [
"parent"
],
"parameters": {
"pageSize": {
"description": "Optional. The maximum number of results to return. The server may further constrain the maximum number of results returned in a single page. If unspecified, the server will decide the number of results to be returned.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token received from a previous `ListApps` call. Provide this to retrieve the subsequent page.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. The parent account. Example: `accounts/123`",
"location": "path",
"pattern": "^accounts/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+parent}/apps",
"response": {
"$ref": "GoogleChecksAccountV1alphaListAppsResponse"
}
}
},
"resources": {
"operations": {
"methods": {
"cancel": {
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}:cancel",
"httpMethod": "POST",
"id": "checks.accounts.apps.operations.cancel",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be cancelled.",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}:cancel",
"request": {
"$ref": "CancelOperationRequest"
},
"response": {
"$ref": "Empty"
}
},
"delete": {
"description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}",
"httpMethod": "DELETE",
"id": "checks.accounts.apps.operations.delete",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to be deleted.",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}",
"response": {
"$ref": "Empty"
}
},
"get": {
"description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}",
"httpMethod": "GET",
"id": "checks.accounts.apps.operations.get",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource.",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}",
"response": {
"$ref": "Operation"
}
},
"list": {
"description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations",
"httpMethod": "GET",
"id": "checks.accounts.apps.operations.list",
"parameterOrder": [
"name"
],
"parameters": {
"filter": {
"description": "The standard list filter.",
"location": "query",
"type": "string"
},
"name": {
"description": "The name of the operation's parent resource.",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
},
"pageSize": {
"description": "The standard list page size.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "The standard list page token.",
"location": "query",
"type": "string"
}
},
"path": "v1alpha/{+name}/operations",
"response": {
"$ref": "ListOperationsResponse"
}
},
"wait": {
"description": "Waits until the specified long-running operation is done or reaches at most a specified timeout, returning the latest state. If the operation is already done, the latest state is immediately returned. If the timeout specified is greater than the default HTTP/RPC timeout, the HTTP/RPC timeout is used. If the server does not support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Note that this method is on a best-effort basis. It may return the latest state before the specified timeout (including immediately), meaning even an immediate response is no guarantee that the operation is done.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/operations/{operationsId}:wait",
"httpMethod": "POST",
"id": "checks.accounts.apps.operations.wait",
"parameterOrder": [
"name"
],
"parameters": {
"name": {
"description": "The name of the operation resource to wait on.",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+/operations/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}:wait",
"request": {
"$ref": "WaitOperationRequest"
},
"response": {
"$ref": "Operation"
}
}
}
},
"reports": {
"methods": {
"get": {
"description": "Gets a report. By default, only the name and results_uri fields are returned. You can include other fields by listing them in the `fields` URL query parameter. For example, `?fields=name,checks` will return the name and checks fields.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports/{reportsId}",
"httpMethod": "GET",
"id": "checks.accounts.apps.reports.get",
"parameterOrder": [
"name"
],
"parameters": {
"checksFilter": {
"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter checks within the report. Only checks that match the filter string are included in the response. Example: `state = FAILED`",
"location": "query",
"type": "string"
},
"name": {
"description": "Required. Resource name of the report. Example: `accounts/123/apps/456/reports/789`",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+/reports/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+name}",
"response": {
"$ref": "GoogleChecksReportV1alphaReport"
}
},
"list": {
"description": "Lists reports for the specified app. By default, only the name and results_uri fields are returned. You can include other fields by listing them in the `fields` URL query parameter. For example, `?fields=reports(name,checks)` will return the name and checks fields.",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports",
"httpMethod": "GET",
"id": "checks.accounts.apps.reports.list",
"parameterOrder": [
"parent"
],
"parameters": {
"checksFilter": {
"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter checks within reports. Only checks that match the filter string are included in the response. Example: `state = FAILED`",
"location": "query",
"type": "string"
},
"filter": {
"description": "Optional. An [AIP-160](https://google.aip.dev/160) filter string to filter reports. Example: `appBundle.releaseType = PRE_RELEASE`",
"location": "query",
"type": "string"
},
"pageSize": {
"description": "Optional. The maximum number of reports to return. If unspecified, at most 10 reports will be returned. The maximum value is 50; values above 50 will be coerced to 50.",
"format": "int32",
"location": "query",
"type": "integer"
},
"pageToken": {
"description": "Optional. A page token received from a previous `ListReports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListReports` must match the call that provided the page token.",
"location": "query",
"type": "string"
},
"parent": {
"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+parent}/reports",
"response": {
"$ref": "GoogleChecksReportV1alphaListReportsResponse"
}
}
}
}
}
}
}
},
"media": {
"methods": {
"upload": {
"description": "Analyzes the uploaded app bundle and returns a google.longrunning.Operation containing the generated Report. ## Example (upload only) Send a regular POST request with the header `X-Goog-Upload-Protocol: raw`. ``` POST https://checks.googleapis.com/upload/v1alpha/{parent=accounts/*/apps/*}/reports:analyzeUpload HTTP/1.1 X-Goog-Upload-Protocol: raw Content-Length: Content-Type: application/octet-stream ``` ## Example (upload with metadata) Send a multipart POST request where the first body part contains the metadata JSON and the second body part contains the binary upload. Include the header `X-Goog-Upload-Protocol: multipart`. ``` POST https://checks.googleapis.com/upload/v1alpha/{parent=accounts/*/apps/*}/reports:analyzeUpload HTTP/1.1 X-Goog-Upload-Protocol: multipart Content-Length: ? Content-Type: multipart/related; boundary=BOUNDARY --BOUNDARY Content-Type: application/json {\"code_reference_id\":\"db5bcc20f94055fb5bc08cbb9b0e7a5530308786\"} --BOUNDARY --BOUNDARY-- ``` *Note:* Metadata-only requests are not supported. ",
"flatPath": "v1alpha/accounts/{accountsId}/apps/{appsId}/reports:analyzeUpload",
"httpMethod": "POST",
"id": "checks.media.upload",
"mediaUpload": {
"accept": [
"*/*"
],
"maxSize": "10737418240",
"protocols": {
"simple": {
"multipart": true,
"path": "/upload/v1alpha/{+parent}/reports:analyzeUpload"
}
}
},
"parameterOrder": [
"parent"
],
"parameters": {
"parent": {
"description": "Required. Resource name of the app. Example: `accounts/123/apps/456`",
"location": "path",
"pattern": "^accounts/[^/]+/apps/[^/]+$",
"required": true,
"type": "string"
}
},
"path": "v1alpha/{+parent}/reports:analyzeUpload",
"request": {
"$ref": "GoogleChecksReportV1alphaAnalyzeUploadRequest"
},
"response": {
"$ref": "Operation"
},
"supportsMediaUpload": true
}
}
}
},
"revision": "20240312",
"rootUrl": "https://checks.googleapis.com/",
"schemas": {
"CancelOperationRequest": {
"description": "The request message for Operations.CancelOperation.",
"id": "CancelOperationRequest",
"properties": {},
"type": "object"
},
"Empty": {
"description": "A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }",
"id": "Empty",
"properties": {},
"type": "object"
},
"GoogleChecksAccountV1alphaApp": {
"description": "Represents an app in Checks.",
"id": "GoogleChecksAccountV1alphaApp",
"properties": {
"name": {
"description": "The resource name of the app. Example: `accounts/123/apps/456`",
"type": "string"
},
"title": {
"description": "The app's title.",
"type": "string"
}
},
"type": "object"
},
"GoogleChecksAccountV1alphaListAppsResponse": {
"description": "The response message for AccountService.ListApps.",
"id": "GoogleChecksAccountV1alphaListAppsResponse",
"properties": {
"apps": {
"description": "The apps.",
"items": {
"$ref": "GoogleChecksAccountV1alphaApp"
},
"type": "array"
},
"nextPageToken": {
"description": "A token which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaAnalyzeUploadRequest": {
"description": "The request message for ReportService.AnalyzeUpload.",
"id": "GoogleChecksReportV1alphaAnalyzeUploadRequest",
"properties": {
"appBinaryFileType": {
"description": "Optional. The type of the uploaded app binary. If not provided, the server assumes APK file for Android and IPA file for iOS.",
"enum": [
"APP_BINARY_FILE_TYPE_UNSPECIFIED",
"ANDROID_APK",
"ANDROID_AAB",
"IOS_IPA"
],
"enumDescriptions": [
"Not specified.",
".apk file type.",
".aab (app bundle) file type.",
".ipa file type."
],
"type": "string"
},
"codeReferenceId": {
"description": "Optional. Git commit hash or changelist number associated with the upload.",
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaAppBundle": {
"description": "Information about the analyzed app bundle.",
"id": "GoogleChecksReportV1alphaAppBundle",
"properties": {
"bundleId": {
"description": "Unique id of the bundle. For example: \"com.google.Gmail\".",
"type": "string"
},
"codeReferenceId": {
"description": "Git commit hash or changelist number associated with the release.",
"type": "string"
},
"releaseType": {
"description": "Identifies the type of release.",
"enum": [
"APP_BUNDLE_RELEASE_TYPE_UNSPECIFIED",
"PUBLIC",
"PRE_RELEASE"
],
"enumDescriptions": [
"Not specified.",
"Published production bundle.",
"Pre-release bundle."
],
"type": "string"
},
"version": {
"description": "The user-visible version of the bundle such as the Android `versionName` or iOS `CFBundleShortVersionString`. For example: \"7.21.1\".",
"type": "string"
},
"versionId": {
"description": "The version used throughout the operating system and store to identify the build such as the Android `versionCode` or iOS `CFBundleVersion`.",
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheck": {
"description": "A check that was run on your app.",
"id": "GoogleChecksReportV1alphaCheck",
"properties": {
"citations": {
"description": "Regulations and policies that serve as the legal basis for the check.",
"items": {
"$ref": "GoogleChecksReportV1alphaCheckCitation"
},
"type": "array"
},
"evidence": {
"$ref": "GoogleChecksReportV1alphaCheckEvidence",
"description": "Evidence that substantiates the check result."
},
"regionCodes": {
"description": "Regions that are impacted by the check. For more info, see https://google.aip.dev/143#countries-and-regions.",
"items": {
"type": "string"
},
"type": "array"
},
"severity": {
"description": "The urgency or risk level of the check.",
"enum": [
"CHECK_SEVERITY_UNSPECIFIED",
"PRIORITY",
"POTENTIAL",
"OPPORTUNITY"
],
"enumDescriptions": [
"Not specified.",
"Important privacy issue.",
"Potential privacy issue.",
"Opportunity to improve privacy coverage."
],
"type": "string"
},
"state": {
"description": "The result after running the check.",
"enum": [
"CHECK_STATE_UNSPECIFIED",
"PASSED",
"FAILED",
"UNCHECKED"
],
"enumDescriptions": [
"Not specified.",
"The check passed.",
"The check failed.",
"The check was not run."
],
"type": "string"
},
"stateMetadata": {
"$ref": "GoogleChecksReportV1alphaCheckStateMetadata",
"description": "Additional information about the check state in relation to past reports."
},
"type": {
"description": "The type of check that was run. A type will only appear once in a report's list of checks.",
"enum": [
"CHECK_TYPE_UNSPECIFIED",
"STORE_LISTING_PRIVACY_POLICY_LINK_PRESENT",
"PRIVACY_POLICY_UPDATE_DATE_RECENT",
"PRIVACY_POLICY_GDPR_GENERAL_RULES",
"PRIVACY_POLICY_CCPA_GENERAL_RULES",
"PRIVACY_POLICY_COLLECTION_CATEGORIES_DATA_NOTICE",
"PRIVACY_POLICY_PROCESSING_PURPOSE_DATA_NOTICE",
"PRIVACY_POLICY_SHARING_CATEGORIES_DATA_NOTICE",
"PRIVACY_POLICY_DATA_RETENTION_NOTICE",
"PRIVACY_POLICY_CONTACT_DETAILS_NOTICE",
"PRIVACY_POLICY_CHILDREN_GENERAL_RULES",
"PRIVACY_POLICY_DATA_TYPE_PHONE_NUMBER",
"PRIVACY_POLICY_DATA_TYPE_USER_ACCOUNT_INFO",
"PRIVACY_POLICY_DATA_TYPE_PRECISE_LOCATION",
"PRIVACY_POLICY_DATA_TYPE_DEVICE_ID",
"PRIVACY_POLICY_DATA_TYPE_APPS_ON_DEVICE",
"PRIVACY_POLICY_DATA_TYPE_CONTACTS",
"PRIVACY_POLICY_DATA_TYPE_TEXT_MESSAGES",
"PRIVACY_POLICY_DATA_TYPE_PII",
"PRIVACY_POLICY_DATA_TYPE_PII_CATEGORIES",
"PRIVACY_POLICY_DATA_TYPE_HEALTH_AND_BIOMETRIC",
"PRIVACY_POLICY_BRAZIL_LGPD_GENERAL_RULES",
"PRIVACY_POLICY_VIRGINIA_VCDPA_GENERAL_RULES",
"PRIVACY_POLICY_AFFILIATION_MENTION",
"PRIVACY_POLICY_RIGHT_TO_DELETE_NOTICE",
"PRIVACY_POLICY_RIGHT_TO_ACCESS_NOTICE",
"PRIVACY_POLICY_RIGHT_TO_RECTIFICATION_NOTICE",
"PRIVACY_POLICY_RIGHT_TO_KNOW_ABOUT_SELLING_NOTICE",
"PRIVACY_POLICY_RIGHT_TO_KNOW_ABOUT_SHARING_NOTICE",
"PRIVACY_POLICY_RIGHT_TO_OPT_OUT_FROM_SELLING_NOTICE",
"PRIVACY_POLICY_METHOD_TO_OPT_OUT_FROM_SELLING_OR_SHARING_NOTICE",
"PRIVACY_POLICY_DATA_CONTROLLER_IDENTITY",
"PRIVACY_POLICY_DPO_CONTACT_DETAILS",
"PRIVACY_POLICY_RIGHT_TO_LODGE_A_COMPLAINT",
"PRIVACY_POLICY_LEGAL_BASIS",
"PRIVACY_POLICY_CHILDREN_INFO_COLLECTION",
"PRIVACY_POLICY_CHILDREN_INFO_USAGE_PURPOSES",
"PRIVACY_POLICY_CHILDREN_INFO_DISCLOSURE_PRACTICES",
"PRIVACY_POLICY_CHILDREN_INFO_PUBLICITY",
"PRIVACY_POLICY_PARENTS_METHOD_OF_INFO_DELETION",
"PRIVACY_POLICY_PARENTS_METHOD_TO_INFO_REVIEW",
"PRIVACY_POLICY_PARENTS_METHOD_TO_STOP_FURTHER_INFO_COLLECTION_USE",
"PRIVACY_POLICY_PARENTS_RIGHT_TO_INFO_DELETION",
"PRIVACY_POLICY_PARENTS_RIGHT_TO_INFO_REVIEW",
"PRIVACY_POLICY_PARENTS_RIGHT_TO_STOP_FURTHER_INFO_COLLECTION_USE",
"PRIVACY_POLICY_PSL_APPROXIMATE_LOCATION",
"PRIVACY_POLICY_PSL_PRECISE_LOCATION",
"PRIVACY_POLICY_PSL_NAME",
"PRIVACY_POLICY_PSL_EMAIL_ADDRESS",
"PRIVACY_POLICY_PSL_USER_IDENTIFIERS",
"PRIVACY_POLICY_PSL_ADDRESS",
"PRIVACY_POLICY_PSL_PHONE_NUMBER",
"PRIVACY_POLICY_PSL_RACE_AND_ETHNICITY",
"PRIVACY_POLICY_PSL_CREDIT_SCORE",
"PRIVACY_POLICY_PSL_PURCHASE_HISTORY",
"PRIVACY_POLICY_PSL_HEALTH_INFO",
"PRIVACY_POLICY_PSL_FITNESS_INFO",
"PRIVACY_POLICY_PSL_EMAIL_MESSAGES",
"PRIVACY_POLICY_PSL_TEXT_MESSAGES",
"PRIVACY_POLICY_PSL_PHOTOS",
"PRIVACY_POLICY_PSL_VIDEOS",
"PRIVACY_POLICY_PSL_MUSIC_FILES",
"PRIVACY_POLICY_PSL_VOICE_OR_SOUND_RECORDINGS",
"PRIVACY_POLICY_PSL_FILES_AND_DOCS",
"PRIVACY_POLICY_PSL_CALENDAR_EVENTS",
"PRIVACY_POLICY_PSL_CONTACTS",
"PRIVACY_POLICY_PSL_APP_INTERACTIONS",
"PRIVACY_POLICY_PSL_IN_APP_SEARCH_HISTORY",
"PRIVACY_POLICY_PSL_WEB_BROWSING_HISTORY",
"PRIVACY_POLICY_PSL_INSTALLED_APPS",
"PRIVACY_POLICY_PSL_CRASH_LOGS",
"PRIVACY_POLICY_PSL_DIAGNOSTICS",
"PRIVACY_POLICY_PSL_DEVICE_OR_OTHER_IDS",
"DATA_MONITORING_NEW_ENDPOINT",
"DATA_MONITORING_NEW_PERMISSION",
"DATA_MONITORING_NEW_DATA_TYPE",
"DATA_MONITORING_NEW_SDK",
"DATA_MONITORING_ENCRYPTION",
"DATA_MONITORING_NEW_DATA_TYPE_VERSION_DIFF",
"DATA_MONITORING_NEW_ENDPOINT_VERSION_DIFF",
"DATA_MONITORING_NEW_PERMISSION_VERSION_DIFF",
"DATA_MONITORING_NEW_SDK_VERSION_DIFF",
"DATA_MONITORING_SDKS_DENYLIST_VIOLATION",
"DATA_MONITORING_PERMISSIONS_DENYLIST_VIOLATION",
"DATA_MONITORING_ENDPOINTS_DENYLIST_VIOLATION",
"DATA_MONITORING_OUTDATED_SDK_VERSION",
"DATA_MONITORING_CRITICAL_SDK_ISSUE"
],
"enumDescriptions": [
"Not specified.",
"Checks that your store listing includes a working link to your privacy policy.",
"Checks that your privacy policy has been updated recently.",
"Checks if your privacy policy references rights under GDPR for users in the EU.",
"Checks if your privacy policy references rights under the CCPA.",
"Checks if your privacy policy mentions the categories of personal data that are collected.",
"Checks if your privacy policy explains why personal data is processed.",
"Checks if your privacy policy includes information about third-party sharing of personal data.",
"Checks if your privacy policy describes your data retention practices.",
"Checks if contact information is included in your privacy policy.",
"Checks if information about requirements related to children is included in your privacy policy.",
"Checks if the Phone Number data type declaration in your privacy policy matches usage.",
"Checks if the User Account Info data type declaration in your privacy policy matches usage.",
"Checks if the Precise Location data type declaration in your privacy policy matches usage.",
"Checks if the Device ID data type declaration in your privacy policy matches usage.",
"Checks if the Apps on Device data type declaration in your privacy policy matches usage.",
"Checks if the Contacts data type declaration in your privacy policy matches usage.",
"Checks if the Text Messages data type declaration in your privacy policy matches usage.",
"Checks if the PII data type declaration in your privacy policy matches usage.",
"Checks if the PII Categories data type declaration in your privacy policy matches usage.",
"Checks if the Health and Biometric data type declaration in your privacy policy matches usage.",
"Checks if your privacy policy references rights under LGPD for users in Brazil.",
"Checks if your privacy policy references rights under VCDPA for users in Virginia.",
"Checks if your privacy policy identifies your company or app name(s).",
"Checks if your privacy policy mentions your users' right to delete their data.",
"Checks if your privacy policy mentions your users' right to access the data held about them.",
"Checks if your privacy policy mentions your users' right to correct inaccuracies within their data.",
"Checks if your privacy policy mentions your users' right to know about information selling.",
"Checks if your privacy policy mentions your users' right to know about information sharing.",
"Checks if your privacy policy mentions your users' right to opt out from information selling.",
"Checks if your privacy policy explains how your users opt out from the selling or sharing of their data.",
"Checks if your privacy policy provides the name and contact information for your data controller.",
"Checks if your privacy policy provides the name and contact information for your Data Protection Officer.",
"Checks if your privacy policy mentions your users' right to lodge a complaint with a supervisory authority.",
"Checks if your privacy policy mentions the legal basis you rely on for processing your users' data.",
"Checks if your privacy policy mentions what personal information is collected from children.",
"Checks if your privacy policy mentions why you collect personal information from children.",
"Checks if your privacy policy mentions what personal information from children is shared with third parties.",
"Checks if your privacy policy mentions whether your app allows children to make their personal information publicly available.",
"Checks if your privacy policy mentions how parents/caregivers/guardians can request the deletion of their child's personal information.",
"Checks if your privacy policy mentions how parents/caregivers/guardians can review their child's personal information.",
"Checks if your privacy policy explains how a parent/caregiver/guardian can stop the collection/use from their child's personal information.",
"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to request the deletion of their child's personal information.",
"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to review their child's personal information.",
"Checks if your privacy policy mentions the right of a parent/caregiver/guardian to stop collection/use from their child's personal information.",
"Checks if your privacy policy mentions collection of your users' approximate location if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' precise location if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' personal names if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' email addresses if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' user IDs if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' physical addresses if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' phone numbers if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' race or ethnicity if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' credit score if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' purchase history if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' health info if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' fitness info if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' emails if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' text messages if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' photos if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' videos if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' music files if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' voice or sound recordings if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' files or documents if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' calendar events if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' contacts if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' app interactions if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' in-app search history if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' web browsing history if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' installed apps if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' crash logs if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' performance diagnostics if this data type is declared in your Play Data Safety Section.",
"Checks if your privacy policy mentions collection of your users' device or other IDs if this data type is declared in your Play Data Safety Section.",
"Checks if there is a new endpoint we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the endpoint is not detected in the current report.",
"Checks if there is a new permission we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the permission is not detected in the current report.",
"Checks if there is a new data type we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the data type is not detected in the current report.",
"Checks if there is a new SDK we've recently detected. Because this check accounts for flakiness, it may fail for several weeks even if the SDK is not detected in the current report.",
"Checks if there is any endpoint contacted using HTTP protocol instead of HTTPS. If no protocol is found in the URL, the endpoint is not considered for analysis.",
"Checks if new data types have been detected since a specific app version.",
"Checks if new endpoints have been detected since a specific app version.",
"Checks if new permissions have been detected since a specific app version.",
"Checks if new SDKs have been detected since a specific app version.",
"Checks if any SDKs were detected that are specified in the denylist.",
"Checks if any permissions were detected that are specified in the denylist.",
"Checks if any endpoints were detected that are specified in the denylist.",
"Checks if there are any outdated SDKs.",
"Checks if there are any SDKs with critical issues."
],
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckCitation": {
"description": "Regulation or policy that serves as the legal basis for the check.",
"id": "GoogleChecksReportV1alphaCheckCitation",
"properties": {
"type": {
"description": "Citation type.",
"enum": [
"CITATION_TYPE_UNSPECIFIED",
"COPPA",
"GDPR",
"FERPA",
"CAL_OPPA",
"CCPA",
"SOPIPA",
"LGPD",
"CPRA",
"VCDPA",
"GOOGLE_PLAY_POLICY",
"APP_STORE_POLICY",
"CPA",
"CTDPA",
"UCPA",
"PIPEDA",
"ALBERTA_PIPA",
"QUEBEC_ACT",
"QUEBEC_BILL_64",
"CHINA_PIPL",
"SOUTH_KOREA_PIPA"
],
"enumDescriptions": [
"Not specified.",
"Children's Online Privacy Protection Act.",
"General Data Protection Regulation.",
"Family Educational Rights and Privacy Act.",
"The California Online Privacy Protection Act.",
"California Consumer Privacy Act.",
"Student Online Personal Information Protection Act.",
"Lei Geral de Proteção de Dados.",
"California Consumer Privacy Act.",
"Virginia Consumer Data Protection Act.",
"Google Play Policy.",
"App Store Policy.",
"Colorado Privacy Act.",
"Connecticut Data Privacy Act.",
"Utah Consumer Privacy Act.",
"Personal Information Protection and Electronic Documents Act.",
"Alberta (Canada) Personal Information Protection Act.",
"Quebec: Act Respecting the Protection of Personal Information in the Private Sector.",
"Quebec Bill 64: An Act to Modernize Legislative Provisions as Regards the Protection of Personal Information.",
"China Personal Information Protection Law.",
"South Korea Personal Information Protection Act."
],
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckDataSecurityEvidence": {
"description": "Evidence concerning data security.",
"id": "GoogleChecksReportV1alphaCheckDataSecurityEvidence",
"properties": {
"dataInTransitInfo": {
"description": "Evidence related to data in transit.",
"items": {
"$ref": "GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo"
},
"type": "array"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo": {
"description": "Evidence related to data in transit detected in your app.",
"id": "GoogleChecksReportV1alphaCheckDataSecurityEvidenceDataInTransitInfo",
"properties": {
"uri": {
"description": "The URL contacted by your app. This includes the protocol, domain, and URL parameters.",
"type": "string"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckDataTypeEvidence": {
"description": "Evidence concerning a data type that was found in your app.",
"id": "GoogleChecksReportV1alphaCheckDataTypeEvidence",
"properties": {
"dataType": {
"description": "The data type that was found in your app.",
"enum": [
"DATA_TYPE_UNSPECIFIED",
"DATA_TYPE_APPROXIMATE_LOCATION",
"DATA_TYPE_PRECISE_LOCATION",
"DATA_TYPE_PERSONAL_NAME",
"DATA_TYPE_EMAIL_ADDRESS",
"DATA_TYPE_USER_IDS",
"DATA_TYPE_PHYSICAL_ADDRESS",
"DATA_TYPE_PHONE_NUMBER",
"DATA_TYPE_RACE_AND_ETHNICITY",
"DATA_TYPE_POLITICAL_OR_RELIGIOUS_BELIEFS",
"DATA_TYPE_SEXUAL_ORIENTATION",
"DATA_TYPE_OTHER_PERSONAL_INFO",
"DATA_TYPE_PAYMENT_INFO",
"DATA_TYPE_PURCHASE_HISTORY",
"DATA_TYPE_CREDIT_SCORE",
"DATA_TYPE_OTHER_FINANCIAL_INFO",
"DATA_TYPE_HEALTH_INFO",
"DATA_TYPE_FITNESS_INFO",
"DATA_TYPE_EMAILS",
"DATA_TYPE_TEXT_MESSAGES",
"DATA_TYPE_PHOTOS",
"DATA_TYPE_VIDEOS",
"DATA_TYPE_VOICE_OR_SOUND_RECORDINGS",
"DATA_TYPE_MUSIC_FILES",
"DATA_TYPE_OTHER_AUDIO_FILES",
"DATA_TYPE_FILES_AND_DOCS",
"DATA_TYPE_CALENDAR_EVENTS",
"DATA_TYPE_CONTACTS",
"DATA_TYPE_APP_INTERACTIONS",
"DATA_TYPE_IN_APP_SEARCH_HISTORY",
"DATA_TYPE_INSTALLED_APPS",
"DATA_TYPE_OTHER_USER_GENERATED_CONTENT",
"DATA_TYPE_OTHER_ACTIONS",
"DATA_TYPE_WEB_BROWSING_HISTORY",
"DATA_TYPE_CRASH_LOGS",
"DATA_TYPE_PERFORMANCE_DIAGNOSTICS",
"DATA_TYPE_OTHER_APP_PERFORMANCE_DATA",
"DATA_TYPE_DEVICE_OR_OTHER_IDS"
],
"enumDescriptions": [
"Not specified.",
"User or device physical location to an area greater than or equal to 3 square kilometers, such as the city a user is in, or location provided by Android's ACCESS_COARSE_LOCATION permission.",
"User or device physical location within an area less than 3 square kilometers, such as location provided by Android's ACCESS_FINE_LOCATION permission.",
"How a user refers to themselves, such as their first or last name, or nickname.",
"A user's email address.",
"Identifiers that relate to an identifiable person. For example, an account ID, account number, or account name.",
"A user's address, such as a mailing or home address.",
"A user's phone number.",
"Information about a user's race or ethnicity.",
"Information about a user's political or religious beliefs.",
"Information about a user's sexual orientation.",
"Any other personal information such as date of birth, gender identity, veteran status, etc.",
"Information about a user's financial accounts such as credit card number.",
"Information about purchases or transactions a user has made.",
"Information about a user's credit score.",
"Any other financial information such as user salary or debts.",
"Information about a user's health, such as medical records or symptoms.",
"Information about a user's fitness, such as exercise or other physical activity.",
"A user's emails including the email subject line, sender, recipients, and the content of the email.",
"A user's text messages including the sender, recipients, and the content of the message.",
"A user's photos.",
"A user's videos.",
"A user's voice such as a voicemail or a sound recording.",
"A user's music files.",
"Any other user-created or user-provided audio files.",
"A user's files or documents, or information about their files or documents such as file names.",
"Information from a user's calendar such as events, event notes, and attendees.",
"Information about the user’s contacts such as contact names, message history, and social graph information like usernames, contact recency, contact frequency, interaction duration and call history.",
"Information about how a user interacts with your app, such as the number of page views or taps.",
"Information about what a user has searched for in your app.",
"Inventory of apps or packages installed on the user’s device.",
"Any other user-generated content not listed here, or in any other section. For example, user bios, notes, or open-ended responses.",
"Any other user activity or actions in-app not listed here such as gameplay, likes, and dialog options.",
"Information about the websites a user has visited.",
"Crash log data from your app. For example, the number of times your app has crashed, stack traces, or other information directly related to a crash.",
"Information about the performance of your app. For example battery life, loading time, latency, framerate, or any technical diagnostics.",
"Any other app performance data not listed here.",
"Identifiers that relate to an individual device, browser or app. For example, an IMEI number, MAC address, Widevine Device ID, Firebase installation ID, or advertising identifier."
],
"type": "string"
},
"dataTypeEvidence": {
"$ref": "GoogleChecksReportV1alphaDataTypeEvidence",
"description": "Evidence collected about the data type."
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckEndpointEvidence": {
"description": "Evidence concerning an endpoint that was contacted by your app.",
"id": "GoogleChecksReportV1alphaCheckEndpointEvidence",
"properties": {
"endpoint": {
"$ref": "GoogleChecksReportV1alphaEndpoint",
"description": "The endpoint that was contacted by your app."
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidence": {
"description": "Evidence collected from endpoint restriction violation analysis.",
"id": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidence",
"properties": {
"endpointDetails": {
"description": "Endpoints in violation.",
"items": {
"$ref": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails"
},
"type": "array"
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails": {
"description": "Details of the endpoint in violation.",
"id": "GoogleChecksReportV1alphaCheckEndpointRestrictionViolationEvidenceEndpointDetails",
"properties": {
"endpoint": {
"$ref": "GoogleChecksReportV1alphaEndpoint",
"description": "The endpoint in violation."
}
},
"type": "object"
},
"GoogleChecksReportV1alphaCheckEvidence": {
"description": "Evidence for a check.",
"id": "GoogleChecksReportV1alphaCheckEvidence",
"properties": {
"dataSecurity": {
"$ref": "GoogleChecksReportV1alphaCheckDataSecurityEvidence",
"description": "Evidence concerning data security."
},
"dataTypes": {
"description": "Evidence concerning data types found in your app.",
"items": {
"$ref": "GoogleChecksReportV1alphaCheckDataTypeEvidence"
},
"type": "array"
},
"endpointRestrictionViolations": {