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 AdServicesEnrollmentTransactionStats 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 Enrollment Transaction latency. 66 */ latencyMs()67 public abstract int latencyMs(); 68 69 /** 70 * @return generic builder. 71 */ builder()72 public static AdServicesEnrollmentTransactionStats.Builder builder() { 73 return new AutoValue_AdServicesEnrollmentTransactionStats.Builder(); 74 } 75 76 @AutoValue.Builder 77 public abstract static class Builder { 78 79 /** Set query parameter collection count */ setTransactionParameterCount(int value)80 public abstract Builder setTransactionParameterCount(int value); 81 82 /** Set query result count. */ setQueryResultCount(int value)83 public abstract Builder setQueryResultCount(int value); 84 85 /** Set transaction result count. After query processing. */ setTransactionResultCount(int value)86 public abstract Builder setTransactionResultCount(int value); 87 88 /** Set source record count prior to transaction. */ setDataSourceRecordCountPre(int value)89 public abstract Builder setDataSourceRecordCountPre(int value); 90 91 /** Set source record count following transaction. */ setDataSourceRecordCountPost(int value)92 public abstract Builder setDataSourceRecordCountPost(int value); 93 94 /** Set Enrollment File Identifier record at time of operation. */ setEnrollmentFileBuildId(int value)95 public abstract Builder setEnrollmentFileBuildId(int value); 96 97 /** Set Enrollment Transaction Type. */ setTransactionType(TransactionType value)98 public abstract Builder setTransactionType(TransactionType value); 99 100 /** Set Enrollment Transaction Status. */ setTransactionStatus(TransactionStatus value)101 public abstract Builder setTransactionStatus(TransactionStatus value); 102 103 /** Set Enrollment Transaction Latency. */ setLatencyMs(int value)104 public abstract Builder setLatencyMs(int value); 105 106 /** Build AdServicesEnrollmentTransactionStats */ build()107 public abstract AdServicesEnrollmentTransactionStats build(); 108 } 109 110 public enum TransactionType { 111 UNKNOWN(0), 112 INSERT(1), 113 DELETE(2), 114 DELETE_ALL(3), 115 OVERWRITE_DATA(4), 116 GET_ENROLLMENT_DATA(5), 117 GET_ALL_ENROLLMENT_DATA(6), 118 GET_ENROLLMENT_DATA_FROM_SDK_NAME(7), 119 GET_ENROLLMENT_DATA_FROM_MEASUREMENT_URL(8), 120 GET_ALL_FLEDGE_ENROLLED_ADTECHS(9), 121 GET_ENROLLMENT_DATA_FOR_FLEDGE_BY_ADTECH_IDENTIFIER(10), 122 GET_ENROLLMENT_DATA_FOR_FLEDGE_BY_MATCHING_ADTECH_IDENTIFIER(11), 123 GET_ALL_PAS_ENROLLED_ADTECHS(12), 124 125 GET_ENROLLMENT_DATA_FOR_PAS_BY_ADTECH_IDENTIFIER(13), 126 GET_ENROLLMENT_DATA_FOR_PAS_BY_MATCHING_ADTECH_IDENTIFIER(14); 127 128 final int mValue; 129 TransactionType(int val)130 TransactionType(int val) { 131 this.mValue = val; 132 } 133 getValue()134 public int getValue() { 135 return mValue; 136 } 137 } 138 139 public enum TransactionStatus { 140 UNKNOWN(0), 141 SUCCESS(1), 142 DB_NOT_FOUND(2), 143 INVALID_INPUT(3), 144 INVALID_OUTPUT(4), 145 MATCH_NOT_FOUND(5), 146 DATASTORE_EXCEPTION(6); 147 final int mValue; 148 TransactionStatus(int val)149 TransactionStatus(int val) { 150 this.mValue = val; 151 } 152 getValue()153 public int getValue() { 154 return mValue; 155 } 156 } 157 } 158