Built motion from commit 6a09e18b.|2.6.11
[motion2.git] / legacy-libs / google-proto-files / google / ads / googleads / v0 / resources / feed.proto
1 // Copyright 2018 Google LLC.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //     http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 //
15
16 syntax = "proto3";
17
18 package google.ads.googleads.v0.resources;
19
20 import "google/ads/googleads/v0/enums/affiliate_location_feed_relationship_type.proto";
21 import "google/ads/googleads/v0/enums/feed_attribute_type.proto";
22 import "google/ads/googleads/v0/enums/feed_origin.proto";
23 import "google/ads/googleads/v0/enums/feed_status.proto";
24 import "google/protobuf/wrappers.proto";
25
26 option csharp_namespace = "Google.Ads.GoogleAds.V0.Resources";
27 option go_package = "google.golang.org/genproto/googleapis/ads/googleads/v0/resources;resources";
28 option java_multiple_files = true;
29 option java_outer_classname = "FeedProto";
30 option java_package = "com.google.ads.googleads.v0.resources";
31 option objc_class_prefix = "GAA";
32 option php_namespace = "Google\\Ads\\GoogleAds\\V0\\Resources";
33 option ruby_package = "Google::Ads::GoogleAds::V0::Resources";
34
35 // Proto file describing the Feed resource.
36
37 // A feed.
38 message Feed {
39   // Data used to configure a location feed populated from Google My Business
40   // Locations.
41   message PlacesLocationFeedData {
42     // Data used for authorization using OAuth.
43     message OAuthInfo {
44       // The HTTP method used to obtain authorization.
45       google.protobuf.StringValue http_method = 1;
46
47       // The HTTP request URL used to obtain authorization.
48       google.protobuf.StringValue http_request_url = 2;
49
50       // The HTTP authorization header used to obtain authorization.
51       google.protobuf.StringValue http_authorization_header = 3;
52     }
53
54     // Required authentication token (from OAuth API) for the email.
55     // This field can only be specified in a create request. All its subfields
56     // are not selectable.
57     OAuthInfo oauth_info = 1;
58
59     // Email address of a Google My Business account or email address of a
60     // manager of the Google My Business account. Required.
61     google.protobuf.StringValue email_address = 2;
62
63     // Plus page ID of the managed business whose locations should be used. If
64     // this field is not set, then all businesses accessible by the user
65     // (specified by email_address) are used.
66     // This field is mutate-only and is not selectable.
67     google.protobuf.StringValue business_account_id = 10;
68
69     // Used to filter Google My Business listings by business name. If
70     // business_name_filter is set, only listings with a matching business name
71     // are candidates to be sync'd into FeedItems.
72     google.protobuf.StringValue business_name_filter = 4;
73
74     // Used to filter Google My Business listings by categories. If entries
75     // exist in category_filters, only listings that belong to any of the
76     // categories are candidates to be sync'd into FeedItems. If no entries
77     // exist in category_filters, then all listings are candidates for syncing.
78     repeated google.protobuf.StringValue category_filters = 5;
79
80     // Used to filter Google My Business listings by labels. If entries exist in
81     // label_filters, only listings that has any of the labels set are
82     // candidates to be synchronized into FeedItems. If no entries exist in
83     // label_filters, then all listings are candidates for syncing.
84     repeated google.protobuf.StringValue label_filters = 6;
85   }
86
87   // Data used to configure an affiliate location feed populated with the
88   // specified chains.
89   message AffiliateLocationFeedData {
90     // The list of chains that the affiliate location feed will sync the
91     // locations from.
92     repeated google.protobuf.Int64Value chain_ids = 1;
93
94     // The relationship the chains have with the advertiser.
95     google.ads.googleads.v0.enums.AffiliateLocationFeedRelationshipTypeEnum
96         .AffiliateLocationFeedRelationshipType relationship_type = 2;
97   }
98
99   // The resource name of the feed.
100   // Feed resource names have the form:
101   //
102   // `customers/{customer_id}/feeds/{feed_id}`
103   string resource_name = 1;
104
105   // The ID of the feed.
106   // This field is read-only.
107   google.protobuf.Int64Value id = 2;
108
109   // Name of the feed. Required.
110   google.protobuf.StringValue name = 3;
111
112   // The Feed's attributes. Required on CREATE.
113   // Disallowed on UPDATE. Use attribute_operations to add new attributes.
114   repeated FeedAttribute attributes = 4;
115
116   // The list of operations changing the feed attributes. Attributes can only
117   // be added, not removed.
118   repeated FeedAttributeOperation attribute_operations = 9;
119
120   // Specifies who manages the FeedAttributes for the Feed.
121   google.ads.googleads.v0.enums.FeedOriginEnum.FeedOrigin origin = 5;
122
123   // Status of the feed.
124   // This field is read-only.
125   google.ads.googleads.v0.enums.FeedStatusEnum.FeedStatus status = 8;
126
127   // The system data for the Feed. This data specifies information for
128   // generating the feed items of the system generated feed.
129   oneof system_feed_generation_data {
130     // Data used to configure a location feed populated from Google My Business
131     // Locations.
132     PlacesLocationFeedData places_location_feed_data = 6;
133
134     // Data used to configure an affiliate location feed populated with
135     // the specified chains.
136     AffiliateLocationFeedData affiliate_location_feed_data = 7;
137   }
138 }
139
140 // FeedAttributes define the types of data expected to be present in a Feed. A
141 // single FeedAttribute specifies the expected type of the FeedItemAttributes
142 // with the same FeedAttributeId. Optionally, a FeedAttribute can be marked as
143 // being part of a FeedItem's unique key.
144 message FeedAttribute {
145   // ID of the attribute.
146   google.protobuf.Int64Value id = 1;
147
148   // The name of the attribute. Required.
149   google.protobuf.StringValue name = 2;
150
151   // Data type for feed attribute. Required.
152   google.ads.googleads.v0.enums.FeedAttributeTypeEnum.FeedAttributeType type =
153       3;
154
155   // Indicates that data corresponding to this attribute is part of a
156   // FeedItem's unique key. It defaults to false if it is unspecified. Note
157   // that a unique key is not required in a Feed's schema, in which case the
158   // FeedItems must be referenced by their feed_item_id.
159   google.protobuf.BoolValue is_part_of_key = 4;
160 }
161
162 // Operation to be performed on a feed attribute list in a mutate.
163 message FeedAttributeOperation {
164   // The operator.
165   enum Operator {
166     // Unspecified.
167     UNSPECIFIED = 0;
168
169     // Used for return value only. Represents value unknown in this version.
170     UNKNOWN = 1;
171
172     // Add the attribute to the existing attributes.
173     ADD = 2;
174   }
175
176   // Type of list operation to perform.
177   Operator operator = 1;
178
179   // The feed attribute being added to the list.
180   FeedAttribute value = 2;
181 }