// Copyright 2017 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.v201702.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 FeedItem}. */ public enum FeedItemField implements EntityField { // Fields constants definitions /** * The feed item's attribute values. * For any unset/unspecified feed attributes, the value is considered unset/null on ADD and unchanged on SET. */ AttributeValues(false), /** * Device preference for the feed item. */ @Filterable DevicePreference(true), /** * End time in which this feed item is no longer effective and will stop serving. * The time zone of endTime must either match the time zone of the account or be unspecified where the time zone defaults to the account time zone. * This field may be null to indicate no end time restriction. * The special value "00000101 000000" may be used to clear an existing end time. */ @Filterable EndTime(true), /** * ID of this feed item's feed */ @Filterable FeedId(true), /** * ID of this feed item. * This may be unspecified if the user-defined key attributes are specified. */ @Filterable FeedItemId(true), /** * Display type of the location criterion. */ GeoTargetingDisplayType(false), /** * Name of the location criterion. * <b> Note:</b> This field is filterable only in LocationCriterionService. */ GeoTargetingLocationName(false), /** * Ordered list of parents of the location criterion. */ GeoTargetingParentLocations(false), /** * The geo targeting restriction of a feed item. * If null then the geo restriction is cleared. */ @Filterable GeoTargetingRestriction(true), /** * The targeting status of the location criterion. */ GeoTargetingStatus(false), /** * Match type of this keyword. */ @Filterable KeywordMatchType(true), /** * ID of this criterion. */ @Filterable KeywordTargetingCriterionId(true), /** * Text of this keyword (at most 80 characters and ten words). */ @Filterable KeywordText(true), /** * List of details about a feed item's validation and approval state for active feed mappings. */ PolicyData(false), /** * FeedItemScheduling specifying times for when the feed item may serve. * On retrieval or creation of the feed item, if the field is left null, no feed item scheduling restrictions are placed on the feed item. * On update, if the field is left unspecified, the previous feedItemScheduling state will not be changed. * On update, if the field is set with a FeedItemScheduling with an empty feedItemSchedules list, the scheduling will be cleared of all FeedItemSchedules indicating the feed item has no scheduling restrictions. */ Scheduling(false), /** * Start time in which this feed item is effective and can begin serving. * The time zone of startTime must either match the time zone of the account or be unspecified where the time zone defaults to the account time zone. * This field may be null to indicate no start time restriction. * The special value "00000101 000000" may be used to clear an existing start time. */ @Filterable StartTime(true), /** * Status of feed item */ @Filterable Status(true), /** * The ID of the adgroup to target. */ @Filterable TargetingAdGroupId(true), /** * The ID of the campaign to target. */ @Filterable TargetingCampaignId(true), /** * A list of mappings to be used for substituting URL custom parameter tags in the trackingUrlTemplate, finalUrls, and/or finalMobileUrls. */ UrlCustomParameters(false), ; private final boolean isFilterable; private FeedItemField(boolean isFilterable) { this.isFilterable = isFilterable; } @Override public boolean isFilterable() { return this.isFilterable; } }