OLD | NEW |
1 // Generated by the protocol buffer compiler. DO NOT EDIT! | 1 // Generated by the protocol buffer compiler. DO NOT EDIT! |
2 // source: google/protobuf/field_mask.proto | 2 // source: google/protobuf/field_mask.proto |
3 | 3 |
4 // This CPP symbol can be defined to use imports that match up to the framework | 4 #import "GPBProtocolBuffers.h" |
5 // imports needed when using CocoaPods. | |
6 #if !defined(GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS) | |
7 #define GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS 0 | |
8 #endif | |
9 | 5 |
10 #if GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS | 6 #if GOOGLE_PROTOBUF_OBJC_GEN_VERSION != 30001 |
11 #import <Protobuf/GPBProtocolBuffers.h> | 7 #error This file was generated by a different version of protoc which is incompa
tible with your Protocol Buffer library sources. |
12 #else | |
13 #import "GPBProtocolBuffers.h" | |
14 #endif | |
15 | |
16 #if GOOGLE_PROTOBUF_OBJC_VERSION < 30002 | |
17 #error This file was generated by a newer version of protoc which is incompatibl
e with your Protocol Buffer library sources. | |
18 #endif | |
19 #if 30002 < GOOGLE_PROTOBUF_OBJC_MIN_SUPPORTED_VERSION | |
20 #error This file was generated by an older version of protoc which is incompatib
le with your Protocol Buffer library sources. | |
21 #endif | 8 #endif |
22 | 9 |
23 // @@protoc_insertion_point(imports) | 10 // @@protoc_insertion_point(imports) |
24 | 11 |
25 #pragma clang diagnostic push | 12 #pragma clang diagnostic push |
26 #pragma clang diagnostic ignored "-Wdeprecated-declarations" | 13 #pragma clang diagnostic ignored "-Wdeprecated-declarations" |
27 | 14 |
28 CF_EXTERN_C_BEGIN | 15 CF_EXTERN_C_BEGIN |
29 | 16 |
30 NS_ASSUME_NONNULL_BEGIN | 17 NS_ASSUME_NONNULL_BEGIN |
31 | 18 |
32 #pragma mark - GPBFieldMaskRoot | 19 #pragma mark - GPBFieldMaskRoot |
33 | 20 |
34 /** | 21 /// Exposes the extension registry for this file. |
35 * Exposes the extension registry for this file. | 22 /// |
36 * | 23 /// The base class provides: |
37 * The base class provides: | 24 /// @code |
38 * @code | 25 /// + (GPBExtensionRegistry *)extensionRegistry; |
39 * + (GPBExtensionRegistry *)extensionRegistry; | 26 /// @endcode |
40 * @endcode | 27 /// which is a @c GPBExtensionRegistry that includes all the extensions defined
by |
41 * which is a @c GPBExtensionRegistry that includes all the extensions defined b
y | 28 /// this file and all files that it depends on. |
42 * this file and all files that it depends on. | |
43 **/ | |
44 @interface GPBFieldMaskRoot : GPBRootObject | 29 @interface GPBFieldMaskRoot : GPBRootObject |
45 @end | 30 @end |
46 | 31 |
47 #pragma mark - GPBFieldMask | 32 #pragma mark - GPBFieldMask |
48 | 33 |
49 typedef GPB_ENUM(GPBFieldMask_FieldNumber) { | 34 typedef GPB_ENUM(GPBFieldMask_FieldNumber) { |
50 GPBFieldMask_FieldNumber_PathsArray = 1, | 35 GPBFieldMask_FieldNumber_PathsArray = 1, |
51 }; | 36 }; |
52 | 37 |
53 /** | 38 /// `FieldMask` represents a set of symbolic field paths, for example: |
54 * `FieldMask` represents a set of symbolic field paths, for example: | 39 /// |
55 * | 40 /// paths: "f.a" |
56 * paths: "f.a" | 41 /// paths: "f.b.d" |
57 * paths: "f.b.d" | 42 /// |
58 * | 43 /// Here `f` represents a field in some root message, `a` and `b` |
59 * Here `f` represents a field in some root message, `a` and `b` | 44 /// fields in the message found in `f`, and `d` a field found in the |
60 * fields in the message found in `f`, and `d` a field found in the | 45 /// message in `f.b`. |
61 * message in `f.b`. | 46 /// |
62 * | 47 /// Field masks are used to specify a subset of fields that should be |
63 * Field masks are used to specify a subset of fields that should be | 48 /// returned by a get operation or modified by an update operation. |
64 * returned by a get operation or modified by an update operation. | 49 /// Field masks also have a custom JSON encoding (see below). |
65 * Field masks also have a custom JSON encoding (see below). | 50 /// |
66 * | 51 /// # Field Masks in Projections |
67 * # Field Masks in Projections | 52 /// |
68 * | 53 /// When used in the context of a projection, a response message or |
69 * When used in the context of a projection, a response message or | 54 /// sub-message is filtered by the API to only contain those fields as |
70 * sub-message is filtered by the API to only contain those fields as | 55 /// specified in the mask. For example, if the mask in the previous |
71 * specified in the mask. For example, if the mask in the previous | 56 /// example is applied to a response message as follows: |
72 * example is applied to a response message as follows: | 57 /// |
73 * | 58 /// f { |
74 * f { | 59 /// a : 22 |
75 * a : 22 | 60 /// b { |
76 * b { | 61 /// d : 1 |
77 * d : 1 | 62 /// x : 2 |
78 * x : 2 | 63 /// } |
79 * } | 64 /// y : 13 |
80 * y : 13 | 65 /// } |
81 * } | 66 /// z: 8 |
82 * z: 8 | 67 /// |
83 * | 68 /// The result will not contain specific values for fields x,y and z |
84 * The result will not contain specific values for fields x,y and z | 69 /// (their value will be set to the default, and omitted in proto text |
85 * (their value will be set to the default, and omitted in proto text | 70 /// output): |
86 * output): | 71 /// |
87 * | 72 /// |
88 * | 73 /// f { |
89 * f { | 74 /// a : 22 |
90 * a : 22 | 75 /// b { |
91 * b { | 76 /// d : 1 |
92 * d : 1 | 77 /// } |
93 * } | 78 /// } |
94 * } | 79 /// |
95 * | 80 /// A repeated field is not allowed except at the last position of a |
96 * A repeated field is not allowed except at the last position of a | 81 /// field mask. |
97 * paths string. | 82 /// |
98 * | 83 /// If a FieldMask object is not present in a get operation, the |
99 * If a FieldMask object is not present in a get operation, the | 84 /// operation applies to all fields (as if a FieldMask of all fields |
100 * operation applies to all fields (as if a FieldMask of all fields | 85 /// had been specified). |
101 * had been specified). | 86 /// |
102 * | 87 /// Note that a field mask does not necessarily apply to the |
103 * Note that a field mask does not necessarily apply to the | 88 /// top-level response message. In case of a REST get operation, the |
104 * top-level response message. In case of a REST get operation, the | 89 /// field mask applies directly to the response, but in case of a REST |
105 * field mask applies directly to the response, but in case of a REST | 90 /// list operation, the mask instead applies to each individual message |
106 * list operation, the mask instead applies to each individual message | 91 /// in the returned resource list. In case of a REST custom method, |
107 * in the returned resource list. In case of a REST custom method, | 92 /// other definitions may be used. Where the mask applies will be |
108 * other definitions may be used. Where the mask applies will be | 93 /// clearly documented together with its declaration in the API. In |
109 * clearly documented together with its declaration in the API. In | 94 /// any case, the effect on the returned resource/resources is required |
110 * any case, the effect on the returned resource/resources is required | 95 /// behavior for APIs. |
111 * behavior for APIs. | 96 /// |
112 * | 97 /// # Field Masks in Update Operations |
113 * # Field Masks in Update Operations | 98 /// |
114 * | 99 /// A field mask in update operations specifies which fields of the |
115 * A field mask in update operations specifies which fields of the | 100 /// targeted resource are going to be updated. The API is required |
116 * targeted resource are going to be updated. The API is required | 101 /// to only change the values of the fields as specified in the mask |
117 * to only change the values of the fields as specified in the mask | 102 /// and leave the others untouched. If a resource is passed in to |
118 * and leave the others untouched. If a resource is passed in to | 103 /// describe the updated values, the API ignores the values of all |
119 * describe the updated values, the API ignores the values of all | 104 /// fields not covered by the mask. |
120 * fields not covered by the mask. | 105 /// |
121 * | 106 /// In order to reset a field's value to the default, the field must |
122 * If a repeated field is specified for an update operation, the existing | 107 /// be in the mask and set to the default value in the provided resource. |
123 * repeated values in the target resource will be overwritten by the new values. | 108 /// Hence, in order to reset all fields of a resource, provide a default |
124 * Note that a repeated field is only allowed in the last position of a `paths` | 109 /// instance of the resource and set all fields in the mask, or do |
125 * string. | 110 /// not provide a mask as described below. |
126 * | 111 /// |
127 * If a sub-message is specified in the last position of the field mask for an | 112 /// If a field mask is not present on update, the operation applies to |
128 * update operation, then the existing sub-message in the target resource is | 113 /// all fields (as if a field mask of all fields has been specified). |
129 * overwritten. Given the target message: | 114 /// Note that in the presence of schema evolution, this may mean that |
130 * | 115 /// fields the client does not know and has therefore not filled into |
131 * f { | 116 /// the request will be reset to their default. If this is unwanted |
132 * b { | 117 /// behavior, a specific service may require a client to always specify |
133 * d : 1 | 118 /// a field mask, producing an error if not. |
134 * x : 2 | 119 /// |
135 * } | 120 /// As with get operations, the location of the resource which |
136 * c : 1 | 121 /// describes the updated values in the request message depends on the |
137 * } | 122 /// operation kind. In any case, the effect of the field mask is |
138 * | 123 /// required to be honored by the API. |
139 * And an update message: | 124 /// |
140 * | 125 /// ## Considerations for HTTP REST |
141 * f { | 126 /// |
142 * b { | 127 /// The HTTP kind of an update operation which uses a field mask must |
143 * d : 10 | 128 /// be set to PATCH instead of PUT in order to satisfy HTTP semantics |
144 * } | 129 /// (PUT must only be used for full updates). |
145 * } | 130 /// |
146 * | 131 /// # JSON Encoding of Field Masks |
147 * then if the field mask is: | 132 /// |
148 * | 133 /// In JSON, a field mask is encoded as a single string where paths are |
149 * paths: "f.b" | 134 /// separated by a comma. Fields name in each path are converted |
150 * | 135 /// to/from lower-camel naming conventions. |
151 * then the result will be: | 136 /// |
152 * | 137 /// As an example, consider the following message declarations: |
153 * f { | 138 /// |
154 * b { | 139 /// message Profile { |
155 * d : 10 | 140 /// User user = 1; |
156 * } | 141 /// Photo photo = 2; |
157 * c : 1 | 142 /// } |
158 * } | 143 /// message User { |
159 * | 144 /// string display_name = 1; |
160 * However, if the update mask was: | 145 /// string address = 2; |
161 * | 146 /// } |
162 * paths: "f.b.d" | 147 /// |
163 * | 148 /// In proto a field mask for `Profile` may look as such: |
164 * then the result would be: | 149 /// |
165 * | 150 /// mask { |
166 * f { | 151 /// paths: "user.display_name" |
167 * b { | 152 /// paths: "photo" |
168 * d : 10 | 153 /// } |
169 * x : 2 | 154 /// |
170 * } | 155 /// In JSON, the same mask is represented as below: |
171 * c : 1 | 156 /// |
172 * } | 157 /// { |
173 * | 158 /// mask: "user.displayName,photo" |
174 * In order to reset a field's value to the default, the field must | 159 /// } |
175 * be in the mask and set to the default value in the provided resource. | 160 /// |
176 * Hence, in order to reset all fields of a resource, provide a default | 161 /// # Field Masks and Oneof Fields |
177 * instance of the resource and set all fields in the mask, or do | 162 /// |
178 * not provide a mask as described below. | 163 /// Field masks treat fields in oneofs just as regular fields. Consider the |
179 * | 164 /// following message: |
180 * If a field mask is not present on update, the operation applies to | 165 /// |
181 * all fields (as if a field mask of all fields has been specified). | 166 /// message SampleMessage { |
182 * Note that in the presence of schema evolution, this may mean that | 167 /// oneof test_oneof { |
183 * fields the client does not know and has therefore not filled into | 168 /// string name = 4; |
184 * the request will be reset to their default. If this is unwanted | 169 /// SubMessage sub_message = 9; |
185 * behavior, a specific service may require a client to always specify | 170 /// } |
186 * a field mask, producing an error if not. | 171 /// } |
187 * | 172 /// |
188 * As with get operations, the location of the resource which | 173 /// The field mask can be: |
189 * describes the updated values in the request message depends on the | 174 /// |
190 * operation kind. In any case, the effect of the field mask is | 175 /// mask { |
191 * required to be honored by the API. | 176 /// paths: "name" |
192 * | 177 /// } |
193 * ## Considerations for HTTP REST | 178 /// |
194 * | 179 /// Or: |
195 * The HTTP kind of an update operation which uses a field mask must | 180 /// |
196 * be set to PATCH instead of PUT in order to satisfy HTTP semantics | 181 /// mask { |
197 * (PUT must only be used for full updates). | 182 /// paths: "sub_message" |
198 * | 183 /// } |
199 * # JSON Encoding of Field Masks | 184 /// |
200 * | 185 /// Note that oneof type names ("test_oneof" in this case) cannot be used in |
201 * In JSON, a field mask is encoded as a single string where paths are | 186 /// paths. |
202 * separated by a comma. Fields name in each path are converted | |
203 * to/from lower-camel naming conventions. | |
204 * | |
205 * As an example, consider the following message declarations: | |
206 * | |
207 * message Profile { | |
208 * User user = 1; | |
209 * Photo photo = 2; | |
210 * } | |
211 * message User { | |
212 * string display_name = 1; | |
213 * string address = 2; | |
214 * } | |
215 * | |
216 * In proto a field mask for `Profile` may look as such: | |
217 * | |
218 * mask { | |
219 * paths: "user.display_name" | |
220 * paths: "photo" | |
221 * } | |
222 * | |
223 * In JSON, the same mask is represented as below: | |
224 * | |
225 * { | |
226 * mask: "user.displayName,photo" | |
227 * } | |
228 * | |
229 * # Field Masks and Oneof Fields | |
230 * | |
231 * Field masks treat fields in oneofs just as regular fields. Consider the | |
232 * following message: | |
233 * | |
234 * message SampleMessage { | |
235 * oneof test_oneof { | |
236 * string name = 4; | |
237 * SubMessage sub_message = 9; | |
238 * } | |
239 * } | |
240 * | |
241 * The field mask can be: | |
242 * | |
243 * mask { | |
244 * paths: "name" | |
245 * } | |
246 * | |
247 * Or: | |
248 * | |
249 * mask { | |
250 * paths: "sub_message" | |
251 * } | |
252 * | |
253 * Note that oneof type names ("test_oneof" in this case) cannot be used in | |
254 * paths. | |
255 **/ | |
256 @interface GPBFieldMask : GPBMessage | 187 @interface GPBFieldMask : GPBMessage |
257 | 188 |
258 /** The set of field mask paths. */ | 189 /// The set of field mask paths. |
259 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString
*> *pathsArray; | 190 @property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<NSString
*> *pathsArray; |
260 /** The number of items in @c pathsArray without causing the array to be created
. */ | 191 /// The number of items in @c pathsArray without causing the array to be created
. |
261 @property(nonatomic, readonly) NSUInteger pathsArray_Count; | 192 @property(nonatomic, readonly) NSUInteger pathsArray_Count; |
262 | 193 |
263 @end | 194 @end |
264 | 195 |
265 NS_ASSUME_NONNULL_END | 196 NS_ASSUME_NONNULL_END |
266 | 197 |
267 CF_EXTERN_C_END | 198 CF_EXTERN_C_END |
268 | 199 |
269 #pragma clang diagnostic pop | 200 #pragma clang diagnostic pop |
270 | 201 |
271 // @@protoc_insertion_point(global_scope) | 202 // @@protoc_insertion_point(global_scope) |
OLD | NEW |