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