1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.adservices.service.stats;
18 
19 import com.google.auto.value.AutoValue;
20 
21 /** Class for AdServicesEncryptionKeyFetched atom. */
22 @AutoValue
23 public abstract class AdServicesEnrollmentTransactionStats {
24     /**
25      * @return query type.
26      */
transactionType()27     public abstract TransactionType transactionType();
28 
29     /**
30      * @return transaction status.
31      */
transactionStatus()32     public abstract TransactionStatus transactionStatus();
33 
34     /**
35      * @return transaction parameter count.
36      */
transactionParameterCount()37     public abstract int transactionParameterCount();
38 
39     /**
40      * @return transaction result count.
41      */
transactionResultCount()42     public abstract int transactionResultCount();
43 
44     /**
45      * @return query result count.
46      */
queryResultCount()47     public abstract int queryResultCount();
48 
49     /**
50      * @return Datasource Record count pre query.
51      */
dataSourceRecordCountPre()52     public abstract int dataSourceRecordCountPre();
53 
54     /**
55      * @return Datasource Record count post query.
56      */
dataSourceRecordCountPost()57     public abstract int dataSourceRecordCountPost();
58 
59     /**
60      * @return Enrollment File Id.
61      */
enrollmentFileBuildId()62     public abstract int enrollmentFileBuildId();
63 
64     /**
65      * @return generic builder.
66      */
builder()67     public static AdServicesEnrollmentTransactionStats.Builder builder() {
68         return new AutoValue_AdServicesEnrollmentTransactionStats.Builder();
69     }
70 
71     @AutoValue.Builder
72     public abstract static class Builder {
73 
74         /** Set query parameter collection count */
setTransactionParameterCount(int value)75         public abstract Builder setTransactionParameterCount(int value);
76 
77         /** Set query result count. */
setQueryResultCount(int value)78         public abstract Builder setQueryResultCount(int value);
79 
80         /** Set transaction result count. After query processing. */
setTransactionResultCount(int value)81         public abstract Builder setTransactionResultCount(int value);
82 
83         /** Set source record count prior to transaction. */
setDataSourceRecordCountPre(int value)84         public abstract Builder setDataSourceRecordCountPre(int value);
85 
86         /** Set source record count following transaction. */
setDataSourceRecordCountPost(int value)87         public abstract Builder setDataSourceRecordCountPost(int value);
88 
89         /** Set Enrollment File Identifier record at time of operation. */
setEnrollmentFileBuildId(int value)90         public abstract Builder setEnrollmentFileBuildId(int value);
91 
92         /** Set Enrollment Transaction Type. */
setTransactionType(TransactionType value)93         public abstract Builder setTransactionType(TransactionType value);
94 
95         /** Set Enrollment Transaction Status. */
setTransactionStatus(TransactionStatus value)96         public abstract Builder setTransactionStatus(TransactionStatus value);
97 
98         /** Build AdServicesEnrollmentTransactionStats */
build()99         public abstract AdServicesEnrollmentTransactionStats build();
100     }
101 
102     public enum TransactionType {
103         UNKNOWN(0),
104         INSERT(1),
105         DELETE(2),
106         DELETE_ALL(3),
107         OVERWRITE_DATA(4),
108         GET_ENROLLMENT_DATA(5),
109         GET_ALL_ENROLLMENT_DATA(6),
110         GET_ENROLLMENT_DATA_FROM_SDK_NAME(7),
111         GET_ENROLLMENT_DATA_FROM_MEASUREMENT_URL(8),
112         GET_ALL_FLEDGE_ENROLLED_ADTECHS(9),
113         GET_ENROLLMENT_DATA_FOR_FLEDGE_BY_ADTECH_IDENTIFIER(10),
114         GET_ENROLLMENT_DATA_FOR_FLEDGE_BY_MATCHING_ADTECH_IDENTIFIER(11),
115         GET_ALL_PAS_ENROLLED_ADTECHS(12),
116 
117         GET_ENROLLMENT_DATA_FOR_PAS_BY_ADTECH_IDENTIFIER(13),
118         GET_ENROLLMENT_DATA_FOR_PAS_BY_MATCHING_ADTECH_IDENTIFIER(14);
119 
120         final int mValue;
121 
TransactionType(int val)122         TransactionType(int val) {
123             this.mValue = val;
124         }
125 
getValue()126         public int getValue() {
127             return mValue;
128         }
129     }
130 
131     public enum TransactionStatus {
132         UNKNOWN(0),
133         SUCCESS(1),
134         DB_NOT_FOUND(2),
135         INVALID_INPUT(3),
136         INVALID_OUTPUT(4),
137         MATCH_NOT_FOUND(5),
138         DATASTORE_EXCEPTION(6);
139         final int mValue;
140 
TransactionStatus(int val)141         TransactionStatus(int val) {
142             this.mValue = val;
143         }
144 
getValue()145         public int getValue() {
146             return mValue;
147         }
148     }
149 }
150