1 // Generated by the protocol buffer compiler.  DO NOT EDIT!
2 // source: google/protobuf/field_mask.proto
3 #pragma warning disable 1591, 0612, 3021
4 #region Designer generated code
5 
6 using pb = global::Google.Protobuf;
7 using pbc = global::Google.Protobuf.Collections;
8 using pbr = global::Google.Protobuf.Reflection;
9 using scg = global::System.Collections.Generic;
10 namespace Google.Protobuf.WellKnownTypes {
11 
12   /// <summary>Holder for reflection information generated from google/protobuf/field_mask.proto</summary>
13   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
14   public static partial class FieldMaskReflection {
15 
16     #region Descriptor
17     /// <summary>File descriptor for google/protobuf/field_mask.proto</summary>
18     public static pbr::FileDescriptor Descriptor {
19       get { return descriptor; }
20     }
21     private static pbr::FileDescriptor descriptor;
22 
FieldMaskReflection()23     static FieldMaskReflection() {
24       byte[] descriptorData = global::System.Convert.FromBase64String(
25           string.Concat(
26             "CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnBy",
27             "b3RvYnVmIhoKCUZpZWxkTWFzaxINCgVwYXRocxgBIAMoCUJRChNjb20uZ29v",
28             "Z2xlLnByb3RvYnVmQg5GaWVsZE1hc2tQcm90b1ABoAEBogIDR1BCqgIeR29v",
29             "Z2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzYgZwcm90bzM="));
30       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
31           new pbr::FileDescriptor[] { },
32           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
33             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.WellKnownTypes.FieldMask), global::Google.Protobuf.WellKnownTypes.FieldMask.Parser, new[]{ "Paths" }, null, null, null)
34           }));
35     }
36     #endregion
37 
38   }
39   #region Messages
40   /// <summary>
41   ///  `FieldMask` represents a set of symbolic field paths, for example:
42   ///
43   ///      paths: "f.a"
44   ///      paths: "f.b.d"
45   ///
46   ///  Here `f` represents a field in some root message, `a` and `b`
47   ///  fields in the message found in `f`, and `d` a field found in the
48   ///  message in `f.b`.
49   ///
50   ///  Field masks are used to specify a subset of fields that should be
51   ///  returned by a get operation or modified by an update operation.
52   ///  Field masks also have a custom JSON encoding (see below).
53   ///
54   ///  # Field Masks in Projections
55   ///
56   ///  When used in the context of a projection, a response message or
57   ///  sub-message is filtered by the API to only contain those fields as
58   ///  specified in the mask. For example, if the mask in the previous
59   ///  example is applied to a response message as follows:
60   ///
61   ///      f {
62   ///        a : 22
63   ///        b {
64   ///          d : 1
65   ///          x : 2
66   ///        }
67   ///        y : 13
68   ///      }
69   ///      z: 8
70   ///
71   ///  The result will not contain specific values for fields x,y and z
72   ///  (their value will be set to the default, and omitted in proto text
73   ///  output):
74   ///
75   ///      f {
76   ///        a : 22
77   ///        b {
78   ///          d : 1
79   ///        }
80   ///      }
81   ///
82   ///  A repeated field is not allowed except at the last position of a
83   ///  field mask.
84   ///
85   ///  If a FieldMask object is not present in a get operation, the
86   ///  operation applies to all fields (as if a FieldMask of all fields
87   ///  had been specified).
88   ///
89   ///  Note that a field mask does not necessarily apply to the
90   ///  top-level response message. In case of a REST get operation, the
91   ///  field mask applies directly to the response, but in case of a REST
92   ///  list operation, the mask instead applies to each individual message
93   ///  in the returned resource list. In case of a REST custom method,
94   ///  other definitions may be used. Where the mask applies will be
95   ///  clearly documented together with its declaration in the API.  In
96   ///  any case, the effect on the returned resource/resources is required
97   ///  behavior for APIs.
98   ///
99   ///  # Field Masks in Update Operations
100   ///
101   ///  A field mask in update operations specifies which fields of the
102   ///  targeted resource are going to be updated. The API is required
103   ///  to only change the values of the fields as specified in the mask
104   ///  and leave the others untouched. If a resource is passed in to
105   ///  describe the updated values, the API ignores the values of all
106   ///  fields not covered by the mask.
107   ///
108   ///  In order to reset a field's value to the default, the field must
109   ///  be in the mask and set to the default value in the provided resource.
110   ///  Hence, in order to reset all fields of a resource, provide a default
111   ///  instance of the resource and set all fields in the mask, or do
112   ///  not provide a mask as described below.
113   ///
114   ///  If a field mask is not present on update, the operation applies to
115   ///  all fields (as if a field mask of all fields has been specified).
116   ///  Note that in the presence of schema evolution, this may mean that
117   ///  fields the client does not know and has therefore not filled into
118   ///  the request will be reset to their default. If this is unwanted
119   ///  behavior, a specific service may require a client to always specify
120   ///  a field mask, producing an error if not.
121   ///
122   ///  As with get operations, the location of the resource which
123   ///  describes the updated values in the request message depends on the
124   ///  operation kind. In any case, the effect of the field mask is
125   ///  required to be honored by the API.
126   ///
127   ///  ## Considerations for HTTP REST
128   ///
129   ///  The HTTP kind of an update operation which uses a field mask must
130   ///  be set to PATCH instead of PUT in order to satisfy HTTP semantics
131   ///  (PUT must only be used for full updates).
132   ///
133   ///  # JSON Encoding of Field Masks
134   ///
135   ///  In JSON, a field mask is encoded as a single string where paths are
136   ///  separated by a comma. Fields name in each path are converted
137   ///  to/from lower-camel naming conventions.
138   ///
139   ///  As an example, consider the following message declarations:
140   ///
141   ///      message Profile {
142   ///        User user = 1;
143   ///        Photo photo = 2;
144   ///      }
145   ///      message User {
146   ///        string display_name = 1;
147   ///        string address = 2;
148   ///      }
149   ///
150   ///  In proto a field mask for `Profile` may look as such:
151   ///
152   ///      mask {
153   ///        paths: "user.display_name"
154   ///        paths: "photo"
155   ///      }
156   ///
157   ///  In JSON, the same mask is represented as below:
158   ///
159   ///      {
160   ///        mask: "user.displayName,photo"
161   ///      }
162   ///
163   ///  # Field Masks and Oneof Fields
164   ///
165   ///  Field masks treat fields in oneofs just as regular fields. Consider the
166   ///  following message:
167   ///
168   ///      message SampleMessage {
169   ///        oneof test_oneof {
170   ///          string name = 4;
171   ///          SubMessage sub_message = 9;
172   ///        }
173   ///      }
174   ///
175   ///  The field mask can be:
176   ///
177   ///      mask {
178   ///        paths: "name"
179   ///      }
180   ///
181   ///  Or:
182   ///
183   ///      mask {
184   ///        paths: "sub_message"
185   ///      }
186   ///
187   ///  Note that oneof type names ("test_oneof" in this case) cannot be used in
188   ///  paths.
189   /// </summary>
190   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
191   public sealed partial class FieldMask : pb::IMessage<FieldMask> {
192     private static readonly pb::MessageParser<FieldMask> _parser = new pb::MessageParser<FieldMask>(() => new FieldMask());
193     public static pb::MessageParser<FieldMask> Parser { get { return _parser; } }
194 
195     public static pbr::MessageDescriptor Descriptor {
196       get { return global::Google.Protobuf.WellKnownTypes.FieldMaskReflection.Descriptor.MessageTypes[0]; }
197     }
198 
199     pbr::MessageDescriptor pb::IMessage.Descriptor {
200       get { return Descriptor; }
201     }
202 
FieldMask()203     public FieldMask() {
204       OnConstruction();
205     }
206 
OnConstruction()207     partial void OnConstruction();
208 
FieldMask(FieldMask other)209     public FieldMask(FieldMask other) : this() {
210       paths_ = other.paths_.Clone();
211     }
212 
Clone()213     public FieldMask Clone() {
214       return new FieldMask(this);
215     }
216 
217     /// <summary>Field number for the "paths" field.</summary>
218     public const int PathsFieldNumber = 1;
219     private static readonly pb::FieldCodec<string> _repeated_paths_codec
220         = pb::FieldCodec.ForString(10);
221     private readonly pbc::RepeatedField<string> paths_ = new pbc::RepeatedField<string>();
222     /// <summary>
223     ///  The set of field mask paths.
224     /// </summary>
225     public pbc::RepeatedField<string> Paths {
226       get { return paths_; }
227     }
228 
Equals(object other)229     public override bool Equals(object other) {
230       return Equals(other as FieldMask);
231     }
232 
Equals(FieldMask other)233     public bool Equals(FieldMask other) {
234       if (ReferenceEquals(other, null)) {
235         return false;
236       }
237       if (ReferenceEquals(other, this)) {
238         return true;
239       }
240       if(!paths_.Equals(other.paths_)) return false;
241       return true;
242     }
243 
GetHashCode()244     public override int GetHashCode() {
245       int hash = 1;
246       hash ^= paths_.GetHashCode();
247       return hash;
248     }
249 
ToString()250     public override string ToString() {
251       return pb::JsonFormatter.ToDiagnosticString(this);
252     }
253 
WriteTo(pb::CodedOutputStream output)254     public void WriteTo(pb::CodedOutputStream output) {
255       paths_.WriteTo(output, _repeated_paths_codec);
256     }
257 
CalculateSize()258     public int CalculateSize() {
259       int size = 0;
260       size += paths_.CalculateSize(_repeated_paths_codec);
261       return size;
262     }
263 
MergeFrom(FieldMask other)264     public void MergeFrom(FieldMask other) {
265       if (other == null) {
266         return;
267       }
268       paths_.Add(other.paths_);
269     }
270 
MergeFrom(pb::CodedInputStream input)271     public void MergeFrom(pb::CodedInputStream input) {
272       uint tag;
273       while ((tag = input.ReadTag()) != 0) {
274         switch(tag) {
275           default:
276             input.SkipLastField();
277             break;
278           case 10: {
279             paths_.AddEntriesFrom(input, _repeated_paths_codec);
280             break;
281           }
282         }
283       }
284     }
285 
286   }
287 
288   #endregion
289 
290 }
291 
292 #endregion Designer generated code
293