Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/google/cloud/firestore_v1/types/common.py: 95%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

19 statements  

1# -*- coding: utf-8 -*- 

2# Copyright 2025 Google LLC 

3# 

4# Licensed under the Apache License, Version 2.0 (the "License"); 

5# you may not use this file except in compliance with the License. 

6# You may obtain a copy of the License at 

7# 

8# http://www.apache.org/licenses/LICENSE-2.0 

9# 

10# Unless required by applicable law or agreed to in writing, software 

11# distributed under the License is distributed on an "AS IS" BASIS, 

12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 

13# See the License for the specific language governing permissions and 

14# limitations under the License. 

15# 

16from __future__ import annotations 

17 

18from typing import MutableMapping, MutableSequence 

19 

20import proto # type: ignore 

21 

22from google.protobuf import timestamp_pb2 # type: ignore 

23 

24 

25__protobuf__ = proto.module( 

26 package="google.firestore.v1", 

27 manifest={ 

28 "DocumentMask", 

29 "Precondition", 

30 "TransactionOptions", 

31 }, 

32) 

33 

34 

35class DocumentMask(proto.Message): 

36 r"""A set of field paths on a document. Used to restrict a get or update 

37 operation on a document to a subset of its fields. This is different 

38 from standard field masks, as this is always scoped to a 

39 [Document][google.firestore.v1.Document], and takes in account the 

40 dynamic nature of [Value][google.firestore.v1.Value]. 

41 

42 Attributes: 

43 field_paths (MutableSequence[str]): 

44 The list of field paths in the mask. See 

45 [Document.fields][google.firestore.v1.Document.fields] for a 

46 field path syntax reference. 

47 """ 

48 

49 field_paths: MutableSequence[str] = proto.RepeatedField( 

50 proto.STRING, 

51 number=1, 

52 ) 

53 

54 

55class Precondition(proto.Message): 

56 r"""A precondition on a document, used for conditional 

57 operations. 

58 

59 This message has `oneof`_ fields (mutually exclusive fields). 

60 For each oneof, at most one member field can be set at the same time. 

61 Setting any member of the oneof automatically clears all other 

62 members. 

63 

64 .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 

65 

66 Attributes: 

67 exists (bool): 

68 When set to ``true``, the target document must exist. When 

69 set to ``false``, the target document must not exist. 

70 

71 This field is a member of `oneof`_ ``condition_type``. 

72 update_time (google.protobuf.timestamp_pb2.Timestamp): 

73 When set, the target document must exist and 

74 have been last updated at that time. Timestamp 

75 must be microsecond aligned. 

76 

77 This field is a member of `oneof`_ ``condition_type``. 

78 """ 

79 

80 exists: bool = proto.Field( 

81 proto.BOOL, 

82 number=1, 

83 oneof="condition_type", 

84 ) 

85 update_time: timestamp_pb2.Timestamp = proto.Field( 

86 proto.MESSAGE, 

87 number=2, 

88 oneof="condition_type", 

89 message=timestamp_pb2.Timestamp, 

90 ) 

91 

92 

93class TransactionOptions(proto.Message): 

94 r"""Options for creating a new transaction. 

95 

96 This message has `oneof`_ fields (mutually exclusive fields). 

97 For each oneof, at most one member field can be set at the same time. 

98 Setting any member of the oneof automatically clears all other 

99 members. 

100 

101 .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 

102 

103 Attributes: 

104 read_only (google.cloud.firestore_v1.types.TransactionOptions.ReadOnly): 

105 The transaction can only be used for read 

106 operations. 

107 

108 This field is a member of `oneof`_ ``mode``. 

109 read_write (google.cloud.firestore_v1.types.TransactionOptions.ReadWrite): 

110 The transaction can be used for both read and 

111 write operations. 

112 

113 This field is a member of `oneof`_ ``mode``. 

114 """ 

115 

116 class ReadWrite(proto.Message): 

117 r"""Options for a transaction that can be used to read and write 

118 documents. 

119 Firestore does not allow 3rd party auth requests to create 

120 read-write. transactions. 

121 

122 Attributes: 

123 retry_transaction (bytes): 

124 An optional transaction to retry. 

125 """ 

126 

127 retry_transaction: bytes = proto.Field( 

128 proto.BYTES, 

129 number=1, 

130 ) 

131 

132 class ReadOnly(proto.Message): 

133 r"""Options for a transaction that can only be used to read 

134 documents. 

135 

136 

137 .. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields 

138 

139 Attributes: 

140 read_time (google.protobuf.timestamp_pb2.Timestamp): 

141 Reads documents at the given time. 

142 

143 This must be a microsecond precision timestamp 

144 within the past one hour, or if Point-in-Time 

145 Recovery is enabled, can additionally be a whole 

146 minute timestamp within the past 7 days. 

147 

148 This field is a member of `oneof`_ ``consistency_selector``. 

149 """ 

150 

151 read_time: timestamp_pb2.Timestamp = proto.Field( 

152 proto.MESSAGE, 

153 number=2, 

154 oneof="consistency_selector", 

155 message=timestamp_pb2.Timestamp, 

156 ) 

157 

158 read_only: ReadOnly = proto.Field( 

159 proto.MESSAGE, 

160 number=2, 

161 oneof="mode", 

162 message=ReadOnly, 

163 ) 

164 read_write: ReadWrite = proto.Field( 

165 proto.MESSAGE, 

166 number=3, 

167 oneof="mode", 

168 message=ReadWrite, 

169 ) 

170 

171 

172__all__ = tuple(sorted(__protobuf__.manifest))