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