// Copyright 2018 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.v0.errors;

option csharp_namespace = "Google.Ads.GoogleAds.V0.Errors";
option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v0/errors;errors";
option java_multiple_files = true;
option java_outer_classname = "AdGroupCriterionErrorProto";
option java_package = "com.google.ads.googleads.v0.errors";
option objc_class_prefix = "GAA";
option php_namespace = "Google\\Ads\\GoogleAds\\V0\\Errors";
// Proto file describing ad group criterion errors.

// Container for enum describing possible ad group criterion errors.
message AdGroupCriterionErrorEnum {
  // Enum describing possible ad group criterion errors.
  enum AdGroupCriterionError {
    // Enum unspecified.
    UNSPECIFIED = 0;

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

    // No link found between the AdGroupCriterion and the label.
    AD_GROUP_CRITERION_LABEL_DOES_NOT_EXIST = 2;

    // The label has already been attached to the AdGroupCriterion.
    AD_GROUP_CRITERION_LABEL_ALREADY_EXISTS = 3;

    // Negative AdGroupCriterion cannot have labels.
    CANNOT_ADD_LABEL_TO_NEGATIVE_CRITERION = 4;

    // Too many operations for a single call.
    TOO_MANY_OPERATIONS = 5;

    // Negative ad group criteria are not updateable.
    CANT_UPDATE_NEGATIVE = 6;

    // Concrete type of criterion (keyword v.s. placement) is required for ADD
    // and SET operations.
    CONCRETE_TYPE_REQUIRED = 7;

    // Bid is incompatible with ad group's bidding settings.
    BID_INCOMPATIBLE_WITH_ADGROUP = 8;

    // Cannot target and exclude the same criterion at once.
    CANNOT_TARGET_AND_EXCLUDE = 9;

    // The URL of a placement is invalid.
    ILLEGAL_URL = 10;

    // Keyword text was invalid.
    INVALID_KEYWORD_TEXT = 11;

    // Destination URL was invalid.
    INVALID_DESTINATION_URL = 12;

    // The destination url must contain at least one tag (e.g. {lpurl})
    MISSING_DESTINATION_URL_TAG = 13;

    // Keyword-level cpm bid is not supported
    KEYWORD_LEVEL_BID_NOT_SUPPORTED_FOR_MANUALCPM = 14;

    // For example, cannot add a biddable ad group criterion that had been
    // removed.
    INVALID_USER_STATUS = 15;

    // Criteria type cannot be targeted for the ad group. Either the account is
    // restricted to keywords only, the criteria type is incompatible with the
    // campaign's bidding strategy, or the criteria type can only be applied to
    // campaigns.
    CANNOT_ADD_CRITERIA_TYPE = 16;

    // Criteria type cannot be excluded for the ad group. Refer to the
    // documentation for a specific criterion to check if it is excludable.
    CANNOT_EXCLUDE_CRITERIA_TYPE = 17;

    // Partial failure is not supported for shopping campaign mutate operations.
    CAMPAIGN_TYPE_NOT_COMPATIBLE_WITH_PARTIAL_FAILURE = 27;

    // Operations in the mutate request changes too many shopping ad groups.
    // Please split requests for multiple shopping ad groups across multiple
    // requests.
    OPERATIONS_FOR_TOO_MANY_SHOPPING_ADGROUPS = 28;

    // Not allowed to modify url fields of an ad group criterion if there are
    // duplicate elements for that ad group criterion in the request.
    CANNOT_MODIFY_URL_FIELDS_WITH_DUPLICATE_ELEMENTS = 29;

    // Cannot set url fields without also setting final urls.
    CANNOT_SET_WITHOUT_FINAL_URLS = 30;

    // Cannot clear final urls if final mobile urls exist.
    CANNOT_CLEAR_FINAL_URLS_IF_FINAL_MOBILE_URLS_EXIST = 31;

    // Cannot clear final urls if final app urls exist.
    CANNOT_CLEAR_FINAL_URLS_IF_FINAL_APP_URLS_EXIST = 32;

    // Cannot clear final urls if tracking url template exists.
    CANNOT_CLEAR_FINAL_URLS_IF_TRACKING_URL_TEMPLATE_EXISTS = 33;

    // Cannot clear final urls if url custom parameters exist.
    CANNOT_CLEAR_FINAL_URLS_IF_URL_CUSTOM_PARAMETERS_EXIST = 34;

    // Cannot set both destination url and final urls.
    CANNOT_SET_BOTH_DESTINATION_URL_AND_FINAL_URLS = 35;

    // Cannot set both destination url and tracking url template.
    CANNOT_SET_BOTH_DESTINATION_URL_AND_TRACKING_URL_TEMPLATE = 36;

    // Final urls are not supported for this criterion type.
    FINAL_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 37;

    // Final mobile urls are not supported for this criterion type.
    FINAL_MOBILE_URLS_NOT_SUPPORTED_FOR_CRITERION_TYPE = 38;

    // Ad group is invalid due to the listing groups it contains.
    INVALID_LISTING_GROUP_HIERARCHY = 39;

    // Listing group unit cannot have children.
    LISTING_GROUP_UNIT_CANNOT_HAVE_CHILDREN = 40;

    // Subdivided listing groups must have an "others" case.
    LISTING_GROUP_SUBDIVISION_REQUIRES_OTHERS_CASE = 41;

    // Dimension type of listing group must be the same as that of its siblings.
    LISTING_GROUP_REQUIRES_SAME_DIMENSION_TYPE_AS_SIBLINGS = 42;

    // Listing group cannot be added to the ad group because it already exists.
    LISTING_GROUP_ALREADY_EXISTS = 43;

    // Listing group referenced in the operation was not found in the ad group.
    LISTING_GROUP_DOES_NOT_EXIST = 44;

    // Recursive removal failed because listing group subdivision is being
    // created or modified in this request.
    LISTING_GROUP_CANNOT_BE_REMOVED = 45;

    // Listing group type is not allowed for specified ad group criterion type.
    INVALID_LISTING_GROUP_TYPE = 46;

    // Listing group in an ADD operation specifies a non temporary criterion id.
    LISTING_GROUP_ADD_MAY_ONLY_USE_TEMP_ID = 47;
  }


}
