aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Protos
diff options
context:
space:
mode:
authorGravatar Michael Lehenbauer <mikelehen@gmail.com>2018-04-12 09:08:18 -0700
committerGravatar GitHub <noreply@github.com>2018-04-12 09:08:18 -0700
commit6f2ef7d3899f05dae7eb03847d8dddf9b04a7738 (patch)
tree690f179be9097ed3df9bfeb5ddb59ebcc1ab6299 /Firestore/Protos
parent74411e5739237e70fd62c8364626c17ec37ed595 (diff)
Update protos. (#1075)
Diffstat (limited to 'Firestore/Protos')
-rw-r--r--Firestore/Protos/nanopb/google/api/http.pb.c5
-rw-r--r--Firestore/Protos/nanopb/google/api/http.pb.h10
-rw-r--r--Firestore/Protos/nanopb/google/firestore/v1beta1/query.pb.h9
-rw-r--r--Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.c15
-rw-r--r--Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.h16
-rw-r--r--Firestore/Protos/objc/google/api/HTTP.pbobjc.h75
-rw-r--r--Firestore/Protos/objc/google/api/HTTP.pbobjc.m10
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h4
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbobjc.h5
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.h3
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.m4
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.h57
-rw-r--r--Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.m33
-rw-r--r--Firestore/Protos/protos/google/api/http.proto72
-rw-r--r--Firestore/Protos/protos/google/firestore/v1beta1/common.proto3
-rw-r--r--Firestore/Protos/protos/google/firestore/v1beta1/document.proto7
-rw-r--r--Firestore/Protos/protos/google/firestore/v1beta1/firestore.proto76
-rw-r--r--Firestore/Protos/protos/google/firestore/v1beta1/query.proto6
-rw-r--r--Firestore/Protos/protos/google/firestore/v1beta1/write.proto45
-rw-r--r--Firestore/Protos/protos/google/protobuf/any.proto21
-rw-r--r--Firestore/Protos/protos/google/protobuf/timestamp.proto8
21 files changed, 338 insertions, 146 deletions
diff --git a/Firestore/Protos/nanopb/google/api/http.pb.c b/Firestore/Protos/nanopb/google/api/http.pb.c
index 5219163..7a2cd21 100644
--- a/Firestore/Protos/nanopb/google/api/http.pb.c
+++ b/Firestore/Protos/nanopb/google/api/http.pb.c
@@ -15,7 +15,7 @@
*/
/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.8 at Fri Feb 2 17:48:02 2018. */
+/* Generated by nanopb-0.3.8 at Thu Apr 12 07:27:15 2018. */
#include "http.pb.h"
@@ -26,8 +26,9 @@
-const pb_field_t google_api_Http_fields[2] = {
+const pb_field_t google_api_Http_fields[3] = {
PB_FIELD( 1, MESSAGE , REPEATED, CALLBACK, FIRST, google_api_Http, rules, rules, &google_api_HttpRule_fields),
+ PB_FIELD( 2, BOOL , SINGULAR, STATIC , OTHER, google_api_Http, fully_decode_reserved_expansion, rules, 0),
PB_LAST_FIELD
};
diff --git a/Firestore/Protos/nanopb/google/api/http.pb.h b/Firestore/Protos/nanopb/google/api/http.pb.h
index e29758c..a7bbc46 100644
--- a/Firestore/Protos/nanopb/google/api/http.pb.h
+++ b/Firestore/Protos/nanopb/google/api/http.pb.h
@@ -15,7 +15,7 @@
*/
/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.8 at Fri Feb 2 17:48:02 2018. */
+/* Generated by nanopb-0.3.8 at Thu Apr 12 07:27:15 2018. */
#ifndef PB_GOOGLE_API_HTTP_PB_H_INCLUDED
#define PB_GOOGLE_API_HTTP_PB_H_INCLUDED
@@ -39,6 +39,7 @@ typedef struct _google_api_CustomHttpPattern {
typedef struct _google_api_Http {
pb_callback_t rules;
+ bool fully_decode_reserved_expansion;
/* @@protoc_insertion_point(struct:google_api_Http) */
} google_api_Http;
@@ -58,10 +59,10 @@ typedef struct _google_api_HttpRule {
/* Default values for struct fields */
/* Initializer values for message structs */
-#define google_api_Http_init_default {{{NULL}, NULL}}
+#define google_api_Http_init_default {{{NULL}, NULL}, 0}
#define google_api_HttpRule_init_default {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, google_api_CustomHttpPattern_init_default, {{NULL}, NULL}}
#define google_api_CustomHttpPattern_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
-#define google_api_Http_init_zero {{{NULL}, NULL}}
+#define google_api_Http_init_zero {{{NULL}, NULL}, 0}
#define google_api_HttpRule_init_zero {{{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, {{NULL}, NULL}, google_api_CustomHttpPattern_init_zero, {{NULL}, NULL}}
#define google_api_CustomHttpPattern_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
@@ -69,6 +70,7 @@ typedef struct _google_api_HttpRule {
#define google_api_CustomHttpPattern_kind_tag 1
#define google_api_CustomHttpPattern_path_tag 2
#define google_api_Http_rules_tag 1
+#define google_api_Http_fully_decode_reserved_expansion_tag 2
#define google_api_HttpRule_selector_tag 1
#define google_api_HttpRule_get_tag 2
#define google_api_HttpRule_put_tag 3
@@ -80,7 +82,7 @@ typedef struct _google_api_HttpRule {
#define google_api_HttpRule_additional_bindings_tag 11
/* Struct field encoding specification for nanopb */
-extern const pb_field_t google_api_Http_fields[2];
+extern const pb_field_t google_api_Http_fields[3];
extern const pb_field_t google_api_HttpRule_fields[10];
extern const pb_field_t google_api_CustomHttpPattern_fields[3];
diff --git a/Firestore/Protos/nanopb/google/firestore/v1beta1/query.pb.h b/Firestore/Protos/nanopb/google/firestore/v1beta1/query.pb.h
index faad2a2..75b8168 100644
--- a/Firestore/Protos/nanopb/google/firestore/v1beta1/query.pb.h
+++ b/Firestore/Protos/nanopb/google/firestore/v1beta1/query.pb.h
@@ -15,7 +15,7 @@
*/
/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.8 at Fri Feb 2 17:48:02 2018. */
+/* Generated by nanopb-0.3.8 at Thu Apr 12 07:27:15 2018. */
#ifndef PB_GOOGLE_FIRESTORE_V1BETA1_QUERY_PB_H_INCLUDED
#define PB_GOOGLE_FIRESTORE_V1BETA1_QUERY_PB_H_INCLUDED
@@ -60,11 +60,12 @@ typedef enum _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator {
google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_LESS_THAN_OR_EQUAL = 2,
google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_GREATER_THAN = 3,
google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_GREATER_THAN_OR_EQUAL = 4,
- google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_EQUAL = 5
+ google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_EQUAL = 5,
+ google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_ARRAY_CONTAINS = 7
} google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator;
#define _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_MIN google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_OPERATOR_UNSPECIFIED
-#define _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_MAX google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_EQUAL
-#define _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_ARRAYSIZE ((google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator)(google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_EQUAL+1))
+#define _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_MAX google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_ARRAY_CONTAINS
+#define _google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_ARRAYSIZE ((google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator)(google_firestore_v1beta1_StructuredQuery_FieldFilter_Operator_ARRAY_CONTAINS+1))
typedef enum _google_firestore_v1beta1_StructuredQuery_UnaryFilter_Operator {
google_firestore_v1beta1_StructuredQuery_UnaryFilter_Operator_OPERATOR_UNSPECIFIED = 0,
diff --git a/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.c b/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.c
index 462eca6..26542e0 100644
--- a/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.c
+++ b/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.c
@@ -15,7 +15,7 @@
*/
/* Automatically generated nanopb constant definitions */
-/* Generated by nanopb-0.3.8 at Fri Feb 2 17:48:02 2018. */
+/* Generated by nanopb-0.3.8 at Thu Apr 12 07:27:15 2018. */
#include "write.pb.h"
@@ -26,13 +26,12 @@
-const pb_field_t google_firestore_v1beta1_Write_fields[7] = {
+const pb_field_t google_firestore_v1beta1_Write_fields[6] = {
PB_FIELD( 1, MESSAGE , SINGULAR, STATIC , FIRST, google_firestore_v1beta1_Write, update, update, &google_firestore_v1beta1_Document_fields),
PB_FIELD( 2, STRING , SINGULAR, CALLBACK, OTHER, google_firestore_v1beta1_Write, delete_, update, 0),
PB_FIELD( 3, MESSAGE , SINGULAR, STATIC , OTHER, google_firestore_v1beta1_Write, update_mask, delete_, &google_firestore_v1beta1_DocumentMask_fields),
PB_FIELD( 4, MESSAGE , SINGULAR, STATIC , OTHER, google_firestore_v1beta1_Write, current_document, update_mask, &google_firestore_v1beta1_Precondition_fields),
- PB_FIELD( 5, STRING , SINGULAR, CALLBACK, OTHER, google_firestore_v1beta1_Write, verify, current_document, 0),
- PB_FIELD( 6, MESSAGE , SINGULAR, STATIC , OTHER, google_firestore_v1beta1_Write, transform, verify, &google_firestore_v1beta1_DocumentTransform_fields),
+ PB_FIELD( 6, MESSAGE , SINGULAR, STATIC , OTHER, google_firestore_v1beta1_Write, transform, current_document, &google_firestore_v1beta1_DocumentTransform_fields),
PB_LAST_FIELD
};
@@ -42,9 +41,11 @@ const pb_field_t google_firestore_v1beta1_DocumentTransform_fields[3] = {
PB_LAST_FIELD
};
-const pb_field_t google_firestore_v1beta1_DocumentTransform_FieldTransform_fields[3] = {
+const pb_field_t google_firestore_v1beta1_DocumentTransform_FieldTransform_fields[5] = {
PB_FIELD( 1, STRING , SINGULAR, CALLBACK, FIRST, google_firestore_v1beta1_DocumentTransform_FieldTransform, field_path, field_path, 0),
PB_ONEOF_FIELD(transform_type, 2, ENUM , ONEOF, STATIC , OTHER, google_firestore_v1beta1_DocumentTransform_FieldTransform, set_to_server_value, field_path, 0),
+ PB_ONEOF_FIELD(transform_type, 6, MESSAGE , ONEOF, STATIC , UNION, google_firestore_v1beta1_DocumentTransform_FieldTransform, append_missing_elements, field_path, &google_firestore_v1beta1_ArrayValue_fields),
+ PB_ONEOF_FIELD(transform_type, 7, MESSAGE , ONEOF, STATIC , UNION, google_firestore_v1beta1_DocumentTransform_FieldTransform, remove_all_from_array, field_path, &google_firestore_v1beta1_ArrayValue_fields),
PB_LAST_FIELD
};
@@ -92,7 +93,7 @@ const pb_field_t google_firestore_v1beta1_ExistenceFilter_fields[3] = {
* numbers or field sizes that are larger than what can fit in 8 or 16 bit
* field descriptors.
*/
-PB_STATIC_ASSERT((pb_membersize(google_firestore_v1beta1_Write, update) < 65536 && pb_membersize(google_firestore_v1beta1_Write, transform) < 65536 && pb_membersize(google_firestore_v1beta1_Write, update_mask) < 65536 && pb_membersize(google_firestore_v1beta1_Write, current_document) < 65536 && pb_membersize(google_firestore_v1beta1_WriteResult, update_time) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentChange, document) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentDelete, read_time) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentRemove, read_time) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_google_firestore_v1beta1_Write_google_firestore_v1beta1_DocumentTransform_google_firestore_v1beta1_DocumentTransform_FieldTransform_google_firestore_v1beta1_WriteResult_google_firestore_v1beta1_DocumentChange_google_firestore_v1beta1_DocumentDelete_google_firestore_v1beta1_DocumentRemove_google_firestore_v1beta1_ExistenceFilter)
+PB_STATIC_ASSERT((pb_membersize(google_firestore_v1beta1_Write, update) < 65536 && pb_membersize(google_firestore_v1beta1_Write, transform) < 65536 && pb_membersize(google_firestore_v1beta1_Write, update_mask) < 65536 && pb_membersize(google_firestore_v1beta1_Write, current_document) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentTransform_FieldTransform, transform_type.append_missing_elements) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentTransform_FieldTransform, transform_type.remove_all_from_array) < 65536 && pb_membersize(google_firestore_v1beta1_WriteResult, update_time) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentChange, document) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentDelete, read_time) < 65536 && pb_membersize(google_firestore_v1beta1_DocumentRemove, read_time) < 65536), YOU_MUST_DEFINE_PB_FIELD_32BIT_FOR_MESSAGES_google_firestore_v1beta1_Write_google_firestore_v1beta1_DocumentTransform_google_firestore_v1beta1_DocumentTransform_FieldTransform_google_firestore_v1beta1_WriteResult_google_firestore_v1beta1_DocumentChange_google_firestore_v1beta1_DocumentDelete_google_firestore_v1beta1_DocumentRemove_google_firestore_v1beta1_ExistenceFilter)
#endif
#if !defined(PB_FIELD_16BIT) && !defined(PB_FIELD_32BIT)
@@ -103,7 +104,7 @@ PB_STATIC_ASSERT((pb_membersize(google_firestore_v1beta1_Write, update) < 65536
* numbers or field sizes that are larger than what can fit in the default
* 8 bit descriptors.
*/
-PB_STATIC_ASSERT((pb_membersize(google_firestore_v1beta1_Write, update) < 256 && pb_membersize(google_firestore_v1beta1_Write, transform) < 256 && pb_membersize(google_firestore_v1beta1_Write, update_mask) < 256 && pb_membersize(google_firestore_v1beta1_Write, current_document) < 256 && pb_membersize(google_firestore_v1beta1_WriteResult, update_time) < 256 && pb_membersize(google_firestore_v1beta1_DocumentChange, document) < 256 && pb_membersize(google_firestore_v1beta1_DocumentDelete, read_time) < 256 && pb_membersize(google_firestore_v1beta1_DocumentRemove, read_time) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_google_firestore_v1beta1_Write_google_firestore_v1beta1_DocumentTransform_google_firestore_v1beta1_DocumentTransform_FieldTransform_google_firestore_v1beta1_WriteResult_google_firestore_v1beta1_DocumentChange_google_firestore_v1beta1_DocumentDelete_google_firestore_v1beta1_DocumentRemove_google_firestore_v1beta1_ExistenceFilter)
+PB_STATIC_ASSERT((pb_membersize(google_firestore_v1beta1_Write, update) < 256 && pb_membersize(google_firestore_v1beta1_Write, transform) < 256 && pb_membersize(google_firestore_v1beta1_Write, update_mask) < 256 && pb_membersize(google_firestore_v1beta1_Write, current_document) < 256 && pb_membersize(google_firestore_v1beta1_DocumentTransform_FieldTransform, transform_type.append_missing_elements) < 256 && pb_membersize(google_firestore_v1beta1_DocumentTransform_FieldTransform, transform_type.remove_all_from_array) < 256 && pb_membersize(google_firestore_v1beta1_WriteResult, update_time) < 256 && pb_membersize(google_firestore_v1beta1_DocumentChange, document) < 256 && pb_membersize(google_firestore_v1beta1_DocumentDelete, read_time) < 256 && pb_membersize(google_firestore_v1beta1_DocumentRemove, read_time) < 256), YOU_MUST_DEFINE_PB_FIELD_16BIT_FOR_MESSAGES_google_firestore_v1beta1_Write_google_firestore_v1beta1_DocumentTransform_google_firestore_v1beta1_DocumentTransform_FieldTransform_google_firestore_v1beta1_WriteResult_google_firestore_v1beta1_DocumentChange_google_firestore_v1beta1_DocumentDelete_google_firestore_v1beta1_DocumentRemove_google_firestore_v1beta1_ExistenceFilter)
#endif
diff --git a/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.h b/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.h
index a44b6d4..5a272b2 100644
--- a/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.h
+++ b/Firestore/Protos/nanopb/google/firestore/v1beta1/write.pb.h
@@ -15,7 +15,7 @@
*/
/* Automatically generated nanopb header */
-/* Generated by nanopb-0.3.8 at Fri Feb 2 17:48:02 2018. */
+/* Generated by nanopb-0.3.8 at Thu Apr 12 07:27:15 2018. */
#ifndef PB_GOOGLE_FIRESTORE_V1BETA1_WRITE_PB_H_INCLUDED
#define PB_GOOGLE_FIRESTORE_V1BETA1_WRITE_PB_H_INCLUDED
@@ -80,6 +80,8 @@ typedef struct _google_firestore_v1beta1_DocumentTransform_FieldTransform {
pb_size_t which_transform_type;
union {
google_firestore_v1beta1_DocumentTransform_FieldTransform_ServerValue set_to_server_value;
+ google_firestore_v1beta1_ArrayValue append_missing_elements;
+ google_firestore_v1beta1_ArrayValue remove_all_from_array;
} transform_type;
/* @@protoc_insertion_point(struct:google_firestore_v1beta1_DocumentTransform_FieldTransform) */
} google_firestore_v1beta1_DocumentTransform_FieldTransform;
@@ -95,7 +97,6 @@ typedef struct _google_firestore_v1beta1_Write {
pb_callback_t delete_;
google_firestore_v1beta1_DocumentMask update_mask;
google_firestore_v1beta1_Precondition current_document;
- pb_callback_t verify;
google_firestore_v1beta1_DocumentTransform transform;
/* @@protoc_insertion_point(struct:google_firestore_v1beta1_Write) */
} google_firestore_v1beta1_Write;
@@ -109,7 +110,7 @@ typedef struct _google_firestore_v1beta1_WriteResult {
/* Default values for struct fields */
/* Initializer values for message structs */
-#define google_firestore_v1beta1_Write_init_default {google_firestore_v1beta1_Document_init_default, {{NULL}, NULL}, google_firestore_v1beta1_DocumentMask_init_default, google_firestore_v1beta1_Precondition_init_default, {{NULL}, NULL}, google_firestore_v1beta1_DocumentTransform_init_default}
+#define google_firestore_v1beta1_Write_init_default {google_firestore_v1beta1_Document_init_default, {{NULL}, NULL}, google_firestore_v1beta1_DocumentMask_init_default, google_firestore_v1beta1_Precondition_init_default, google_firestore_v1beta1_DocumentTransform_init_default}
#define google_firestore_v1beta1_DocumentTransform_init_default {{{NULL}, NULL}, {{NULL}, NULL}}
#define google_firestore_v1beta1_DocumentTransform_FieldTransform_init_default {{{NULL}, NULL}, 0, {(google_firestore_v1beta1_DocumentTransform_FieldTransform_ServerValue)0}}
#define google_firestore_v1beta1_WriteResult_init_default {google_protobuf_Timestamp_init_default, {{NULL}, NULL}}
@@ -117,7 +118,7 @@ typedef struct _google_firestore_v1beta1_WriteResult {
#define google_firestore_v1beta1_DocumentDelete_init_default {{{NULL}, NULL}, google_protobuf_Timestamp_init_default, {{NULL}, NULL}}
#define google_firestore_v1beta1_DocumentRemove_init_default {{{NULL}, NULL}, {{NULL}, NULL}, google_protobuf_Timestamp_init_default}
#define google_firestore_v1beta1_ExistenceFilter_init_default {0, 0}
-#define google_firestore_v1beta1_Write_init_zero {google_firestore_v1beta1_Document_init_zero, {{NULL}, NULL}, google_firestore_v1beta1_DocumentMask_init_zero, google_firestore_v1beta1_Precondition_init_zero, {{NULL}, NULL}, google_firestore_v1beta1_DocumentTransform_init_zero}
+#define google_firestore_v1beta1_Write_init_zero {google_firestore_v1beta1_Document_init_zero, {{NULL}, NULL}, google_firestore_v1beta1_DocumentMask_init_zero, google_firestore_v1beta1_Precondition_init_zero, google_firestore_v1beta1_DocumentTransform_init_zero}
#define google_firestore_v1beta1_DocumentTransform_init_zero {{{NULL}, NULL}, {{NULL}, NULL}}
#define google_firestore_v1beta1_DocumentTransform_FieldTransform_init_zero {{{NULL}, NULL}, 0, {(google_firestore_v1beta1_DocumentTransform_FieldTransform_ServerValue)0}}
#define google_firestore_v1beta1_WriteResult_init_zero {google_protobuf_Timestamp_init_zero, {{NULL}, NULL}}
@@ -139,12 +140,13 @@ typedef struct _google_firestore_v1beta1_WriteResult {
#define google_firestore_v1beta1_DocumentRemove_removed_target_ids_tag 2
#define google_firestore_v1beta1_DocumentRemove_read_time_tag 4
#define google_firestore_v1beta1_DocumentTransform_FieldTransform_set_to_server_value_tag 2
+#define google_firestore_v1beta1_DocumentTransform_FieldTransform_append_missing_elements_tag 6
+#define google_firestore_v1beta1_DocumentTransform_FieldTransform_remove_all_from_array_tag 7
#define google_firestore_v1beta1_DocumentTransform_FieldTransform_field_path_tag 1
#define google_firestore_v1beta1_ExistenceFilter_target_id_tag 1
#define google_firestore_v1beta1_ExistenceFilter_count_tag 2
#define google_firestore_v1beta1_Write_update_tag 1
#define google_firestore_v1beta1_Write_delete_tag 2
-#define google_firestore_v1beta1_Write_verify_tag 5
#define google_firestore_v1beta1_Write_transform_tag 6
#define google_firestore_v1beta1_Write_update_mask_tag 3
#define google_firestore_v1beta1_Write_current_document_tag 4
@@ -152,9 +154,9 @@ typedef struct _google_firestore_v1beta1_WriteResult {
#define google_firestore_v1beta1_WriteResult_transform_results_tag 2
/* Struct field encoding specification for nanopb */
-extern const pb_field_t google_firestore_v1beta1_Write_fields[7];
+extern const pb_field_t google_firestore_v1beta1_Write_fields[6];
extern const pb_field_t google_firestore_v1beta1_DocumentTransform_fields[3];
-extern const pb_field_t google_firestore_v1beta1_DocumentTransform_FieldTransform_fields[3];
+extern const pb_field_t google_firestore_v1beta1_DocumentTransform_FieldTransform_fields[5];
extern const pb_field_t google_firestore_v1beta1_WriteResult_fields[3];
extern const pb_field_t google_firestore_v1beta1_DocumentChange_fields[4];
extern const pb_field_t google_firestore_v1beta1_DocumentDelete_fields[4];
diff --git a/Firestore/Protos/objc/google/api/HTTP.pbobjc.h b/Firestore/Protos/objc/google/api/HTTP.pbobjc.h
index 9cc00dc..c9e5bb5 100644
--- a/Firestore/Protos/objc/google/api/HTTP.pbobjc.h
+++ b/Firestore/Protos/objc/google/api/HTTP.pbobjc.h
@@ -67,10 +67,11 @@ NS_ASSUME_NONNULL_BEGIN
typedef GPB_ENUM(GAPIHttp_FieldNumber) {
GAPIHttp_FieldNumber_RulesArray = 1,
+ GAPIHttp_FieldNumber_FullyDecodeReservedExpansion = 2,
};
/**
- * Defines the HTTP configuration for a service. It contains a list of
+ * Defines the HTTP configuration for an API service. It contains a list of
* [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
* to one or more HTTP REST API methods.
**/
@@ -85,6 +86,16 @@ typedef GPB_ENUM(GAPIHttp_FieldNumber) {
/** The number of items in @c rulesArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger rulesArray_Count;
+/**
+ * When set to true, URL path parmeters will be fully URI-decoded except in
+ * cases of single segment matches in reserved expansion, where "%2F" will be
+ * left encoded.
+ *
+ * The default behavior is to not decode RFC 6570 reserved characters in multi
+ * segment matches.
+ **/
+@property(nonatomic, readwrite) BOOL fullyDecodeReservedExpansion;
+
@end
#pragma mark - GAPIHttpRule
@@ -113,11 +124,11 @@ typedef GPB_ENUM(GAPIHttpRule_Pattern_OneOfCase) {
/**
* `HttpRule` defines the mapping of an RPC method to one or more HTTP
- * REST APIs. The mapping determines what portions of the request
- * message are populated from the path, query parameters, or body of
- * the HTTP request. The mapping is typically specified as an
- * `google.api.http` annotation, see "google/api/annotations.proto"
- * for details.
+ * REST API methods. The mapping specifies how different portions of the RPC
+ * request message are mapped to URL path, URL query parameters, and
+ * HTTP request body. The mapping is typically specified as an
+ * `google.api.http` annotation on the RPC method,
+ * see "google/api/annotations.proto" for details.
*
* The mapping consists of a field specifying the path template and
* method kind. The path template can refer to fields in the request
@@ -165,6 +176,11 @@ typedef GPB_ENUM(GAPIHttpRule_Pattern_OneOfCase) {
* parameters. Assume the following definition of the request message:
*
*
+ * service Messaging {
+ * rpc GetMessage(GetMessageRequest) returns (Message) {
+ * option (google.api.http).get = "/v1/messages/{message_id}";
+ * }
+ * }
* message GetMessageRequest {
* message SubMessage {
* string subfield = 1;
@@ -277,7 +293,7 @@ typedef GPB_ENUM(GAPIHttpRule_Pattern_OneOfCase) {
* to the request message are as follows:
*
* 1. The `body` field specifies either `*` or a field path, or is
- * omitted. If omitted, it assumes there is no HTTP body.
+ * omitted. If omitted, it indicates there is no HTTP request body.
* 2. Leaf fields (recursive expansion of nested messages in the
* request) can be classified into three types:
* (a) Matched in the URL template.
@@ -296,28 +312,34 @@ typedef GPB_ENUM(GAPIHttpRule_Pattern_OneOfCase) {
* FieldPath = IDENT { "." IDENT } ;
* Verb = ":" LITERAL ;
*
- * The syntax `*` matches a single path segment. It follows the semantics of
- * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
- * Expansion.
+ * The syntax `*` matches a single path segment. The syntax `**` matches zero
+ * or more path segments, which must be the last part of the path except the
+ * `Verb`. The syntax `LITERAL` matches literal text in the path.
*
- * The syntax `**` matches zero or more path segments. It follows the semantics
- * of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
- * Expansion. NOTE: it must be the last segment in the path except the Verb.
- *
- * The syntax `LITERAL` matches literal text in the URL path.
- *
- * The syntax `Variable` matches the entire path as specified by its template;
- * this nested template must not contain further variables. If a variable
+ * The syntax `Variable` matches part of the URL path as specified by its
+ * template. A variable template must not contain other variables. If a variable
* matches a single path segment, its template may be omitted, e.g. `{var}`
* is equivalent to `{var=*}`.
*
+ * If a variable contains exactly one path segment, such as `"{var}"` or
+ * `"{var=*}"`, when such a variable is expanded into a URL path, all characters
+ * except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
+ * Discovery Document as `{var}`.
+ *
+ * If a variable contains one or more path segments, such as `"{var=foo/\*}"`
+ * or `"{var=**}"`, when such a variable is expanded into a URL path, all
+ * characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
+ * show up in the Discovery Document as `{+var}`.
+ *
+ * NOTE: While the single segment variable matches the semantics of
+ * [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
+ * Simple String Expansion, the multi segment variable **does not** match
+ * RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
+ * does not expand special characters like `?` and `#`, which would lead
+ * to invalid URLs.
+ *
* NOTE: the field paths in variables and in the `body` must not refer to
* repeated fields or map fields.
- *
- * Use CustomHttpPattern to specify any HTTP method that is not included in the
- * `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
- * a given URL path rule. The wild-card rule is useful for services that provide
- * content to Web (HTML) clients.
**/
@interface GAPIHttpRule : GPBMessage
@@ -350,7 +372,12 @@ typedef GPB_ENUM(GAPIHttpRule_Pattern_OneOfCase) {
/** Used for updating a resource. */
@property(nonatomic, readwrite, copy, null_resettable) NSString *patch;
-/** Custom pattern is used for defining custom verbs. */
+/**
+ * The custom pattern is used for specifying an HTTP method that is not
+ * included in the `pattern` field, such as HEAD, or "*" to leave the
+ * HTTP method unspecified for this rule. The wild-card rule is useful
+ * for services that provide content to Web (HTML) clients.
+ **/
@property(nonatomic, readwrite, strong, null_resettable) GAPICustomHttpPattern *custom;
/**
diff --git a/Firestore/Protos/objc/google/api/HTTP.pbobjc.m b/Firestore/Protos/objc/google/api/HTTP.pbobjc.m
index 5adf41c..67d8732 100644
--- a/Firestore/Protos/objc/google/api/HTTP.pbobjc.m
+++ b/Firestore/Protos/objc/google/api/HTTP.pbobjc.m
@@ -65,6 +65,7 @@ static GPBFileDescriptor *GAPIHTTPRoot_FileDescriptor(void) {
@implementation GAPIHttp
@dynamic rulesArray, rulesArray_Count;
+@dynamic fullyDecodeReservedExpansion;
typedef struct GAPIHttp__storage_ {
uint32_t _has_storage_[1];
@@ -86,6 +87,15 @@ typedef struct GAPIHttp__storage_ {
.flags = GPBFieldRepeated,
.dataType = GPBDataTypeMessage,
},
+ {
+ .name = "fullyDecodeReservedExpansion",
+ .dataTypeSpecific.className = NULL,
+ .number = GAPIHttp_FieldNumber_FullyDecodeReservedExpansion,
+ .hasIndex = 0,
+ .offset = 1, // Stored in _has_storage_ to save space.
+ .flags = GPBFieldOptional,
+ .dataType = GPBDataTypeBool,
+ },
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[GAPIHttp class]
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h b/Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h
index 3c5bfb1..b960b00 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Document.pbobjc.h
@@ -95,7 +95,7 @@ typedef GPB_ENUM(GCFSDocument_FieldNumber) {
* The map keys represent field names.
*
* A simple field name contains only characters `a` to `z`, `A` to `Z`,
- * `0` to `9`, or `_`, and must not start with `0` to `9` or `_`. For example,
+ * `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
* `foo_bar_17`.
*
* Field names matching the regular expression `__.*__` are reserved. Reserved
@@ -133,7 +133,7 @@ typedef GPB_ENUM(GCFSDocument_FieldNumber) {
/**
* Output only. The time at which the document was last changed.
*
- * This value is initally set to the `create_time` then increases
+ * This value is initially set to the `create_time` then increases
* monotonically with each change to the document. It can also be
* compared to values from other documents and the `read_time` of a query.
**/
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbobjc.h b/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbobjc.h
index 0acd8c0..11f55a9 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbobjc.h
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Firestore.pbobjc.h
@@ -642,10 +642,7 @@ typedef GPB_ENUM(GCFSCommitRequest_FieldNumber) {
/** The number of items in @c writesArray without causing the array to be created. */
@property(nonatomic, readonly) NSUInteger writesArray_Count;
-/**
- * If non-empty, applies all writes in this transaction, and commits it.
- * Otherwise, applies the writes as if they were in their own transaction.
- **/
+/** If set, applies all writes in this transaction, and commits it. */
@property(nonatomic, readwrite, copy, null_resettable) NSData *transaction;
@end
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.h b/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.h
index c2d80e7..7e32934 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.h
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.h
@@ -140,6 +140,9 @@ typedef GPB_ENUM(GCFSStructuredQuery_FieldFilter_Operator) {
/** Equal. */
GCFSStructuredQuery_FieldFilter_Operator_Equal = 5,
+
+ /** Contains. Requires that the field is an array. */
+ GCFSStructuredQuery_FieldFilter_Operator_ArrayContains = 7,
};
GPBEnumDescriptor *GCFSStructuredQuery_FieldFilter_Operator_EnumDescriptor(void);
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.m b/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.m
index 804a5d0..124930a 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.m
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Query.pbobjc.m
@@ -542,7 +542,7 @@ GPBEnumDescriptor *GCFSStructuredQuery_FieldFilter_Operator_EnumDescriptor(void)
static const char *valueNames =
"OperatorUnspecified\000LessThan\000LessThanOrE"
"qual\000GreaterThan\000GreaterThanOrEqual\000Equa"
- "l\000";
+ "l\000ArrayContains\000";
static const int32_t values[] = {
GCFSStructuredQuery_FieldFilter_Operator_OperatorUnspecified,
GCFSStructuredQuery_FieldFilter_Operator_LessThan,
@@ -550,6 +550,7 @@ GPBEnumDescriptor *GCFSStructuredQuery_FieldFilter_Operator_EnumDescriptor(void)
GCFSStructuredQuery_FieldFilter_Operator_GreaterThan,
GCFSStructuredQuery_FieldFilter_Operator_GreaterThanOrEqual,
GCFSStructuredQuery_FieldFilter_Operator_Equal,
+ GCFSStructuredQuery_FieldFilter_Operator_ArrayContains,
};
GPBEnumDescriptor *worker =
[GPBEnumDescriptor allocDescriptorForName:GPBNSStringifySymbol(GCFSStructuredQuery_FieldFilter_Operator)
@@ -572,6 +573,7 @@ BOOL GCFSStructuredQuery_FieldFilter_Operator_IsValidValue(int32_t value__) {
case GCFSStructuredQuery_FieldFilter_Operator_GreaterThan:
case GCFSStructuredQuery_FieldFilter_Operator_GreaterThanOrEqual:
case GCFSStructuredQuery_FieldFilter_Operator_Equal:
+ case GCFSStructuredQuery_FieldFilter_Operator_ArrayContains:
return YES;
default:
return NO;
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.h b/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.h
index c3c4498..539bfa3 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.h
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.h
@@ -43,6 +43,7 @@
CF_EXTERN_C_BEGIN
+@class GCFSArrayValue;
@class GCFSDocument;
@class GCFSDocumentMask;
@class GCFSDocumentTransform;
@@ -66,7 +67,10 @@ typedef GPB_ENUM(GCFSDocumentTransform_FieldTransform_ServerValue) {
/** Unspecified. This value must not be used. */
GCFSDocumentTransform_FieldTransform_ServerValue_ServerValueUnspecified = 0,
- /** The time at which the server processed the request. */
+ /**
+ * The time at which the server processed the request, with millisecond
+ * precision.
+ **/
GCFSDocumentTransform_FieldTransform_ServerValue_RequestTime = 1,
};
@@ -100,7 +104,6 @@ typedef GPB_ENUM(GCFSWrite_FieldNumber) {
GCFSWrite_FieldNumber_Delete_p = 2,
GCFSWrite_FieldNumber_UpdateMask = 3,
GCFSWrite_FieldNumber_CurrentDocument = 4,
- GCFSWrite_FieldNumber_Verify = 5,
GCFSWrite_FieldNumber_Transform = 6,
};
@@ -108,7 +111,6 @@ typedef GPB_ENUM(GCFSWrite_Operation_OneOfCase) {
GCFSWrite_Operation_OneOfCase_GPBUnsetOneOfCase = 0,
GCFSWrite_Operation_OneOfCase_Update = 1,
GCFSWrite_Operation_OneOfCase_Delete_p = 2,
- GCFSWrite_Operation_OneOfCase_Verify = 5,
GCFSWrite_Operation_OneOfCase_Transform = 6,
};
@@ -130,13 +132,6 @@ typedef GPB_ENUM(GCFSWrite_Operation_OneOfCase) {
@property(nonatomic, readwrite, copy, null_resettable) NSString *delete_p;
/**
- * The name of a document on which to verify the `current_document`
- * precondition.
- * This only requires read access to the document.
- **/
-@property(nonatomic, readwrite, copy, null_resettable) NSString *verify;
-
-/**
* Applies a tranformation to a document.
* At most one `transform` per document is allowed in a given request.
* An `update` cannot follow a `transform` on the same document in a given
@@ -148,9 +143,10 @@ typedef GPB_ENUM(GCFSWrite_Operation_OneOfCase) {
* The fields to update in this write.
*
* This field can be set only when the operation is `update`.
- * None of the field paths in the mask may contain a reserved name.
- * If the document exists on the server and has fields not referenced in the
- * mask, they are left unchanged.
+ * If the mask is not set for an `update` and the document exists, any
+ * existing data will be overwritten.
+ * If the mask is set and the document on the server has fields not covered by
+ * the mask, they are left unchanged.
* Fields referenced in the mask, but not present in the input document, are
* deleted from the document on the server.
* The field paths in this mask must not contain a reserved field name.
@@ -193,6 +189,7 @@ typedef GPB_ENUM(GCFSDocumentTransform_FieldNumber) {
/**
* The list of transformations to apply to the fields of the document, in
* order.
+ * This must not be empty.
**/
@property(nonatomic, readwrite, strong, null_resettable) NSMutableArray<GCFSDocumentTransform_FieldTransform*> *fieldTransformsArray;
/** The number of items in @c fieldTransformsArray without causing the array to be created. */
@@ -205,11 +202,15 @@ typedef GPB_ENUM(GCFSDocumentTransform_FieldNumber) {
typedef GPB_ENUM(GCFSDocumentTransform_FieldTransform_FieldNumber) {
GCFSDocumentTransform_FieldTransform_FieldNumber_FieldPath = 1,
GCFSDocumentTransform_FieldTransform_FieldNumber_SetToServerValue = 2,
+ GCFSDocumentTransform_FieldTransform_FieldNumber_AppendMissingElements = 6,
+ GCFSDocumentTransform_FieldTransform_FieldNumber_RemoveAllFromArray_p = 7,
};
typedef GPB_ENUM(GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase) {
GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase_GPBUnsetOneOfCase = 0,
GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase_SetToServerValue = 2,
+ GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase_AppendMissingElements = 6,
+ GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase_RemoveAllFromArray_p = 7,
};
/**
@@ -229,6 +230,36 @@ typedef GPB_ENUM(GCFSDocumentTransform_FieldTransform_TransformType_OneOfCase) {
/** Sets the field to the given server value. */
@property(nonatomic, readwrite) GCFSDocumentTransform_FieldTransform_ServerValue setToServerValue;
+/**
+ * Append the given elements in order if they are not already present in
+ * the current field value.
+ * If the field is not an array, or if the field does not yet exist, it is
+ * first set to the empty array.
+ *
+ * Equivalent numbers of different types (e.g. 3L and 3.0) are
+ * considered equal when checking if a value is missing.
+ * NaN is equal to NaN, and Null is equal to Null.
+ * If the input contains multiple equivalent values, only the first will
+ * be considered.
+ *
+ * The corresponding transform_result will be the null value.
+ **/
+@property(nonatomic, readwrite, strong, null_resettable) GCFSArrayValue *appendMissingElements;
+
+/**
+ * Remove all of the given elements from the array in the field.
+ * If the field is not an array, or if the field does not yet exist, it is
+ * set to the empty array.
+ *
+ * Equivalent numbers of the different types (e.g. 3L and 3.0) are
+ * considered equal when deciding whether an element should be removed.
+ * NaN is equal to NaN, and Null is equal to Null.
+ * This will remove all equivalent values if there are duplicates.
+ *
+ * The corresponding transform_result will be the null value.
+ **/
+@property(nonatomic, readwrite, strong, null_resettable) GCFSArrayValue *removeAllFromArray_p;
+
@end
/**
diff --git a/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.m b/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.m
index e6fd0f4..591e634 100644
--- a/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.m
+++ b/Firestore/Protos/objc/google/firestore/v1beta1/Write.pbobjc.m
@@ -74,7 +74,6 @@ static GPBFileDescriptor *GCFSWriteRoot_FileDescriptor(void) {
@dynamic operationOneOfCase;
@dynamic update;
@dynamic delete_p;
-@dynamic verify;
@dynamic transform;
@dynamic hasUpdateMask, updateMask;
@dynamic hasCurrentDocument, currentDocument;
@@ -85,7 +84,6 @@ typedef struct GCFSWrite__storage_ {
NSString *delete_p;
GCFSDocumentMask *updateMask;
GCFSPrecondition *currentDocument;
- NSString *verify;
GCFSDocumentTransform *transform;
} GCFSWrite__storage_;
@@ -132,15 +130,6 @@ typedef struct GCFSWrite__storage_ {
.dataType = GPBDataTypeMessage,
},
{
- .name = "verify",
- .dataTypeSpecific.className = NULL,
- .number = GCFSWrite_FieldNumber_Verify,
- .hasIndex = -1,
- .offset = (uint32_t)offsetof(GCFSWrite__storage_, verify),
- .flags = GPBFieldOptional,
- .dataType = GPBDataTypeString,
- },
- {
.name = "transform",
.dataTypeSpecific.className = GPBStringifySymbol(GCFSDocumentTransform),
.number = GCFSWrite_FieldNumber_Transform,
@@ -238,11 +227,15 @@ typedef struct GCFSDocumentTransform__storage_ {
@dynamic transformTypeOneOfCase;
@dynamic fieldPath;
@dynamic setToServerValue;
+@dynamic appendMissingElements;
+@dynamic removeAllFromArray_p;
typedef struct GCFSDocumentTransform_FieldTransform__storage_ {
uint32_t _has_storage_[2];
GCFSDocumentTransform_FieldTransform_ServerValue setToServerValue;
NSString *fieldPath;
+ GCFSArrayValue *appendMissingElements;
+ GCFSArrayValue *removeAllFromArray_p;
} GCFSDocumentTransform_FieldTransform__storage_;
// This method is threadsafe because it is initially called
@@ -269,6 +262,24 @@ typedef struct GCFSDocumentTransform_FieldTransform__storage_ {
.flags = (GPBFieldFlags)(GPBFieldOptional | GPBFieldHasEnumDescriptor),
.dataType = GPBDataTypeEnum,
},
+ {
+ .name = "appendMissingElements",
+ .dataTypeSpecific.className = GPBStringifySymbol(GCFSArrayValue),
+ .number = GCFSDocumentTransform_FieldTransform_FieldNumber_AppendMissingElements,
+ .hasIndex = -1,
+ .offset = (uint32_t)offsetof(GCFSDocumentTransform_FieldTransform__storage_, appendMissingElements),
+ .flags = GPBFieldOptional,
+ .dataType = GPBDataTypeMessage,
+ },
+ {
+ .name = "removeAllFromArray_p",
+ .dataTypeSpecific.className = GPBStringifySymbol(GCFSArrayValue),
+ .number = GCFSDocumentTransform_FieldTransform_FieldNumber_RemoveAllFromArray_p,
+ .hasIndex = -1,
+ .offset = (uint32_t)offsetof(GCFSDocumentTransform_FieldTransform__storage_, removeAllFromArray_p),
+ .flags = GPBFieldOptional,
+ .dataType = GPBDataTypeMessage,
+ },
};
GPBDescriptor *localDescriptor =
[GPBDescriptor allocDescriptorForClass:[GCFSDocumentTransform_FieldTransform class]
diff --git a/Firestore/Protos/protos/google/api/http.proto b/Firestore/Protos/protos/google/api/http.proto
index 5f8538a..78d515d 100644
--- a/Firestore/Protos/protos/google/api/http.proto
+++ b/Firestore/Protos/protos/google/api/http.proto
@@ -1,4 +1,4 @@
-// Copyright 2016 Google Inc.
+// Copyright 2018 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -24,7 +24,7 @@ option java_package = "com.google.api";
option objc_class_prefix = "GAPI";
-// Defines the HTTP configuration for a service. It contains a list of
+// Defines the HTTP configuration for an API service. It contains a list of
// [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
// to one or more HTTP REST API methods.
message Http {
@@ -32,14 +32,22 @@ message Http {
//
// **NOTE:** All service configuration rules follow "last one wins" order.
repeated HttpRule rules = 1;
+
+ // When set to true, URL path parmeters will be fully URI-decoded except in
+ // cases of single segment matches in reserved expansion, where "%2F" will be
+ // left encoded.
+ //
+ // The default behavior is to not decode RFC 6570 reserved characters in multi
+ // segment matches.
+ bool fully_decode_reserved_expansion = 2;
}
// `HttpRule` defines the mapping of an RPC method to one or more HTTP
-// REST APIs. The mapping determines what portions of the request
-// message are populated from the path, query parameters, or body of
-// the HTTP request. The mapping is typically specified as an
-// `google.api.http` annotation, see "google/api/annotations.proto"
-// for details.
+// REST API methods. The mapping specifies how different portions of the RPC
+// request message are mapped to URL path, URL query parameters, and
+// HTTP request body. The mapping is typically specified as an
+// `google.api.http` annotation on the RPC method,
+// see "google/api/annotations.proto" for details.
//
// The mapping consists of a field specifying the path template and
// method kind. The path template can refer to fields in the request
@@ -87,6 +95,11 @@ message Http {
// parameters. Assume the following definition of the request message:
//
//
+// service Messaging {
+// rpc GetMessage(GetMessageRequest) returns (Message) {
+// option (google.api.http).get = "/v1/messages/{message_id}";
+// }
+// }
// message GetMessageRequest {
// message SubMessage {
// string subfield = 1;
@@ -199,7 +212,7 @@ message Http {
// to the request message are as follows:
//
// 1. The `body` field specifies either `*` or a field path, or is
-// omitted. If omitted, it assumes there is no HTTP body.
+// omitted. If omitted, it indicates there is no HTTP request body.
// 2. Leaf fields (recursive expansion of nested messages in the
// request) can be classified into three types:
// (a) Matched in the URL template.
@@ -218,28 +231,34 @@ message Http {
// FieldPath = IDENT { "." IDENT } ;
// Verb = ":" LITERAL ;
//
-// The syntax `*` matches a single path segment. It follows the semantics of
-// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
-// Expansion.
+// The syntax `*` matches a single path segment. The syntax `**` matches zero
+// or more path segments, which must be the last part of the path except the
+// `Verb`. The syntax `LITERAL` matches literal text in the path.
//
-// The syntax `**` matches zero or more path segments. It follows the semantics
-// of [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.3 Reserved
-// Expansion. NOTE: it must be the last segment in the path except the Verb.
-//
-// The syntax `LITERAL` matches literal text in the URL path.
-//
-// The syntax `Variable` matches the entire path as specified by its template;
-// this nested template must not contain further variables. If a variable
+// The syntax `Variable` matches part of the URL path as specified by its
+// template. A variable template must not contain other variables. If a variable
// matches a single path segment, its template may be omitted, e.g. `{var}`
// is equivalent to `{var=*}`.
//
+// If a variable contains exactly one path segment, such as `"{var}"` or
+// `"{var=*}"`, when such a variable is expanded into a URL path, all characters
+// except `[-_.~0-9a-zA-Z]` are percent-encoded. Such variables show up in the
+// Discovery Document as `{var}`.
+//
+// If a variable contains one or more path segments, such as `"{var=foo/*}"`
+// or `"{var=**}"`, when such a variable is expanded into a URL path, all
+// characters except `[-_.~/0-9a-zA-Z]` are percent-encoded. Such variables
+// show up in the Discovery Document as `{+var}`.
+//
+// NOTE: While the single segment variable matches the semantics of
+// [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2
+// Simple String Expansion, the multi segment variable **does not** match
+// RFC 6570 Reserved Expansion. The reason is that the Reserved Expansion
+// does not expand special characters like `?` and `#`, which would lead
+// to invalid URLs.
+//
// NOTE: the field paths in variables and in the `body` must not refer to
// repeated fields or map fields.
-//
-// Use CustomHttpPattern to specify any HTTP method that is not included in the
-// `pattern` field, such as HEAD, or "*" to leave the HTTP method unspecified for
-// a given URL path rule. The wild-card rule is useful for services that provide
-// content to Web (HTML) clients.
message HttpRule {
// Selects methods to which this rule applies.
//
@@ -265,7 +284,10 @@ message HttpRule {
// Used for updating a resource.
string patch = 6;
- // Custom pattern is used for defining custom verbs.
+ // The custom pattern is used for specifying an HTTP method that is not
+ // included in the `pattern` field, such as HEAD, or "*" to leave the
+ // HTTP method unspecified for this rule. The wild-card rule is useful
+ // for services that provide content to Web (HTML) clients.
CustomHttpPattern custom = 8;
}
diff --git a/Firestore/Protos/protos/google/firestore/v1beta1/common.proto b/Firestore/Protos/protos/google/firestore/v1beta1/common.proto
index e624323..5ceb7b9 100644
--- a/Firestore/Protos/protos/google/firestore/v1beta1/common.proto
+++ b/Firestore/Protos/protos/google/firestore/v1beta1/common.proto
@@ -1,4 +1,4 @@
-// Copyright 2017 Google Inc.
+// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -25,6 +25,7 @@ option java_multiple_files = true;
option java_outer_classname = "CommonProto";
option java_package = "com.google.firestore.v1beta1";
option objc_class_prefix = "GCFS";
+option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
// A set of field paths on a document.
diff --git a/Firestore/Protos/protos/google/firestore/v1beta1/document.proto b/Firestore/Protos/protos/google/firestore/v1beta1/document.proto
index cf6001d..cd84c7a 100644
--- a/Firestore/Protos/protos/google/firestore/v1beta1/document.proto
+++ b/Firestore/Protos/protos/google/firestore/v1beta1/document.proto
@@ -1,4 +1,4 @@
-// Copyright 2017 Google Inc.
+// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@ option java_multiple_files = true;
option java_outer_classname = "DocumentProto";
option java_package = "com.google.firestore.v1beta1";
option objc_class_prefix = "GCFS";
+option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
// A Firestore document.
@@ -42,7 +43,7 @@ message Document {
// The map keys represent field names.
//
// A simple field name contains only characters `a` to `z`, `A` to `Z`,
- // `0` to `9`, or `_`, and must not start with `0` to `9` or `_`. For example,
+ // `0` to `9`, or `_`, and must not start with `0` to `9`. For example,
// `foo_bar_17`.
//
// Field names matching the regular expression `__.*__` are reserved. Reserved
@@ -72,7 +73,7 @@ message Document {
// Output only. The time at which the document was last changed.
//
- // This value is initally set to the `create_time` then increases
+ // This value is initially set to the `create_time` then increases
// monotonically with each change to the document. It can also be
// compared to values from other documents and the `read_time` of a query.
google.protobuf.Timestamp update_time = 4;
diff --git a/Firestore/Protos/protos/google/firestore/v1beta1/firestore.proto b/Firestore/Protos/protos/google/firestore/v1beta1/firestore.proto
index 3939caa..c7e8561 100644
--- a/Firestore/Protos/protos/google/firestore/v1beta1/firestore.proto
+++ b/Firestore/Protos/protos/google/firestore/v1beta1/firestore.proto
@@ -1,4 +1,4 @@
-// Copyright 2017 Google Inc.
+// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ option java_multiple_files = true;
option java_outer_classname = "FirestoreProto";
option java_package = "com.google.firestore.v1beta1";
option objc_class_prefix = "GCFS";
+option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
// Specification of the Firestore API.
@@ -55,27 +56,39 @@ option objc_class_prefix = "GCFS";
service Firestore {
// Gets a single document.
rpc GetDocument(GetDocumentRequest) returns (Document) {
- option (google.api.http) = { get: "/v1beta1/{name=projects/*/databases/*/documents/*/**}" };
+ option (google.api.http) = {
+ get: "/v1beta1/{name=projects/*/databases/*/documents/*/**}"
+ };
}
// Lists documents.
rpc ListDocuments(ListDocumentsRequest) returns (ListDocumentsResponse) {
- option (google.api.http) = { get: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}" };
+ option (google.api.http) = {
+ get: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}/{collection_id}"
+ };
}
// Creates a new document.
rpc CreateDocument(CreateDocumentRequest) returns (Document) {
- option (google.api.http) = { post: "/v1beta1/{parent=projects/*/databases/*/documents/**}/{collection_id}" body: "document" };
+ option (google.api.http) = {
+ post: "/v1beta1/{parent=projects/*/databases/*/documents/**}/{collection_id}"
+ body: "document"
+ };
}
// Updates or inserts a document.
rpc UpdateDocument(UpdateDocumentRequest) returns (Document) {
- option (google.api.http) = { patch: "/v1beta1/{document.name=projects/*/databases/*/documents/*/**}" body: "document" };
+ option (google.api.http) = {
+ patch: "/v1beta1/{document.name=projects/*/databases/*/documents/*/**}"
+ body: "document"
+ };
}
// Deletes a document.
rpc DeleteDocument(DeleteDocumentRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = { delete: "/v1beta1/{name=projects/*/databases/*/documents/*/**}" };
+ option (google.api.http) = {
+ delete: "/v1beta1/{name=projects/*/databases/*/documents/*/**}"
+ };
}
// Gets multiple documents.
@@ -83,42 +96,74 @@ service Firestore {
// Documents returned by this method are not guaranteed to be returned in the
// same order that they were requested.
rpc BatchGetDocuments(BatchGetDocumentsRequest) returns (stream BatchGetDocumentsResponse) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:batchGet" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:batchGet"
+ body: "*"
+ };
}
// Starts a new transaction.
rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:beginTransaction" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:beginTransaction"
+ body: "*"
+ };
}
// Commits a transaction, while optionally updating documents.
rpc Commit(CommitRequest) returns (CommitResponse) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:commit" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:commit"
+ body: "*"
+ };
}
// Rolls back a transaction.
rpc Rollback(RollbackRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:rollback" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:rollback"
+ body: "*"
+ };
}
// Runs a query.
rpc RunQuery(RunQueryRequest) returns (stream RunQueryResponse) {
- option (google.api.http) = { post: "/v1beta1/{parent=projects/*/databases/*/documents}:runQuery" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{parent=projects/*/databases/*/documents}:runQuery"
+ body: "*"
+ additional_bindings {
+ post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:runQuery"
+ body: "*"
+ }
+ };
}
// Streams batches of document updates and deletes, in order.
rpc Write(stream WriteRequest) returns (stream WriteResponse) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:write" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:write"
+ body: "*"
+ };
}
// Listens to changes.
rpc Listen(stream ListenRequest) returns (stream ListenResponse) {
- option (google.api.http) = { post: "/v1beta1/{database=projects/*/databases/*}/documents:listen" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{database=projects/*/databases/*}/documents:listen"
+ body: "*"
+ };
}
// Lists all the collection IDs underneath a document.
rpc ListCollectionIds(ListCollectionIdsRequest) returns (ListCollectionIdsResponse) {
- option (google.api.http) = { post: "/v1beta1/{parent=projects/*/databases/*/documents}:listCollectionIds" body: "*" };
+ option (google.api.http) = {
+ post: "/v1beta1/{parent=projects/*/databases/*/documents}:listCollectionIds"
+ body: "*"
+ additional_bindings {
+ post: "/v1beta1/{parent=projects/*/databases/*/documents/*/**}:listCollectionIds"
+ body: "*"
+ }
+ };
}
}
@@ -356,8 +401,7 @@ message CommitRequest {
// Always executed atomically and in order.
repeated Write writes = 2;
- // If non-empty, applies all writes in this transaction, and commits it.
- // Otherwise, applies the writes as if they were in their own transaction.
+ // If set, applies all writes in this transaction, and commits it.
bytes transaction = 3;
}
diff --git a/Firestore/Protos/protos/google/firestore/v1beta1/query.proto b/Firestore/Protos/protos/google/firestore/v1beta1/query.proto
index d19b022..5f5b0cf 100644
--- a/Firestore/Protos/protos/google/firestore/v1beta1/query.proto
+++ b/Firestore/Protos/protos/google/firestore/v1beta1/query.proto
@@ -1,4 +1,4 @@
-// Copyright 2017 Google Inc.
+// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -26,6 +26,7 @@ option java_multiple_files = true;
option java_outer_classname = "QueryProto";
option java_package = "com.google.firestore.v1beta1";
option objc_class_prefix = "GCFS";
+option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
// A Firestore query.
@@ -98,6 +99,9 @@ message StructuredQuery {
// Equal.
EQUAL = 5;
+
+ // Contains. Requires that the field is an array.
+ ARRAY_CONTAINS = 7;
}
// The field to filter by.
diff --git a/Firestore/Protos/protos/google/firestore/v1beta1/write.proto b/Firestore/Protos/protos/google/firestore/v1beta1/write.proto
index b6e9d5f..3f4732b 100644
--- a/Firestore/Protos/protos/google/firestore/v1beta1/write.proto
+++ b/Firestore/Protos/protos/google/firestore/v1beta1/write.proto
@@ -1,4 +1,4 @@
-// Copyright 2017 Google Inc.
+// Copyright 2018 Google Inc.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@@ -27,6 +27,7 @@ option java_multiple_files = true;
option java_outer_classname = "WriteProto";
option java_package = "com.google.firestore.v1beta1";
option objc_class_prefix = "GCFS";
+option php_namespace = "Google\\Cloud\\Firestore\\V1beta1";
// A write on a document.
@@ -40,11 +41,6 @@ message Write {
// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
string delete = 2;
- // The name of a document on which to verify the `current_document`
- // precondition.
- // This only requires read access to the document.
- string verify = 5;
-
// Applies a tranformation to a document.
// At most one `transform` per document is allowed in a given request.
// An `update` cannot follow a `transform` on the same document in a given
@@ -55,9 +51,10 @@ message Write {
// The fields to update in this write.
//
// This field can be set only when the operation is `update`.
- // None of the field paths in the mask may contain a reserved name.
- // If the document exists on the server and has fields not referenced in the
- // mask, they are left unchanged.
+ // If the mask is not set for an `update` and the document exists, any
+ // existing data will be overwritten.
+ // If the mask is set and the document on the server has fields not covered by
+ // the mask, they are left unchanged.
// Fields referenced in the mask, but not present in the input document, are
// deleted from the document on the server.
// The field paths in this mask must not contain a reserved field name.
@@ -78,7 +75,8 @@ message DocumentTransform {
// Unspecified. This value must not be used.
SERVER_VALUE_UNSPECIFIED = 0;
- // The time at which the server processed the request.
+ // The time at which the server processed the request, with millisecond
+ // precision.
REQUEST_TIME = 1;
}
@@ -90,6 +88,32 @@ message DocumentTransform {
oneof transform_type {
// Sets the field to the given server value.
ServerValue set_to_server_value = 2;
+
+ // Append the given elements in order if they are not already present in
+ // the current field value.
+ // If the field is not an array, or if the field does not yet exist, it is
+ // first set to the empty array.
+ //
+ // Equivalent numbers of different types (e.g. 3L and 3.0) are
+ // considered equal when checking if a value is missing.
+ // NaN is equal to NaN, and Null is equal to Null.
+ // If the input contains multiple equivalent values, only the first will
+ // be considered.
+ //
+ // The corresponding transform_result will be the null value.
+ ArrayValue append_missing_elements = 6;
+
+ // Remove all of the given elements from the array in the field.
+ // If the field is not an array, or if the field does not yet exist, it is
+ // set to the empty array.
+ //
+ // Equivalent numbers of the different types (e.g. 3L and 3.0) are
+ // considered equal when deciding whether an element should be removed.
+ // NaN is equal to NaN, and Null is equal to Null.
+ // This will remove all equivalent values if there are duplicates.
+ //
+ // The corresponding transform_result will be the null value.
+ ArrayValue remove_all_from_array = 7;
}
}
@@ -98,6 +122,7 @@ message DocumentTransform {
// The list of transformations to apply to the fields of the document, in
// order.
+ // This must not be empty.
repeated FieldTransform field_transforms = 2;
}
diff --git a/Firestore/Protos/protos/google/protobuf/any.proto b/Firestore/Protos/protos/google/protobuf/any.proto
index c748667..4932942 100644
--- a/Firestore/Protos/protos/google/protobuf/any.proto
+++ b/Firestore/Protos/protos/google/protobuf/any.proto
@@ -120,17 +120,18 @@ option objc_class_prefix = "GPB";
// }
//
message Any {
- // A URL/resource name whose content describes the type of the
- // serialized protocol buffer message.
+ // A URL/resource name that uniquely identifies the type of the serialized
+ // protocol buffer message. The last segment of the URL's path must represent
+ // the fully qualified name of the type (as in
+ // `path/google.protobuf.Duration`). The name should be in a canonical form
+ // (e.g., leading "." is not accepted).
//
- // For URLs which use the scheme `http`, `https`, or no scheme, the
- // following restrictions and interpretations apply:
+ // In practice, teams usually precompile into the binary all types that they
+ // expect it to use in the context of Any. However, for URLs which use the
+ // scheme `http`, `https`, or no scheme, one can optionally set up a type
+ // server that maps type URLs to message definitions as follows:
//
// * If no scheme is provided, `https` is assumed.
- // * The last segment of the URL's path must represent the fully
- // qualified name of the type (as in `path/google.protobuf.Duration`).
- // The name should be in a canonical form (e.g., leading "." is
- // not accepted).
// * An HTTP GET on the URL must yield a [google.protobuf.Type][]
// value in binary format, or produce an error.
// * Applications are allowed to cache lookup results based on the
@@ -139,6 +140,10 @@ message Any {
// on changes to types. (Use versioned type names to manage
// breaking changes.)
//
+ // Note: this functionality is not currently available in the official
+ // protobuf release, and it is not used for type URLs beginning with
+ // type.googleapis.com.
+ //
// Schemes other than `http`, `https` (or the empty scheme) might be
// used with implementation specific semantics.
//
diff --git a/Firestore/Protos/protos/google/protobuf/timestamp.proto b/Firestore/Protos/protos/google/protobuf/timestamp.proto
index b7cbd17..eafb3fa 100644
--- a/Firestore/Protos/protos/google/protobuf/timestamp.proto
+++ b/Firestore/Protos/protos/google/protobuf/timestamp.proto
@@ -103,7 +103,9 @@ option objc_class_prefix = "GPB";
// {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional
// seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution),
// are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone
-// is required, though only UTC (as indicated by "Z") is presently supported.
+// is required. A proto3 JSON serializer should always use UTC (as indicated by
+// "Z") when printing the Timestamp type and a proto3 JSON parser should be
+// able to accept both UTC and other timezones (as indicated by an offset).
//
// For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past
// 01:30 UTC on January 15, 2017.
@@ -114,8 +116,8 @@ option objc_class_prefix = "GPB";
// to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
// with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
// can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
-// http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime())
-// to obtain a formatter capable of generating timestamps in this format.
+// http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime--
+// ) to obtain a formatter capable of generating timestamps in this format.
//
//
message Timestamp {