google_cloudevents/google/events/cloud/firestore/v1/mod.rs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212
// This file is @generated by prost-build.
/// The data within all Firestore document events.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentEventData {
/// A Document object containing a post-operation document snapshot.
/// This is not populated for delete events.
#[prost(message, optional, tag = "1")]
pub value: ::core::option::Option<Document>,
/// A Document object containing a pre-operation document snapshot.
/// This is only populated for update and delete events.
#[prost(message, optional, tag = "2")]
pub old_value: ::core::option::Option<Document>,
/// A DocumentMask object that lists changed fields.
/// This is only populated for update events.
#[prost(message, optional, tag = "3")]
pub update_mask: ::core::option::Option<DocumentMask>,
}
/// A set of field paths on a document.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentMask {
/// The list of field paths in the mask.
/// See [Document.fields][google.cloud.firestore.v1.events.Document.fields]
/// for a field path syntax reference.
#[prost(string, repeated, tag = "1")]
pub field_paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// A Firestore document.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Document {
/// The resource name of the document. For example:
/// `projects/{project_id}/databases/{database_id}/documents/{document_path}`
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
/// The document's fields.
///
/// 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`. For example,
/// `foo_bar_17`.
///
/// Field names matching the regular expression `__.*__` are reserved. Reserved
/// field names are forbidden except in certain documented contexts. The map
/// keys, represented as UTF-8, must not exceed 1,500 bytes and cannot be
/// empty.
///
/// Field paths may be used in other contexts to refer to structured fields
/// defined here. For `map_value`, the field path is represented by the simple
/// or quoted field names of the containing fields, delimited by `.`. For
/// example, the structured field
/// `"foo" : { map_value: { "x&y" : { string_value: "hello" }}}` would be
/// represented by the field path `foo.x&y`.
///
/// Within a field path, a quoted field name starts and ends with `` ` `` and
/// may contain any character. Some characters, including `` ` ``, must be
/// escaped using a `\`. For example, `` `x&y` `` represents `x&y` and
/// `` `bak\`tik` `` represents `` bak`tik ``.
#[prost(map = "string, message", tag = "2")]
pub fields: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
/// The time at which the document was created.
///
/// This value increases monotonically when a document is deleted then
/// recreated. It can also be compared to values from other documents and
/// the `read_time` of a query.
#[prost(message, optional, tag = "3")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
/// The time at which the document was last changed.
///
/// 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.
#[prost(message, optional, tag = "4")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
}
/// A message that can hold any of the supported value types.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Value {
/// Must have a value set.
#[prost(oneof = "value::ValueType", tags = "11, 1, 2, 3, 10, 17, 18, 5, 8, 9, 6")]
pub value_type: ::core::option::Option<value::ValueType>,
}
/// Nested message and enum types in `Value`.
pub mod value {
/// Must have a value set.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum ValueType {
/// A null value.
#[prost(enumeration = "::prost_types::NullValue", tag = "11")]
NullValue(i32),
/// A boolean value.
#[prost(bool, tag = "1")]
BooleanValue(bool),
/// An integer value.
#[prost(int64, tag = "2")]
IntegerValue(i64),
/// A double value.
#[prost(double, tag = "3")]
DoubleValue(f64),
/// A timestamp value.
///
/// Precise only to microseconds. When stored, any additional precision is
/// rounded down.
#[prost(message, tag = "10")]
TimestampValue(::prost_types::Timestamp),
/// A string value.
///
/// The string, represented as UTF-8, must not exceed 1 MiB - 89 bytes.
/// Only the first 1,500 bytes of the UTF-8 representation are considered by
/// queries.
#[prost(string, tag = "17")]
StringValue(::prost::alloc::string::String),
/// A bytes value.
///
/// Must not exceed 1 MiB - 89 bytes.
/// Only the first 1,500 bytes are considered by queries.
#[prost(bytes, tag = "18")]
BytesValue(::prost::alloc::vec::Vec<u8>),
/// A reference to a document. For example:
/// `projects/{project_id}/databases/{database_id}/documents/{document_path}`.
#[prost(string, tag = "5")]
ReferenceValue(::prost::alloc::string::String),
/// A geo point value representing a point on the surface of Earth.
#[prost(message, tag = "8")]
GeoPointValue(super::super::super::super::super::r#type::LatLng),
/// An array value.
///
/// Cannot directly contain another array value, though can contain an
/// map which contains another array.
#[prost(message, tag = "9")]
ArrayValue(super::ArrayValue),
/// A map value.
#[prost(message, tag = "6")]
MapValue(super::MapValue),
}
}
/// An array value.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ArrayValue {
/// Values in the array.
#[prost(message, repeated, tag = "1")]
pub values: ::prost::alloc::vec::Vec<Value>,
}
/// A map value.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MapValue {
/// The map's fields.
///
/// The map keys represent field names. Field names matching the regular
/// expression `__.*__` are reserved. Reserved field names are forbidden except
/// in certain documented contexts. The map keys, represented as UTF-8, must
/// not exceed 1,500 bytes and cannot be empty.
#[prost(map = "string, message", tag = "1")]
pub fields: ::std::collections::HashMap<::prost::alloc::string::String, Value>,
}
/// The CloudEvent raised when a Firestore document is created.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentCreatedEvent {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent raised when a Firestore document is updated.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentUpdatedEvent {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent raised when a Firestore document is deleted.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentDeletedEvent {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent raised when a Firestore document is created, updated or
/// deleted.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentWrittenEvent {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent with Auth Context raised when a Firestore document is created.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentCreatedEventWithAuthContext {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent with Auth Context raised when a Firestore document is updated.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentUpdatedEventWithAuthContext {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent with Auth Context raised when a Firestore document is deleted.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentDeletedEventWithAuthContext {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}
/// The CloudEvent with Auth Context raised when a Firestore document is created,
/// updated or deleted.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DocumentWrittenEventWithAuthContext {
/// The data associated with the event.
#[prost(message, optional, tag = "1")]
pub data: ::core::option::Option<DocumentEventData>,
}