// Copyright 2021 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.v8.errors;

import "google/api/annotations.proto";

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

// Proto file describing campaign errors.

// Container for enum describing possible campaign errors.
message CampaignErrorEnum {
  // Enum describing possible campaign errors.
  enum CampaignError {
    // Enum unspecified.
    UNSPECIFIED = 0;

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

    // Cannot target content network.
    CANNOT_TARGET_CONTENT_NETWORK = 3;

    // Cannot target search network.
    CANNOT_TARGET_SEARCH_NETWORK = 4;

    // Cannot cover search network without google search network.
    CANNOT_TARGET_SEARCH_NETWORK_WITHOUT_GOOGLE_SEARCH = 5;

    // Cannot target Google Search network for a CPM campaign.
    CANNOT_TARGET_GOOGLE_SEARCH_FOR_CPM_CAMPAIGN = 6;

    // Must target at least one network.
    CAMPAIGN_MUST_TARGET_AT_LEAST_ONE_NETWORK = 7;

    // Only some Google partners are allowed to target partner search network.
    CANNOT_TARGET_PARTNER_SEARCH_NETWORK = 8;

    // Cannot target content network only as campaign has criteria-level bidding
    // strategy.
    CANNOT_TARGET_CONTENT_NETWORK_ONLY_WITH_CRITERIA_LEVEL_BIDDING_STRATEGY = 9;

    // Cannot modify the start or end date such that the campaign duration would
    // not contain the durations of all runnable trials.
    CAMPAIGN_DURATION_MUST_CONTAIN_ALL_RUNNABLE_TRIALS = 10;

    // Cannot modify dates, budget or status of a trial campaign.
    CANNOT_MODIFY_FOR_TRIAL_CAMPAIGN = 11;

    // Trying to modify the name of an active or paused campaign, where the name
    // is already assigned to another active or paused campaign.
    DUPLICATE_CAMPAIGN_NAME = 12;

    // Two fields are in conflicting modes.
    INCOMPATIBLE_CAMPAIGN_FIELD = 13;

    // Campaign name cannot be used.
    INVALID_CAMPAIGN_NAME = 14;

    // Given status is invalid.
    INVALID_AD_SERVING_OPTIMIZATION_STATUS = 15;

    // Error in the campaign level tracking URL.
    INVALID_TRACKING_URL = 16;

    // Cannot set both tracking URL template and tracking setting. A user has
    // to clear legacy tracking setting in order to add tracking URL template.
    CANNOT_SET_BOTH_TRACKING_URL_TEMPLATE_AND_TRACKING_SETTING = 17;

    // The maximum number of impressions for Frequency Cap should be an integer
    // greater than 0.
    MAX_IMPRESSIONS_NOT_IN_RANGE = 18;

    // Only the Day, Week and Month time units are supported.
    TIME_UNIT_NOT_SUPPORTED = 19;

    // Operation not allowed on a campaign whose serving status has ended
    INVALID_OPERATION_IF_SERVING_STATUS_HAS_ENDED = 20;

    // This budget is exclusively linked to a Campaign that is using experiments
    // so it cannot be shared.
    BUDGET_CANNOT_BE_SHARED = 21;

    // Campaigns using experiments cannot use a shared budget.
    CAMPAIGN_CANNOT_USE_SHARED_BUDGET = 22;

    // A different budget cannot be assigned to a campaign when there are
    // running or scheduled trials.
    CANNOT_CHANGE_BUDGET_ON_CAMPAIGN_WITH_TRIALS = 23;

    // No link found between the campaign and the label.
    CAMPAIGN_LABEL_DOES_NOT_EXIST = 24;

    // The label has already been attached to the campaign.
    CAMPAIGN_LABEL_ALREADY_EXISTS = 25;

    // A ShoppingSetting was not found when creating a shopping campaign.
    MISSING_SHOPPING_SETTING = 26;

    // The country in shopping setting is not an allowed country.
    INVALID_SHOPPING_SALES_COUNTRY = 27;

    // The requested channel type is not available according to the customer's
    // account setting.
    ADVERTISING_CHANNEL_TYPE_NOT_AVAILABLE_FOR_ACCOUNT_TYPE = 31;

    // The AdvertisingChannelSubType is not a valid subtype of the primary
    // channel type.
    INVALID_ADVERTISING_CHANNEL_SUB_TYPE = 32;

    // At least one conversion must be selected.
    AT_LEAST_ONE_CONVERSION_MUST_BE_SELECTED = 33;

    // Setting ad rotation mode for a campaign is not allowed. Ad rotation mode
    // at campaign is deprecated.
    CANNOT_SET_AD_ROTATION_MODE = 34;

    // Trying to change start date on a campaign that has started.
    CANNOT_MODIFY_START_DATE_IF_ALREADY_STARTED = 35;

    // Trying to modify a date into the past.
    CANNOT_SET_DATE_TO_PAST = 36;

    // Hotel center id in the hotel setting does not match any customer links.
    MISSING_HOTEL_CUSTOMER_LINK = 37;

    // Hotel center id in the hotel setting must match an active customer link.
    INVALID_HOTEL_CUSTOMER_LINK = 38;

    // Hotel setting was not found when creating a hotel ads campaign.
    MISSING_HOTEL_SETTING = 39;

    // A Campaign cannot use shared campaign budgets and be part of a campaign
    // group.
    CANNOT_USE_SHARED_CAMPAIGN_BUDGET_WHILE_PART_OF_CAMPAIGN_GROUP = 40;

    // The app ID was not found.
    APP_NOT_FOUND = 41;

    // Campaign.shopping_setting.enable_local is not supported for the specified
    // campaign type.
    SHOPPING_ENABLE_LOCAL_NOT_SUPPORTED_FOR_CAMPAIGN_TYPE = 42;

    // The merchant does not support the creation of campaigns for Shopping
    // Comparison Listing Ads.
    MERCHANT_NOT_ALLOWED_FOR_COMPARISON_LISTING_ADS = 43;

    // The App campaign for engagement cannot be created because there aren't
    // enough installs.
    INSUFFICIENT_APP_INSTALLS_COUNT = 44;

    // The App campaign for engagement cannot be created because the app is
    // sensitive.
    SENSITIVE_CATEGORY_APP = 45;

    // Customers with Housing, Employment, or Credit ads must accept updated
    // personalized ads policy to continue creating campaigns.
    HEC_AGREEMENT_REQUIRED = 46;

    // The field is not compatible with view through conversion optimization.
    NOT_COMPATIBLE_WITH_VIEW_THROUGH_CONVERSION_OPTIMIZATION = 49;

    // The field type cannot be excluded because an active campaign-asset link
    // of this type exists.
    INVALID_EXCLUDED_PARENT_ASSET_FIELD_TYPE = 48;
  }


}
