// Copyright 2016 Google Inc. All Rights Reserved. // // 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. package com.google.api.ads.adwords.lib.selectorfields.v201609.cm; import com.google.api.ads.adwords.lib.selectorfields.EntityField; import com.google.api.ads.adwords.lib.selectorfields.Filterable; /** * A {@code Enum} to facilitate the selection of fields for {@code Budget}. */ public enum BudgetField implements EntityField { // Fields constants definitions /** * Amount of budget in the local currency for the account. */ @Filterable Amount(true), /** * A Budget is created using the BudgetService ADD operation and is assigned a BudgetId. * The BudgetId is used when modifying the Budget with BudgetService, or associating the Budget to a Campaign with CampaignService. * A BudgetId can be shared across different campaigns--the system will then allocate the Budget among the Campaigns to get the optimum result. */ @Filterable BudgetId(true), /** * Name of the Budget. * When creating a Budget through BudgetService, every explicitly shared Budget must have a non-null non-empty name. * In addition, all explicitly shared Budget names owned by an account must be distinct. * Budgets that are not explicitly shared derive their name from the attached Campaign's name. */ @Filterable BudgetName(true), /** * Number of campaigns actively using this budget. * This field is only populated for Get operations. */ @Filterable BudgetReferenceCount(true), /** * */ @Filterable BudgetStatus(true), /** * Delivery method for the Budget which determines the rate at which the Budget is spent. * Defaults to STANDARD and can be changed through BudgetService ADD or SET operations. */ DeliveryMethod(false), /** * If true, this budget was created with the purpose of sharing this budget across one or more campaigns. * <p>If false, this budget was created with the intention to be dedicatedly used with a single campaign, and the Budget's name and status will stay in the sync with the associated Campaign's name and status. * Attempting to share this budget with a second Campaign will result in an error.</p> */ @Filterable IsBudgetExplicitlyShared(true), ; private final boolean isFilterable; private BudgetField(boolean isFilterable) { this.isFilterable = isFilterable; } @Override public boolean isFilterable() { return this.isFilterable; } }