// Package firestore provides access to the Cloud Firestore API. // // See https://cloud.google.com/firestore // // Usage example: // // import "google.golang.org/api/firestore/v1beta1" // ... // firestoreService, err := firestore.New(oauthHttpClient) package firestore // import "google.golang.org/api/firestore/v1beta1" import ( "bytes" "encoding/json" "errors" "fmt" context "golang.org/x/net/context" ctxhttp "golang.org/x/net/context/ctxhttp" gensupport "google.golang.org/api/gensupport" googleapi "google.golang.org/api/googleapi" "io" "net/http" "net/url" "strconv" "strings" ) // Always reference these packages, just in case the auto-generated code // below doesn't. var _ = bytes.NewBuffer var _ = strconv.Itoa var _ = fmt.Sprintf var _ = json.NewDecoder var _ = io.Copy var _ = url.Parse var _ = gensupport.MarshalJSON var _ = googleapi.Version var _ = errors.New var _ = strings.Replace var _ = context.Canceled var _ = ctxhttp.Do const apiId = "firestore:v1beta1" const apiName = "firestore" const apiVersion = "v1beta1" const basePath = "https://firestore.googleapis.com/" // OAuth2 scopes used by this API. const ( // View and manage your data across Google Cloud Platform services CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" // View and manage your Google Cloud Datastore data DatastoreScope = "https://www.googleapis.com/auth/datastore" ) func New(client *http.Client) (*Service, error) { if client == nil { return nil, errors.New("client is nil") } s := &Service{client: client, BasePath: basePath} s.Projects = NewProjectsService(s) return s, nil } type Service struct { client *http.Client BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Projects *ProjectsService } func (s *Service) userAgent() string { if s.UserAgent == "" { return googleapi.UserAgent } return googleapi.UserAgent + " " + s.UserAgent } func NewProjectsService(s *Service) *ProjectsService { rs := &ProjectsService{s: s} rs.Databases = NewProjectsDatabasesService(s) return rs } type ProjectsService struct { s *Service Databases *ProjectsDatabasesService } func NewProjectsDatabasesService(s *Service) *ProjectsDatabasesService { rs := &ProjectsDatabasesService{s: s} rs.Documents = NewProjectsDatabasesDocumentsService(s) rs.Indexes = NewProjectsDatabasesIndexesService(s) return rs } type ProjectsDatabasesService struct { s *Service Documents *ProjectsDatabasesDocumentsService Indexes *ProjectsDatabasesIndexesService } func NewProjectsDatabasesDocumentsService(s *Service) *ProjectsDatabasesDocumentsService { rs := &ProjectsDatabasesDocumentsService{s: s} return rs } type ProjectsDatabasesDocumentsService struct { s *Service } func NewProjectsDatabasesIndexesService(s *Service) *ProjectsDatabasesIndexesService { rs := &ProjectsDatabasesIndexesService{s: s} return rs } type ProjectsDatabasesIndexesService struct { s *Service } // ArrayValue: An array value. type ArrayValue struct { // Values: Values in the array. Values []*Value `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "Values") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Values") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ArrayValue) MarshalJSON() ([]byte, error) { type NoMethod ArrayValue raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // BatchGetDocumentsRequest: The request for // Firestore.BatchGetDocuments. type BatchGetDocumentsRequest struct { // Documents: The names of the documents to retrieve. In the // format: // `projects/{project_id}/databases/{database_id}/documents/{docu // ment_path}`. // The request will fail if any of the document is not a child resource // of the // given `database`. Duplicate names will be elided. Documents []string `json:"documents,omitempty"` // Mask: The fields to return. If not set, returns all fields. // // If a document has a field that is not present in this mask, that // field will // not be returned in the response. Mask *DocumentMask `json:"mask,omitempty"` // NewTransaction: Starts a new transaction and reads the // documents. // Defaults to a read-only transaction. // The new transaction ID will be returned as the first response in // the // stream. NewTransaction *TransactionOptions `json:"newTransaction,omitempty"` // ReadTime: Reads documents as they were at the given time. // This may not be older than 60 seconds. ReadTime string `json:"readTime,omitempty"` // Transaction: Reads documents in a transaction. Transaction string `json:"transaction,omitempty"` // ForceSendFields is a list of field names (e.g. "Documents") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Documents") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *BatchGetDocumentsRequest) MarshalJSON() ([]byte, error) { type NoMethod BatchGetDocumentsRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // BatchGetDocumentsResponse: The streamed response for // Firestore.BatchGetDocuments. type BatchGetDocumentsResponse struct { // Found: A document that was requested. Found *Document `json:"found,omitempty"` // Missing: A document name that was requested but does not exist. In // the // format: // `projects/{project_id}/databases/{database_id}/documents/{docu // ment_path}`. Missing string `json:"missing,omitempty"` // ReadTime: The time at which the document was read. // This may be monotically increasing, in this case the previous // documents in // the result stream are guaranteed not to have changed between // their // read_time and this one. ReadTime string `json:"readTime,omitempty"` // Transaction: The transaction that was started as part of this // request. // Will only be set in the first response, and only // if // BatchGetDocumentsRequest.new_transaction was set in the request. Transaction string `json:"transaction,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Found") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Found") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *BatchGetDocumentsResponse) MarshalJSON() ([]byte, error) { type NoMethod BatchGetDocumentsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // BeginTransactionRequest: The request for Firestore.BeginTransaction. type BeginTransactionRequest struct { // Options: The options for the transaction. // Defaults to a read-write transaction. Options *TransactionOptions `json:"options,omitempty"` // ForceSendFields is a list of field names (e.g. "Options") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Options") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *BeginTransactionRequest) MarshalJSON() ([]byte, error) { type NoMethod BeginTransactionRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // BeginTransactionResponse: The response for // Firestore.BeginTransaction. type BeginTransactionResponse struct { // Transaction: The transaction that was started. Transaction string `json:"transaction,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Transaction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Transaction") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *BeginTransactionResponse) MarshalJSON() ([]byte, error) { type NoMethod BeginTransactionResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CollectionSelector: A selection of a collection, such as `messages as // m1`. type CollectionSelector struct { // AllDescendants: When false, selects only collections that are // immediate children of // the `parent` specified in the containing `RunQueryRequest`. // When true, selects all descendant collections. AllDescendants bool `json:"allDescendants,omitempty"` // CollectionId: The collection ID. // When set, selects only collections with this ID. CollectionId string `json:"collectionId,omitempty"` // ForceSendFields is a list of field names (e.g. "AllDescendants") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AllDescendants") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *CollectionSelector) MarshalJSON() ([]byte, error) { type NoMethod CollectionSelector raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CommitRequest: The request for Firestore.Commit. type CommitRequest struct { // Transaction: If set, applies all writes in this transaction, and // commits it. Transaction string `json:"transaction,omitempty"` // Writes: The writes to apply. // // Always executed atomically and in order. Writes []*Write `json:"writes,omitempty"` // ForceSendFields is a list of field names (e.g. "Transaction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Transaction") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CommitRequest) MarshalJSON() ([]byte, error) { type NoMethod CommitRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CommitResponse: The response for Firestore.Commit. type CommitResponse struct { // CommitTime: The time at which the commit occurred. CommitTime string `json:"commitTime,omitempty"` // WriteResults: The result of applying the writes. // // This i-th write result corresponds to the i-th write in the // request. WriteResults []*WriteResult `json:"writeResults,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CommitTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CommitTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CommitResponse) MarshalJSON() ([]byte, error) { type NoMethod CommitResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // CompositeFilter: A filter that merges multiple other filters using // the given operator. type CompositeFilter struct { // Filters: The list of filters to combine. // Must contain at least one filter. Filters []*Filter `json:"filters,omitempty"` // Op: The operator for combining multiple filters. // // Possible values: // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. // "AND" - The results are required to satisfy each of the combined // filters. Op string `json:"op,omitempty"` // ForceSendFields is a list of field names (e.g. "Filters") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Filters") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *CompositeFilter) MarshalJSON() ([]byte, error) { type NoMethod CompositeFilter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Cursor: A position in a query result set. type Cursor struct { // Before: If the position is just before or just after the given // values, relative // to the sort order defined by the query. Before bool `json:"before,omitempty"` // Values: The values that represent a position, in the order they // appear in // the order by clause of a query. // // Can contain fewer values than specified in the order by clause. Values []*Value `json:"values,omitempty"` // ForceSendFields is a list of field names (e.g. "Before") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Before") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Cursor) MarshalJSON() ([]byte, error) { type NoMethod Cursor raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Document: A Firestore document. // // Must not exceed 1 MiB - 4 bytes. type Document struct { // CreateTime: Output only. 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. CreateTime string `json:"createTime,omitempty"` // Fields: 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 ``. Fields map[string]Value `json:"fields,omitempty"` // Name: The resource name of the document, for // example // `projects/{project_id}/databases/{database_id}/documents/{docu // ment_path}`. Name string `json:"name,omitempty"` // UpdateTime: Output only. 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. UpdateTime string `json:"updateTime,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CreateTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CreateTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Document) MarshalJSON() ([]byte, error) { type NoMethod Document raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentChange: A Document has changed. // // May be the result of multiple writes, including deletes, // that // ultimately resulted in a new value for the Document. // // Multiple DocumentChange messages may be returned for the same // logical // change, if multiple targets are affected. type DocumentChange struct { // Document: The new state of the Document. // // If `mask` is set, contains only fields that were updated or added. Document *Document `json:"document,omitempty"` // RemovedTargetIds: A set of target IDs for targets that no longer // match this document. RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` // TargetIds: A set of target IDs of targets that match this document. TargetIds []int64 `json:"targetIds,omitempty"` // ForceSendFields is a list of field names (e.g. "Document") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Document") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentChange) MarshalJSON() ([]byte, error) { type NoMethod DocumentChange raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentDelete: A Document has been deleted. // // May be the result of multiple writes, including updates, the // last of which deleted the Document. // // Multiple DocumentDelete messages may be returned for the same // logical // delete, if multiple targets are affected. type DocumentDelete struct { // Document: The resource name of the Document that was deleted. Document string `json:"document,omitempty"` // ReadTime: The read timestamp at which the delete was // observed. // // Greater or equal to the `commit_time` of the delete. ReadTime string `json:"readTime,omitempty"` // RemovedTargetIds: A set of target IDs for targets that previously // matched this entity. RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` // ForceSendFields is a list of field names (e.g. "Document") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Document") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentDelete) MarshalJSON() ([]byte, error) { type NoMethod DocumentDelete raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentMask: A set of field paths on a document. // Used to restrict a get or update operation on a document to a subset // of its // fields. // This is different from standard field masks, as this is always scoped // to a // Document, and takes in account the dynamic nature of Value. type DocumentMask struct { // FieldPaths: The list of field paths in the mask. See Document.fields // for a field // path syntax reference. FieldPaths []string `json:"fieldPaths,omitempty"` // ForceSendFields is a list of field names (e.g. "FieldPaths") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FieldPaths") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentMask) MarshalJSON() ([]byte, error) { type NoMethod DocumentMask raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentRemove: A Document has been removed from the view of the // targets. // // Sent if the document is no longer relevant to a target and is out of // view. // Can be sent instead of a DocumentDelete or a DocumentChange if the // server // can not send the new value of the document. // // Multiple DocumentRemove messages may be returned for the same // logical // write or delete, if multiple targets are affected. type DocumentRemove struct { // Document: The resource name of the Document that has gone out of // view. Document string `json:"document,omitempty"` // ReadTime: The read timestamp at which the remove was // observed. // // Greater or equal to the `commit_time` of the change/delete/remove. ReadTime string `json:"readTime,omitempty"` // RemovedTargetIds: A set of target IDs for targets that previously // matched this document. RemovedTargetIds []int64 `json:"removedTargetIds,omitempty"` // ForceSendFields is a list of field names (e.g. "Document") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Document") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentRemove) MarshalJSON() ([]byte, error) { type NoMethod DocumentRemove raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentTransform: A transformation of a document. type DocumentTransform struct { // Document: The name of the document to transform. Document string `json:"document,omitempty"` // FieldTransforms: The list of transformations to apply to the fields // of the document, in // order. // This must not be empty. FieldTransforms []*FieldTransform `json:"fieldTransforms,omitempty"` // ForceSendFields is a list of field names (e.g. "Document") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Document") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentTransform) MarshalJSON() ([]byte, error) { type NoMethod DocumentTransform raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // DocumentsTarget: A target specified by a set of documents names. type DocumentsTarget struct { // Documents: The names of the documents to retrieve. In the // format: // `projects/{project_id}/databases/{database_id}/documents/{docu // ment_path}`. // The request will fail if any of the document is not a child resource // of // the given `database`. Duplicate names will be elided. Documents []string `json:"documents,omitempty"` // ForceSendFields is a list of field names (e.g. "Documents") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Documents") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *DocumentsTarget) MarshalJSON() ([]byte, error) { type NoMethod DocumentsTarget raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Empty: A generic empty message that you can re-use to avoid defining // duplicated // empty messages in your APIs. A typical example is to use it as the // request // or the response type of an API method. For instance: // // service Foo { // rpc Bar(google.protobuf.Empty) returns // (google.protobuf.Empty); // } // // The JSON representation for `Empty` is empty JSON object `{}`. type Empty struct { // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` } // ExistenceFilter: A digest of all the documents that match a given // target. type ExistenceFilter struct { // Count: The total count of documents that match target_id. // // If different from the count of documents in the client that match, // the // client must manually determine which documents no longer match the // target. Count int64 `json:"count,omitempty"` // TargetId: The target ID to which this filter applies. TargetId int64 `json:"targetId,omitempty"` // ForceSendFields is a list of field names (e.g. "Count") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Count") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ExistenceFilter) MarshalJSON() ([]byte, error) { type NoMethod ExistenceFilter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FieldFilter: A filter on a specific field. type FieldFilter struct { // Field: The field to filter by. Field *FieldReference `json:"field,omitempty"` // Op: The operator to filter by. // // Possible values: // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. // "LESS_THAN" - Less than. Requires that the field come first in // `order_by`. // "LESS_THAN_OR_EQUAL" - Less than or equal. Requires that the field // come first in `order_by`. // "GREATER_THAN" - Greater than. Requires that the field come first // in `order_by`. // "GREATER_THAN_OR_EQUAL" - Greater than or equal. Requires that the // field come first in // `order_by`. // "EQUAL" - Equal. Op string `json:"op,omitempty"` // Value: The value to compare to. Value *Value `json:"value,omitempty"` // ForceSendFields is a list of field names (e.g. "Field") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Field") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FieldFilter) MarshalJSON() ([]byte, error) { type NoMethod FieldFilter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FieldReference: A reference to a field, such as `max(messages.time) // as max_time`. type FieldReference struct { FieldPath string `json:"fieldPath,omitempty"` // ForceSendFields is a list of field names (e.g. "FieldPath") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FieldPath") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FieldReference) MarshalJSON() ([]byte, error) { type NoMethod FieldReference raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // FieldTransform: A transformation of a field of the document. type FieldTransform struct { // FieldPath: The path of the field. See Document.fields for the field // path syntax // reference. FieldPath string `json:"fieldPath,omitempty"` // SetToServerValue: Sets the field to the given server value. // // Possible values: // "SERVER_VALUE_UNSPECIFIED" - Unspecified. This value must not be // used. // "REQUEST_TIME" - The time at which the server processed the // request, with millisecond // precision. SetToServerValue string `json:"setToServerValue,omitempty"` // ForceSendFields is a list of field names (e.g. "FieldPath") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FieldPath") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *FieldTransform) MarshalJSON() ([]byte, error) { type NoMethod FieldTransform raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Filter: A filter. type Filter struct { // CompositeFilter: A composite filter. CompositeFilter *CompositeFilter `json:"compositeFilter,omitempty"` // FieldFilter: A filter on a document field. FieldFilter *FieldFilter `json:"fieldFilter,omitempty"` // UnaryFilter: A filter that takes exactly one argument. UnaryFilter *UnaryFilter `json:"unaryFilter,omitempty"` // ForceSendFields is a list of field names (e.g. "CompositeFilter") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CompositeFilter") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Filter) MarshalJSON() ([]byte, error) { type NoMethod Filter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Index: An index definition. type Index struct { // CollectionId: The collection ID to which this index applies. // Required. CollectionId string `json:"collectionId,omitempty"` // Fields: The fields to index. Fields []*IndexField `json:"fields,omitempty"` // Name: The resource name of the index. // Output only. Name string `json:"name,omitempty"` // State: The state of the index. // Output only. // // Possible values: // "STATE_UNSPECIFIED" - The state is unspecified. // "CREATING" - The index is being created. // There is an active long-running operation for the index. // The index is updated when writing a document. // Some index data may exist. // "READY" - The index is ready to be used. // The index is updated when writing a document. // The index is fully populated from all stored documents it applies to. // "ERROR" - The index was being created, but something went // wrong. // There is no active long-running operation for the index, // and the most recently finished long-running operation failed. // The index is not updated when writing a document. // Some index data may exist. State string `json:"state,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CollectionId") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CollectionId") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Index) MarshalJSON() ([]byte, error) { type NoMethod Index raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // IndexField: A field of an index. type IndexField struct { // FieldPath: The path of the field. Must match the field path // specification described // by google.firestore.v1beta1.Document.fields. // Special field path `__name__` may be used by itself or at the end of // a // path. `__type__` may be used only at the end of path. FieldPath string `json:"fieldPath,omitempty"` // Mode: The field's mode. // // Possible values: // "MODE_UNSPECIFIED" - The mode is unspecified. // "ASCENDING" - The field's values are indexed so as to support // sequencing in // ascending order and also query by <, >, <=, >=, and =. // "DESCENDING" - The field's values are indexed so as to support // sequencing in // descending order and also query by <, >, <=, >=, and =. // "ARRAY_CONTAINS" - The field's array values are indexed so as to // support membership using // ARRAY_CONTAINS queries. Mode string `json:"mode,omitempty"` // ForceSendFields is a list of field names (e.g. "FieldPath") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "FieldPath") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *IndexField) MarshalJSON() ([]byte, error) { type NoMethod IndexField raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // LatLng: An object representing a latitude/longitude pair. This is // expressed as a pair // of doubles representing degrees latitude and degrees longitude. // Unless // specified otherwise, this must conform to the // WGS84 // st // andard. Values must be within normalized ranges. type LatLng struct { // Latitude: The latitude in degrees. It must be in the range [-90.0, // +90.0]. Latitude float64 `json:"latitude,omitempty"` // Longitude: The longitude in degrees. It must be in the range [-180.0, // +180.0]. Longitude float64 `json:"longitude,omitempty"` // ForceSendFields is a list of field names (e.g. "Latitude") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Latitude") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *LatLng) MarshalJSON() ([]byte, error) { type NoMethod LatLng raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *LatLng) UnmarshalJSON(data []byte) error { type NoMethod LatLng var s1 struct { Latitude gensupport.JSONFloat64 `json:"latitude"` Longitude gensupport.JSONFloat64 `json:"longitude"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.Latitude = float64(s1.Latitude) s.Longitude = float64(s1.Longitude) return nil } // ListCollectionIdsRequest: The request for // Firestore.ListCollectionIds. type ListCollectionIdsRequest struct { // PageSize: The maximum number of results to return. PageSize int64 `json:"pageSize,omitempty"` // PageToken: A page token. Must be a value // from // ListCollectionIdsResponse. PageToken string `json:"pageToken,omitempty"` // ForceSendFields is a list of field names (e.g. "PageSize") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "PageSize") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListCollectionIdsRequest) MarshalJSON() ([]byte, error) { type NoMethod ListCollectionIdsRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListCollectionIdsResponse: The response from // Firestore.ListCollectionIds. type ListCollectionIdsResponse struct { // CollectionIds: The collection ids. CollectionIds []string `json:"collectionIds,omitempty"` // NextPageToken: A page token that may be used to continue the list. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CollectionIds") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CollectionIds") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListCollectionIdsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListCollectionIdsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListDocumentsResponse: The response for Firestore.ListDocuments. type ListDocumentsResponse struct { // Documents: The Documents found. Documents []*Document `json:"documents,omitempty"` // NextPageToken: The next page token. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Documents") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Documents") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListDocumentsResponse) MarshalJSON() ([]byte, error) { type NoMethod ListDocumentsResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListIndexesResponse: The response for FirestoreAdmin.ListIndexes. type ListIndexesResponse struct { // Indexes: The indexes. Indexes []*Index `json:"indexes,omitempty"` // NextPageToken: The standard List next-page token. NextPageToken string `json:"nextPageToken,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Indexes") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Indexes") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListIndexesResponse) MarshalJSON() ([]byte, error) { type NoMethod ListIndexesResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListenRequest: A request for Firestore.Listen type ListenRequest struct { // AddTarget: A target to add to this stream. AddTarget *Target `json:"addTarget,omitempty"` // Labels: Labels associated with this target change. Labels map[string]string `json:"labels,omitempty"` // RemoveTarget: The ID of a target to remove from this stream. RemoveTarget int64 `json:"removeTarget,omitempty"` // ForceSendFields is a list of field names (e.g. "AddTarget") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "AddTarget") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ListenRequest) MarshalJSON() ([]byte, error) { type NoMethod ListenRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ListenResponse: The response for Firestore.Listen. type ListenResponse struct { // DocumentChange: A Document has changed. DocumentChange *DocumentChange `json:"documentChange,omitempty"` // DocumentDelete: A Document has been deleted. DocumentDelete *DocumentDelete `json:"documentDelete,omitempty"` // DocumentRemove: A Document has been removed from a target (because it // is no longer // relevant to that target). DocumentRemove *DocumentRemove `json:"documentRemove,omitempty"` // Filter: A filter to apply to the set of documents previously returned // for the // given target. // // Returned when documents may have been removed from the given target, // but // the exact documents are unknown. Filter *ExistenceFilter `json:"filter,omitempty"` // TargetChange: Targets have changed. TargetChange *TargetChange `json:"targetChange,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "DocumentChange") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "DocumentChange") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *ListenResponse) MarshalJSON() ([]byte, error) { type NoMethod ListenResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // MapValue: A map value. type MapValue struct { // Fields: 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. Fields map[string]Value `json:"fields,omitempty"` // ForceSendFields is a list of field names (e.g. "Fields") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Fields") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *MapValue) MarshalJSON() ([]byte, error) { type NoMethod MapValue raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Operation: This resource represents a long-running operation that is // the result of a // network API call. type Operation struct { // Done: If the value is `false`, it means the operation is still in // progress. // If `true`, the operation is completed, and either `error` or // `response` is // available. Done bool `json:"done,omitempty"` // Error: The error result of the operation in case of failure or // cancellation. Error *Status `json:"error,omitempty"` // Metadata: Service-specific metadata associated with the operation. // It typically // contains progress information and common metadata such as create // time. // Some services might not provide such metadata. Any method that // returns a // long-running operation should document the metadata type, if any. Metadata googleapi.RawMessage `json:"metadata,omitempty"` // Name: The server-assigned name, which is only unique within the same // service that // originally returns it. If you use the default HTTP mapping, // the // `name` should have the format of `operations/some/unique/name`. Name string `json:"name,omitempty"` // Response: The normal response of the operation in case of success. // If the original // method returns no data on success, such as `Delete`, the response // is // `google.protobuf.Empty`. If the original method is // standard // `Get`/`Create`/`Update`, the response should be the resource. For // other // methods, the response should have the type `XxxResponse`, where // `Xxx` // is the original method name. For example, if the original method // name // is `TakeSnapshot()`, the inferred response type // is // `TakeSnapshotResponse`. Response googleapi.RawMessage `json:"response,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Done") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Done") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Operation) MarshalJSON() ([]byte, error) { type NoMethod Operation raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Order: An order on a field. type Order struct { // Direction: The direction to order by. Defaults to `ASCENDING`. // // Possible values: // "DIRECTION_UNSPECIFIED" - Unspecified. // "ASCENDING" - Ascending. // "DESCENDING" - Descending. Direction string `json:"direction,omitempty"` // Field: The field to order by. Field *FieldReference `json:"field,omitempty"` // ForceSendFields is a list of field names (e.g. "Direction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Direction") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Order) MarshalJSON() ([]byte, error) { type NoMethod Order raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Precondition: A precondition on a document, used for conditional // operations. type Precondition struct { // Exists: When set to `true`, the target document must exist. // When set to `false`, the target document must not exist. Exists bool `json:"exists,omitempty"` // UpdateTime: When set, the target document must exist and have been // last updated at // that time. UpdateTime string `json:"updateTime,omitempty"` // ForceSendFields is a list of field names (e.g. "Exists") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Exists") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Precondition) MarshalJSON() ([]byte, error) { type NoMethod Precondition raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Projection: The projection of document's fields to return. type Projection struct { // Fields: The fields to return. // // If empty, all fields are returned. To only return the name // of the document, use `['__name__']`. Fields []*FieldReference `json:"fields,omitempty"` // ForceSendFields is a list of field names (e.g. "Fields") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Fields") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Projection) MarshalJSON() ([]byte, error) { type NoMethod Projection raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // QueryTarget: A target specified by a query. type QueryTarget struct { // Parent: The parent resource name. In the // format: // `projects/{project_id}/databases/{database_id}/documents` // or // `projects/{project_id}/databases/{database_id}/documents/{document_ // path}`. // For example: // `projects/my-project/databases/my-database/documents` // or // `projects/my-project/databases/my-database/documents/chatrooms/my-c // hatroom` Parent string `json:"parent,omitempty"` // StructuredQuery: A structured query. StructuredQuery *StructuredQuery `json:"structuredQuery,omitempty"` // ForceSendFields is a list of field names (e.g. "Parent") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Parent") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *QueryTarget) MarshalJSON() ([]byte, error) { type NoMethod QueryTarget raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ReadOnly: Options for a transaction that can only be used to read // documents. type ReadOnly struct { // ReadTime: Reads documents at the given time. // This may not be older than 60 seconds. ReadTime string `json:"readTime,omitempty"` // ForceSendFields is a list of field names (e.g. "ReadTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ReadTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *ReadOnly) MarshalJSON() ([]byte, error) { type NoMethod ReadOnly raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // ReadWrite: Options for a transaction that can be used to read and // write documents. type ReadWrite struct { // RetryTransaction: An optional transaction to retry. RetryTransaction string `json:"retryTransaction,omitempty"` // ForceSendFields is a list of field names (e.g. "RetryTransaction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "RetryTransaction") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *ReadWrite) MarshalJSON() ([]byte, error) { type NoMethod ReadWrite raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // RollbackRequest: The request for Firestore.Rollback. type RollbackRequest struct { // Transaction: The transaction to roll back. Transaction string `json:"transaction,omitempty"` // ForceSendFields is a list of field names (e.g. "Transaction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Transaction") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *RollbackRequest) MarshalJSON() ([]byte, error) { type NoMethod RollbackRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // RunQueryRequest: The request for Firestore.RunQuery. type RunQueryRequest struct { // NewTransaction: Starts a new transaction and reads the // documents. // Defaults to a read-only transaction. // The new transaction ID will be returned as the first response in // the // stream. NewTransaction *TransactionOptions `json:"newTransaction,omitempty"` // ReadTime: Reads documents as they were at the given time. // This may not be older than 60 seconds. ReadTime string `json:"readTime,omitempty"` // StructuredQuery: A structured query. StructuredQuery *StructuredQuery `json:"structuredQuery,omitempty"` // Transaction: Reads documents in a transaction. Transaction string `json:"transaction,omitempty"` // ForceSendFields is a list of field names (e.g. "NewTransaction") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "NewTransaction") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *RunQueryRequest) MarshalJSON() ([]byte, error) { type NoMethod RunQueryRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // RunQueryResponse: The response for Firestore.RunQuery. type RunQueryResponse struct { // Document: A query result. // Not set when reporting partial progress. Document *Document `json:"document,omitempty"` // ReadTime: The time at which the document was read. This may be // monotonically // increasing; in this case, the previous documents in the result stream // are // guaranteed not to have changed between their `read_time` and this // one. // // If the query returns no results, a response with `read_time` and // no // `document` will be sent, and this represents the time at which the // query // was run. ReadTime string `json:"readTime,omitempty"` // SkippedResults: The number of results that have been skipped due to // an offset between // the last response and the current response. SkippedResults int64 `json:"skippedResults,omitempty"` // Transaction: The transaction that was started as part of this // request. // Can only be set in the first response, and only // if // RunQueryRequest.new_transaction was set in the request. // If set, no other fields will be set in this response. Transaction string `json:"transaction,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Document") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Document") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *RunQueryResponse) MarshalJSON() ([]byte, error) { type NoMethod RunQueryResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Status: The `Status` type defines a logical error model that is // suitable for different // programming environments, including REST APIs and RPC APIs. It is // used by // [gRPC](https://github.com/grpc). The error model is designed to // be: // // - Simple to use and understand for most users // - Flexible enough to meet unexpected needs // // # Overview // // The `Status` message contains three pieces of data: error code, error // message, // and error details. The error code should be an enum value // of // google.rpc.Code, but it may accept additional error codes if needed. // The // error message should be a developer-facing English message that // helps // developers *understand* and *resolve* the error. If a localized // user-facing // error message is needed, put the localized message in the error // details or // localize it in the client. The optional error details may contain // arbitrary // information about the error. There is a predefined set of error // detail types // in the package `google.rpc` that can be used for common error // conditions. // // # Language mapping // // The `Status` message is the logical representation of the error // model, but it // is not necessarily the actual wire format. When the `Status` message // is // exposed in different client libraries and different wire protocols, // it can be // mapped differently. For example, it will likely be mapped to some // exceptions // in Java, but more likely mapped to some error codes in C. // // # Other uses // // The error model and the `Status` message can be used in a variety // of // environments, either with or without APIs, to provide a // consistent developer experience across different // environments. // // Example uses of this error model include: // // - Partial errors. If a service needs to return partial errors to the // client, // it may embed the `Status` in the normal response to indicate the // partial // errors. // // - Workflow errors. A typical workflow has multiple steps. Each step // may // have a `Status` message for error reporting. // // - Batch operations. If a client uses batch request and batch // response, the // `Status` message should be used directly inside batch response, // one for // each error sub-response. // // - Asynchronous operations. If an API call embeds asynchronous // operation // results in its response, the status of those operations should // be // represented directly using the `Status` message. // // - Logging. If some API errors are stored in logs, the message // `Status` could // be used directly after any stripping needed for security/privacy // reasons. type Status struct { // Code: The status code, which should be an enum value of // google.rpc.Code. Code int64 `json:"code,omitempty"` // Details: A list of messages that carry the error details. There is a // common set of // message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` // Message: A developer-facing error message, which should be in // English. Any // user-facing error message should be localized and sent in // the // google.rpc.Status.details field, or localized by the client. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Status) MarshalJSON() ([]byte, error) { type NoMethod Status raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // StructuredQuery: A Firestore query. type StructuredQuery struct { // EndAt: A end point for the query results. EndAt *Cursor `json:"endAt,omitempty"` // From: The collections to query. From []*CollectionSelector `json:"from,omitempty"` // Limit: The maximum number of results to return. // // Applies after all other constraints. // Must be >= 0 if specified. Limit int64 `json:"limit,omitempty"` // Offset: The number of results to skip. // // Applies before limit, but after all other constraints. Must be >= 0 // if // specified. Offset int64 `json:"offset,omitempty"` // OrderBy: The order to apply to the query results. // // Firestore guarantees a stable ordering through the following rules: // // * Any field required to appear in `order_by`, that is not already // specified in `order_by`, is appended to the order in field name // order // by default. // * If an order on `__name__` is not specified, it is appended by // default. // // Fields are appended with the same sort direction as the last // order // specified, or 'ASCENDING' if no order was specified. For example: // // * `SELECT * FROM Foo ORDER BY A` becomes // `SELECT * FROM Foo ORDER BY A, __name__` // * `SELECT * FROM Foo ORDER BY A DESC` becomes // `SELECT * FROM Foo ORDER BY A DESC, __name__ DESC` // * `SELECT * FROM Foo WHERE A > 1` becomes // `SELECT * FROM Foo WHERE A > 1 ORDER BY A, __name__` OrderBy []*Order `json:"orderBy,omitempty"` // Select: The projection to return. Select *Projection `json:"select,omitempty"` // StartAt: A starting point for the query results. StartAt *Cursor `json:"startAt,omitempty"` // Where: The filter to apply. Where *Filter `json:"where,omitempty"` // ForceSendFields is a list of field names (e.g. "EndAt") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "EndAt") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *StructuredQuery) MarshalJSON() ([]byte, error) { type NoMethod StructuredQuery raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Target: A specification of a set of documents to listen to. type Target struct { // Documents: A target specified by a set of document names. Documents *DocumentsTarget `json:"documents,omitempty"` // Once: If the target should be removed once it is current and // consistent. Once bool `json:"once,omitempty"` // Query: A target specified by a query. Query *QueryTarget `json:"query,omitempty"` // ReadTime: Start listening after a specific `read_time`. // // The client must know the state of matching documents at this time. ReadTime string `json:"readTime,omitempty"` // ResumeToken: A resume token from a prior TargetChange for an // identical target. // // Using a resume token with a different target is unsupported and may // fail. ResumeToken string `json:"resumeToken,omitempty"` // TargetId: A client provided target ID. // // If not set, the server will assign an ID for the target. // // Used for resuming a target without changing IDs. The IDs can either // be // client-assigned or be server-assigned in a previous stream. All // targets // with client provided IDs must be added before adding a target that // needs // a server-assigned id. TargetId int64 `json:"targetId,omitempty"` // ForceSendFields is a list of field names (e.g. "Documents") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Documents") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Target) MarshalJSON() ([]byte, error) { type NoMethod Target raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TargetChange: Targets being watched have changed. type TargetChange struct { // Cause: The error that resulted in this change, if applicable. Cause *Status `json:"cause,omitempty"` // ReadTime: The consistent `read_time` for the given `target_ids` // (omitted when the // target_ids are not at a consistent snapshot). // // The stream is guaranteed to send a `read_time` with `target_ids` // empty // whenever the entire stream reaches a new consistent snapshot. // ADD, // CURRENT, and RESET messages are guaranteed to (eventually) result in // a // new consistent snapshot (while NO_CHANGE and REMOVE messages are // not). // // For a given stream, `read_time` is guaranteed to be // monotonically // increasing. ReadTime string `json:"readTime,omitempty"` // ResumeToken: A token that can be used to resume the stream for the // given `target_ids`, // or all targets if `target_ids` is empty. // // Not set on every target change. ResumeToken string `json:"resumeToken,omitempty"` // TargetChangeType: The type of change that occurred. // // Possible values: // "NO_CHANGE" - No change has occurred. Used only to send an updated // `resume_token`. // "ADD" - The targets have been added. // "REMOVE" - The targets have been removed. // "CURRENT" - The targets reflect all changes committed before the // targets were added // to the stream. // // This will be sent after or with a `read_time` that is greater than // or // equal to the time at which the targets were added. // // Listeners can wait for this change if read-after-write semantics // are desired. // "RESET" - The targets have been reset, and a new initial state for // the targets // will be returned in subsequent changes. // // After the initial state is complete, `CURRENT` will be returned // even // if the target was previously indicated to be `CURRENT`. TargetChangeType string `json:"targetChangeType,omitempty"` // TargetIds: The target IDs of targets that have changed. // // If empty, the change applies to all targets. // // For `target_change_type=ADD`, the order of the target IDs matches the // order // of the requests to add the targets. This allows clients to // unambiguously // associate server-assigned target IDs with added targets. // // For other states, the order of the target IDs is not defined. TargetIds []int64 `json:"targetIds,omitempty"` // ForceSendFields is a list of field names (e.g. "Cause") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Cause") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TargetChange) MarshalJSON() ([]byte, error) { type NoMethod TargetChange raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // TransactionOptions: Options for creating a new transaction. type TransactionOptions struct { // ReadOnly: The transaction can only be used for read operations. ReadOnly *ReadOnly `json:"readOnly,omitempty"` // ReadWrite: The transaction can be used for both read and write // operations. ReadWrite *ReadWrite `json:"readWrite,omitempty"` // ForceSendFields is a list of field names (e.g. "ReadOnly") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ReadOnly") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *TransactionOptions) MarshalJSON() ([]byte, error) { type NoMethod TransactionOptions raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // UnaryFilter: A filter with a single operand. type UnaryFilter struct { // Field: The field to which to apply the operator. Field *FieldReference `json:"field,omitempty"` // Op: The unary operator to apply. // // Possible values: // "OPERATOR_UNSPECIFIED" - Unspecified. This value must not be used. // "IS_NAN" - Test if a field is equal to NaN. // "IS_NULL" - Test if an exprestion evaluates to Null. Op string `json:"op,omitempty"` // ForceSendFields is a list of field names (e.g. "Field") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Field") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *UnaryFilter) MarshalJSON() ([]byte, error) { type NoMethod UnaryFilter raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // Value: A message that can hold any of the supported value types. type Value struct { // ArrayValue: An array value. // // Cannot directly contain another array value, though can contain // an // map which contains another array. ArrayValue *ArrayValue `json:"arrayValue,omitempty"` // BooleanValue: A boolean value. BooleanValue bool `json:"booleanValue,omitempty"` // BytesValue: A bytes value. // // Must not exceed 1 MiB - 89 bytes. // Only the first 1,500 bytes are considered by queries. BytesValue string `json:"bytesValue,omitempty"` // DoubleValue: A double value. DoubleValue float64 `json:"doubleValue,omitempty"` // GeoPointValue: A geo point value representing a point on the surface // of Earth. GeoPointValue *LatLng `json:"geoPointValue,omitempty"` // IntegerValue: An integer value. IntegerValue int64 `json:"integerValue,omitempty,string"` // MapValue: A map value. MapValue *MapValue `json:"mapValue,omitempty"` // NullValue: A null value. // // Possible values: // "NULL_VALUE" - Null value. NullValue string `json:"nullValue,omitempty"` // ReferenceValue: A reference to a document. For // example: // `projects/{project_id}/databases/{database_id}/documents/{doc // ument_path}`. ReferenceValue string `json:"referenceValue,omitempty"` // StringValue: 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. StringValue string `json:"stringValue,omitempty"` // TimestampValue: A timestamp value. // // Precise only to microseconds. When stored, any additional precision // is // rounded down. TimestampValue string `json:"timestampValue,omitempty"` // ForceSendFields is a list of field names (e.g. "ArrayValue") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "ArrayValue") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *Value) MarshalJSON() ([]byte, error) { type NoMethod Value raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } func (s *Value) UnmarshalJSON(data []byte) error { type NoMethod Value var s1 struct { DoubleValue gensupport.JSONFloat64 `json:"doubleValue"` *NoMethod } s1.NoMethod = (*NoMethod)(s) if err := json.Unmarshal(data, &s1); err != nil { return err } s.DoubleValue = float64(s1.DoubleValue) return nil } // Write: A write on a document. type Write struct { // CurrentDocument: An optional precondition on the document. // // The write will fail if this is set and not met by the target // document. CurrentDocument *Precondition `json:"currentDocument,omitempty"` // Delete: A document name to delete. In the // format: // `projects/{project_id}/databases/{database_id}/documents/{docu // ment_path}`. Delete string `json:"delete,omitempty"` // Transform: 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 // request. Transform *DocumentTransform `json:"transform,omitempty"` // Update: A document to write. Update *Document `json:"update,omitempty"` // UpdateMask: The fields to update in this write. // // This field can be set only when the operation is `update`. // 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. UpdateMask *DocumentMask `json:"updateMask,omitempty"` // ForceSendFields is a list of field names (e.g. "CurrentDocument") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CurrentDocument") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *Write) MarshalJSON() ([]byte, error) { type NoMethod Write raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // WriteRequest: The request for Firestore.Write. // // The first request creates a stream, or resumes an existing one from a // token. // // When creating a new stream, the server replies with a response // containing // only an ID and a token, to use in the next request. // // When resuming a stream, the server first streams any responses later // than the // given token, then a response containing only an up-to-date token, to // use in // the next request. type WriteRequest struct { // Labels: Labels associated with this write request. Labels map[string]string `json:"labels,omitempty"` // StreamId: The ID of the write stream to resume. // This may only be set in the first message. When left empty, a new // write // stream will be created. StreamId string `json:"streamId,omitempty"` // StreamToken: A stream token that was previously sent by the // server. // // The client should set this field to the token from the most // recent // WriteResponse it has received. This acknowledges that the client // has // received responses up to this token. After sending this token, // earlier // tokens may not be used anymore. // // The server may close the stream if there are too many // unacknowledged // responses. // // Leave this field unset when creating a new stream. To resume a stream // at // a specific point, set this field and the `stream_id` field. // // Leave this field unset when creating a new stream. StreamToken string `json:"streamToken,omitempty"` // Writes: The writes to apply. // // Always executed atomically and in order. // This must be empty on the first request. // This may be empty on the last request. // This must not be empty on all other requests. Writes []*Write `json:"writes,omitempty"` // ForceSendFields is a list of field names (e.g. "Labels") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Labels") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *WriteRequest) MarshalJSON() ([]byte, error) { type NoMethod WriteRequest raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // WriteResponse: The response for Firestore.Write. type WriteResponse struct { // CommitTime: The time at which the commit occurred. CommitTime string `json:"commitTime,omitempty"` // StreamId: The ID of the stream. // Only set on the first message, when a new stream was created. StreamId string `json:"streamId,omitempty"` // StreamToken: A token that represents the position of this response in // the stream. // This can be used by a client to resume the stream at this // point. // // This field is always set. StreamToken string `json:"streamToken,omitempty"` // WriteResults: The result of applying the writes. // // This i-th write result corresponds to the i-th write in the // request. WriteResults []*WriteResult `json:"writeResults,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "CommitTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "CommitTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` } func (s *WriteResponse) MarshalJSON() ([]byte, error) { type NoMethod WriteResponse raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // WriteResult: The result of applying a write. type WriteResult struct { // TransformResults: The results of applying each // DocumentTransform.FieldTransform, in the // same order. TransformResults []*Value `json:"transformResults,omitempty"` // UpdateTime: The last update time of the document after applying the // write. Not set // after a `delete`. // // If the write did not actually change the document, this will be // the // previous update_time. UpdateTime string `json:"updateTime,omitempty"` // ForceSendFields is a list of field names (e.g. "TransformResults") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "TransformResults") to // include in API requests with the JSON null value. By default, fields // with empty values are omitted from API requests. However, any field // with an empty value appearing in NullFields will be sent to the // server as null. It is an error if a field in this list has a // non-empty value. This may be used to include null fields in Patch // requests. NullFields []string `json:"-"` } func (s *WriteResult) MarshalJSON() ([]byte, error) { type NoMethod WriteResult raw := NoMethod(*s) return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields) } // method id "firestore.projects.databases.documents.batchGet": type ProjectsDatabasesDocumentsBatchGetCall struct { s *Service database string batchgetdocumentsrequest *BatchGetDocumentsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // BatchGet: Gets multiple documents. // // Documents returned by this method are not guaranteed to be returned // in the // same order that they were requested. func (r *ProjectsDatabasesDocumentsService) BatchGet(database string, batchgetdocumentsrequest *BatchGetDocumentsRequest) *ProjectsDatabasesDocumentsBatchGetCall { c := &ProjectsDatabasesDocumentsBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.batchgetdocumentsrequest = batchgetdocumentsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsBatchGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsBatchGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsBatchGetCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsBatchGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsBatchGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsBatchGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.batchgetdocumentsrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:batchGet") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.batchGet" call. // Exactly one of *BatchGetDocumentsResponse or error will be non-nil. // Any non-2xx status code is an error. Response headers are in either // *BatchGetDocumentsResponse.ServerResponse.Header or (if a response // was returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetDocumentsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &BatchGetDocumentsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Gets multiple documents.\n\nDocuments returned by this method are not guaranteed to be returned in the\nsame order that they were requested.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:batchGet", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.batchGet", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:batchGet", // "request": { // "$ref": "BatchGetDocumentsRequest" // }, // "response": { // "$ref": "BatchGetDocumentsResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.beginTransaction": type ProjectsDatabasesDocumentsBeginTransactionCall struct { s *Service database string begintransactionrequest *BeginTransactionRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // BeginTransaction: Starts a new transaction. func (r *ProjectsDatabasesDocumentsService) BeginTransaction(database string, begintransactionrequest *BeginTransactionRequest) *ProjectsDatabasesDocumentsBeginTransactionCall { c := &ProjectsDatabasesDocumentsBeginTransactionCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.begintransactionrequest = begintransactionrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsBeginTransactionCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsBeginTransactionCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsBeginTransactionCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.begintransactionrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:beginTransaction") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.beginTransaction" call. // Exactly one of *BeginTransactionResponse or error will be non-nil. // Any non-2xx status code is an error. Response headers are in either // *BeginTransactionResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsBeginTransactionCall) Do(opts ...googleapi.CallOption) (*BeginTransactionResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &BeginTransactionResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Starts a new transaction.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:beginTransaction", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.beginTransaction", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:beginTransaction", // "request": { // "$ref": "BeginTransactionRequest" // }, // "response": { // "$ref": "BeginTransactionResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.commit": type ProjectsDatabasesDocumentsCommitCall struct { s *Service database string commitrequest *CommitRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Commit: Commits a transaction, while optionally updating documents. func (r *ProjectsDatabasesDocumentsService) Commit(database string, commitrequest *CommitRequest) *ProjectsDatabasesDocumentsCommitCall { c := &ProjectsDatabasesDocumentsCommitCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.commitrequest = commitrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsCommitCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsCommitCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsCommitCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsCommitCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsCommitCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsCommitCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:commit") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.commit" call. // Exactly one of *CommitResponse or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *CommitResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsCommitCall) Do(opts ...googleapi.CallOption) (*CommitResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &CommitResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Commits a transaction, while optionally updating documents.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:commit", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.commit", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:commit", // "request": { // "$ref": "CommitRequest" // }, // "response": { // "$ref": "CommitResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.createDocument": type ProjectsDatabasesDocumentsCreateDocumentCall struct { s *Service parent string collectionId string document *Document urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // CreateDocument: Creates a new document. func (r *ProjectsDatabasesDocumentsService) CreateDocument(parent string, collectionId string, document *Document) *ProjectsDatabasesDocumentsCreateDocumentCall { c := &ProjectsDatabasesDocumentsCreateDocumentCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.collectionId = collectionId c.document = document return c } // DocumentId sets the optional parameter "documentId": The // client-assigned document ID to use for this document. // // If not specified, an ID will be assigned by the service. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) DocumentId(documentId string) *ProjectsDatabasesDocumentsCreateDocumentCall { c.urlParams_.Set("documentId", documentId) return c } // MaskFieldPaths sets the optional parameter "mask.fieldPaths": The // list of field paths in the mask. See Document.fields for a field // path syntax reference. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsCreateDocumentCall { c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsCreateDocumentCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsCreateDocumentCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsCreateDocumentCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.document) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/{collectionId}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, "collectionId": c.collectionId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.createDocument" call. // Exactly one of *Document or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Document.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsCreateDocumentCall) Do(opts ...googleapi.CallOption) (*Document, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Document{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Creates a new document.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{collectionId}", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.createDocument", // "parameterOrder": [ // "parent", // "collectionId" // ], // "parameters": { // "collectionId": { // "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`.", // "location": "path", // "required": true, // "type": "string" // }, // "documentId": { // "description": "The client-assigned document ID to use for this document.\n\nOptional. If not specified, an ID will be assigned by the service.", // "location": "query", // "type": "string" // }, // "mask.fieldPaths": { // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", // "location": "query", // "repeated": true, // "type": "string" // }, // "parent": { // "description": "The parent resource. For example:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/chatrooms/{chatroom_id}`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/.+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+parent}/{collectionId}", // "request": { // "$ref": "Document" // }, // "response": { // "$ref": "Document" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.delete": type ProjectsDatabasesDocumentsDeleteCall struct { s *Service name string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes a document. func (r *ProjectsDatabasesDocumentsService) Delete(name string) *ProjectsDatabasesDocumentsDeleteCall { c := &ProjectsDatabasesDocumentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // CurrentDocumentExists sets the optional parameter // "currentDocument.exists": When set to `true`, the target document // must exist. // When set to `false`, the target document must not exist. func (c *ProjectsDatabasesDocumentsDeleteCall) CurrentDocumentExists(currentDocumentExists bool) *ProjectsDatabasesDocumentsDeleteCall { c.urlParams_.Set("currentDocument.exists", fmt.Sprint(currentDocumentExists)) return c } // CurrentDocumentUpdateTime sets the optional parameter // "currentDocument.updateTime": When set, the target document must // exist and have been last updated at // that time. func (c *ProjectsDatabasesDocumentsDeleteCall) CurrentDocumentUpdateTime(currentDocumentUpdateTime string) *ProjectsDatabasesDocumentsDeleteCall { c.urlParams_.Set("currentDocument.updateTime", currentDocumentUpdateTime) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsDeleteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsDeleteCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsDeleteCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("DELETE", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.delete" call. // Exactly one of *Empty or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Empty.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *ProjectsDatabasesDocumentsDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Empty{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Deletes a document.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", // "httpMethod": "DELETE", // "id": "firestore.projects.databases.documents.delete", // "parameterOrder": [ // "name" // ], // "parameters": { // "currentDocument.exists": { // "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", // "location": "query", // "type": "boolean" // }, // "currentDocument.updateTime": { // "description": "When set, the target document must exist and have been last updated at\nthat time.", // "format": "google-datetime", // "location": "query", // "type": "string" // }, // "name": { // "description": "The resource name of the Document to delete. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+name}", // "response": { // "$ref": "Empty" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.get": type ProjectsDatabasesDocumentsGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets a single document. func (r *ProjectsDatabasesDocumentsService) Get(name string) *ProjectsDatabasesDocumentsGetCall { c := &ProjectsDatabasesDocumentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // MaskFieldPaths sets the optional parameter "mask.fieldPaths": The // list of field paths in the mask. See Document.fields for a field // path syntax reference. func (c *ProjectsDatabasesDocumentsGetCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsGetCall { c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) return c } // ReadTime sets the optional parameter "readTime": Reads the version of // the document at the given time. // This may not be older than 60 seconds. func (c *ProjectsDatabasesDocumentsGetCall) ReadTime(readTime string) *ProjectsDatabasesDocumentsGetCall { c.urlParams_.Set("readTime", readTime) return c } // Transaction sets the optional parameter "transaction": Reads the // document in a transaction. func (c *ProjectsDatabasesDocumentsGetCall) Transaction(transaction string) *ProjectsDatabasesDocumentsGetCall { c.urlParams_.Set("transaction", transaction) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ProjectsDatabasesDocumentsGetCall) IfNoneMatch(entityTag string) *ProjectsDatabasesDocumentsGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsGetCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.get" call. // Exactly one of *Document or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Document.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsGetCall) Do(opts ...googleapi.CallOption) (*Document, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Document{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Gets a single document.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", // "httpMethod": "GET", // "id": "firestore.projects.databases.documents.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "mask.fieldPaths": { // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", // "location": "query", // "repeated": true, // "type": "string" // }, // "name": { // "description": "The resource name of the Document to get. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // }, // "readTime": { // "description": "Reads the version of the document at the given time.\nThis may not be older than 60 seconds.", // "format": "google-datetime", // "location": "query", // "type": "string" // }, // "transaction": { // "description": "Reads the document in a transaction.", // "format": "byte", // "location": "query", // "type": "string" // } // }, // "path": "v1beta1/{+name}", // "response": { // "$ref": "Document" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.list": type ProjectsDatabasesDocumentsListCall struct { s *Service parent string collectionId string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists documents. func (r *ProjectsDatabasesDocumentsService) List(parent string, collectionId string) *ProjectsDatabasesDocumentsListCall { c := &ProjectsDatabasesDocumentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.collectionId = collectionId return c } // MaskFieldPaths sets the optional parameter "mask.fieldPaths": The // list of field paths in the mask. See Document.fields for a field // path syntax reference. func (c *ProjectsDatabasesDocumentsListCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsListCall { c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) return c } // OrderBy sets the optional parameter "orderBy": The order to sort // results by. For example: `priority desc, name`. func (c *ProjectsDatabasesDocumentsListCall) OrderBy(orderBy string) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("orderBy", orderBy) return c } // PageSize sets the optional parameter "pageSize": The maximum number // of documents to return. func (c *ProjectsDatabasesDocumentsListCall) PageSize(pageSize int64) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The // `next_page_token` value returned from a previous List request, if // any. func (c *ProjectsDatabasesDocumentsListCall) PageToken(pageToken string) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("pageToken", pageToken) return c } // ReadTime sets the optional parameter "readTime": Reads documents as // they were at the given time. // This may not be older than 60 seconds. func (c *ProjectsDatabasesDocumentsListCall) ReadTime(readTime string) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("readTime", readTime) return c } // ShowMissing sets the optional parameter "showMissing": If the list // should show missing documents. A missing document is a // document that does not exist but has sub-documents. These documents // will // be returned with a key but will not have fields, // Document.create_time, // or Document.update_time set. // // Requests with `show_missing` may not specify `where` or // `order_by`. func (c *ProjectsDatabasesDocumentsListCall) ShowMissing(showMissing bool) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("showMissing", fmt.Sprint(showMissing)) return c } // Transaction sets the optional parameter "transaction": Reads // documents in a transaction. func (c *ProjectsDatabasesDocumentsListCall) Transaction(transaction string) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("transaction", transaction) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsListCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ProjectsDatabasesDocumentsListCall) IfNoneMatch(entityTag string) *ProjectsDatabasesDocumentsListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsListCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/{collectionId}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, "collectionId": c.collectionId, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.list" call. // Exactly one of *ListDocumentsResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListDocumentsResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsListCall) Do(opts ...googleapi.CallOption) (*ListDocumentsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListDocumentsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Lists documents.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}/{collectionId}", // "httpMethod": "GET", // "id": "firestore.projects.databases.documents.list", // "parameterOrder": [ // "parent", // "collectionId" // ], // "parameters": { // "collectionId": { // "description": "The collection ID, relative to `parent`, to list. For example: `chatrooms`\nor `messages`.", // "location": "path", // "required": true, // "type": "string" // }, // "mask.fieldPaths": { // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", // "location": "query", // "repeated": true, // "type": "string" // }, // "orderBy": { // "description": "The order to sort results by. For example: `priority desc, name`.", // "location": "query", // "type": "string" // }, // "pageSize": { // "description": "The maximum number of documents to return.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { // "description": "The `next_page_token` value returned from a previous List request, if any.", // "location": "query", // "type": "string" // }, // "parent": { // "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // }, // "readTime": { // "description": "Reads documents as they were at the given time.\nThis may not be older than 60 seconds.", // "format": "google-datetime", // "location": "query", // "type": "string" // }, // "showMissing": { // "description": "If the list should show missing documents. A missing document is a\ndocument that does not exist but has sub-documents. These documents will\nbe returned with a key but will not have fields, Document.create_time,\nor Document.update_time set.\n\nRequests with `show_missing` may not specify `where` or\n`order_by`.", // "location": "query", // "type": "boolean" // }, // "transaction": { // "description": "Reads documents in a transaction.", // "format": "byte", // "location": "query", // "type": "string" // } // }, // "path": "v1beta1/{+parent}/{collectionId}", // "response": { // "$ref": "ListDocumentsResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ProjectsDatabasesDocumentsListCall) Pages(ctx context.Context, f func(*ListDocumentsResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } } // method id "firestore.projects.databases.documents.listCollectionIds": type ProjectsDatabasesDocumentsListCollectionIdsCall struct { s *Service parent string listcollectionidsrequest *ListCollectionIdsRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // ListCollectionIds: Lists all the collection IDs underneath a // document. func (r *ProjectsDatabasesDocumentsService) ListCollectionIds(parent string, listcollectionidsrequest *ListCollectionIdsRequest) *ProjectsDatabasesDocumentsListCollectionIdsCall { c := &ProjectsDatabasesDocumentsListCollectionIdsCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.listcollectionidsrequest = listcollectionidsrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListCollectionIdsCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListCollectionIdsCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.listcollectionidsrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:listCollectionIds") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.listCollectionIds" call. // Exactly one of *ListCollectionIdsResponse or error will be non-nil. // Any non-2xx status code is an error. Response headers are in either // *ListCollectionIdsResponse.ServerResponse.Header or (if a response // was returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Do(opts ...googleapi.CallOption) (*ListCollectionIdsResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListCollectionIdsResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Lists all the collection IDs underneath a document.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:listCollectionIds", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.listCollectionIds", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "The parent document. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+parent}:listCollectionIds", // "request": { // "$ref": "ListCollectionIdsRequest" // }, // "response": { // "$ref": "ListCollectionIdsResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ProjectsDatabasesDocumentsListCollectionIdsCall) Pages(ctx context.Context, f func(*ListCollectionIdsResponse) error) error { c.ctx_ = ctx defer func(pt string) { c.listcollectionidsrequest.PageToken = pt }(c.listcollectionidsrequest.PageToken) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.listcollectionidsrequest.PageToken = x.NextPageToken } } // method id "firestore.projects.databases.documents.listen": type ProjectsDatabasesDocumentsListenCall struct { s *Service database string listenrequest *ListenRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Listen: Listens to changes. func (r *ProjectsDatabasesDocumentsService) Listen(database string, listenrequest *ListenRequest) *ProjectsDatabasesDocumentsListenCall { c := &ProjectsDatabasesDocumentsListenCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.listenrequest = listenrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsListenCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsListenCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsListenCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsListenCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsListenCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsListenCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.listenrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:listen") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.listen" call. // Exactly one of *ListenResponse or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *ListenResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsListenCall) Do(opts ...googleapi.CallOption) (*ListenResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListenResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Listens to changes.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:listen", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.listen", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:listen", // "request": { // "$ref": "ListenRequest" // }, // "response": { // "$ref": "ListenResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.patch": type ProjectsDatabasesDocumentsPatchCall struct { s *Service name string document *Document urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Patch: Updates or inserts a document. func (r *ProjectsDatabasesDocumentsService) Patch(name string, document *Document) *ProjectsDatabasesDocumentsPatchCall { c := &ProjectsDatabasesDocumentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name c.document = document return c } // CurrentDocumentExists sets the optional parameter // "currentDocument.exists": When set to `true`, the target document // must exist. // When set to `false`, the target document must not exist. func (c *ProjectsDatabasesDocumentsPatchCall) CurrentDocumentExists(currentDocumentExists bool) *ProjectsDatabasesDocumentsPatchCall { c.urlParams_.Set("currentDocument.exists", fmt.Sprint(currentDocumentExists)) return c } // CurrentDocumentUpdateTime sets the optional parameter // "currentDocument.updateTime": When set, the target document must // exist and have been last updated at // that time. func (c *ProjectsDatabasesDocumentsPatchCall) CurrentDocumentUpdateTime(currentDocumentUpdateTime string) *ProjectsDatabasesDocumentsPatchCall { c.urlParams_.Set("currentDocument.updateTime", currentDocumentUpdateTime) return c } // MaskFieldPaths sets the optional parameter "mask.fieldPaths": The // list of field paths in the mask. See Document.fields for a field // path syntax reference. func (c *ProjectsDatabasesDocumentsPatchCall) MaskFieldPaths(maskFieldPaths ...string) *ProjectsDatabasesDocumentsPatchCall { c.urlParams_.SetMulti("mask.fieldPaths", append([]string{}, maskFieldPaths...)) return c } // UpdateMaskFieldPaths sets the optional parameter // "updateMask.fieldPaths": The list of field paths in the mask. See // Document.fields for a field // path syntax reference. func (c *ProjectsDatabasesDocumentsPatchCall) UpdateMaskFieldPaths(updateMaskFieldPaths ...string) *ProjectsDatabasesDocumentsPatchCall { c.urlParams_.SetMulti("updateMask.fieldPaths", append([]string{}, updateMaskFieldPaths...)) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsPatchCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsPatchCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsPatchCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsPatchCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsPatchCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsPatchCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.document) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("PATCH", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.patch" call. // Exactly one of *Document or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Document.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsPatchCall) Do(opts ...googleapi.CallOption) (*Document, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Document{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Updates or inserts a document.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}", // "httpMethod": "PATCH", // "id": "firestore.projects.databases.documents.patch", // "parameterOrder": [ // "name" // ], // "parameters": { // "currentDocument.exists": { // "description": "When set to `true`, the target document must exist.\nWhen set to `false`, the target document must not exist.", // "location": "query", // "type": "boolean" // }, // "currentDocument.updateTime": { // "description": "When set, the target document must exist and have been last updated at\nthat time.", // "format": "google-datetime", // "location": "query", // "type": "string" // }, // "mask.fieldPaths": { // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", // "location": "query", // "repeated": true, // "type": "string" // }, // "name": { // "description": "The resource name of the document, for example\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // }, // "updateMask.fieldPaths": { // "description": "The list of field paths in the mask. See Document.fields for a field\npath syntax reference.", // "location": "query", // "repeated": true, // "type": "string" // } // }, // "path": "v1beta1/{+name}", // "request": { // "$ref": "Document" // }, // "response": { // "$ref": "Document" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.rollback": type ProjectsDatabasesDocumentsRollbackCall struct { s *Service database string rollbackrequest *RollbackRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Rollback: Rolls back a transaction. func (r *ProjectsDatabasesDocumentsService) Rollback(database string, rollbackrequest *RollbackRequest) *ProjectsDatabasesDocumentsRollbackCall { c := &ProjectsDatabasesDocumentsRollbackCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.rollbackrequest = rollbackrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsRollbackCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsRollbackCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsRollbackCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsRollbackCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsRollbackCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsRollbackCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.rollbackrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:rollback") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.rollback" call. // Exactly one of *Empty or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Empty.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *ProjectsDatabasesDocumentsRollbackCall) Do(opts ...googleapi.CallOption) (*Empty, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Empty{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Rolls back a transaction.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:rollback", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.rollback", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:rollback", // "request": { // "$ref": "RollbackRequest" // }, // "response": { // "$ref": "Empty" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.runQuery": type ProjectsDatabasesDocumentsRunQueryCall struct { s *Service parent string runqueryrequest *RunQueryRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // RunQuery: Runs a query. func (r *ProjectsDatabasesDocumentsService) RunQuery(parent string, runqueryrequest *RunQueryRequest) *ProjectsDatabasesDocumentsRunQueryCall { c := &ProjectsDatabasesDocumentsRunQueryCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.runqueryrequest = runqueryrequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsRunQueryCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsRunQueryCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsRunQueryCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsRunQueryCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsRunQueryCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsRunQueryCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.runqueryrequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}:runQuery") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.runQuery" call. // Exactly one of *RunQueryResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *RunQueryResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsRunQueryCall) Do(opts ...googleapi.CallOption) (*RunQueryResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &RunQueryResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Runs a query.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents/{documentsId}/{documentsId1}:runQuery", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.runQuery", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "The parent resource name. In the format:\n`projects/{project_id}/databases/{database_id}/documents` or\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\nFor example:\n`projects/my-project/databases/my-database/documents` or\n`projects/my-project/databases/my-database/documents/chatrooms/my-chatroom`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/documents/[^/]+/.+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+parent}:runQuery", // "request": { // "$ref": "RunQueryRequest" // }, // "response": { // "$ref": "RunQueryResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.documents.write": type ProjectsDatabasesDocumentsWriteCall struct { s *Service database string writerequest *WriteRequest urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Write: Streams batches of document updates and deletes, in order. func (r *ProjectsDatabasesDocumentsService) Write(database string, writerequest *WriteRequest) *ProjectsDatabasesDocumentsWriteCall { c := &ProjectsDatabasesDocumentsWriteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.database = database c.writerequest = writerequest return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesDocumentsWriteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesDocumentsWriteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesDocumentsWriteCall) Context(ctx context.Context) *ProjectsDatabasesDocumentsWriteCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesDocumentsWriteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesDocumentsWriteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.writerequest) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+database}/documents:write") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "database": c.database, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.documents.write" call. // Exactly one of *WriteResponse or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *WriteResponse.ServerResponse.Header or (if a response was returned // at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesDocumentsWriteCall) Do(opts ...googleapi.CallOption) (*WriteResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &WriteResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Streams batches of document updates and deletes, in order.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/documents:write", // "httpMethod": "POST", // "id": "firestore.projects.databases.documents.write", // "parameterOrder": [ // "database" // ], // "parameters": { // "database": { // "description": "The database name. In the format:\n`projects/{project_id}/databases/{database_id}`.\nThis is only required in the first message.", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+database}/documents:write", // "request": { // "$ref": "WriteRequest" // }, // "response": { // "$ref": "WriteResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.indexes.create": type ProjectsDatabasesIndexesCreateCall struct { s *Service parent string index *Index urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Create: Creates the specified index. // A newly created index's initial state is `CREATING`. On completion of // the // returned google.longrunning.Operation, the state will be `READY`. // If the index already exists, the call will return an // `ALREADY_EXISTS` // status. // // During creation, the process could result in an error, in which case // the // index will move to the `ERROR` state. The process can be recovered // by // fixing the data that caused the error, removing the index // with // delete, then re-creating the index with // create. // // Indexes with a single field cannot be created. func (r *ProjectsDatabasesIndexesService) Create(parent string, index *Index) *ProjectsDatabasesIndexesCreateCall { c := &ProjectsDatabasesIndexesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent c.index = index return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesIndexesCreateCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesCreateCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesIndexesCreateCall) Context(ctx context.Context) *ProjectsDatabasesIndexesCreateCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesIndexesCreateCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesIndexesCreateCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil body, err := googleapi.WithoutDataWrapper.JSONReader(c.index) if err != nil { return nil, err } reqHeaders.Set("Content-Type", "application/json") c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/indexes") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("POST", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.indexes.create" call. // Exactly one of *Operation or error will be non-nil. Any non-2xx // status code is an error. Response headers are in either // *Operation.ServerResponse.Header or (if a response was returned at // all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified // to check whether the returned error was because // http.StatusNotModified was returned. func (c *ProjectsDatabasesIndexesCreateCall) Do(opts ...googleapi.CallOption) (*Operation, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Operation{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Creates the specified index.\nA newly created index's initial state is `CREATING`. On completion of the\nreturned google.longrunning.Operation, the state will be `READY`.\nIf the index already exists, the call will return an `ALREADY_EXISTS`\nstatus.\n\nDuring creation, the process could result in an error, in which case the\nindex will move to the `ERROR` state. The process can be recovered by\nfixing the data that caused the error, removing the index with\ndelete, then re-creating the index with\ncreate.\n\nIndexes with a single field cannot be created.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", // "httpMethod": "POST", // "id": "firestore.projects.databases.indexes.create", // "parameterOrder": [ // "parent" // ], // "parameters": { // "parent": { // "description": "The name of the database this index will apply to. For example:\n`projects/{project_id}/databases/{database_id}`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+parent}/indexes", // "request": { // "$ref": "Index" // }, // "response": { // "$ref": "Operation" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.indexes.delete": type ProjectsDatabasesIndexesDeleteCall struct { s *Service name string urlParams_ gensupport.URLParams ctx_ context.Context header_ http.Header } // Delete: Deletes an index. func (r *ProjectsDatabasesIndexesService) Delete(name string) *ProjectsDatabasesIndexesDeleteCall { c := &ProjectsDatabasesIndexesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesIndexesDeleteCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesDeleteCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesIndexesDeleteCall) Context(ctx context.Context) *ProjectsDatabasesIndexesDeleteCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesIndexesDeleteCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesIndexesDeleteCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("DELETE", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.indexes.delete" call. // Exactly one of *Empty or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Empty.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *ProjectsDatabasesIndexesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Empty{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Deletes an index.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", // "httpMethod": "DELETE", // "id": "firestore.projects.databases.indexes.delete", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "The index name. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+name}", // "response": { // "$ref": "Empty" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.indexes.get": type ProjectsDatabasesIndexesGetCall struct { s *Service name string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // Get: Gets an index. func (r *ProjectsDatabasesIndexesService) Get(name string) *ProjectsDatabasesIndexesGetCall { c := &ProjectsDatabasesIndexesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.name = name return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesIndexesGetCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesGetCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ProjectsDatabasesIndexesGetCall) IfNoneMatch(entityTag string) *ProjectsDatabasesIndexesGetCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesIndexesGetCall) Context(ctx context.Context) *ProjectsDatabasesIndexesGetCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesIndexesGetCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesIndexesGetCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+name}") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "name": c.name, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.indexes.get" call. // Exactly one of *Index or error will be non-nil. Any non-2xx status // code is an error. Response headers are in either // *Index.ServerResponse.Header or (if a response was returned at all) // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to // check whether the returned error was because http.StatusNotModified // was returned. func (c *ProjectsDatabasesIndexesGetCall) Do(opts ...googleapi.CallOption) (*Index, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &Index{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Gets an index.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes/{indexesId}", // "httpMethod": "GET", // "id": "firestore.projects.databases.indexes.get", // "parameterOrder": [ // "name" // ], // "parameters": { // "name": { // "description": "The name of the index. For example:\n`projects/{project_id}/databases/{database_id}/indexes/{index_id}`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+/indexes/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+name}", // "response": { // "$ref": "Index" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // method id "firestore.projects.databases.indexes.list": type ProjectsDatabasesIndexesListCall struct { s *Service parent string urlParams_ gensupport.URLParams ifNoneMatch_ string ctx_ context.Context header_ http.Header } // List: Lists the indexes that match the specified filters. func (r *ProjectsDatabasesIndexesService) List(parent string) *ProjectsDatabasesIndexesListCall { c := &ProjectsDatabasesIndexesListCall{s: r.s, urlParams_: make(gensupport.URLParams)} c.parent = parent return c } // Filter sets the optional parameter "filter": func (c *ProjectsDatabasesIndexesListCall) Filter(filter string) *ProjectsDatabasesIndexesListCall { c.urlParams_.Set("filter", filter) return c } // PageSize sets the optional parameter "pageSize": The standard List // page size. func (c *ProjectsDatabasesIndexesListCall) PageSize(pageSize int64) *ProjectsDatabasesIndexesListCall { c.urlParams_.Set("pageSize", fmt.Sprint(pageSize)) return c } // PageToken sets the optional parameter "pageToken": The standard List // page token. func (c *ProjectsDatabasesIndexesListCall) PageToken(pageToken string) *ProjectsDatabasesIndexesListCall { c.urlParams_.Set("pageToken", pageToken) return c } // Fields allows partial responses to be retrieved. See // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse // for more information. func (c *ProjectsDatabasesIndexesListCall) Fields(s ...googleapi.Field) *ProjectsDatabasesIndexesListCall { c.urlParams_.Set("fields", googleapi.CombineFields(s)) return c } // IfNoneMatch sets the optional parameter which makes the operation // fail if the object's ETag matches the given value. This is useful for // getting updates only after the object has changed since the last // request. Use googleapi.IsNotModified to check whether the response // error from Do is the result of In-None-Match. func (c *ProjectsDatabasesIndexesListCall) IfNoneMatch(entityTag string) *ProjectsDatabasesIndexesListCall { c.ifNoneMatch_ = entityTag return c } // Context sets the context to be used in this call's Do method. Any // pending HTTP request will be aborted if the provided context is // canceled. func (c *ProjectsDatabasesIndexesListCall) Context(ctx context.Context) *ProjectsDatabasesIndexesListCall { c.ctx_ = ctx return c } // Header returns an http.Header that can be modified by the caller to // add HTTP headers to the request. func (c *ProjectsDatabasesIndexesListCall) Header() http.Header { if c.header_ == nil { c.header_ = make(http.Header) } return c.header_ } func (c *ProjectsDatabasesIndexesListCall) doRequest(alt string) (*http.Response, error) { reqHeaders := make(http.Header) for k, v := range c.header_ { reqHeaders[k] = v } reqHeaders.Set("User-Agent", c.s.userAgent()) if c.ifNoneMatch_ != "" { reqHeaders.Set("If-None-Match", c.ifNoneMatch_) } var body io.Reader = nil c.urlParams_.Set("alt", alt) urls := googleapi.ResolveRelative(c.s.BasePath, "v1beta1/{+parent}/indexes") urls += "?" + c.urlParams_.Encode() req, _ := http.NewRequest("GET", urls, body) req.Header = reqHeaders googleapi.Expand(req.URL, map[string]string{ "parent": c.parent, }) return gensupport.SendRequest(c.ctx_, c.s.client, req) } // Do executes the "firestore.projects.databases.indexes.list" call. // Exactly one of *ListIndexesResponse or error will be non-nil. Any // non-2xx status code is an error. Response headers are in either // *ListIndexesResponse.ServerResponse.Header or (if a response was // returned at all) in error.(*googleapi.Error).Header. Use // googleapi.IsNotModified to check whether the returned error was // because http.StatusNotModified was returned. func (c *ProjectsDatabasesIndexesListCall) Do(opts ...googleapi.CallOption) (*ListIndexesResponse, error) { gensupport.SetOptions(c.urlParams_, opts...) res, err := c.doRequest("json") if res != nil && res.StatusCode == http.StatusNotModified { if res.Body != nil { res.Body.Close() } return nil, &googleapi.Error{ Code: res.StatusCode, Header: res.Header, } } if err != nil { return nil, err } defer googleapi.CloseBody(res) if err := googleapi.CheckResponse(res); err != nil { return nil, err } ret := &ListIndexesResponse{ ServerResponse: googleapi.ServerResponse{ Header: res.Header, HTTPStatusCode: res.StatusCode, }, } target := &ret if err := gensupport.DecodeResponse(target, res); err != nil { return nil, err } return ret, nil // { // "description": "Lists the indexes that match the specified filters.", // "flatPath": "v1beta1/projects/{projectsId}/databases/{databasesId}/indexes", // "httpMethod": "GET", // "id": "firestore.projects.databases.indexes.list", // "parameterOrder": [ // "parent" // ], // "parameters": { // "filter": { // "location": "query", // "type": "string" // }, // "pageSize": { // "description": "The standard List page size.", // "format": "int32", // "location": "query", // "type": "integer" // }, // "pageToken": { // "description": "The standard List page token.", // "location": "query", // "type": "string" // }, // "parent": { // "description": "The database name. For example:\n`projects/{project_id}/databases/{database_id}`", // "location": "path", // "pattern": "^projects/[^/]+/databases/[^/]+$", // "required": true, // "type": "string" // } // }, // "path": "v1beta1/{+parent}/indexes", // "response": { // "$ref": "ListIndexesResponse" // }, // "scopes": [ // "https://www.googleapis.com/auth/cloud-platform", // "https://www.googleapis.com/auth/datastore" // ] // } } // Pages invokes f for each page of results. // A non-nil error returned from f will halt the iteration. // The provided context supersedes any context provided to the Context method. func (c *ProjectsDatabasesIndexesListCall) Pages(ctx context.Context, f func(*ListIndexesResponse) error) error { c.ctx_ = ctx defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point for { x, err := c.Do() if err != nil { return err } if err := f(x); err != nil { return err } if x.NextPageToken == "" { return nil } c.PageToken(x.NextPageToken) } }