// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

syntax = "proto3";

package google.ads.googleads.v13.errors;

option csharp_namespace = "Google.Ads.GoogleAds.V13.Errors";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v13/errors;errors";
option java_multiple_files = true;
option java_outer_classname = "ConversionAdjustmentUploadErrorProto";
option java_package = "com.google.ads.googleads.v13.errors";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V13\\Errors";
option ruby_package = "Google::Ads::GoogleAds::V13::Errors";

// Proto file describing conversion adjustment upload errors.

// Container for enum describing possible conversion adjustment upload errors.
message ConversionAdjustmentUploadErrorEnum {
  // Enum describing possible conversion adjustment upload errors.
  enum ConversionAdjustmentUploadError {
    // Not specified.
    UNSPECIFIED = 0;

    // The received error code is not known in this version.
    UNKNOWN = 1;

    // The specified conversion action was created too recently.
    // Try the upload again after 4-6 hours have passed since the
    // conversion action was created.
    TOO_RECENT_CONVERSION_ACTION = 2;

    // No conversion action of a supported ConversionActionType that matches the
    // provided information can be found for the customer.
    INVALID_CONVERSION_ACTION = 3;

    // A retraction was already reported for this conversion.
    CONVERSION_ALREADY_RETRACTED = 4;

    // A conversion for the supplied combination of conversion
    // action and conversion identifier could not be found.
    CONVERSION_NOT_FOUND = 5;

    // The specified conversion has already expired. Conversions expire after 55
    // days, after which adjustments cannot be reported against them.
    CONVERSION_EXPIRED = 6;

    // The supplied adjustment date time precedes that of the original
    // conversion.
    ADJUSTMENT_PRECEDES_CONVERSION = 7;

    // A restatement with a more recent adjustment date time was already
    // reported for this conversion.
    MORE_RECENT_RESTATEMENT_FOUND = 8;

    // The conversion was created too recently.
    TOO_RECENT_CONVERSION = 9;

    // Restatements cannot be reported for a conversion action that always uses
    // the default value.
    CANNOT_RESTATE_CONVERSION_ACTION_THAT_ALWAYS_USES_DEFAULT_CONVERSION_VALUE =
        10;

    // The request contained more than 2000 adjustments.
    TOO_MANY_ADJUSTMENTS_IN_REQUEST = 11;

    // The conversion has been adjusted too many times.
    TOO_MANY_ADJUSTMENTS = 12;

    // A restatement with this timestamp already exists for this conversion. To
    // upload another adjustment, use a different timestamp.
    RESTATEMENT_ALREADY_EXISTS = 13;

    // This adjustment has the same timestamp as another adjustment in the
    // request for this conversion. To upload another adjustment, use a
    // different timestamp.
    DUPLICATE_ADJUSTMENT_IN_REQUEST = 14;

    // The customer has not accepted the customer data terms in the conversion
    // settings page.
    CUSTOMER_NOT_ACCEPTED_CUSTOMER_DATA_TERMS = 15;

    // The enhanced conversion settings of the conversion action supplied is
    // not eligible for enhancements.
    CONVERSION_ACTION_NOT_ELIGIBLE_FOR_ENHANCEMENT = 16;

    // The provided user identifier is not a SHA-256 hash. It is either unhashed
    // or hashed using a different hash function.
    INVALID_USER_IDENTIFIER = 17;

    // The provided user identifier is not supported.
    // ConversionAdjustmentUploadService only supports hashed_email,
    // hashed_phone_number, and address_info.
    UNSUPPORTED_USER_IDENTIFIER = 18;

    // Cannot set both gclid_date_time_pair and order_id.
    GCLID_DATE_TIME_PAIR_AND_ORDER_ID_BOTH_SET = 20;

    // An enhancement with this conversion action and order_id already exists
    // for this conversion.
    CONVERSION_ALREADY_ENHANCED = 21;

    // This enhancement has the same conversion action and order_id as
    // another enhancement in the request.
    DUPLICATE_ENHANCEMENT_IN_REQUEST = 22;

    // Per our customer data policies, enhancement has been prohibited in your
    // account. If you have any questions, contact your Google
    // representative.
    CUSTOMER_DATA_POLICY_PROHIBITS_ENHANCEMENT = 23;

    // The conversion adjustment is for a conversion action of type WEBPAGE, but
    // does not have an order_id. The order_id is required for an adjustment for
    // a WEBPAGE conversion action.
    MISSING_ORDER_ID_FOR_WEBPAGE = 24;

    // The order_id contains personally identifiable information (PII), such as
    // an email address or phone number.
    ORDER_ID_CONTAINS_PII = 25;
  }
}
