xref: /aosp_15_r20/prebuilts/sdk/35/public/api/framework-ondevicepersonalization.txt (revision 344a7f5ef16c479e7a7f54ee6567a9d112f9e72b)
1// Signature format: 2.0
2package android.adservices.ondevicepersonalization {
3
4  public final class AppInfo implements android.os.Parcelable {
5    method public int describeContents();
6    method @NonNull public boolean isInstalled();
7    method public void writeToParcel(@NonNull android.os.Parcel, int);
8    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.AppInfo> CREATOR;
9  }
10
11  public final class DownloadCompletedInput {
12    method @NonNull public android.adservices.ondevicepersonalization.KeyValueStore getDownloadedContents();
13  }
14
15  public final class DownloadCompletedOutput {
16    method @NonNull public java.util.List<java.lang.String> getRetainedKeys();
17  }
18
19  public static final class DownloadCompletedOutput.Builder {
20    ctor public DownloadCompletedOutput.Builder();
21    method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput.Builder addRetainedKey(@NonNull String);
22    method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput build();
23    method @NonNull public android.adservices.ondevicepersonalization.DownloadCompletedOutput.Builder setRetainedKeys(@NonNull java.util.List<java.lang.String>);
24  }
25
26  public final class EventInput {
27    method @NonNull public android.os.PersistableBundle getParameters();
28    method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord();
29  }
30
31  public final class EventLogRecord implements android.os.Parcelable {
32    method public int describeContents();
33    method @Nullable public android.content.ContentValues getData();
34    method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord();
35    method @IntRange(from=0) public int getRowIndex();
36    method @NonNull public java.time.Instant getTime();
37    method @IntRange(from=1, to=127) public int getType();
38    method public void writeToParcel(@NonNull android.os.Parcel, int);
39    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.EventLogRecord> CREATOR;
40  }
41
42  public static final class EventLogRecord.Builder {
43    ctor public EventLogRecord.Builder();
44    method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord build();
45    method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setData(@Nullable android.content.ContentValues);
46    method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord);
47    method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setRowIndex(@IntRange(from=0) int);
48    method @NonNull public android.adservices.ondevicepersonalization.EventLogRecord.Builder setType(@IntRange(from=1, to=127) int);
49  }
50
51  public final class EventOutput {
52    method @Nullable public android.adservices.ondevicepersonalization.EventLogRecord getEventLogRecord();
53  }
54
55  public static final class EventOutput.Builder {
56    ctor public EventOutput.Builder();
57    method @NonNull public android.adservices.ondevicepersonalization.EventOutput build();
58    method @NonNull public android.adservices.ondevicepersonalization.EventOutput.Builder setEventLogRecord(@Nullable android.adservices.ondevicepersonalization.EventLogRecord);
59  }
60
61  public class EventUrlProvider {
62    method @NonNull @WorkerThread public android.net.Uri createEventTrackingUrlWithRedirect(@NonNull android.os.PersistableBundle, @Nullable android.net.Uri);
63    method @NonNull @WorkerThread public android.net.Uri createEventTrackingUrlWithResponse(@NonNull android.os.PersistableBundle, @Nullable byte[], @Nullable String);
64  }
65
66  public final class ExecuteInput {
67    method @NonNull public String getAppPackageName();
68    method @NonNull public android.os.PersistableBundle getAppParams();
69  }
70
71  public final class ExecuteOutput {
72    method @NonNull public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getEventLogRecords();
73    method @Nullable public byte[] getOutputData();
74    method @Nullable public android.adservices.ondevicepersonalization.RenderingConfig getRenderingConfig();
75    method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord();
76  }
77
78  public static final class ExecuteOutput.Builder {
79    ctor public ExecuteOutput.Builder();
80    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder addEventLogRecord(@NonNull android.adservices.ondevicepersonalization.EventLogRecord);
81    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput build();
82    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setEventLogRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.EventLogRecord>);
83    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setOutputData(@Nullable byte...);
84    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setRenderingConfig(@Nullable android.adservices.ondevicepersonalization.RenderingConfig);
85    method @NonNull public android.adservices.ondevicepersonalization.ExecuteOutput.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord);
86  }
87
88  public final class FederatedComputeInput {
89    method @NonNull public String getPopulationName();
90  }
91
92  public static final class FederatedComputeInput.Builder {
93    ctor public FederatedComputeInput.Builder();
94    method @NonNull public android.adservices.ondevicepersonalization.FederatedComputeInput build();
95    method @NonNull public android.adservices.ondevicepersonalization.FederatedComputeInput.Builder setPopulationName(@NonNull String);
96  }
97
98  public class FederatedComputeScheduler {
99    method @WorkerThread public void cancel(@NonNull android.adservices.ondevicepersonalization.FederatedComputeInput);
100    method @WorkerThread public void schedule(@NonNull android.adservices.ondevicepersonalization.FederatedComputeScheduler.Params, @NonNull android.adservices.ondevicepersonalization.FederatedComputeInput);
101  }
102
103  public static class FederatedComputeScheduler.Params {
104    ctor public FederatedComputeScheduler.Params(@NonNull android.adservices.ondevicepersonalization.TrainingInterval);
105    method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval getTrainingInterval();
106  }
107
108  public final class InferenceInput {
109    method public int getBatchSize();
110    method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput getExpectedOutputStructure();
111    method @NonNull public Object[] getInputData();
112    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params getParams();
113  }
114
115  public static final class InferenceInput.Builder {
116    ctor public InferenceInput.Builder(@NonNull android.adservices.ondevicepersonalization.InferenceInput.Params, @NonNull Object[], @NonNull android.adservices.ondevicepersonalization.InferenceOutput);
117    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput build();
118    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setBatchSize(int);
119    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setExpectedOutputStructure(@NonNull android.adservices.ondevicepersonalization.InferenceOutput);
120    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setInputData(@NonNull java.lang.Object...);
121    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Builder setParams(@NonNull android.adservices.ondevicepersonalization.InferenceInput.Params);
122  }
123
124  public static class InferenceInput.Params {
125    method public int getDelegateType();
126    method @NonNull public android.adservices.ondevicepersonalization.KeyValueStore getKeyValueStore();
127    method @NonNull public String getModelKey();
128    method public int getModelType();
129    method @IntRange(from=1) public int getRecommendedNumThreads();
130    field public static final int DELEGATE_CPU = 1; // 0x1
131    field public static final int MODEL_TYPE_TENSORFLOW_LITE = 1; // 0x1
132  }
133
134  public static final class InferenceInput.Params.Builder {
135    ctor public InferenceInput.Params.Builder(@NonNull android.adservices.ondevicepersonalization.KeyValueStore, @NonNull String);
136    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params build();
137    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setDelegateType(int);
138    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setKeyValueStore(@NonNull android.adservices.ondevicepersonalization.KeyValueStore);
139    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setModelKey(@NonNull String);
140    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setModelType(int);
141    method @NonNull public android.adservices.ondevicepersonalization.InferenceInput.Params.Builder setRecommendedNumThreads(@IntRange(from=1) int);
142  }
143
144  public final class InferenceOutput {
145    method @NonNull public java.util.Map<java.lang.Integer,java.lang.Object> getDataOutputs();
146  }
147
148  public static final class InferenceOutput.Builder {
149    ctor public InferenceOutput.Builder();
150    method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput.Builder addDataOutput(int, @NonNull Object);
151    method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput build();
152    method @NonNull public android.adservices.ondevicepersonalization.InferenceOutput.Builder setDataOutputs(@NonNull java.util.Map<java.lang.Integer,java.lang.Object>);
153  }
154
155  public abstract class IsolatedService extends android.app.Service {
156    ctor public IsolatedService();
157    method @NonNull public final android.adservices.ondevicepersonalization.EventUrlProvider getEventUrlProvider(@NonNull android.adservices.ondevicepersonalization.RequestToken);
158    method @NonNull public final android.adservices.ondevicepersonalization.FederatedComputeScheduler getFederatedComputeScheduler(@NonNull android.adservices.ondevicepersonalization.RequestToken);
159    method @NonNull public final android.adservices.ondevicepersonalization.MutableKeyValueStore getLocalData(@NonNull android.adservices.ondevicepersonalization.RequestToken);
160    method @NonNull public final android.adservices.ondevicepersonalization.LogReader getLogReader(@NonNull android.adservices.ondevicepersonalization.RequestToken);
161    method @NonNull public final android.adservices.ondevicepersonalization.ModelManager getModelManager(@NonNull android.adservices.ondevicepersonalization.RequestToken);
162    method @NonNull public final android.adservices.ondevicepersonalization.KeyValueStore getRemoteData(@NonNull android.adservices.ondevicepersonalization.RequestToken);
163    method @Nullable public final android.adservices.ondevicepersonalization.UserData getUserData(@NonNull android.adservices.ondevicepersonalization.RequestToken);
164    method @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent);
165    method @NonNull public abstract android.adservices.ondevicepersonalization.IsolatedWorker onRequest(@NonNull android.adservices.ondevicepersonalization.RequestToken);
166  }
167
168  public final class IsolatedServiceException extends java.lang.Exception {
169    ctor public IsolatedServiceException(@IntRange(from=1, to=127) int);
170  }
171
172  public interface IsolatedWorker {
173    method public default void onDownloadCompleted(@NonNull android.adservices.ondevicepersonalization.DownloadCompletedInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.DownloadCompletedOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
174    method public default void onEvent(@NonNull android.adservices.ondevicepersonalization.EventInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.EventOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
175    method public default void onExecute(@NonNull android.adservices.ondevicepersonalization.ExecuteInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.ExecuteOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
176    method public default void onRender(@NonNull android.adservices.ondevicepersonalization.RenderInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.RenderOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
177    method public default void onTrainingExamples(@NonNull android.adservices.ondevicepersonalization.TrainingExamplesInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.TrainingExamplesOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
178    method public default void onWebTrigger(@NonNull android.adservices.ondevicepersonalization.WebTriggerInput, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.WebTriggerOutput,android.adservices.ondevicepersonalization.IsolatedServiceException>);
179  }
180
181  public interface KeyValueStore {
182    method @Nullable @WorkerThread public byte[] get(@NonNull String);
183    method @NonNull @WorkerThread public java.util.Set<java.lang.String> keySet();
184  }
185
186  public class LogReader {
187    method @NonNull @WorkerThread public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getJoinedEvents(@NonNull java.time.Instant, @NonNull java.time.Instant);
188    method @NonNull @WorkerThread public java.util.List<android.adservices.ondevicepersonalization.RequestLogRecord> getRequests(@NonNull java.time.Instant, @NonNull java.time.Instant);
189  }
190
191  public class ModelManager {
192    method @WorkerThread public void run(@NonNull android.adservices.ondevicepersonalization.InferenceInput, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.InferenceOutput,java.lang.Exception>);
193  }
194
195  public interface MutableKeyValueStore extends android.adservices.ondevicepersonalization.KeyValueStore {
196    method @Nullable @WorkerThread public byte[] put(@NonNull String, @NonNull byte[]);
197    method @Nullable @WorkerThread public byte[] remove(@NonNull String);
198  }
199
200  public class OnDevicePersonalizationException extends java.lang.Exception {
201    method public int getErrorCode();
202    field public static final int ERROR_ISOLATED_SERVICE_FAILED = 1; // 0x1
203    field public static final int ERROR_PERSONALIZATION_DISABLED = 2; // 0x2
204  }
205
206  public class OnDevicePersonalizationManager {
207    method public void execute(@NonNull android.content.ComponentName, @NonNull android.os.PersistableBundle, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.adservices.ondevicepersonalization.OnDevicePersonalizationManager.ExecuteResult,java.lang.Exception>);
208    method public void requestSurfacePackage(@NonNull android.adservices.ondevicepersonalization.SurfacePackageToken, @NonNull android.os.IBinder, int, int, int, @NonNull java.util.concurrent.Executor, @NonNull android.os.OutcomeReceiver<android.view.SurfaceControlViewHost.SurfacePackage,java.lang.Exception>);
209  }
210
211  public static class OnDevicePersonalizationManager.ExecuteResult {
212    method @Nullable public byte[] getOutputData();
213    method @Nullable public android.adservices.ondevicepersonalization.SurfacePackageToken getSurfacePackageToken();
214  }
215
216  public final class RenderInput {
217    method public int getHeight();
218    method @Nullable public android.adservices.ondevicepersonalization.RenderingConfig getRenderingConfig();
219    method public int getWidth();
220  }
221
222  public final class RenderOutput {
223    method @Nullable public String getContent();
224    method @Nullable public String getTemplateId();
225    method @NonNull public android.os.PersistableBundle getTemplateParams();
226  }
227
228  public static final class RenderOutput.Builder {
229    ctor public RenderOutput.Builder();
230    method @NonNull public android.adservices.ondevicepersonalization.RenderOutput build();
231    method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setContent(@Nullable String);
232    method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setTemplateId(@Nullable String);
233    method @NonNull public android.adservices.ondevicepersonalization.RenderOutput.Builder setTemplateParams(@NonNull android.os.PersistableBundle);
234  }
235
236  public final class RenderingConfig implements android.os.Parcelable {
237    method public int describeContents();
238    method @NonNull public java.util.List<java.lang.String> getKeys();
239    method public void writeToParcel(@NonNull android.os.Parcel, int);
240    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.RenderingConfig> CREATOR;
241  }
242
243  public static final class RenderingConfig.Builder {
244    ctor public RenderingConfig.Builder();
245    method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig.Builder addKey(@NonNull String);
246    method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig build();
247    method @NonNull public android.adservices.ondevicepersonalization.RenderingConfig.Builder setKeys(@NonNull java.util.List<java.lang.String>);
248  }
249
250  public final class RequestLogRecord implements android.os.Parcelable {
251    method public int describeContents();
252    method @NonNull public java.util.List<android.content.ContentValues> getRows();
253    method @NonNull public java.time.Instant getTime();
254    method public void writeToParcel(@NonNull android.os.Parcel, int);
255    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.RequestLogRecord> CREATOR;
256  }
257
258  public static final class RequestLogRecord.Builder {
259    ctor public RequestLogRecord.Builder();
260    method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord.Builder addRow(@NonNull android.content.ContentValues);
261    method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord build();
262    method @NonNull public android.adservices.ondevicepersonalization.RequestLogRecord.Builder setRows(@NonNull java.util.List<android.content.ContentValues>);
263  }
264
265  public class RequestToken {
266  }
267
268  public class SurfacePackageToken {
269  }
270
271  public final class TrainingExampleRecord implements android.os.Parcelable {
272    method public int describeContents();
273    method @Nullable public byte[] getResumptionToken();
274    method @Nullable public byte[] getTrainingExample();
275    method public void writeToParcel(@NonNull android.os.Parcel, int);
276    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.TrainingExampleRecord> CREATOR;
277  }
278
279  public static final class TrainingExampleRecord.Builder {
280    ctor public TrainingExampleRecord.Builder();
281    method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord build();
282    method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord.Builder setResumptionToken(@Nullable byte...);
283    method @NonNull public android.adservices.ondevicepersonalization.TrainingExampleRecord.Builder setTrainingExample(@Nullable byte...);
284  }
285
286  public final class TrainingExamplesInput {
287    method @NonNull public String getPopulationName();
288    method @Nullable public byte[] getResumptionToken();
289    method @NonNull public String getTaskName();
290  }
291
292  public final class TrainingExamplesOutput {
293    method @NonNull public java.util.List<android.adservices.ondevicepersonalization.TrainingExampleRecord> getTrainingExampleRecords();
294  }
295
296  public static final class TrainingExamplesOutput.Builder {
297    ctor public TrainingExamplesOutput.Builder();
298    method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput.Builder addTrainingExampleRecord(@NonNull android.adservices.ondevicepersonalization.TrainingExampleRecord);
299    method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput build();
300    method @NonNull public android.adservices.ondevicepersonalization.TrainingExamplesOutput.Builder setTrainingExampleRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.TrainingExampleRecord>);
301  }
302
303  public final class TrainingInterval {
304    method @NonNull public java.time.Duration getMinimumInterval();
305    method public int getSchedulingMode();
306    field public static final int SCHEDULING_MODE_ONE_TIME = 1; // 0x1
307    field public static final int SCHEDULING_MODE_RECURRENT = 2; // 0x2
308  }
309
310  public static final class TrainingInterval.Builder {
311    ctor public TrainingInterval.Builder();
312    method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval build();
313    method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval.Builder setMinimumInterval(@NonNull java.time.Duration);
314    method @NonNull public android.adservices.ondevicepersonalization.TrainingInterval.Builder setSchedulingMode(int);
315  }
316
317  public final class UserData implements android.os.Parcelable {
318    method public int describeContents();
319    method @NonNull public java.util.Map<java.lang.String,android.adservices.ondevicepersonalization.AppInfo> getAppInfos();
320    method @IntRange(from=0) public long getAvailableStorageBytes();
321    method @IntRange(from=0, to=100) public int getBatteryPercentage();
322    method @NonNull public String getCarrier();
323    method public int getDataNetworkType();
324    method @Nullable public android.net.NetworkCapabilities getNetworkCapabilities();
325    method public int getOrientation();
326    method @NonNull public java.time.Duration getTimezoneUtcOffset();
327    method public void writeToParcel(@NonNull android.os.Parcel, int);
328    field @NonNull public static final android.os.Parcelable.Creator<android.adservices.ondevicepersonalization.UserData> CREATOR;
329  }
330
331  public final class WebTriggerInput {
332    method @NonNull public String getAppPackageName();
333    method @NonNull public byte[] getData();
334    method @NonNull public android.net.Uri getDestinationUrl();
335  }
336
337  public final class WebTriggerOutput {
338    method @NonNull public java.util.List<android.adservices.ondevicepersonalization.EventLogRecord> getEventLogRecords();
339    method @Nullable public android.adservices.ondevicepersonalization.RequestLogRecord getRequestLogRecord();
340  }
341
342  public static final class WebTriggerOutput.Builder {
343    ctor public WebTriggerOutput.Builder();
344    method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder addEventLogRecord(@NonNull android.adservices.ondevicepersonalization.EventLogRecord);
345    method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput build();
346    method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder setEventLogRecords(@NonNull java.util.List<android.adservices.ondevicepersonalization.EventLogRecord>);
347    method @NonNull public android.adservices.ondevicepersonalization.WebTriggerOutput.Builder setRequestLogRecord(@Nullable android.adservices.ondevicepersonalization.RequestLogRecord);
348  }
349
350}
351
352