From 3410b407040157a276456eaaa22c2297e302f70e Mon Sep 17 00:00:00 2001
From: Jan Chaloupka <jchaloup@redhat.com>
Date: Sat, 1 Aug 2015 10:42:54 +0200
Subject: [PATCH] change internal to inteernal
---
.../gcloud-golang/compute/metadata/metadata.go | 2 +-
.../cloud/compute/metadata/metadata.go | 2 +-
.../src/google.golang.org/cloud/inteernal/cloud.go | 128 ++
.../cloud/inteernal/datastore/datastore_v1.pb.go | 1633 ++++++++++++++++++++
.../cloud/inteernal/datastore/datastore_v1.proto | 594 +++++++
.../cloud/inteernal/testutil/context.go | 57 +
.../src/google.golang.org/cloud/internal/cloud.go | 128 --
.../cloud/internal/datastore/datastore_v1.pb.go | 1633 --------------------
.../cloud/internal/datastore/datastore_v1.proto | 594 -------
.../cloud/internal/testutil/context.go | 57 -
10 files changed, 2414 insertions(+), 2414 deletions(-)
create mode 100644 Godeps/_workspace/src/google.golang.org/cloud/inteernal/cloud.go
create mode 100644 Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.pb.go
create mode 100644 Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.proto
create mode 100644 Godeps/_workspace/src/google.golang.org/cloud/inteernal/testutil/context.go
delete mode 100644 Godeps/_workspace/src/google.golang.org/cloud/internal/cloud.go
delete mode 100644 Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.pb.go
delete mode 100644 Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.proto
delete mode 100644 Godeps/_workspace/src/google.golang.org/cloud/internal/testutil/context.go
diff --git a/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go b/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go
index b007cde..c92267f 100644
--- a/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go
+++ b/Godeps/_workspace/src/github.com/GoogleCloudPlatform/gcloud-golang/compute/metadata/metadata.go
@@ -30,7 +30,7 @@ import (
"sync"
"time"
- "google.golang.org/cloud/internal"
+ "google.golang.org/cloud/inteernal"
)
type cachedValue struct {
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/compute/metadata/metadata.go b/Godeps/_workspace/src/google.golang.org/cloud/compute/metadata/metadata.go
index 7753a05..6102500 100644
--- a/Godeps/_workspace/src/google.golang.org/cloud/compute/metadata/metadata.go
+++ b/Godeps/_workspace/src/google.golang.org/cloud/compute/metadata/metadata.go
@@ -29,7 +29,7 @@ import (
"sync"
"time"
- "google.golang.org/cloud/internal"
+ "google.golang.org/cloud/inteernal"
)
type cachedValue struct {
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/inteernal/cloud.go b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/cloud.go
new file mode 100644
index 0000000..984323c
--- /dev/null
+++ b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/cloud.go
@@ -0,0 +1,128 @@
+// Copyright 2014 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package internal provides support for the cloud packages.
+//
+// Users should not import this package directly.
+package internal
+
+import (
+ "fmt"
+ "net/http"
+ "sync"
+
+ "golang.org/x/net/context"
+)
+
+type contextKey struct{}
+
+func WithContext(parent context.Context, projID string, c *http.Client) context.Context {
+ if c == nil {
+ panic("nil *http.Client passed to WithContext")
+ }
+ if projID == "" {
+ panic("empty project ID passed to WithContext")
+ }
+ return context.WithValue(parent, contextKey{}, &cloudContext{
+ ProjectID: projID,
+ HTTPClient: c,
+ })
+}
+
+const userAgent = "gcloud-golang/0.1"
+
+type cloudContext struct {
+ ProjectID string
+ HTTPClient *http.Client
+
+ mu sync.Mutex // guards svc
+ svc map[string]interface{} // e.g. "storage" => *rawStorage.Service
+}
+
+// Service returns the result of the fill function if it's never been
+// called before for the given name (which is assumed to be an API
+// service name, like "datastore"). If it has already been cached, the fill
+// func is not run.
+// It's safe for concurrent use by multiple goroutines.
+func Service(ctx context.Context, name string, fill func(*http.Client) interface{}) interface{} {
+ return cc(ctx).service(name, fill)
+}
+
+func (c *cloudContext) service(name string, fill func(*http.Client) interface{}) interface{} {
+ c.mu.Lock()
+ defer c.mu.Unlock()
+
+ if c.svc == nil {
+ c.svc = make(map[string]interface{})
+ } else if v, ok := c.svc[name]; ok {
+ return v
+ }
+ v := fill(c.HTTPClient)
+ c.svc[name] = v
+ return v
+}
+
+// Transport is an http.RoundTripper that appends
+// Google Cloud client's user-agent to the original
+// request's user-agent header.
+type Transport struct {
+ // Base represents the actual http.RoundTripper
+ // the requests will be delegated to.
+ Base http.RoundTripper
+}
+
+// RoundTrip appends a user-agent to the existing user-agent
+// header and delegates the request to the base http.RoundTripper.
+func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
+ req = cloneRequest(req)
+ ua := req.Header.Get("User-Agent")
+ if ua == "" {
+ ua = userAgent
+ } else {
+ ua = fmt.Sprintf("%s;%s", ua, userAgent)
+ }
+ req.Header.Set("User-Agent", ua)
+ return t.Base.RoundTrip(req)
+}
+
+// cloneRequest returns a clone of the provided *http.Request.
+// The clone is a shallow copy of the struct and its Header map.
+func cloneRequest(r *http.Request) *http.Request {
+ // shallow copy of the struct
+ r2 := new(http.Request)
+ *r2 = *r
+ // deep copy of the Header
+ r2.Header = make(http.Header)
+ for k, s := range r.Header {
+ r2.Header[k] = s
+ }
+ return r2
+}
+
+func ProjID(ctx context.Context) string {
+ return cc(ctx).ProjectID
+}
+
+func HTTPClient(ctx context.Context) *http.Client {
+ return cc(ctx).HTTPClient
+}
+
+// cc returns the internal *cloudContext (cc) state for a context.Context.
+// It panics if the user did it wrong.
+func cc(ctx context.Context) *cloudContext {
+ if c, ok := ctx.Value(contextKey{}).(*cloudContext); ok {
+ return c
+ }
+ panic("invalid context.Context type; it should be created with cloud.NewContext")
+}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.pb.go b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.pb.go
new file mode 100644
index 0000000..be903e5
--- /dev/null
+++ b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.pb.go
@@ -0,0 +1,1633 @@
+// Code generated by protoc-gen-go.
+// source: datastore_v1.proto
+// DO NOT EDIT!
+
+/*
+Package pb is a generated protocol buffer package.
+
+It is generated from these files:
+ datastore_v1.proto
+
+It has these top-level messages:
+ PartitionId
+ Key
+ Value
+ Property
+ Entity
+ EntityResult
+ Query
+ KindExpression
+ PropertyReference
+ PropertyExpression
+ PropertyOrder
+ Filter
+ CompositeFilter
+ PropertyFilter
+ GqlQuery
+ GqlQueryArg
+ QueryResultBatch
+ Mutation
+ MutationResult
+ ReadOptions
+ LookupRequest
+ LookupResponse
+ RunQueryRequest
+ RunQueryResponse
+ BeginTransactionRequest
+ BeginTransactionResponse
+ RollbackRequest
+ RollbackResponse
+ CommitRequest
+ CommitResponse
+ AllocateIdsRequest
+ AllocateIdsResponse
+*/
+package pb
+
+import proto "github.com/golang/protobuf/proto"
+import math "math"
+
+// Reference imports to suppress errors if they are not otherwise used.
+var _ = proto.Marshal
+var _ = math.Inf
+
+// Specifies what data the 'entity' field contains.
+// A ResultType is either implied (for example, in LookupResponse.found it
+// is always FULL) or specified by context (for example, in message
+// QueryResultBatch, field 'entity_result_type' specifies a ResultType
+// for all the values in field 'entity_result').
+type EntityResult_ResultType int32
+
+const (
+ EntityResult_FULL EntityResult_ResultType = 1
+ EntityResult_PROJECTION EntityResult_ResultType = 2
+ // The entity may have no key.
+ // A property value may have meaning 18.
+ EntityResult_KEY_ONLY EntityResult_ResultType = 3
+)
+
+var EntityResult_ResultType_name = map[int32]string{
+ 1: "FULL",
+ 2: "PROJECTION",
+ 3: "KEY_ONLY",
+}
+var EntityResult_ResultType_value = map[string]int32{
+ "FULL": 1,
+ "PROJECTION": 2,
+ "KEY_ONLY": 3,
+}
+
+func (x EntityResult_ResultType) Enum() *EntityResult_ResultType {
+ p := new(EntityResult_ResultType)
+ *p = x
+ return p
+}
+func (x EntityResult_ResultType) String() string {
+ return proto.EnumName(EntityResult_ResultType_name, int32(x))
+}
+func (x *EntityResult_ResultType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(EntityResult_ResultType_value, data, "EntityResult_ResultType")
+ if err != nil {
+ return err
+ }
+ *x = EntityResult_ResultType(value)
+ return nil
+}
+
+type PropertyExpression_AggregationFunction int32
+
+const (
+ PropertyExpression_FIRST PropertyExpression_AggregationFunction = 1
+)
+
+var PropertyExpression_AggregationFunction_name = map[int32]string{
+ 1: "FIRST",
+}
+var PropertyExpression_AggregationFunction_value = map[string]int32{
+ "FIRST": 1,
+}
+
+func (x PropertyExpression_AggregationFunction) Enum() *PropertyExpression_AggregationFunction {
+ p := new(PropertyExpression_AggregationFunction)
+ *p = x
+ return p
+}
+func (x PropertyExpression_AggregationFunction) String() string {
+ return proto.EnumName(PropertyExpression_AggregationFunction_name, int32(x))
+}
+func (x *PropertyExpression_AggregationFunction) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(PropertyExpression_AggregationFunction_value, data, "PropertyExpression_AggregationFunction")
+ if err != nil {
+ return err
+ }
+ *x = PropertyExpression_AggregationFunction(value)
+ return nil
+}
+
+type PropertyOrder_Direction int32
+
+const (
+ PropertyOrder_ASCENDING PropertyOrder_Direction = 1
+ PropertyOrder_DESCENDING PropertyOrder_Direction = 2
+)
+
+var PropertyOrder_Direction_name = map[int32]string{
+ 1: "ASCENDING",
+ 2: "DESCENDING",
+}
+var PropertyOrder_Direction_value = map[string]int32{
+ "ASCENDING": 1,
+ "DESCENDING": 2,
+}
+
+func (x PropertyOrder_Direction) Enum() *PropertyOrder_Direction {
+ p := new(PropertyOrder_Direction)
+ *p = x
+ return p
+}
+func (x PropertyOrder_Direction) String() string {
+ return proto.EnumName(PropertyOrder_Direction_name, int32(x))
+}
+func (x *PropertyOrder_Direction) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(PropertyOrder_Direction_value, data, "PropertyOrder_Direction")
+ if err != nil {
+ return err
+ }
+ *x = PropertyOrder_Direction(value)
+ return nil
+}
+
+type CompositeFilter_Operator int32
+
+const (
+ CompositeFilter_AND CompositeFilter_Operator = 1
+)
+
+var CompositeFilter_Operator_name = map[int32]string{
+ 1: "AND",
+}
+var CompositeFilter_Operator_value = map[string]int32{
+ "AND": 1,
+}
+
+func (x CompositeFilter_Operator) Enum() *CompositeFilter_Operator {
+ p := new(CompositeFilter_Operator)
+ *p = x
+ return p
+}
+func (x CompositeFilter_Operator) String() string {
+ return proto.EnumName(CompositeFilter_Operator_name, int32(x))
+}
+func (x *CompositeFilter_Operator) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CompositeFilter_Operator_value, data, "CompositeFilter_Operator")
+ if err != nil {
+ return err
+ }
+ *x = CompositeFilter_Operator(value)
+ return nil
+}
+
+type PropertyFilter_Operator int32
+
+const (
+ PropertyFilter_LESS_THAN PropertyFilter_Operator = 1
+ PropertyFilter_LESS_THAN_OR_EQUAL PropertyFilter_Operator = 2
+ PropertyFilter_GREATER_THAN PropertyFilter_Operator = 3
+ PropertyFilter_GREATER_THAN_OR_EQUAL PropertyFilter_Operator = 4
+ PropertyFilter_EQUAL PropertyFilter_Operator = 5
+ PropertyFilter_HAS_ANCESTOR PropertyFilter_Operator = 11
+)
+
+var PropertyFilter_Operator_name = map[int32]string{
+ 1: "LESS_THAN",
+ 2: "LESS_THAN_OR_EQUAL",
+ 3: "GREATER_THAN",
+ 4: "GREATER_THAN_OR_EQUAL",
+ 5: "EQUAL",
+ 11: "HAS_ANCESTOR",
+}
+var PropertyFilter_Operator_value = map[string]int32{
+ "LESS_THAN": 1,
+ "LESS_THAN_OR_EQUAL": 2,
+ "GREATER_THAN": 3,
+ "GREATER_THAN_OR_EQUAL": 4,
+ "EQUAL": 5,
+ "HAS_ANCESTOR": 11,
+}
+
+func (x PropertyFilter_Operator) Enum() *PropertyFilter_Operator {
+ p := new(PropertyFilter_Operator)
+ *p = x
+ return p
+}
+func (x PropertyFilter_Operator) String() string {
+ return proto.EnumName(PropertyFilter_Operator_name, int32(x))
+}
+func (x *PropertyFilter_Operator) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(PropertyFilter_Operator_value, data, "PropertyFilter_Operator")
+ if err != nil {
+ return err
+ }
+ *x = PropertyFilter_Operator(value)
+ return nil
+}
+
+// The possible values for the 'more_results' field.
+type QueryResultBatch_MoreResultsType int32
+
+const (
+ QueryResultBatch_NOT_FINISHED QueryResultBatch_MoreResultsType = 1
+ QueryResultBatch_MORE_RESULTS_AFTER_LIMIT QueryResultBatch_MoreResultsType = 2
+ // results after the limit.
+ QueryResultBatch_NO_MORE_RESULTS QueryResultBatch_MoreResultsType = 3
+)
+
+var QueryResultBatch_MoreResultsType_name = map[int32]string{
+ 1: "NOT_FINISHED",
+ 2: "MORE_RESULTS_AFTER_LIMIT",
+ 3: "NO_MORE_RESULTS",
+}
+var QueryResultBatch_MoreResultsType_value = map[string]int32{
+ "NOT_FINISHED": 1,
+ "MORE_RESULTS_AFTER_LIMIT": 2,
+ "NO_MORE_RESULTS": 3,
+}
+
+func (x QueryResultBatch_MoreResultsType) Enum() *QueryResultBatch_MoreResultsType {
+ p := new(QueryResultBatch_MoreResultsType)
+ *p = x
+ return p
+}
+func (x QueryResultBatch_MoreResultsType) String() string {
+ return proto.EnumName(QueryResultBatch_MoreResultsType_name, int32(x))
+}
+func (x *QueryResultBatch_MoreResultsType) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(QueryResultBatch_MoreResultsType_value, data, "QueryResultBatch_MoreResultsType")
+ if err != nil {
+ return err
+ }
+ *x = QueryResultBatch_MoreResultsType(value)
+ return nil
+}
+
+type ReadOptions_ReadConsistency int32
+
+const (
+ ReadOptions_DEFAULT ReadOptions_ReadConsistency = 0
+ ReadOptions_STRONG ReadOptions_ReadConsistency = 1
+ ReadOptions_EVENTUAL ReadOptions_ReadConsistency = 2
+)
+
+var ReadOptions_ReadConsistency_name = map[int32]string{
+ 0: "DEFAULT",
+ 1: "STRONG",
+ 2: "EVENTUAL",
+}
+var ReadOptions_ReadConsistency_value = map[string]int32{
+ "DEFAULT": 0,
+ "STRONG": 1,
+ "EVENTUAL": 2,
+}
+
+func (x ReadOptions_ReadConsistency) Enum() *ReadOptions_ReadConsistency {
+ p := new(ReadOptions_ReadConsistency)
+ *p = x
+ return p
+}
+func (x ReadOptions_ReadConsistency) String() string {
+ return proto.EnumName(ReadOptions_ReadConsistency_name, int32(x))
+}
+func (x *ReadOptions_ReadConsistency) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(ReadOptions_ReadConsistency_value, data, "ReadOptions_ReadConsistency")
+ if err != nil {
+ return err
+ }
+ *x = ReadOptions_ReadConsistency(value)
+ return nil
+}
+
+type BeginTransactionRequest_IsolationLevel int32
+
+const (
+ BeginTransactionRequest_SNAPSHOT BeginTransactionRequest_IsolationLevel = 0
+ // conflict if their mutations conflict. For example:
+ // Read(A),Write(B) may not conflict with Read(B),Write(A),
+ // but Read(B),Write(B) does conflict with Read(B),Write(B).
+ BeginTransactionRequest_SERIALIZABLE BeginTransactionRequest_IsolationLevel = 1
+)
+
+var BeginTransactionRequest_IsolationLevel_name = map[int32]string{
+ 0: "SNAPSHOT",
+ 1: "SERIALIZABLE",
+}
+var BeginTransactionRequest_IsolationLevel_value = map[string]int32{
+ "SNAPSHOT": 0,
+ "SERIALIZABLE": 1,
+}
+
+func (x BeginTransactionRequest_IsolationLevel) Enum() *BeginTransactionRequest_IsolationLevel {
+ p := new(BeginTransactionRequest_IsolationLevel)
+ *p = x
+ return p
+}
+func (x BeginTransactionRequest_IsolationLevel) String() string {
+ return proto.EnumName(BeginTransactionRequest_IsolationLevel_name, int32(x))
+}
+func (x *BeginTransactionRequest_IsolationLevel) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(BeginTransactionRequest_IsolationLevel_value, data, "BeginTransactionRequest_IsolationLevel")
+ if err != nil {
+ return err
+ }
+ *x = BeginTransactionRequest_IsolationLevel(value)
+ return nil
+}
+
+type CommitRequest_Mode int32
+
+const (
+ CommitRequest_TRANSACTIONAL CommitRequest_Mode = 1
+ CommitRequest_NON_TRANSACTIONAL CommitRequest_Mode = 2
+)
+
+var CommitRequest_Mode_name = map[int32]string{
+ 1: "TRANSACTIONAL",
+ 2: "NON_TRANSACTIONAL",
+}
+var CommitRequest_Mode_value = map[string]int32{
+ "TRANSACTIONAL": 1,
+ "NON_TRANSACTIONAL": 2,
+}
+
+func (x CommitRequest_Mode) Enum() *CommitRequest_Mode {
+ p := new(CommitRequest_Mode)
+ *p = x
+ return p
+}
+func (x CommitRequest_Mode) String() string {
+ return proto.EnumName(CommitRequest_Mode_name, int32(x))
+}
+func (x *CommitRequest_Mode) UnmarshalJSON(data []byte) error {
+ value, err := proto.UnmarshalJSONEnum(CommitRequest_Mode_value, data, "CommitRequest_Mode")
+ if err != nil {
+ return err
+ }
+ *x = CommitRequest_Mode(value)
+ return nil
+}
+
+// An identifier for a particular subset of entities.
+//
+// Entities are partitioned into various subsets, each used by different
+// datasets and different namespaces within a dataset and so forth.
+//
+// All input partition IDs are normalized before use.
+// A partition ID is normalized as follows:
+// If the partition ID is unset or is set to an empty partition ID, replace it
+// with the context partition ID.
+// Otherwise, if the partition ID has no dataset ID, assign it the context
+// partition ID's dataset ID.
+// Unless otherwise documented, the context partition ID has the dataset ID set
+// to the context dataset ID and no other partition dimension set.
+//
+// A partition ID is empty if all of its fields are unset.
+//
+// Partition dimension:
+// A dimension may be unset.
+// A dimension's value must never be "".
+// A dimension's value must match [A-Za-z\d\.\-_]{1,100}
+// If the value of any dimension matches regex "__.*__",
+// the partition is reserved/read-only.
+// A reserved/read-only partition ID is forbidden in certain documented contexts.
+//
+// Dataset ID:
+// A dataset id's value must never be "".
+// A dataset id's value must match
+// ([a-z\d\-]{1,100}~)?([a-z\d][a-z\d\-\.]{0,99}:)?([a-z\d][a-z\d\-]{0,99}
+type PartitionId struct {
+ // The dataset ID.
+ DatasetId *string `protobuf:"bytes,3,opt,name=dataset_id" json:"dataset_id,omitempty"`
+ // The namespace.
+ Namespace *string `protobuf:"bytes,4,opt,name=namespace" json:"namespace,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *PartitionId) Reset() { *m = PartitionId{} }
+func (m *PartitionId) String() string { return proto.CompactTextString(m) }
+func (*PartitionId) ProtoMessage() {}
+
+func (m *PartitionId) GetDatasetId() string {
+ if m != nil && m.DatasetId != nil {
+ return *m.DatasetId
+ }
+ return ""
+}
+
+func (m *PartitionId) GetNamespace() string {
+ if m != nil && m.Namespace != nil {
+ return *m.Namespace
+ }
+ return ""
+}
+
+// A unique identifier for an entity.
+// If a key's partition id or any of its path kinds or names are
+// reserved/read-only, the key is reserved/read-only.
+// A reserved/read-only key is forbidden in certain documented contexts.
+type Key struct {
+ // Entities are partitioned into subsets, currently identified by a dataset
+ // (usually implicitly specified by the project) and namespace ID.
+ // Queries are scoped to a single partition.
+ PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id" json:"partition_id,omitempty"`
+ // The entity path.
+ // An entity path consists of one or more elements composed of a kind and a
+ // string or numerical identifier, which identify entities. The first
+ // element identifies a <em>root entity</em>, the second element identifies
+ // a <em>child</em> of the root entity, the third element a child of the
+ // second entity, and so forth. The entities identified by all prefixes of
+ // the path are called the element's <em>ancestors</em>.
+ // An entity path is always fully complete: ALL of the entity's ancestors
+ // are required to be in the path along with the entity identifier itself.
+ // The only exception is that in some documented cases, the identifier in the
+ // last path element (for the entity) itself may be omitted. A path can never
+ // be empty.
+ PathElement []*Key_PathElement `protobuf:"bytes,2,rep,name=path_element" json:"path_element,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Key) Reset() { *m = Key{} }
+func (m *Key) String() string { return proto.CompactTextString(m) }
+func (*Key) ProtoMessage() {}
+
+func (m *Key) GetPartitionId() *PartitionId {
+ if m != nil {
+ return m.PartitionId
+ }
+ return nil
+}
+
+func (m *Key) GetPathElement() []*Key_PathElement {
+ if m != nil {
+ return m.PathElement
+ }
+ return nil
+}
+
+// A (kind, ID/name) pair used to construct a key path.
+//
+// At most one of name or ID may be set.
+// If either is set, the element is complete.
+// If neither is set, the element is incomplete.
+type Key_PathElement struct {
+ // The kind of the entity.
+ // A kind matching regex "__.*__" is reserved/read-only.
+ // A kind must not contain more than 500 characters.
+ // Cannot be "".
+ Kind *string `protobuf:"bytes,1,req,name=kind" json:"kind,omitempty"`
+ // The ID of the entity.
+ // Never equal to zero. Values less than zero are discouraged and will not
+ // be supported in the future.
+ Id *int64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"`
+ // The name of the entity.
+ // A name matching regex "__.*__" is reserved/read-only.
+ // A name must not be more than 500 characters.
+ // Cannot be "".
+ Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Key_PathElement) Reset() { *m = Key_PathElement{} }
+func (m *Key_PathElement) String() string { return proto.CompactTextString(m) }
+func (*Key_PathElement) ProtoMessage() {}
+
+func (m *Key_PathElement) GetKind() string {
+ if m != nil && m.Kind != nil {
+ return *m.Kind
+ }
+ return ""
+}
+
+func (m *Key_PathElement) GetId() int64 {
+ if m != nil && m.Id != nil {
+ return *m.Id
+ }
+ return 0
+}
+
+func (m *Key_PathElement) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+// A message that can hold any of the supported value types and associated
+// metadata.
+//
+// At most one of the <type>Value fields may be set.
+// If none are set the value is "null".
+//
+type Value struct {
+ // A boolean value.
+ BooleanValue *bool `protobuf:"varint,1,opt,name=boolean_value" json:"boolean_value,omitempty"`
+ // An integer value.
+ IntegerValue *int64 `protobuf:"varint,2,opt,name=integer_value" json:"integer_value,omitempty"`
+ // A double value.
+ DoubleValue *float64 `protobuf:"fixed64,3,opt,name=double_value" json:"double_value,omitempty"`
+ // A timestamp value.
+ TimestampMicrosecondsValue *int64 `protobuf:"varint,4,opt,name=timestamp_microseconds_value" json:"timestamp_microseconds_value,omitempty"`
+ // A key value.
+ KeyValue *Key `protobuf:"bytes,5,opt,name=key_value" json:"key_value,omitempty"`
+ // A blob key value.
+ BlobKeyValue *string `protobuf:"bytes,16,opt,name=blob_key_value" json:"blob_key_value,omitempty"`
+ // A UTF-8 encoded string value.
+ StringValue *string `protobuf:"bytes,17,opt,name=string_value" json:"string_value,omitempty"`
+ // A blob value.
+ BlobValue []byte `protobuf:"bytes,18,opt,name=blob_value" json:"blob_value,omitempty"`
+ // An entity value.
+ // May have no key.
+ // May have a key with an incomplete key path.
+ // May have a reserved/read-only key.
+ EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value" json:"entity_value,omitempty"`
+ // A list value.
+ // Cannot contain another list value.
+ // Cannot also have a meaning and indexing set.
+ ListValue []*Value `protobuf:"bytes,7,rep,name=list_value" json:"list_value,omitempty"`
+ // The <code>meaning</code> field is reserved and should not be used.
+ Meaning *int32 `protobuf:"varint,14,opt,name=meaning" json:"meaning,omitempty"`
+ // If the value should be indexed.
+ //
+ // The <code>indexed</code> property may be set for a
+ // <code>null</code> value.
+ // When <code>indexed</code> is <code>true</code>, <code>stringValue</code>
+ // is limited to 500 characters and the blob value is limited to 500 bytes.
+ // Exception: If meaning is set to 2, string_value is limited to 2038
+ // characters regardless of indexed.
+ // When indexed is true, meaning 15 and 22 are not allowed, and meaning 16
+ // will be ignored on input (and will never be set on output).
+ // Input values by default have <code>indexed</code> set to
+ // <code>true</code>; however, you can explicitly set <code>indexed</code> to
+ // <code>true</code> if you want. (An output value never has
+ // <code>indexed</code> explicitly set to <code>true</code>.) If a value is
+ // itself an entity, it cannot have <code>indexed</code> set to
+ // <code>true</code>.
+ // Exception: An entity value with meaning 9, 20 or 21 may be indexed.
+ Indexed *bool `protobuf:"varint,15,opt,name=indexed,def=1" json:"indexed,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Value) Reset() { *m = Value{} }
+func (m *Value) String() string { return proto.CompactTextString(m) }
+func (*Value) ProtoMessage() {}
+
+const Default_Value_Indexed bool = true
+
+func (m *Value) GetBooleanValue() bool {
+ if m != nil && m.BooleanValue != nil {
+ return *m.BooleanValue
+ }
+ return false
+}
+
+func (m *Value) GetIntegerValue() int64 {
+ if m != nil && m.IntegerValue != nil {
+ return *m.IntegerValue
+ }
+ return 0
+}
+
+func (m *Value) GetDoubleValue() float64 {
+ if m != nil && m.DoubleValue != nil {
+ return *m.DoubleValue
+ }
+ return 0
+}
+
+func (m *Value) GetTimestampMicrosecondsValue() int64 {
+ if m != nil && m.TimestampMicrosecondsValue != nil {
+ return *m.TimestampMicrosecondsValue
+ }
+ return 0
+}
+
+func (m *Value) GetKeyValue() *Key {
+ if m != nil {
+ return m.KeyValue
+ }
+ return nil
+}
+
+func (m *Value) GetBlobKeyValue() string {
+ if m != nil && m.BlobKeyValue != nil {
+ return *m.BlobKeyValue
+ }
+ return ""
+}
+
+func (m *Value) GetStringValue() string {
+ if m != nil && m.StringValue != nil {
+ return *m.StringValue
+ }
+ return ""
+}
+
+func (m *Value) GetBlobValue() []byte {
+ if m != nil {
+ return m.BlobValue
+ }
+ return nil
+}
+
+func (m *Value) GetEntityValue() *Entity {
+ if m != nil {
+ return m.EntityValue
+ }
+ return nil
+}
+
+func (m *Value) GetListValue() []*Value {
+ if m != nil {
+ return m.ListValue
+ }
+ return nil
+}
+
+func (m *Value) GetMeaning() int32 {
+ if m != nil && m.Meaning != nil {
+ return *m.Meaning
+ }
+ return 0
+}
+
+func (m *Value) GetIndexed() bool {
+ if m != nil && m.Indexed != nil {
+ return *m.Indexed
+ }
+ return Default_Value_Indexed
+}
+
+// An entity property.
+type Property struct {
+ // The name of the property.
+ // A property name matching regex "__.*__" is reserved.
+ // A reserved property name is forbidden in certain documented contexts.
+ // The name must not contain more than 500 characters.
+ // Cannot be "".
+ Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
+ // The value(s) of the property.
+ // Each value can have only one value property populated. For example,
+ // you cannot have a values list of <code>{ value: { integerValue: 22,
+ // stringValue: "a" } }</code>, but you can have <code>{ value: { listValue:
+ // [ { integerValue: 22 }, { stringValue: "a" } ] }</code>.
+ Value *Value `protobuf:"bytes,4,req,name=value" json:"value,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Property) Reset() { *m = Property{} }
+func (m *Property) String() string { return proto.CompactTextString(m) }
+func (*Property) ProtoMessage() {}
+
+func (m *Property) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+func (m *Property) GetValue() *Value {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// An entity.
+//
+// An entity is limited to 1 megabyte when stored. That <em>roughly</em>
+// corresponds to a limit of 1 megabyte for the serialized form of this
+// message.
+type Entity struct {
+ // The entity's key.
+ //
+ // An entity must have a key, unless otherwise documented (for example,
+ // an entity in <code>Value.entityValue</code> may have no key).
+ // An entity's kind is its key's path's last element's kind,
+ // or null if it has no key.
+ Key *Key `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+ // The entity's properties.
+ // Each property's name must be unique for its entity.
+ Property []*Property `protobuf:"bytes,2,rep,name=property" json:"property,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Entity) Reset() { *m = Entity{} }
+func (m *Entity) String() string { return proto.CompactTextString(m) }
+func (*Entity) ProtoMessage() {}
+
+func (m *Entity) GetKey() *Key {
+ if m != nil {
+ return m.Key
+ }
+ return nil
+}
+
+func (m *Entity) GetProperty() []*Property {
+ if m != nil {
+ return m.Property
+ }
+ return nil
+}
+
+// The result of fetching an entity from the datastore.
+type EntityResult struct {
+ // The resulting entity.
+ Entity *Entity `protobuf:"bytes,1,req,name=entity" json:"entity,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *EntityResult) Reset() { *m = EntityResult{} }
+func (m *EntityResult) String() string { return proto.CompactTextString(m) }
+func (*EntityResult) ProtoMessage() {}
+
+func (m *EntityResult) GetEntity() *Entity {
+ if m != nil {
+ return m.Entity
+ }
+ return nil
+}
+
+// A query.
+type Query struct {
+ // The projection to return. If not set the entire entity is returned.
+ Projection []*PropertyExpression `protobuf:"bytes,2,rep,name=projection" json:"projection,omitempty"`
+ // The kinds to query (if empty, returns entities from all kinds).
+ Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind" json:"kind,omitempty"`
+ // The filter to apply (optional).
+ Filter *Filter `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
+ // The order to apply to the query results (if empty, order is unspecified).
+ Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order" json:"order,omitempty"`
+ // The properties to group by (if empty, no grouping is applied to the
+ // result set).
+ GroupBy []*PropertyReference `protobuf:"bytes,6,rep,name=group_by" json:"group_by,omitempty"`
+ // A starting point for the query results. Optional. Query cursors are
+ // returned in query result batches.
+ StartCursor []byte `protobuf:"bytes,7,opt,name=start_cursor" json:"start_cursor,omitempty"`
+ // An ending point for the query results. Optional. Query cursors are
+ // returned in query result batches.
+ EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor" json:"end_cursor,omitempty"`
+ // The number of results to skip. Applies before limit, but after all other
+ // constraints (optional, defaults to 0).
+ Offset *int32 `protobuf:"varint,10,opt,name=offset,def=0" json:"offset,omitempty"`
+ // The maximum number of results to return. Applies after all other
+ // constraints. Optional.
+ Limit *int32 `protobuf:"varint,11,opt,name=limit" json:"limit,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Query) Reset() { *m = Query{} }
+func (m *Query) String() string { return proto.CompactTextString(m) }
+func (*Query) ProtoMessage() {}
+
+const Default_Query_Offset int32 = 0
+
+func (m *Query) GetProjection() []*PropertyExpression {
+ if m != nil {
+ return m.Projection
+ }
+ return nil
+}
+
+func (m *Query) GetKind() []*KindExpression {
+ if m != nil {
+ return m.Kind
+ }
+ return nil
+}
+
+func (m *Query) GetFilter() *Filter {
+ if m != nil {
+ return m.Filter
+ }
+ return nil
+}
+
+func (m *Query) GetOrder() []*PropertyOrder {
+ if m != nil {
+ return m.Order
+ }
+ return nil
+}
+
+func (m *Query) GetGroupBy() []*PropertyReference {
+ if m != nil {
+ return m.GroupBy
+ }
+ return nil
+}
+
+func (m *Query) GetStartCursor() []byte {
+ if m != nil {
+ return m.StartCursor
+ }
+ return nil
+}
+
+func (m *Query) GetEndCursor() []byte {
+ if m != nil {
+ return m.EndCursor
+ }
+ return nil
+}
+
+func (m *Query) GetOffset() int32 {
+ if m != nil && m.Offset != nil {
+ return *m.Offset
+ }
+ return Default_Query_Offset
+}
+
+func (m *Query) GetLimit() int32 {
+ if m != nil && m.Limit != nil {
+ return *m.Limit
+ }
+ return 0
+}
+
+// A representation of a kind.
+type KindExpression struct {
+ // The name of the kind.
+ Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *KindExpression) Reset() { *m = KindExpression{} }
+func (m *KindExpression) String() string { return proto.CompactTextString(m) }
+func (*KindExpression) ProtoMessage() {}
+
+func (m *KindExpression) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+// A reference to a property relative to the kind expressions.
+// exactly.
+type PropertyReference struct {
+ // The name of the property.
+ Name *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *PropertyReference) Reset() { *m = PropertyReference{} }
+func (m *PropertyReference) String() string { return proto.CompactTextString(m) }
+func (*PropertyReference) ProtoMessage() {}
+
+func (m *PropertyReference) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+// A representation of a property in a projection.
+type PropertyExpression struct {
+ // The property to project.
+ Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
+ // The aggregation function to apply to the property. Optional.
+ // Can only be used when grouping by at least one property. Must
+ // then be set on all properties in the projection that are not
+ // being grouped by.
+ AggregationFunction *PropertyExpression_AggregationFunction `protobuf:"varint,2,opt,name=aggregation_function,enum=pb.PropertyExpression_AggregationFunction" json:"aggregation_function,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *PropertyExpression) Reset() { *m = PropertyExpression{} }
+func (m *PropertyExpression) String() string { return proto.CompactTextString(m) }
+func (*PropertyExpression) ProtoMessage() {}
+
+func (m *PropertyExpression) GetProperty() *PropertyReference {
+ if m != nil {
+ return m.Property
+ }
+ return nil
+}
+
+func (m *PropertyExpression) GetAggregationFunction() PropertyExpression_AggregationFunction {
+ if m != nil && m.AggregationFunction != nil {
+ return *m.AggregationFunction
+ }
+ return PropertyExpression_FIRST
+}
+
+// The desired order for a specific property.
+type PropertyOrder struct {
+ // The property to order by.
+ Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
+ // The direction to order by.
+ Direction *PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,enum=pb.PropertyOrder_Direction,def=1" json:"direction,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *PropertyOrder) Reset() { *m = PropertyOrder{} }
+func (m *PropertyOrder) String() string { return proto.CompactTextString(m) }
+func (*PropertyOrder) ProtoMessage() {}
+
+const Default_PropertyOrder_Direction PropertyOrder_Direction = PropertyOrder_ASCENDING
+
+func (m *PropertyOrder) GetProperty() *PropertyReference {
+ if m != nil {
+ return m.Property
+ }
+ return nil
+}
+
+func (m *PropertyOrder) GetDirection() PropertyOrder_Direction {
+ if m != nil && m.Direction != nil {
+ return *m.Direction
+ }
+ return Default_PropertyOrder_Direction
+}
+
+// A holder for any type of filter. Exactly one field should be specified.
+type Filter struct {
+ // A composite filter.
+ CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter" json:"composite_filter,omitempty"`
+ // A filter on a property.
+ PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter" json:"property_filter,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Filter) Reset() { *m = Filter{} }
+func (m *Filter) String() string { return proto.CompactTextString(m) }
+func (*Filter) ProtoMessage() {}
+
+func (m *Filter) GetCompositeFilter() *CompositeFilter {
+ if m != nil {
+ return m.CompositeFilter
+ }
+ return nil
+}
+
+func (m *Filter) GetPropertyFilter() *PropertyFilter {
+ if m != nil {
+ return m.PropertyFilter
+ }
+ return nil
+}
+
+// A filter that merges the multiple other filters using the given operation.
+type CompositeFilter struct {
+ // The operator for combining multiple filters.
+ Operator *CompositeFilter_Operator `protobuf:"varint,1,req,name=operator,enum=pb.CompositeFilter_Operator" json:"operator,omitempty"`
+ // The list of filters to combine.
+ // Must contain at least one filter.
+ Filter []*Filter `protobuf:"bytes,2,rep,name=filter" json:"filter,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CompositeFilter) Reset() { *m = CompositeFilter{} }
+func (m *CompositeFilter) String() string { return proto.CompactTextString(m) }
+func (*CompositeFilter) ProtoMessage() {}
+
+func (m *CompositeFilter) GetOperator() CompositeFilter_Operator {
+ if m != nil && m.Operator != nil {
+ return *m.Operator
+ }
+ return CompositeFilter_AND
+}
+
+func (m *CompositeFilter) GetFilter() []*Filter {
+ if m != nil {
+ return m.Filter
+ }
+ return nil
+}
+
+// A filter on a specific property.
+type PropertyFilter struct {
+ // The property to filter by.
+ Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
+ // The operator to filter by.
+ Operator *PropertyFilter_Operator `protobuf:"varint,2,req,name=operator,enum=pb.PropertyFilter_Operator" json:"operator,omitempty"`
+ // The value to compare the property to.
+ Value *Value `protobuf:"bytes,3,req,name=value" json:"value,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *PropertyFilter) Reset() { *m = PropertyFilter{} }
+func (m *PropertyFilter) String() string { return proto.CompactTextString(m) }
+func (*PropertyFilter) ProtoMessage() {}
+
+func (m *PropertyFilter) GetProperty() *PropertyReference {
+ if m != nil {
+ return m.Property
+ }
+ return nil
+}
+
+func (m *PropertyFilter) GetOperator() PropertyFilter_Operator {
+ if m != nil && m.Operator != nil {
+ return *m.Operator
+ }
+ return PropertyFilter_LESS_THAN
+}
+
+func (m *PropertyFilter) GetValue() *Value {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+// A GQL query.
+type GqlQuery struct {
+ QueryString *string `protobuf:"bytes,1,req,name=query_string" json:"query_string,omitempty"`
+ // When false, the query string must not contain a literal.
+ AllowLiteral *bool `protobuf:"varint,2,opt,name=allow_literal,def=0" json:"allow_literal,omitempty"`
+ // A named argument must set field GqlQueryArg.name.
+ // No two named arguments may have the same name.
+ // For each non-reserved named binding site in the query string,
+ // there must be a named argument with that name,
+ // but not necessarily the inverse.
+ NameArg []*GqlQueryArg `protobuf:"bytes,3,rep,name=name_arg" json:"name_arg,omitempty"`
+ // Numbered binding site @1 references the first numbered argument,
+ // effectively using 1-based indexing, rather than the usual 0.
+ // A numbered argument must NOT set field GqlQueryArg.name.
+ // For each binding site numbered i in query_string,
+ // there must be an ith numbered argument.
+ // The inverse must also be true.
+ NumberArg []*GqlQueryArg `protobuf:"bytes,4,rep,name=number_arg" json:"number_arg,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *GqlQuery) Reset() { *m = GqlQuery{} }
+func (m *GqlQuery) String() string { return proto.CompactTextString(m) }
+func (*GqlQuery) ProtoMessage() {}
+
+const Default_GqlQuery_AllowLiteral bool = false
+
+func (m *GqlQuery) GetQueryString() string {
+ if m != nil && m.QueryString != nil {
+ return *m.QueryString
+ }
+ return ""
+}
+
+func (m *GqlQuery) GetAllowLiteral() bool {
+ if m != nil && m.AllowLiteral != nil {
+ return *m.AllowLiteral
+ }
+ return Default_GqlQuery_AllowLiteral
+}
+
+func (m *GqlQuery) GetNameArg() []*GqlQueryArg {
+ if m != nil {
+ return m.NameArg
+ }
+ return nil
+}
+
+func (m *GqlQuery) GetNumberArg() []*GqlQueryArg {
+ if m != nil {
+ return m.NumberArg
+ }
+ return nil
+}
+
+// A binding argument for a GQL query.
+// Exactly one of fields value and cursor must be set.
+type GqlQueryArg struct {
+ // Must match regex "[A-Za-z_$][A-Za-z_$0-9]*".
+ // Must not match regex "__.*__".
+ // Must not be "".
+ Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
+ Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
+ Cursor []byte `protobuf:"bytes,3,opt,name=cursor" json:"cursor,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *GqlQueryArg) Reset() { *m = GqlQueryArg{} }
+func (m *GqlQueryArg) String() string { return proto.CompactTextString(m) }
+func (*GqlQueryArg) ProtoMessage() {}
+
+func (m *GqlQueryArg) GetName() string {
+ if m != nil && m.Name != nil {
+ return *m.Name
+ }
+ return ""
+}
+
+func (m *GqlQueryArg) GetValue() *Value {
+ if m != nil {
+ return m.Value
+ }
+ return nil
+}
+
+func (m *GqlQueryArg) GetCursor() []byte {
+ if m != nil {
+ return m.Cursor
+ }
+ return nil
+}
+
+// A batch of results produced by a query.
+type QueryResultBatch struct {
+ // The result type for every entity in entityResults.
+ EntityResultType *EntityResult_ResultType `protobuf:"varint,1,req,name=entity_result_type,enum=pb.EntityResult_ResultType" json:"entity_result_type,omitempty"`
+ // The results for this batch.
+ EntityResult []*EntityResult `protobuf:"bytes,2,rep,name=entity_result" json:"entity_result,omitempty"`
+ // A cursor that points to the position after the last result in the batch.
+ // May be absent.
+ EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor" json:"end_cursor,omitempty"`
+ // The state of the query after the current batch.
+ MoreResults *QueryResultBatch_MoreResultsType `protobuf:"varint,5,req,name=more_results,enum=pb.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
+ // The number of results skipped because of <code>Query.offset</code>.
+ SkippedResults *int32 `protobuf:"varint,6,opt,name=skipped_results" json:"skipped_results,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *QueryResultBatch) Reset() { *m = QueryResultBatch{} }
+func (m *QueryResultBatch) String() string { return proto.CompactTextString(m) }
+func (*QueryResultBatch) ProtoMessage() {}
+
+func (m *QueryResultBatch) GetEntityResultType() EntityResult_ResultType {
+ if m != nil && m.EntityResultType != nil {
+ return *m.EntityResultType
+ }
+ return EntityResult_FULL
+}
+
+func (m *QueryResultBatch) GetEntityResult() []*EntityResult {
+ if m != nil {
+ return m.EntityResult
+ }
+ return nil
+}
+
+func (m *QueryResultBatch) GetEndCursor() []byte {
+ if m != nil {
+ return m.EndCursor
+ }
+ return nil
+}
+
+func (m *QueryResultBatch) GetMoreResults() QueryResultBatch_MoreResultsType {
+ if m != nil && m.MoreResults != nil {
+ return *m.MoreResults
+ }
+ return QueryResultBatch_NOT_FINISHED
+}
+
+func (m *QueryResultBatch) GetSkippedResults() int32 {
+ if m != nil && m.SkippedResults != nil {
+ return *m.SkippedResults
+ }
+ return 0
+}
+
+// A set of changes to apply.
+//
+// No entity in this message may have a reserved property name,
+// not even a property in an entity in a value.
+// No value in this message may have meaning 18,
+// not even a value in an entity in another value.
+//
+// If entities with duplicate keys are present, an arbitrary choice will
+// be made as to which is written.
+type Mutation struct {
+ // Entities to upsert.
+ // Each upserted entity's key must have a complete path and
+ // must not be reserved/read-only.
+ Upsert []*Entity `protobuf:"bytes,1,rep,name=upsert" json:"upsert,omitempty"`
+ // Entities to update.
+ // Each updated entity's key must have a complete path and
+ // must not be reserved/read-only.
+ Update []*Entity `protobuf:"bytes,2,rep,name=update" json:"update,omitempty"`
+ // Entities to insert.
+ // Each inserted entity's key must have a complete path and
+ // must not be reserved/read-only.
+ Insert []*Entity `protobuf:"bytes,3,rep,name=insert" json:"insert,omitempty"`
+ // Insert entities with a newly allocated ID.
+ // Each inserted entity's key must omit the final identifier in its path and
+ // must not be reserved/read-only.
+ InsertAutoId []*Entity `protobuf:"bytes,4,rep,name=insert_auto_id" json:"insert_auto_id,omitempty"`
+ // Keys of entities to delete.
+ // Each key must have a complete key path and must not be reserved/read-only.
+ Delete []*Key `protobuf:"bytes,5,rep,name=delete" json:"delete,omitempty"`
+ // Ignore a user specified read-only period. Optional.
+ Force *bool `protobuf:"varint,6,opt,name=force" json:"force,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *Mutation) Reset() { *m = Mutation{} }
+func (m *Mutation) String() string { return proto.CompactTextString(m) }
+func (*Mutation) ProtoMessage() {}
+
+func (m *Mutation) GetUpsert() []*Entity {
+ if m != nil {
+ return m.Upsert
+ }
+ return nil
+}
+
+func (m *Mutation) GetUpdate() []*Entity {
+ if m != nil {
+ return m.Update
+ }
+ return nil
+}
+
+func (m *Mutation) GetInsert() []*Entity {
+ if m != nil {
+ return m.Insert
+ }
+ return nil
+}
+
+func (m *Mutation) GetInsertAutoId() []*Entity {
+ if m != nil {
+ return m.InsertAutoId
+ }
+ return nil
+}
+
+func (m *Mutation) GetDelete() []*Key {
+ if m != nil {
+ return m.Delete
+ }
+ return nil
+}
+
+func (m *Mutation) GetForce() bool {
+ if m != nil && m.Force != nil {
+ return *m.Force
+ }
+ return false
+}
+
+// The result of applying a mutation.
+type MutationResult struct {
+ // Number of index writes.
+ IndexUpdates *int32 `protobuf:"varint,1,req,name=index_updates" json:"index_updates,omitempty"`
+ // Keys for <code>insertAutoId</code> entities. One per entity from the
+ // request, in the same order.
+ InsertAutoIdKey []*Key `protobuf:"bytes,2,rep,name=insert_auto_id_key" json:"insert_auto_id_key,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *MutationResult) Reset() { *m = MutationResult{} }
+func (m *MutationResult) String() string { return proto.CompactTextString(m) }
+func (*MutationResult) ProtoMessage() {}
+
+func (m *MutationResult) GetIndexUpdates() int32 {
+ if m != nil && m.IndexUpdates != nil {
+ return *m.IndexUpdates
+ }
+ return 0
+}
+
+func (m *MutationResult) GetInsertAutoIdKey() []*Key {
+ if m != nil {
+ return m.InsertAutoIdKey
+ }
+ return nil
+}
+
+// Options shared by read requests.
+type ReadOptions struct {
+ // The read consistency to use.
+ // Cannot be set when transaction is set.
+ // Lookup and ancestor queries default to STRONG, global queries default to
+ // EVENTUAL and cannot be set to STRONG.
+ ReadConsistency *ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,enum=pb.ReadOptions_ReadConsistency,def=0" json:"read_consistency,omitempty"`
+ // The transaction to use. Optional.
+ Transaction []byte `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *ReadOptions) Reset() { *m = ReadOptions{} }
+func (m *ReadOptions) String() string { return proto.CompactTextString(m) }
+func (*ReadOptions) ProtoMessage() {}
+
+const Default_ReadOptions_ReadConsistency ReadOptions_ReadConsistency = ReadOptions_DEFAULT
+
+func (m *ReadOptions) GetReadConsistency() ReadOptions_ReadConsistency {
+ if m != nil && m.ReadConsistency != nil {
+ return *m.ReadConsistency
+ }
+ return Default_ReadOptions_ReadConsistency
+}
+
+func (m *ReadOptions) GetTransaction() []byte {
+ if m != nil {
+ return m.Transaction
+ }
+ return nil
+}
+
+// The request for Lookup.
+type LookupRequest struct {
+ // Options for this lookup request. Optional.
+ ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options" json:"read_options,omitempty"`
+ // Keys of entities to look up from the datastore.
+ Key []*Key `protobuf:"bytes,3,rep,name=key" json:"key,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *LookupRequest) Reset() { *m = LookupRequest{} }
+func (m *LookupRequest) String() string { return proto.CompactTextString(m) }
+func (*LookupRequest) ProtoMessage() {}
+
+func (m *LookupRequest) GetReadOptions() *ReadOptions {
+ if m != nil {
+ return m.ReadOptions
+ }
+ return nil
+}
+
+func (m *LookupRequest) GetKey() []*Key {
+ if m != nil {
+ return m.Key
+ }
+ return nil
+}
+
+// The response for Lookup.
+type LookupResponse struct {
+ // Entities found as ResultType.FULL entities.
+ Found []*EntityResult `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"`
+ // Entities not found as ResultType.KEY_ONLY entities.
+ Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing" json:"missing,omitempty"`
+ // A list of keys that were not looked up due to resource constraints.
+ Deferred []*Key `protobuf:"bytes,3,rep,name=deferred" json:"deferred,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *LookupResponse) Reset() { *m = LookupResponse{} }
+func (m *LookupResponse) String() string { return proto.CompactTextString(m) }
+func (*LookupResponse) ProtoMessage() {}
+
+func (m *LookupResponse) GetFound() []*EntityResult {
+ if m != nil {
+ return m.Found
+ }
+ return nil
+}
+
+func (m *LookupResponse) GetMissing() []*EntityResult {
+ if m != nil {
+ return m.Missing
+ }
+ return nil
+}
+
+func (m *LookupResponse) GetDeferred() []*Key {
+ if m != nil {
+ return m.Deferred
+ }
+ return nil
+}
+
+// The request for RunQuery.
+type RunQueryRequest struct {
+ // The options for this query.
+ ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options" json:"read_options,omitempty"`
+ // Entities are partitioned into subsets, identified by a dataset (usually
+ // implicitly specified by the project) and namespace ID. Queries are scoped
+ // to a single partition.
+ // This partition ID is normalized with the standard default context
+ // partition ID, but all other partition IDs in RunQueryRequest are
+ // normalized with this partition ID as the context partition ID.
+ PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id" json:"partition_id,omitempty"`
+ // The query to run.
+ // Either this field or field gql_query must be set, but not both.
+ Query *Query `protobuf:"bytes,3,opt,name=query" json:"query,omitempty"`
+ // The GQL query to run.
+ // Either this field or field query must be set, but not both.
+ GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query" json:"gql_query,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *RunQueryRequest) Reset() { *m = RunQueryRequest{} }
+func (m *RunQueryRequest) String() string { return proto.CompactTextString(m) }
+func (*RunQueryRequest) ProtoMessage() {}
+
+func (m *RunQueryRequest) GetReadOptions() *ReadOptions {
+ if m != nil {
+ return m.ReadOptions
+ }
+ return nil
+}
+
+func (m *RunQueryRequest) GetPartitionId() *PartitionId {
+ if m != nil {
+ return m.PartitionId
+ }
+ return nil
+}
+
+func (m *RunQueryRequest) GetQuery() *Query {
+ if m != nil {
+ return m.Query
+ }
+ return nil
+}
+
+func (m *RunQueryRequest) GetGqlQuery() *GqlQuery {
+ if m != nil {
+ return m.GqlQuery
+ }
+ return nil
+}
+
+// The response for RunQuery.
+type RunQueryResponse struct {
+ // A batch of query results (always present).
+ Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch" json:"batch,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *RunQueryResponse) Reset() { *m = RunQueryResponse{} }
+func (m *RunQueryResponse) String() string { return proto.CompactTextString(m) }
+func (*RunQueryResponse) ProtoMessage() {}
+
+func (m *RunQueryResponse) GetBatch() *QueryResultBatch {
+ if m != nil {
+ return m.Batch
+ }
+ return nil
+}
+
+// The request for BeginTransaction.
+type BeginTransactionRequest struct {
+ // The transaction isolation level.
+ IsolationLevel *BeginTransactionRequest_IsolationLevel `protobuf:"varint,1,opt,name=isolation_level,enum=pb.BeginTransactionRequest_IsolationLevel,def=0" json:"isolation_level,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest{} }
+func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) }
+func (*BeginTransactionRequest) ProtoMessage() {}
+
+const Default_BeginTransactionRequest_IsolationLevel BeginTransactionRequest_IsolationLevel = BeginTransactionRequest_SNAPSHOT
+
+func (m *BeginTransactionRequest) GetIsolationLevel() BeginTransactionRequest_IsolationLevel {
+ if m != nil && m.IsolationLevel != nil {
+ return *m.IsolationLevel
+ }
+ return Default_BeginTransactionRequest_IsolationLevel
+}
+
+// The response for BeginTransaction.
+type BeginTransactionResponse struct {
+ // The transaction identifier (always present).
+ Transaction []byte `protobuf:"bytes,1,opt,name=transaction" json:"transaction,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *BeginTransactionResponse) Reset() { *m = BeginTransactionResponse{} }
+func (m *BeginTransactionResponse) String() string { return proto.CompactTextString(m) }
+func (*BeginTransactionResponse) ProtoMessage() {}
+
+func (m *BeginTransactionResponse) GetTransaction() []byte {
+ if m != nil {
+ return m.Transaction
+ }
+ return nil
+}
+
+// The request for Rollback.
+type RollbackRequest struct {
+ // The transaction identifier, returned by a call to
+ // <code>beginTransaction</code>.
+ Transaction []byte `protobuf:"bytes,1,req,name=transaction" json:"transaction,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *RollbackRequest) Reset() { *m = RollbackRequest{} }
+func (m *RollbackRequest) String() string { return proto.CompactTextString(m) }
+func (*RollbackRequest) ProtoMessage() {}
+
+func (m *RollbackRequest) GetTransaction() []byte {
+ if m != nil {
+ return m.Transaction
+ }
+ return nil
+}
+
+// The response for Rollback.
+type RollbackResponse struct {
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *RollbackResponse) Reset() { *m = RollbackResponse{} }
+func (m *RollbackResponse) String() string { return proto.CompactTextString(m) }
+func (*RollbackResponse) ProtoMessage() {}
+
+// The request for Commit.
+type CommitRequest struct {
+ // The transaction identifier, returned by a call to
+ // <code>beginTransaction</code>. Must be set when mode is TRANSACTIONAL.
+ Transaction []byte `protobuf:"bytes,1,opt,name=transaction" json:"transaction,omitempty"`
+ // The mutation to perform. Optional.
+ Mutation *Mutation `protobuf:"bytes,2,opt,name=mutation" json:"mutation,omitempty"`
+ // The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
+ Mode *CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,enum=pb.CommitRequest_Mode,def=1" json:"mode,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CommitRequest) Reset() { *m = CommitRequest{} }
+func (m *CommitRequest) String() string { return proto.CompactTextString(m) }
+func (*CommitRequest) ProtoMessage() {}
+
+const Default_CommitRequest_Mode CommitRequest_Mode = CommitRequest_TRANSACTIONAL
+
+func (m *CommitRequest) GetTransaction() []byte {
+ if m != nil {
+ return m.Transaction
+ }
+ return nil
+}
+
+func (m *CommitRequest) GetMutation() *Mutation {
+ if m != nil {
+ return m.Mutation
+ }
+ return nil
+}
+
+func (m *CommitRequest) GetMode() CommitRequest_Mode {
+ if m != nil && m.Mode != nil {
+ return *m.Mode
+ }
+ return Default_CommitRequest_Mode
+}
+
+// The response for Commit.
+type CommitResponse struct {
+ // The result of performing the mutation (if any).
+ MutationResult *MutationResult `protobuf:"bytes,1,opt,name=mutation_result" json:"mutation_result,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *CommitResponse) Reset() { *m = CommitResponse{} }
+func (m *CommitResponse) String() string { return proto.CompactTextString(m) }
+func (*CommitResponse) ProtoMessage() {}
+
+func (m *CommitResponse) GetMutationResult() *MutationResult {
+ if m != nil {
+ return m.MutationResult
+ }
+ return nil
+}
+
+// The request for AllocateIds.
+type AllocateIdsRequest struct {
+ // A list of keys with incomplete key paths to allocate IDs for.
+ // No key may be reserved/read-only.
+ Key []*Key `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *AllocateIdsRequest) Reset() { *m = AllocateIdsRequest{} }
+func (m *AllocateIdsRequest) String() string { return proto.CompactTextString(m) }
+func (*AllocateIdsRequest) ProtoMessage() {}
+
+func (m *AllocateIdsRequest) GetKey() []*Key {
+ if m != nil {
+ return m.Key
+ }
+ return nil
+}
+
+// The response for AllocateIds.
+type AllocateIdsResponse struct {
+ // The keys specified in the request (in the same order), each with
+ // its key path completed with a newly allocated ID.
+ Key []*Key `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"`
+ XXX_unrecognized []byte `json:"-"`
+}
+
+func (m *AllocateIdsResponse) Reset() { *m = AllocateIdsResponse{} }
+func (m *AllocateIdsResponse) String() string { return proto.CompactTextString(m) }
+func (*AllocateIdsResponse) ProtoMessage() {}
+
+func (m *AllocateIdsResponse) GetKey() []*Key {
+ if m != nil {
+ return m.Key
+ }
+ return nil
+}
+
+func init() {
+ proto.RegisterEnum("pb.EntityResult_ResultType", EntityResult_ResultType_name, EntityResult_ResultType_value)
+ proto.RegisterEnum("pb.PropertyExpression_AggregationFunction", PropertyExpression_AggregationFunction_name, PropertyExpression_AggregationFunction_value)
+ proto.RegisterEnum("pb.PropertyOrder_Direction", PropertyOrder_Direction_name, PropertyOrder_Direction_value)
+ proto.RegisterEnum("pb.CompositeFilter_Operator", CompositeFilter_Operator_name, CompositeFilter_Operator_value)
+ proto.RegisterEnum("pb.PropertyFilter_Operator", PropertyFilter_Operator_name, PropertyFilter_Operator_value)
+ proto.RegisterEnum("pb.QueryResultBatch_MoreResultsType", QueryResultBatch_MoreResultsType_name, QueryResultBatch_MoreResultsType_value)
+ proto.RegisterEnum("pb.ReadOptions_ReadConsistency", ReadOptions_ReadConsistency_name, ReadOptions_ReadConsistency_value)
+ proto.RegisterEnum("pb.BeginTransactionRequest_IsolationLevel", BeginTransactionRequest_IsolationLevel_name, BeginTransactionRequest_IsolationLevel_value)
+ proto.RegisterEnum("pb.CommitRequest_Mode", CommitRequest_Mode_name, CommitRequest_Mode_value)
+}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.proto b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.proto
new file mode 100644
index 0000000..bb4c199
--- /dev/null
+++ b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/datastore/datastore_v1.proto
@@ -0,0 +1,594 @@
+// Copyright 2013 Google Inc. All Rights Reserved.
+//
+// The datastore v1 service proto definitions
+
+syntax = "proto2";
+
+package pb;
+option java_package = "com.google.api.services.datastore";
+
+
+// An identifier for a particular subset of entities.
+//
+// Entities are partitioned into various subsets, each used by different
+// datasets and different namespaces within a dataset and so forth.
+//
+// All input partition IDs are normalized before use.
+// A partition ID is normalized as follows:
+// If the partition ID is unset or is set to an empty partition ID, replace it
+// with the context partition ID.
+// Otherwise, if the partition ID has no dataset ID, assign it the context
+// partition ID's dataset ID.
+// Unless otherwise documented, the context partition ID has the dataset ID set
+// to the context dataset ID and no other partition dimension set.
+//
+// A partition ID is empty if all of its fields are unset.
+//
+// Partition dimension:
+// A dimension may be unset.
+// A dimension's value must never be "".
+// A dimension's value must match [A-Za-z\d\.\-_]{1,100}
+// If the value of any dimension matches regex "__.*__",
+// the partition is reserved/read-only.
+// A reserved/read-only partition ID is forbidden in certain documented contexts.
+//
+// Dataset ID:
+// A dataset id's value must never be "".
+// A dataset id's value must match
+// ([a-z\d\-]{1,100}~)?([a-z\d][a-z\d\-\.]{0,99}:)?([a-z\d][a-z\d\-]{0,99}
+message PartitionId {
+ // The dataset ID.
+ optional string dataset_id = 3;
+ // The namespace.
+ optional string namespace = 4;
+}
+
+// A unique identifier for an entity.
+// If a key's partition id or any of its path kinds or names are
+// reserved/read-only, the key is reserved/read-only.
+// A reserved/read-only key is forbidden in certain documented contexts.
+message Key {
+ // Entities are partitioned into subsets, currently identified by a dataset
+ // (usually implicitly specified by the project) and namespace ID.
+ // Queries are scoped to a single partition.
+ optional PartitionId partition_id = 1;
+
+ // A (kind, ID/name) pair used to construct a key path.
+ //
+ // At most one of name or ID may be set.
+ // If either is set, the element is complete.
+ // If neither is set, the element is incomplete.
+ message PathElement {
+ // The kind of the entity.
+ // A kind matching regex "__.*__" is reserved/read-only.
+ // A kind must not contain more than 500 characters.
+ // Cannot be "".
+ required string kind = 1;
+ // The ID of the entity.
+ // Never equal to zero. Values less than zero are discouraged and will not
+ // be supported in the future.
+ optional int64 id = 2;
+ // The name of the entity.
+ // A name matching regex "__.*__" is reserved/read-only.
+ // A name must not be more than 500 characters.
+ // Cannot be "".
+ optional string name = 3;
+ }
+
+ // The entity path.
+ // An entity path consists of one or more elements composed of a kind and a
+ // string or numerical identifier, which identify entities. The first
+ // element identifies a <em>root entity</em>, the second element identifies
+ // a <em>child</em> of the root entity, the third element a child of the
+ // second entity, and so forth. The entities identified by all prefixes of
+ // the path are called the element's <em>ancestors</em>.
+ // An entity path is always fully complete: ALL of the entity's ancestors
+ // are required to be in the path along with the entity identifier itself.
+ // The only exception is that in some documented cases, the identifier in the
+ // last path element (for the entity) itself may be omitted. A path can never
+ // be empty.
+ repeated PathElement path_element = 2;
+}
+
+// A message that can hold any of the supported value types and associated
+// metadata.
+//
+// At most one of the <type>Value fields may be set.
+// If none are set the value is "null".
+//
+message Value {
+ // A boolean value.
+ optional bool boolean_value = 1;
+ // An integer value.
+ optional int64 integer_value = 2;
+ // A double value.
+ optional double double_value = 3;
+ // A timestamp value.
+ optional int64 timestamp_microseconds_value = 4;
+ // A key value.
+ optional Key key_value = 5;
+ // A blob key value.
+ optional string blob_key_value = 16;
+ // A UTF-8 encoded string value.
+ optional string string_value = 17;
+ // A blob value.
+ optional bytes blob_value = 18;
+ // An entity value.
+ // May have no key.
+ // May have a key with an incomplete key path.
+ // May have a reserved/read-only key.
+ optional Entity entity_value = 6;
+ // A list value.
+ // Cannot contain another list value.
+ // Cannot also have a meaning and indexing set.
+ repeated Value list_value = 7;
+
+ // The <code>meaning</code> field is reserved and should not be used.
+ optional int32 meaning = 14;
+
+ // If the value should be indexed.
+ //
+ // The <code>indexed</code> property may be set for a
+ // <code>null</code> value.
+ // When <code>indexed</code> is <code>true</code>, <code>stringValue</code>
+ // is limited to 500 characters and the blob value is limited to 500 bytes.
+ // Exception: If meaning is set to 2, string_value is limited to 2038
+ // characters regardless of indexed.
+ // When indexed is true, meaning 15 and 22 are not allowed, and meaning 16
+ // will be ignored on input (and will never be set on output).
+ // Input values by default have <code>indexed</code> set to
+ // <code>true</code>; however, you can explicitly set <code>indexed</code> to
+ // <code>true</code> if you want. (An output value never has
+ // <code>indexed</code> explicitly set to <code>true</code>.) If a value is
+ // itself an entity, it cannot have <code>indexed</code> set to
+ // <code>true</code>.
+ // Exception: An entity value with meaning 9, 20 or 21 may be indexed.
+ optional bool indexed = 15 [default = true];
+}
+
+// An entity property.
+message Property {
+ // The name of the property.
+ // A property name matching regex "__.*__" is reserved.
+ // A reserved property name is forbidden in certain documented contexts.
+ // The name must not contain more than 500 characters.
+ // Cannot be "".
+ required string name = 1;
+
+ // The value(s) of the property.
+ // Each value can have only one value property populated. For example,
+ // you cannot have a values list of <code>{ value: { integerValue: 22,
+ // stringValue: "a" } }</code>, but you can have <code>{ value: { listValue:
+ // [ { integerValue: 22 }, { stringValue: "a" } ] }</code>.
+ required Value value = 4;
+}
+
+// An entity.
+//
+// An entity is limited to 1 megabyte when stored. That <em>roughly</em>
+// corresponds to a limit of 1 megabyte for the serialized form of this
+// message.
+message Entity {
+ // The entity's key.
+ //
+ // An entity must have a key, unless otherwise documented (for example,
+ // an entity in <code>Value.entityValue</code> may have no key).
+ // An entity's kind is its key's path's last element's kind,
+ // or null if it has no key.
+ optional Key key = 1;
+ // The entity's properties.
+ // Each property's name must be unique for its entity.
+ repeated Property property = 2;
+}
+
+// The result of fetching an entity from the datastore.
+message EntityResult {
+ // Specifies what data the 'entity' field contains.
+ // A ResultType is either implied (for example, in LookupResponse.found it
+ // is always FULL) or specified by context (for example, in message
+ // QueryResultBatch, field 'entity_result_type' specifies a ResultType
+ // for all the values in field 'entity_result').
+ enum ResultType {
+ FULL = 1; // The entire entity.
+ PROJECTION = 2; // A projected subset of properties.
+ // The entity may have no key.
+ // A property value may have meaning 18.
+ KEY_ONLY = 3; // Only the key.
+ }
+
+ // The resulting entity.
+ required Entity entity = 1;
+}
+
+// A query.
+message Query {
+ // The projection to return. If not set the entire entity is returned.
+ repeated PropertyExpression projection = 2;
+
+ // The kinds to query (if empty, returns entities from all kinds).
+ repeated KindExpression kind = 3;
+
+ // The filter to apply (optional).
+ optional Filter filter = 4;
+
+ // The order to apply to the query results (if empty, order is unspecified).
+ repeated PropertyOrder order = 5;
+
+ // The properties to group by (if empty, no grouping is applied to the
+ // result set).
+ repeated PropertyReference group_by = 6;
+
+ // A starting point for the query results. Optional. Query cursors are
+ // returned in query result batches.
+ optional bytes /* serialized QueryCursor */ start_cursor = 7;
+
+ // An ending point for the query results. Optional. Query cursors are
+ // returned in query result batches.
+ optional bytes /* serialized QueryCursor */ end_cursor = 8;
+
+ // The number of results to skip. Applies before limit, but after all other
+ // constraints (optional, defaults to 0).
+ optional int32 offset = 10 [default=0];
+
+ // The maximum number of results to return. Applies after all other
+ // constraints. Optional.
+ optional int32 limit = 11;
+}
+
+// A representation of a kind.
+message KindExpression {
+ // The name of the kind.
+ required string name = 1;
+}
+
+// A reference to a property relative to the kind expressions.
+// exactly.
+message PropertyReference {
+ // The name of the property.
+ required string name = 2;
+}
+
+// A representation of a property in a projection.
+message PropertyExpression {
+ enum AggregationFunction {
+ FIRST = 1;
+ }
+ // The property to project.
+ required PropertyReference property = 1;
+ // The aggregation function to apply to the property. Optional.
+ // Can only be used when grouping by at least one property. Must
+ // then be set on all properties in the projection that are not
+ // being grouped by.
+ optional AggregationFunction aggregation_function = 2;
+}
+
+// The desired order for a specific property.
+message PropertyOrder {
+ enum Direction {
+ ASCENDING = 1;
+ DESCENDING = 2;
+ }
+ // The property to order by.
+ required PropertyReference property = 1;
+ // The direction to order by.
+ optional Direction direction = 2 [default=ASCENDING];
+}
+
+// A holder for any type of filter. Exactly one field should be specified.
+message Filter {
+ // A composite filter.
+ optional CompositeFilter composite_filter = 1;
+ // A filter on a property.
+ optional PropertyFilter property_filter = 2;
+}
+
+// A filter that merges the multiple other filters using the given operation.
+message CompositeFilter {
+ enum Operator {
+ AND = 1;
+ }
+
+ // The operator for combining multiple filters.
+ required Operator operator = 1;
+ // The list of filters to combine.
+ // Must contain at least one filter.
+ repeated Filter filter = 2;
+}
+
+// A filter on a specific property.
+message PropertyFilter {
+ enum Operator {
+ LESS_THAN = 1;
+ LESS_THAN_OR_EQUAL = 2;
+ GREATER_THAN = 3;
+ GREATER_THAN_OR_EQUAL = 4;
+ EQUAL = 5;
+
+ HAS_ANCESTOR = 11;
+ }
+
+ // The property to filter by.
+ required PropertyReference property = 1;
+ // The operator to filter by.
+ required Operator operator = 2;
+ // The value to compare the property to.
+ required Value value = 3;
+}
+
+// A GQL query.
+message GqlQuery {
+ required string query_string = 1;
+ // When false, the query string must not contain a literal.
+ optional bool allow_literal = 2 [default = false];
+ // A named argument must set field GqlQueryArg.name.
+ // No two named arguments may have the same name.
+ // For each non-reserved named binding site in the query string,
+ // there must be a named argument with that name,
+ // but not necessarily the inverse.
+ repeated GqlQueryArg name_arg = 3;
+ // Numbered binding site @1 references the first numbered argument,
+ // effectively using 1-based indexing, rather than the usual 0.
+ // A numbered argument must NOT set field GqlQueryArg.name.
+ // For each binding site numbered i in query_string,
+ // there must be an ith numbered argument.
+ // The inverse must also be true.
+ repeated GqlQueryArg number_arg = 4;
+}
+
+// A binding argument for a GQL query.
+// Exactly one of fields value and cursor must be set.
+message GqlQueryArg {
+ // Must match regex "[A-Za-z_$][A-Za-z_$0-9]*".
+ // Must not match regex "__.*__".
+ // Must not be "".
+ optional string name = 1;
+ optional Value value = 2;
+ optional bytes cursor = 3;
+}
+
+// A batch of results produced by a query.
+message QueryResultBatch {
+ // The possible values for the 'more_results' field.
+ enum MoreResultsType {
+ NOT_FINISHED = 1; // There are additional batches to fetch from this query.
+ MORE_RESULTS_AFTER_LIMIT = 2; // The query is finished, but there are more
+ // results after the limit.
+ NO_MORE_RESULTS = 3; // The query has been exhausted.
+ }
+
+ // The result type for every entity in entityResults.
+ required EntityResult.ResultType entity_result_type = 1;
+ // The results for this batch.
+ repeated EntityResult entity_result = 2;
+
+ // A cursor that points to the position after the last result in the batch.
+ // May be absent.
+ optional bytes /* serialized QueryCursor */ end_cursor = 4;
+
+ // The state of the query after the current batch.
+ required MoreResultsType more_results = 5;
+
+ // The number of results skipped because of <code>Query.offset</code>.
+ optional int32 skipped_results = 6;
+}
+
+// A set of changes to apply.
+//
+// No entity in this message may have a reserved property name,
+// not even a property in an entity in a value.
+// No value in this message may have meaning 18,
+// not even a value in an entity in another value.
+//
+// If entities with duplicate keys are present, an arbitrary choice will
+// be made as to which is written.
+message Mutation {
+ // Entities to upsert.
+ // Each upserted entity's key must have a complete path and
+ // must not be reserved/read-only.
+ repeated Entity upsert = 1;
+ // Entities to update.
+ // Each updated entity's key must have a complete path and
+ // must not be reserved/read-only.
+ repeated Entity update = 2;
+ // Entities to insert.
+ // Each inserted entity's key must have a complete path and
+ // must not be reserved/read-only.
+ repeated Entity insert = 3;
+ // Insert entities with a newly allocated ID.
+ // Each inserted entity's key must omit the final identifier in its path and
+ // must not be reserved/read-only.
+ repeated Entity insert_auto_id = 4;
+ // Keys of entities to delete.
+ // Each key must have a complete key path and must not be reserved/read-only.
+ repeated Key delete = 5;
+ // Ignore a user specified read-only period. Optional.
+ optional bool force = 6;
+}
+
+// The result of applying a mutation.
+message MutationResult {
+ // Number of index writes.
+ required int32 index_updates = 1;
+ // Keys for <code>insertAutoId</code> entities. One per entity from the
+ // request, in the same order.
+ repeated Key insert_auto_id_key = 2;
+}
+
+// Options shared by read requests.
+message ReadOptions {
+ enum ReadConsistency {
+ DEFAULT = 0;
+ STRONG = 1;
+ EVENTUAL = 2;
+ }
+
+ // The read consistency to use.
+ // Cannot be set when transaction is set.
+ // Lookup and ancestor queries default to STRONG, global queries default to
+ // EVENTUAL and cannot be set to STRONG.
+ optional ReadConsistency read_consistency = 1 [default=DEFAULT];
+
+ // The transaction to use. Optional.
+ optional bytes /* serialized Transaction */ transaction = 2;
+}
+
+// The request for Lookup.
+message LookupRequest {
+
+ // Options for this lookup request. Optional.
+ optional ReadOptions read_options = 1;
+ // Keys of entities to look up from the datastore.
+ repeated Key key = 3;
+}
+
+// The response for Lookup.
+message LookupResponse {
+
+ // The order of results in these fields is undefined and has no relation to
+ // the order of the keys in the input.
+
+ // Entities found as ResultType.FULL entities.
+ repeated EntityResult found = 1;
+
+ // Entities not found as ResultType.KEY_ONLY entities.
+ repeated EntityResult missing = 2;
+
+ // A list of keys that were not looked up due to resource constraints.
+ repeated Key deferred = 3;
+}
+
+
+// The request for RunQuery.
+message RunQueryRequest {
+
+ // The options for this query.
+ optional ReadOptions read_options = 1;
+
+ // Entities are partitioned into subsets, identified by a dataset (usually
+ // implicitly specified by the project) and namespace ID. Queries are scoped
+ // to a single partition.
+ // This partition ID is normalized with the standard default context
+ // partition ID, but all other partition IDs in RunQueryRequest are
+ // normalized with this partition ID as the context partition ID.
+ optional PartitionId partition_id = 2;
+
+ // The query to run.
+ // Either this field or field gql_query must be set, but not both.
+ optional Query query = 3;
+ // The GQL query to run.
+ // Either this field or field query must be set, but not both.
+ optional GqlQuery gql_query = 7;
+}
+
+// The response for RunQuery.
+message RunQueryResponse {
+
+ // A batch of query results (always present).
+ optional QueryResultBatch batch = 1;
+
+}
+
+// The request for BeginTransaction.
+message BeginTransactionRequest {
+
+ enum IsolationLevel {
+ SNAPSHOT = 0; // Read from a consistent snapshot. Concurrent transactions
+ // conflict if their mutations conflict. For example:
+ // Read(A),Write(B) may not conflict with Read(B),Write(A),
+ // but Read(B),Write(B) does conflict with Read(B),Write(B).
+ SERIALIZABLE = 1; // Read from a consistent snapshot. Concurrent
+ // transactions conflict if they cannot be serialized.
+ // For example Read(A),Write(B) does conflict with
+ // Read(B),Write(A) but Read(A) may not conflict with
+ // Write(A).
+ }
+
+ // The transaction isolation level.
+ optional IsolationLevel isolation_level = 1 [default=SNAPSHOT];
+}
+
+// The response for BeginTransaction.
+message BeginTransactionResponse {
+
+ // The transaction identifier (always present).
+ optional bytes /* serialized Transaction */ transaction = 1;
+}
+
+// The request for Rollback.
+message RollbackRequest {
+
+ // The transaction identifier, returned by a call to
+ // <code>beginTransaction</code>.
+ required bytes /* serialized Transaction */ transaction = 1;
+}
+
+// The response for Rollback.
+message RollbackResponse {
+// Empty
+}
+
+// The request for Commit.
+message CommitRequest {
+
+ enum Mode {
+ TRANSACTIONAL = 1;
+ NON_TRANSACTIONAL = 2;
+ }
+
+ // The transaction identifier, returned by a call to
+ // <code>beginTransaction</code>. Must be set when mode is TRANSACTIONAL.
+ optional bytes /* serialized Transaction */ transaction = 1;
+ // The mutation to perform. Optional.
+ optional Mutation mutation = 2;
+ // The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
+ optional Mode mode = 5 [default=TRANSACTIONAL];
+}
+
+// The response for Commit.
+message CommitResponse {
+
+ // The result of performing the mutation (if any).
+ optional MutationResult mutation_result = 1;
+}
+
+// The request for AllocateIds.
+message AllocateIdsRequest {
+
+ // A list of keys with incomplete key paths to allocate IDs for.
+ // No key may be reserved/read-only.
+ repeated Key key = 1;
+}
+
+// The response for AllocateIds.
+message AllocateIdsResponse {
+
+ // The keys specified in the request (in the same order), each with
+ // its key path completed with a newly allocated ID.
+ repeated Key key = 1;
+}
+
+// Each rpc normalizes the partition IDs of the keys in its input entities,
+// and always returns entities with keys with normalized partition IDs.
+// (Note that applies to all entities, including entities in values.)
+service DatastoreService {
+ // Look up some entities by key.
+ rpc Lookup(LookupRequest) returns (LookupResponse) {
+ };
+ // Query for entities.
+ rpc RunQuery(RunQueryRequest) returns (RunQueryResponse) {
+ };
+ // Begin a new transaction.
+ rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) {
+ };
+ // Commit a transaction, optionally creating, deleting or modifying some
+ // entities.
+ rpc Commit(CommitRequest) returns (CommitResponse) {
+ };
+ // Roll back a transaction.
+ rpc Rollback(RollbackRequest) returns (RollbackResponse) {
+ };
+ // Allocate IDs for incomplete keys (useful for referencing an entity before
+ // it is inserted).
+ rpc AllocateIds(AllocateIdsRequest) returns (AllocateIdsResponse) {
+ };
+}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/inteernal/testutil/context.go b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/testutil/context.go
new file mode 100644
index 0000000..aafd683
--- /dev/null
+++ b/Godeps/_workspace/src/google.golang.org/cloud/inteernal/testutil/context.go
@@ -0,0 +1,57 @@
+// Copyright 2014 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Package testutil contains helper functions for writing tests.
+package testutil
+
+import (
+ "io/ioutil"
+ "log"
+ "net/http"
+ "os"
+
+ "golang.org/x/net/context"
+ "golang.org/x/oauth2"
+ "golang.org/x/oauth2/google"
+ "google.golang.org/cloud"
+)
+
+const (
+ envProjID = "GCLOUD_TESTS_GOLANG_PROJECT_ID"
+ envPrivateKey = "GCLOUD_TESTS_GOLANG_KEY"
+)
+
+func Context(scopes ...string) context.Context {
+ key, projID := os.Getenv(envPrivateKey), os.Getenv(envProjID)
+ if key == "" || projID == "" {
+ log.Fatal("GCLOUD_TESTS_GOLANG_KEY and GCLOUD_TESTS_GOLANG_PROJECT_ID must be set. See CONTRIBUTING.md for details.")
+ }
+ jsonKey, err := ioutil.ReadFile(key)
+ if err != nil {
+ log.Fatalf("Cannot read the JSON key file, err: %v", err)
+ }
+ conf, err := google.JWTConfigFromJSON(jsonKey, scopes...)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return cloud.NewContext(projID, conf.Client(oauth2.NoContext))
+}
+
+func NoAuthContext() context.Context {
+ projID := os.Getenv(envProjID)
+ if projID == "" {
+ log.Fatal("GCLOUD_TESTS_GOLANG_PROJECT_ID must be set. See CONTRIBUTING.md for details.")
+ }
+ return cloud.NewContext(projID, &http.Client{Transport: http.DefaultTransport})
+}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/internal/cloud.go b/Godeps/_workspace/src/google.golang.org/cloud/internal/cloud.go
deleted file mode 100644
index 984323c..0000000
--- a/Godeps/_workspace/src/google.golang.org/cloud/internal/cloud.go
+++ /dev/null
@@ -1,128 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package internal provides support for the cloud packages.
-//
-// Users should not import this package directly.
-package internal
-
-import (
- "fmt"
- "net/http"
- "sync"
-
- "golang.org/x/net/context"
-)
-
-type contextKey struct{}
-
-func WithContext(parent context.Context, projID string, c *http.Client) context.Context {
- if c == nil {
- panic("nil *http.Client passed to WithContext")
- }
- if projID == "" {
- panic("empty project ID passed to WithContext")
- }
- return context.WithValue(parent, contextKey{}, &cloudContext{
- ProjectID: projID,
- HTTPClient: c,
- })
-}
-
-const userAgent = "gcloud-golang/0.1"
-
-type cloudContext struct {
- ProjectID string
- HTTPClient *http.Client
-
- mu sync.Mutex // guards svc
- svc map[string]interface{} // e.g. "storage" => *rawStorage.Service
-}
-
-// Service returns the result of the fill function if it's never been
-// called before for the given name (which is assumed to be an API
-// service name, like "datastore"). If it has already been cached, the fill
-// func is not run.
-// It's safe for concurrent use by multiple goroutines.
-func Service(ctx context.Context, name string, fill func(*http.Client) interface{}) interface{} {
- return cc(ctx).service(name, fill)
-}
-
-func (c *cloudContext) service(name string, fill func(*http.Client) interface{}) interface{} {
- c.mu.Lock()
- defer c.mu.Unlock()
-
- if c.svc == nil {
- c.svc = make(map[string]interface{})
- } else if v, ok := c.svc[name]; ok {
- return v
- }
- v := fill(c.HTTPClient)
- c.svc[name] = v
- return v
-}
-
-// Transport is an http.RoundTripper that appends
-// Google Cloud client's user-agent to the original
-// request's user-agent header.
-type Transport struct {
- // Base represents the actual http.RoundTripper
- // the requests will be delegated to.
- Base http.RoundTripper
-}
-
-// RoundTrip appends a user-agent to the existing user-agent
-// header and delegates the request to the base http.RoundTripper.
-func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) {
- req = cloneRequest(req)
- ua := req.Header.Get("User-Agent")
- if ua == "" {
- ua = userAgent
- } else {
- ua = fmt.Sprintf("%s;%s", ua, userAgent)
- }
- req.Header.Set("User-Agent", ua)
- return t.Base.RoundTrip(req)
-}
-
-// cloneRequest returns a clone of the provided *http.Request.
-// The clone is a shallow copy of the struct and its Header map.
-func cloneRequest(r *http.Request) *http.Request {
- // shallow copy of the struct
- r2 := new(http.Request)
- *r2 = *r
- // deep copy of the Header
- r2.Header = make(http.Header)
- for k, s := range r.Header {
- r2.Header[k] = s
- }
- return r2
-}
-
-func ProjID(ctx context.Context) string {
- return cc(ctx).ProjectID
-}
-
-func HTTPClient(ctx context.Context) *http.Client {
- return cc(ctx).HTTPClient
-}
-
-// cc returns the internal *cloudContext (cc) state for a context.Context.
-// It panics if the user did it wrong.
-func cc(ctx context.Context) *cloudContext {
- if c, ok := ctx.Value(contextKey{}).(*cloudContext); ok {
- return c
- }
- panic("invalid context.Context type; it should be created with cloud.NewContext")
-}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.pb.go b/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.pb.go
deleted file mode 100644
index be903e5..0000000
--- a/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.pb.go
+++ /dev/null
@@ -1,1633 +0,0 @@
-// Code generated by protoc-gen-go.
-// source: datastore_v1.proto
-// DO NOT EDIT!
-
-/*
-Package pb is a generated protocol buffer package.
-
-It is generated from these files:
- datastore_v1.proto
-
-It has these top-level messages:
- PartitionId
- Key
- Value
- Property
- Entity
- EntityResult
- Query
- KindExpression
- PropertyReference
- PropertyExpression
- PropertyOrder
- Filter
- CompositeFilter
- PropertyFilter
- GqlQuery
- GqlQueryArg
- QueryResultBatch
- Mutation
- MutationResult
- ReadOptions
- LookupRequest
- LookupResponse
- RunQueryRequest
- RunQueryResponse
- BeginTransactionRequest
- BeginTransactionResponse
- RollbackRequest
- RollbackResponse
- CommitRequest
- CommitResponse
- AllocateIdsRequest
- AllocateIdsResponse
-*/
-package pb
-
-import proto "github.com/golang/protobuf/proto"
-import math "math"
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = math.Inf
-
-// Specifies what data the 'entity' field contains.
-// A ResultType is either implied (for example, in LookupResponse.found it
-// is always FULL) or specified by context (for example, in message
-// QueryResultBatch, field 'entity_result_type' specifies a ResultType
-// for all the values in field 'entity_result').
-type EntityResult_ResultType int32
-
-const (
- EntityResult_FULL EntityResult_ResultType = 1
- EntityResult_PROJECTION EntityResult_ResultType = 2
- // The entity may have no key.
- // A property value may have meaning 18.
- EntityResult_KEY_ONLY EntityResult_ResultType = 3
-)
-
-var EntityResult_ResultType_name = map[int32]string{
- 1: "FULL",
- 2: "PROJECTION",
- 3: "KEY_ONLY",
-}
-var EntityResult_ResultType_value = map[string]int32{
- "FULL": 1,
- "PROJECTION": 2,
- "KEY_ONLY": 3,
-}
-
-func (x EntityResult_ResultType) Enum() *EntityResult_ResultType {
- p := new(EntityResult_ResultType)
- *p = x
- return p
-}
-func (x EntityResult_ResultType) String() string {
- return proto.EnumName(EntityResult_ResultType_name, int32(x))
-}
-func (x *EntityResult_ResultType) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(EntityResult_ResultType_value, data, "EntityResult_ResultType")
- if err != nil {
- return err
- }
- *x = EntityResult_ResultType(value)
- return nil
-}
-
-type PropertyExpression_AggregationFunction int32
-
-const (
- PropertyExpression_FIRST PropertyExpression_AggregationFunction = 1
-)
-
-var PropertyExpression_AggregationFunction_name = map[int32]string{
- 1: "FIRST",
-}
-var PropertyExpression_AggregationFunction_value = map[string]int32{
- "FIRST": 1,
-}
-
-func (x PropertyExpression_AggregationFunction) Enum() *PropertyExpression_AggregationFunction {
- p := new(PropertyExpression_AggregationFunction)
- *p = x
- return p
-}
-func (x PropertyExpression_AggregationFunction) String() string {
- return proto.EnumName(PropertyExpression_AggregationFunction_name, int32(x))
-}
-func (x *PropertyExpression_AggregationFunction) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(PropertyExpression_AggregationFunction_value, data, "PropertyExpression_AggregationFunction")
- if err != nil {
- return err
- }
- *x = PropertyExpression_AggregationFunction(value)
- return nil
-}
-
-type PropertyOrder_Direction int32
-
-const (
- PropertyOrder_ASCENDING PropertyOrder_Direction = 1
- PropertyOrder_DESCENDING PropertyOrder_Direction = 2
-)
-
-var PropertyOrder_Direction_name = map[int32]string{
- 1: "ASCENDING",
- 2: "DESCENDING",
-}
-var PropertyOrder_Direction_value = map[string]int32{
- "ASCENDING": 1,
- "DESCENDING": 2,
-}
-
-func (x PropertyOrder_Direction) Enum() *PropertyOrder_Direction {
- p := new(PropertyOrder_Direction)
- *p = x
- return p
-}
-func (x PropertyOrder_Direction) String() string {
- return proto.EnumName(PropertyOrder_Direction_name, int32(x))
-}
-func (x *PropertyOrder_Direction) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(PropertyOrder_Direction_value, data, "PropertyOrder_Direction")
- if err != nil {
- return err
- }
- *x = PropertyOrder_Direction(value)
- return nil
-}
-
-type CompositeFilter_Operator int32
-
-const (
- CompositeFilter_AND CompositeFilter_Operator = 1
-)
-
-var CompositeFilter_Operator_name = map[int32]string{
- 1: "AND",
-}
-var CompositeFilter_Operator_value = map[string]int32{
- "AND": 1,
-}
-
-func (x CompositeFilter_Operator) Enum() *CompositeFilter_Operator {
- p := new(CompositeFilter_Operator)
- *p = x
- return p
-}
-func (x CompositeFilter_Operator) String() string {
- return proto.EnumName(CompositeFilter_Operator_name, int32(x))
-}
-func (x *CompositeFilter_Operator) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(CompositeFilter_Operator_value, data, "CompositeFilter_Operator")
- if err != nil {
- return err
- }
- *x = CompositeFilter_Operator(value)
- return nil
-}
-
-type PropertyFilter_Operator int32
-
-const (
- PropertyFilter_LESS_THAN PropertyFilter_Operator = 1
- PropertyFilter_LESS_THAN_OR_EQUAL PropertyFilter_Operator = 2
- PropertyFilter_GREATER_THAN PropertyFilter_Operator = 3
- PropertyFilter_GREATER_THAN_OR_EQUAL PropertyFilter_Operator = 4
- PropertyFilter_EQUAL PropertyFilter_Operator = 5
- PropertyFilter_HAS_ANCESTOR PropertyFilter_Operator = 11
-)
-
-var PropertyFilter_Operator_name = map[int32]string{
- 1: "LESS_THAN",
- 2: "LESS_THAN_OR_EQUAL",
- 3: "GREATER_THAN",
- 4: "GREATER_THAN_OR_EQUAL",
- 5: "EQUAL",
- 11: "HAS_ANCESTOR",
-}
-var PropertyFilter_Operator_value = map[string]int32{
- "LESS_THAN": 1,
- "LESS_THAN_OR_EQUAL": 2,
- "GREATER_THAN": 3,
- "GREATER_THAN_OR_EQUAL": 4,
- "EQUAL": 5,
- "HAS_ANCESTOR": 11,
-}
-
-func (x PropertyFilter_Operator) Enum() *PropertyFilter_Operator {
- p := new(PropertyFilter_Operator)
- *p = x
- return p
-}
-func (x PropertyFilter_Operator) String() string {
- return proto.EnumName(PropertyFilter_Operator_name, int32(x))
-}
-func (x *PropertyFilter_Operator) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(PropertyFilter_Operator_value, data, "PropertyFilter_Operator")
- if err != nil {
- return err
- }
- *x = PropertyFilter_Operator(value)
- return nil
-}
-
-// The possible values for the 'more_results' field.
-type QueryResultBatch_MoreResultsType int32
-
-const (
- QueryResultBatch_NOT_FINISHED QueryResultBatch_MoreResultsType = 1
- QueryResultBatch_MORE_RESULTS_AFTER_LIMIT QueryResultBatch_MoreResultsType = 2
- // results after the limit.
- QueryResultBatch_NO_MORE_RESULTS QueryResultBatch_MoreResultsType = 3
-)
-
-var QueryResultBatch_MoreResultsType_name = map[int32]string{
- 1: "NOT_FINISHED",
- 2: "MORE_RESULTS_AFTER_LIMIT",
- 3: "NO_MORE_RESULTS",
-}
-var QueryResultBatch_MoreResultsType_value = map[string]int32{
- "NOT_FINISHED": 1,
- "MORE_RESULTS_AFTER_LIMIT": 2,
- "NO_MORE_RESULTS": 3,
-}
-
-func (x QueryResultBatch_MoreResultsType) Enum() *QueryResultBatch_MoreResultsType {
- p := new(QueryResultBatch_MoreResultsType)
- *p = x
- return p
-}
-func (x QueryResultBatch_MoreResultsType) String() string {
- return proto.EnumName(QueryResultBatch_MoreResultsType_name, int32(x))
-}
-func (x *QueryResultBatch_MoreResultsType) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(QueryResultBatch_MoreResultsType_value, data, "QueryResultBatch_MoreResultsType")
- if err != nil {
- return err
- }
- *x = QueryResultBatch_MoreResultsType(value)
- return nil
-}
-
-type ReadOptions_ReadConsistency int32
-
-const (
- ReadOptions_DEFAULT ReadOptions_ReadConsistency = 0
- ReadOptions_STRONG ReadOptions_ReadConsistency = 1
- ReadOptions_EVENTUAL ReadOptions_ReadConsistency = 2
-)
-
-var ReadOptions_ReadConsistency_name = map[int32]string{
- 0: "DEFAULT",
- 1: "STRONG",
- 2: "EVENTUAL",
-}
-var ReadOptions_ReadConsistency_value = map[string]int32{
- "DEFAULT": 0,
- "STRONG": 1,
- "EVENTUAL": 2,
-}
-
-func (x ReadOptions_ReadConsistency) Enum() *ReadOptions_ReadConsistency {
- p := new(ReadOptions_ReadConsistency)
- *p = x
- return p
-}
-func (x ReadOptions_ReadConsistency) String() string {
- return proto.EnumName(ReadOptions_ReadConsistency_name, int32(x))
-}
-func (x *ReadOptions_ReadConsistency) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(ReadOptions_ReadConsistency_value, data, "ReadOptions_ReadConsistency")
- if err != nil {
- return err
- }
- *x = ReadOptions_ReadConsistency(value)
- return nil
-}
-
-type BeginTransactionRequest_IsolationLevel int32
-
-const (
- BeginTransactionRequest_SNAPSHOT BeginTransactionRequest_IsolationLevel = 0
- // conflict if their mutations conflict. For example:
- // Read(A),Write(B) may not conflict with Read(B),Write(A),
- // but Read(B),Write(B) does conflict with Read(B),Write(B).
- BeginTransactionRequest_SERIALIZABLE BeginTransactionRequest_IsolationLevel = 1
-)
-
-var BeginTransactionRequest_IsolationLevel_name = map[int32]string{
- 0: "SNAPSHOT",
- 1: "SERIALIZABLE",
-}
-var BeginTransactionRequest_IsolationLevel_value = map[string]int32{
- "SNAPSHOT": 0,
- "SERIALIZABLE": 1,
-}
-
-func (x BeginTransactionRequest_IsolationLevel) Enum() *BeginTransactionRequest_IsolationLevel {
- p := new(BeginTransactionRequest_IsolationLevel)
- *p = x
- return p
-}
-func (x BeginTransactionRequest_IsolationLevel) String() string {
- return proto.EnumName(BeginTransactionRequest_IsolationLevel_name, int32(x))
-}
-func (x *BeginTransactionRequest_IsolationLevel) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(BeginTransactionRequest_IsolationLevel_value, data, "BeginTransactionRequest_IsolationLevel")
- if err != nil {
- return err
- }
- *x = BeginTransactionRequest_IsolationLevel(value)
- return nil
-}
-
-type CommitRequest_Mode int32
-
-const (
- CommitRequest_TRANSACTIONAL CommitRequest_Mode = 1
- CommitRequest_NON_TRANSACTIONAL CommitRequest_Mode = 2
-)
-
-var CommitRequest_Mode_name = map[int32]string{
- 1: "TRANSACTIONAL",
- 2: "NON_TRANSACTIONAL",
-}
-var CommitRequest_Mode_value = map[string]int32{
- "TRANSACTIONAL": 1,
- "NON_TRANSACTIONAL": 2,
-}
-
-func (x CommitRequest_Mode) Enum() *CommitRequest_Mode {
- p := new(CommitRequest_Mode)
- *p = x
- return p
-}
-func (x CommitRequest_Mode) String() string {
- return proto.EnumName(CommitRequest_Mode_name, int32(x))
-}
-func (x *CommitRequest_Mode) UnmarshalJSON(data []byte) error {
- value, err := proto.UnmarshalJSONEnum(CommitRequest_Mode_value, data, "CommitRequest_Mode")
- if err != nil {
- return err
- }
- *x = CommitRequest_Mode(value)
- return nil
-}
-
-// An identifier for a particular subset of entities.
-//
-// Entities are partitioned into various subsets, each used by different
-// datasets and different namespaces within a dataset and so forth.
-//
-// All input partition IDs are normalized before use.
-// A partition ID is normalized as follows:
-// If the partition ID is unset or is set to an empty partition ID, replace it
-// with the context partition ID.
-// Otherwise, if the partition ID has no dataset ID, assign it the context
-// partition ID's dataset ID.
-// Unless otherwise documented, the context partition ID has the dataset ID set
-// to the context dataset ID and no other partition dimension set.
-//
-// A partition ID is empty if all of its fields are unset.
-//
-// Partition dimension:
-// A dimension may be unset.
-// A dimension's value must never be "".
-// A dimension's value must match [A-Za-z\d\.\-_]{1,100}
-// If the value of any dimension matches regex "__.*__",
-// the partition is reserved/read-only.
-// A reserved/read-only partition ID is forbidden in certain documented contexts.
-//
-// Dataset ID:
-// A dataset id's value must never be "".
-// A dataset id's value must match
-// ([a-z\d\-]{1,100}~)?([a-z\d][a-z\d\-\.]{0,99}:)?([a-z\d][a-z\d\-]{0,99}
-type PartitionId struct {
- // The dataset ID.
- DatasetId *string `protobuf:"bytes,3,opt,name=dataset_id" json:"dataset_id,omitempty"`
- // The namespace.
- Namespace *string `protobuf:"bytes,4,opt,name=namespace" json:"namespace,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *PartitionId) Reset() { *m = PartitionId{} }
-func (m *PartitionId) String() string { return proto.CompactTextString(m) }
-func (*PartitionId) ProtoMessage() {}
-
-func (m *PartitionId) GetDatasetId() string {
- if m != nil && m.DatasetId != nil {
- return *m.DatasetId
- }
- return ""
-}
-
-func (m *PartitionId) GetNamespace() string {
- if m != nil && m.Namespace != nil {
- return *m.Namespace
- }
- return ""
-}
-
-// A unique identifier for an entity.
-// If a key's partition id or any of its path kinds or names are
-// reserved/read-only, the key is reserved/read-only.
-// A reserved/read-only key is forbidden in certain documented contexts.
-type Key struct {
- // Entities are partitioned into subsets, currently identified by a dataset
- // (usually implicitly specified by the project) and namespace ID.
- // Queries are scoped to a single partition.
- PartitionId *PartitionId `protobuf:"bytes,1,opt,name=partition_id" json:"partition_id,omitempty"`
- // The entity path.
- // An entity path consists of one or more elements composed of a kind and a
- // string or numerical identifier, which identify entities. The first
- // element identifies a <em>root entity</em>, the second element identifies
- // a <em>child</em> of the root entity, the third element a child of the
- // second entity, and so forth. The entities identified by all prefixes of
- // the path are called the element's <em>ancestors</em>.
- // An entity path is always fully complete: ALL of the entity's ancestors
- // are required to be in the path along with the entity identifier itself.
- // The only exception is that in some documented cases, the identifier in the
- // last path element (for the entity) itself may be omitted. A path can never
- // be empty.
- PathElement []*Key_PathElement `protobuf:"bytes,2,rep,name=path_element" json:"path_element,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Key) Reset() { *m = Key{} }
-func (m *Key) String() string { return proto.CompactTextString(m) }
-func (*Key) ProtoMessage() {}
-
-func (m *Key) GetPartitionId() *PartitionId {
- if m != nil {
- return m.PartitionId
- }
- return nil
-}
-
-func (m *Key) GetPathElement() []*Key_PathElement {
- if m != nil {
- return m.PathElement
- }
- return nil
-}
-
-// A (kind, ID/name) pair used to construct a key path.
-//
-// At most one of name or ID may be set.
-// If either is set, the element is complete.
-// If neither is set, the element is incomplete.
-type Key_PathElement struct {
- // The kind of the entity.
- // A kind matching regex "__.*__" is reserved/read-only.
- // A kind must not contain more than 500 characters.
- // Cannot be "".
- Kind *string `protobuf:"bytes,1,req,name=kind" json:"kind,omitempty"`
- // The ID of the entity.
- // Never equal to zero. Values less than zero are discouraged and will not
- // be supported in the future.
- Id *int64 `protobuf:"varint,2,opt,name=id" json:"id,omitempty"`
- // The name of the entity.
- // A name matching regex "__.*__" is reserved/read-only.
- // A name must not be more than 500 characters.
- // Cannot be "".
- Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Key_PathElement) Reset() { *m = Key_PathElement{} }
-func (m *Key_PathElement) String() string { return proto.CompactTextString(m) }
-func (*Key_PathElement) ProtoMessage() {}
-
-func (m *Key_PathElement) GetKind() string {
- if m != nil && m.Kind != nil {
- return *m.Kind
- }
- return ""
-}
-
-func (m *Key_PathElement) GetId() int64 {
- if m != nil && m.Id != nil {
- return *m.Id
- }
- return 0
-}
-
-func (m *Key_PathElement) GetName() string {
- if m != nil && m.Name != nil {
- return *m.Name
- }
- return ""
-}
-
-// A message that can hold any of the supported value types and associated
-// metadata.
-//
-// At most one of the <type>Value fields may be set.
-// If none are set the value is "null".
-//
-type Value struct {
- // A boolean value.
- BooleanValue *bool `protobuf:"varint,1,opt,name=boolean_value" json:"boolean_value,omitempty"`
- // An integer value.
- IntegerValue *int64 `protobuf:"varint,2,opt,name=integer_value" json:"integer_value,omitempty"`
- // A double value.
- DoubleValue *float64 `protobuf:"fixed64,3,opt,name=double_value" json:"double_value,omitempty"`
- // A timestamp value.
- TimestampMicrosecondsValue *int64 `protobuf:"varint,4,opt,name=timestamp_microseconds_value" json:"timestamp_microseconds_value,omitempty"`
- // A key value.
- KeyValue *Key `protobuf:"bytes,5,opt,name=key_value" json:"key_value,omitempty"`
- // A blob key value.
- BlobKeyValue *string `protobuf:"bytes,16,opt,name=blob_key_value" json:"blob_key_value,omitempty"`
- // A UTF-8 encoded string value.
- StringValue *string `protobuf:"bytes,17,opt,name=string_value" json:"string_value,omitempty"`
- // A blob value.
- BlobValue []byte `protobuf:"bytes,18,opt,name=blob_value" json:"blob_value,omitempty"`
- // An entity value.
- // May have no key.
- // May have a key with an incomplete key path.
- // May have a reserved/read-only key.
- EntityValue *Entity `protobuf:"bytes,6,opt,name=entity_value" json:"entity_value,omitempty"`
- // A list value.
- // Cannot contain another list value.
- // Cannot also have a meaning and indexing set.
- ListValue []*Value `protobuf:"bytes,7,rep,name=list_value" json:"list_value,omitempty"`
- // The <code>meaning</code> field is reserved and should not be used.
- Meaning *int32 `protobuf:"varint,14,opt,name=meaning" json:"meaning,omitempty"`
- // If the value should be indexed.
- //
- // The <code>indexed</code> property may be set for a
- // <code>null</code> value.
- // When <code>indexed</code> is <code>true</code>, <code>stringValue</code>
- // is limited to 500 characters and the blob value is limited to 500 bytes.
- // Exception: If meaning is set to 2, string_value is limited to 2038
- // characters regardless of indexed.
- // When indexed is true, meaning 15 and 22 are not allowed, and meaning 16
- // will be ignored on input (and will never be set on output).
- // Input values by default have <code>indexed</code> set to
- // <code>true</code>; however, you can explicitly set <code>indexed</code> to
- // <code>true</code> if you want. (An output value never has
- // <code>indexed</code> explicitly set to <code>true</code>.) If a value is
- // itself an entity, it cannot have <code>indexed</code> set to
- // <code>true</code>.
- // Exception: An entity value with meaning 9, 20 or 21 may be indexed.
- Indexed *bool `protobuf:"varint,15,opt,name=indexed,def=1" json:"indexed,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Value) Reset() { *m = Value{} }
-func (m *Value) String() string { return proto.CompactTextString(m) }
-func (*Value) ProtoMessage() {}
-
-const Default_Value_Indexed bool = true
-
-func (m *Value) GetBooleanValue() bool {
- if m != nil && m.BooleanValue != nil {
- return *m.BooleanValue
- }
- return false
-}
-
-func (m *Value) GetIntegerValue() int64 {
- if m != nil && m.IntegerValue != nil {
- return *m.IntegerValue
- }
- return 0
-}
-
-func (m *Value) GetDoubleValue() float64 {
- if m != nil && m.DoubleValue != nil {
- return *m.DoubleValue
- }
- return 0
-}
-
-func (m *Value) GetTimestampMicrosecondsValue() int64 {
- if m != nil && m.TimestampMicrosecondsValue != nil {
- return *m.TimestampMicrosecondsValue
- }
- return 0
-}
-
-func (m *Value) GetKeyValue() *Key {
- if m != nil {
- return m.KeyValue
- }
- return nil
-}
-
-func (m *Value) GetBlobKeyValue() string {
- if m != nil && m.BlobKeyValue != nil {
- return *m.BlobKeyValue
- }
- return ""
-}
-
-func (m *Value) GetStringValue() string {
- if m != nil && m.StringValue != nil {
- return *m.StringValue
- }
- return ""
-}
-
-func (m *Value) GetBlobValue() []byte {
- if m != nil {
- return m.BlobValue
- }
- return nil
-}
-
-func (m *Value) GetEntityValue() *Entity {
- if m != nil {
- return m.EntityValue
- }
- return nil
-}
-
-func (m *Value) GetListValue() []*Value {
- if m != nil {
- return m.ListValue
- }
- return nil
-}
-
-func (m *Value) GetMeaning() int32 {
- if m != nil && m.Meaning != nil {
- return *m.Meaning
- }
- return 0
-}
-
-func (m *Value) GetIndexed() bool {
- if m != nil && m.Indexed != nil {
- return *m.Indexed
- }
- return Default_Value_Indexed
-}
-
-// An entity property.
-type Property struct {
- // The name of the property.
- // A property name matching regex "__.*__" is reserved.
- // A reserved property name is forbidden in certain documented contexts.
- // The name must not contain more than 500 characters.
- // Cannot be "".
- Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
- // The value(s) of the property.
- // Each value can have only one value property populated. For example,
- // you cannot have a values list of <code>{ value: { integerValue: 22,
- // stringValue: "a" } }</code>, but you can have <code>{ value: { listValue:
- // [ { integerValue: 22 }, { stringValue: "a" } ] }</code>.
- Value *Value `protobuf:"bytes,4,req,name=value" json:"value,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Property) Reset() { *m = Property{} }
-func (m *Property) String() string { return proto.CompactTextString(m) }
-func (*Property) ProtoMessage() {}
-
-func (m *Property) GetName() string {
- if m != nil && m.Name != nil {
- return *m.Name
- }
- return ""
-}
-
-func (m *Property) GetValue() *Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-// An entity.
-//
-// An entity is limited to 1 megabyte when stored. That <em>roughly</em>
-// corresponds to a limit of 1 megabyte for the serialized form of this
-// message.
-type Entity struct {
- // The entity's key.
- //
- // An entity must have a key, unless otherwise documented (for example,
- // an entity in <code>Value.entityValue</code> may have no key).
- // An entity's kind is its key's path's last element's kind,
- // or null if it has no key.
- Key *Key `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
- // The entity's properties.
- // Each property's name must be unique for its entity.
- Property []*Property `protobuf:"bytes,2,rep,name=property" json:"property,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Entity) Reset() { *m = Entity{} }
-func (m *Entity) String() string { return proto.CompactTextString(m) }
-func (*Entity) ProtoMessage() {}
-
-func (m *Entity) GetKey() *Key {
- if m != nil {
- return m.Key
- }
- return nil
-}
-
-func (m *Entity) GetProperty() []*Property {
- if m != nil {
- return m.Property
- }
- return nil
-}
-
-// The result of fetching an entity from the datastore.
-type EntityResult struct {
- // The resulting entity.
- Entity *Entity `protobuf:"bytes,1,req,name=entity" json:"entity,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *EntityResult) Reset() { *m = EntityResult{} }
-func (m *EntityResult) String() string { return proto.CompactTextString(m) }
-func (*EntityResult) ProtoMessage() {}
-
-func (m *EntityResult) GetEntity() *Entity {
- if m != nil {
- return m.Entity
- }
- return nil
-}
-
-// A query.
-type Query struct {
- // The projection to return. If not set the entire entity is returned.
- Projection []*PropertyExpression `protobuf:"bytes,2,rep,name=projection" json:"projection,omitempty"`
- // The kinds to query (if empty, returns entities from all kinds).
- Kind []*KindExpression `protobuf:"bytes,3,rep,name=kind" json:"kind,omitempty"`
- // The filter to apply (optional).
- Filter *Filter `protobuf:"bytes,4,opt,name=filter" json:"filter,omitempty"`
- // The order to apply to the query results (if empty, order is unspecified).
- Order []*PropertyOrder `protobuf:"bytes,5,rep,name=order" json:"order,omitempty"`
- // The properties to group by (if empty, no grouping is applied to the
- // result set).
- GroupBy []*PropertyReference `protobuf:"bytes,6,rep,name=group_by" json:"group_by,omitempty"`
- // A starting point for the query results. Optional. Query cursors are
- // returned in query result batches.
- StartCursor []byte `protobuf:"bytes,7,opt,name=start_cursor" json:"start_cursor,omitempty"`
- // An ending point for the query results. Optional. Query cursors are
- // returned in query result batches.
- EndCursor []byte `protobuf:"bytes,8,opt,name=end_cursor" json:"end_cursor,omitempty"`
- // The number of results to skip. Applies before limit, but after all other
- // constraints (optional, defaults to 0).
- Offset *int32 `protobuf:"varint,10,opt,name=offset,def=0" json:"offset,omitempty"`
- // The maximum number of results to return. Applies after all other
- // constraints. Optional.
- Limit *int32 `protobuf:"varint,11,opt,name=limit" json:"limit,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Query) Reset() { *m = Query{} }
-func (m *Query) String() string { return proto.CompactTextString(m) }
-func (*Query) ProtoMessage() {}
-
-const Default_Query_Offset int32 = 0
-
-func (m *Query) GetProjection() []*PropertyExpression {
- if m != nil {
- return m.Projection
- }
- return nil
-}
-
-func (m *Query) GetKind() []*KindExpression {
- if m != nil {
- return m.Kind
- }
- return nil
-}
-
-func (m *Query) GetFilter() *Filter {
- if m != nil {
- return m.Filter
- }
- return nil
-}
-
-func (m *Query) GetOrder() []*PropertyOrder {
- if m != nil {
- return m.Order
- }
- return nil
-}
-
-func (m *Query) GetGroupBy() []*PropertyReference {
- if m != nil {
- return m.GroupBy
- }
- return nil
-}
-
-func (m *Query) GetStartCursor() []byte {
- if m != nil {
- return m.StartCursor
- }
- return nil
-}
-
-func (m *Query) GetEndCursor() []byte {
- if m != nil {
- return m.EndCursor
- }
- return nil
-}
-
-func (m *Query) GetOffset() int32 {
- if m != nil && m.Offset != nil {
- return *m.Offset
- }
- return Default_Query_Offset
-}
-
-func (m *Query) GetLimit() int32 {
- if m != nil && m.Limit != nil {
- return *m.Limit
- }
- return 0
-}
-
-// A representation of a kind.
-type KindExpression struct {
- // The name of the kind.
- Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *KindExpression) Reset() { *m = KindExpression{} }
-func (m *KindExpression) String() string { return proto.CompactTextString(m) }
-func (*KindExpression) ProtoMessage() {}
-
-func (m *KindExpression) GetName() string {
- if m != nil && m.Name != nil {
- return *m.Name
- }
- return ""
-}
-
-// A reference to a property relative to the kind expressions.
-// exactly.
-type PropertyReference struct {
- // The name of the property.
- Name *string `protobuf:"bytes,2,req,name=name" json:"name,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *PropertyReference) Reset() { *m = PropertyReference{} }
-func (m *PropertyReference) String() string { return proto.CompactTextString(m) }
-func (*PropertyReference) ProtoMessage() {}
-
-func (m *PropertyReference) GetName() string {
- if m != nil && m.Name != nil {
- return *m.Name
- }
- return ""
-}
-
-// A representation of a property in a projection.
-type PropertyExpression struct {
- // The property to project.
- Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
- // The aggregation function to apply to the property. Optional.
- // Can only be used when grouping by at least one property. Must
- // then be set on all properties in the projection that are not
- // being grouped by.
- AggregationFunction *PropertyExpression_AggregationFunction `protobuf:"varint,2,opt,name=aggregation_function,enum=pb.PropertyExpression_AggregationFunction" json:"aggregation_function,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *PropertyExpression) Reset() { *m = PropertyExpression{} }
-func (m *PropertyExpression) String() string { return proto.CompactTextString(m) }
-func (*PropertyExpression) ProtoMessage() {}
-
-func (m *PropertyExpression) GetProperty() *PropertyReference {
- if m != nil {
- return m.Property
- }
- return nil
-}
-
-func (m *PropertyExpression) GetAggregationFunction() PropertyExpression_AggregationFunction {
- if m != nil && m.AggregationFunction != nil {
- return *m.AggregationFunction
- }
- return PropertyExpression_FIRST
-}
-
-// The desired order for a specific property.
-type PropertyOrder struct {
- // The property to order by.
- Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
- // The direction to order by.
- Direction *PropertyOrder_Direction `protobuf:"varint,2,opt,name=direction,enum=pb.PropertyOrder_Direction,def=1" json:"direction,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *PropertyOrder) Reset() { *m = PropertyOrder{} }
-func (m *PropertyOrder) String() string { return proto.CompactTextString(m) }
-func (*PropertyOrder) ProtoMessage() {}
-
-const Default_PropertyOrder_Direction PropertyOrder_Direction = PropertyOrder_ASCENDING
-
-func (m *PropertyOrder) GetProperty() *PropertyReference {
- if m != nil {
- return m.Property
- }
- return nil
-}
-
-func (m *PropertyOrder) GetDirection() PropertyOrder_Direction {
- if m != nil && m.Direction != nil {
- return *m.Direction
- }
- return Default_PropertyOrder_Direction
-}
-
-// A holder for any type of filter. Exactly one field should be specified.
-type Filter struct {
- // A composite filter.
- CompositeFilter *CompositeFilter `protobuf:"bytes,1,opt,name=composite_filter" json:"composite_filter,omitempty"`
- // A filter on a property.
- PropertyFilter *PropertyFilter `protobuf:"bytes,2,opt,name=property_filter" json:"property_filter,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Filter) Reset() { *m = Filter{} }
-func (m *Filter) String() string { return proto.CompactTextString(m) }
-func (*Filter) ProtoMessage() {}
-
-func (m *Filter) GetCompositeFilter() *CompositeFilter {
- if m != nil {
- return m.CompositeFilter
- }
- return nil
-}
-
-func (m *Filter) GetPropertyFilter() *PropertyFilter {
- if m != nil {
- return m.PropertyFilter
- }
- return nil
-}
-
-// A filter that merges the multiple other filters using the given operation.
-type CompositeFilter struct {
- // The operator for combining multiple filters.
- Operator *CompositeFilter_Operator `protobuf:"varint,1,req,name=operator,enum=pb.CompositeFilter_Operator" json:"operator,omitempty"`
- // The list of filters to combine.
- // Must contain at least one filter.
- Filter []*Filter `protobuf:"bytes,2,rep,name=filter" json:"filter,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *CompositeFilter) Reset() { *m = CompositeFilter{} }
-func (m *CompositeFilter) String() string { return proto.CompactTextString(m) }
-func (*CompositeFilter) ProtoMessage() {}
-
-func (m *CompositeFilter) GetOperator() CompositeFilter_Operator {
- if m != nil && m.Operator != nil {
- return *m.Operator
- }
- return CompositeFilter_AND
-}
-
-func (m *CompositeFilter) GetFilter() []*Filter {
- if m != nil {
- return m.Filter
- }
- return nil
-}
-
-// A filter on a specific property.
-type PropertyFilter struct {
- // The property to filter by.
- Property *PropertyReference `protobuf:"bytes,1,req,name=property" json:"property,omitempty"`
- // The operator to filter by.
- Operator *PropertyFilter_Operator `protobuf:"varint,2,req,name=operator,enum=pb.PropertyFilter_Operator" json:"operator,omitempty"`
- // The value to compare the property to.
- Value *Value `protobuf:"bytes,3,req,name=value" json:"value,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *PropertyFilter) Reset() { *m = PropertyFilter{} }
-func (m *PropertyFilter) String() string { return proto.CompactTextString(m) }
-func (*PropertyFilter) ProtoMessage() {}
-
-func (m *PropertyFilter) GetProperty() *PropertyReference {
- if m != nil {
- return m.Property
- }
- return nil
-}
-
-func (m *PropertyFilter) GetOperator() PropertyFilter_Operator {
- if m != nil && m.Operator != nil {
- return *m.Operator
- }
- return PropertyFilter_LESS_THAN
-}
-
-func (m *PropertyFilter) GetValue() *Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-// A GQL query.
-type GqlQuery struct {
- QueryString *string `protobuf:"bytes,1,req,name=query_string" json:"query_string,omitempty"`
- // When false, the query string must not contain a literal.
- AllowLiteral *bool `protobuf:"varint,2,opt,name=allow_literal,def=0" json:"allow_literal,omitempty"`
- // A named argument must set field GqlQueryArg.name.
- // No two named arguments may have the same name.
- // For each non-reserved named binding site in the query string,
- // there must be a named argument with that name,
- // but not necessarily the inverse.
- NameArg []*GqlQueryArg `protobuf:"bytes,3,rep,name=name_arg" json:"name_arg,omitempty"`
- // Numbered binding site @1 references the first numbered argument,
- // effectively using 1-based indexing, rather than the usual 0.
- // A numbered argument must NOT set field GqlQueryArg.name.
- // For each binding site numbered i in query_string,
- // there must be an ith numbered argument.
- // The inverse must also be true.
- NumberArg []*GqlQueryArg `protobuf:"bytes,4,rep,name=number_arg" json:"number_arg,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *GqlQuery) Reset() { *m = GqlQuery{} }
-func (m *GqlQuery) String() string { return proto.CompactTextString(m) }
-func (*GqlQuery) ProtoMessage() {}
-
-const Default_GqlQuery_AllowLiteral bool = false
-
-func (m *GqlQuery) GetQueryString() string {
- if m != nil && m.QueryString != nil {
- return *m.QueryString
- }
- return ""
-}
-
-func (m *GqlQuery) GetAllowLiteral() bool {
- if m != nil && m.AllowLiteral != nil {
- return *m.AllowLiteral
- }
- return Default_GqlQuery_AllowLiteral
-}
-
-func (m *GqlQuery) GetNameArg() []*GqlQueryArg {
- if m != nil {
- return m.NameArg
- }
- return nil
-}
-
-func (m *GqlQuery) GetNumberArg() []*GqlQueryArg {
- if m != nil {
- return m.NumberArg
- }
- return nil
-}
-
-// A binding argument for a GQL query.
-// Exactly one of fields value and cursor must be set.
-type GqlQueryArg struct {
- // Must match regex "[A-Za-z_$][A-Za-z_$0-9]*".
- // Must not match regex "__.*__".
- // Must not be "".
- Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
- Value *Value `protobuf:"bytes,2,opt,name=value" json:"value,omitempty"`
- Cursor []byte `protobuf:"bytes,3,opt,name=cursor" json:"cursor,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *GqlQueryArg) Reset() { *m = GqlQueryArg{} }
-func (m *GqlQueryArg) String() string { return proto.CompactTextString(m) }
-func (*GqlQueryArg) ProtoMessage() {}
-
-func (m *GqlQueryArg) GetName() string {
- if m != nil && m.Name != nil {
- return *m.Name
- }
- return ""
-}
-
-func (m *GqlQueryArg) GetValue() *Value {
- if m != nil {
- return m.Value
- }
- return nil
-}
-
-func (m *GqlQueryArg) GetCursor() []byte {
- if m != nil {
- return m.Cursor
- }
- return nil
-}
-
-// A batch of results produced by a query.
-type QueryResultBatch struct {
- // The result type for every entity in entityResults.
- EntityResultType *EntityResult_ResultType `protobuf:"varint,1,req,name=entity_result_type,enum=pb.EntityResult_ResultType" json:"entity_result_type,omitempty"`
- // The results for this batch.
- EntityResult []*EntityResult `protobuf:"bytes,2,rep,name=entity_result" json:"entity_result,omitempty"`
- // A cursor that points to the position after the last result in the batch.
- // May be absent.
- EndCursor []byte `protobuf:"bytes,4,opt,name=end_cursor" json:"end_cursor,omitempty"`
- // The state of the query after the current batch.
- MoreResults *QueryResultBatch_MoreResultsType `protobuf:"varint,5,req,name=more_results,enum=pb.QueryResultBatch_MoreResultsType" json:"more_results,omitempty"`
- // The number of results skipped because of <code>Query.offset</code>.
- SkippedResults *int32 `protobuf:"varint,6,opt,name=skipped_results" json:"skipped_results,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *QueryResultBatch) Reset() { *m = QueryResultBatch{} }
-func (m *QueryResultBatch) String() string { return proto.CompactTextString(m) }
-func (*QueryResultBatch) ProtoMessage() {}
-
-func (m *QueryResultBatch) GetEntityResultType() EntityResult_ResultType {
- if m != nil && m.EntityResultType != nil {
- return *m.EntityResultType
- }
- return EntityResult_FULL
-}
-
-func (m *QueryResultBatch) GetEntityResult() []*EntityResult {
- if m != nil {
- return m.EntityResult
- }
- return nil
-}
-
-func (m *QueryResultBatch) GetEndCursor() []byte {
- if m != nil {
- return m.EndCursor
- }
- return nil
-}
-
-func (m *QueryResultBatch) GetMoreResults() QueryResultBatch_MoreResultsType {
- if m != nil && m.MoreResults != nil {
- return *m.MoreResults
- }
- return QueryResultBatch_NOT_FINISHED
-}
-
-func (m *QueryResultBatch) GetSkippedResults() int32 {
- if m != nil && m.SkippedResults != nil {
- return *m.SkippedResults
- }
- return 0
-}
-
-// A set of changes to apply.
-//
-// No entity in this message may have a reserved property name,
-// not even a property in an entity in a value.
-// No value in this message may have meaning 18,
-// not even a value in an entity in another value.
-//
-// If entities with duplicate keys are present, an arbitrary choice will
-// be made as to which is written.
-type Mutation struct {
- // Entities to upsert.
- // Each upserted entity's key must have a complete path and
- // must not be reserved/read-only.
- Upsert []*Entity `protobuf:"bytes,1,rep,name=upsert" json:"upsert,omitempty"`
- // Entities to update.
- // Each updated entity's key must have a complete path and
- // must not be reserved/read-only.
- Update []*Entity `protobuf:"bytes,2,rep,name=update" json:"update,omitempty"`
- // Entities to insert.
- // Each inserted entity's key must have a complete path and
- // must not be reserved/read-only.
- Insert []*Entity `protobuf:"bytes,3,rep,name=insert" json:"insert,omitempty"`
- // Insert entities with a newly allocated ID.
- // Each inserted entity's key must omit the final identifier in its path and
- // must not be reserved/read-only.
- InsertAutoId []*Entity `protobuf:"bytes,4,rep,name=insert_auto_id" json:"insert_auto_id,omitempty"`
- // Keys of entities to delete.
- // Each key must have a complete key path and must not be reserved/read-only.
- Delete []*Key `protobuf:"bytes,5,rep,name=delete" json:"delete,omitempty"`
- // Ignore a user specified read-only period. Optional.
- Force *bool `protobuf:"varint,6,opt,name=force" json:"force,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *Mutation) Reset() { *m = Mutation{} }
-func (m *Mutation) String() string { return proto.CompactTextString(m) }
-func (*Mutation) ProtoMessage() {}
-
-func (m *Mutation) GetUpsert() []*Entity {
- if m != nil {
- return m.Upsert
- }
- return nil
-}
-
-func (m *Mutation) GetUpdate() []*Entity {
- if m != nil {
- return m.Update
- }
- return nil
-}
-
-func (m *Mutation) GetInsert() []*Entity {
- if m != nil {
- return m.Insert
- }
- return nil
-}
-
-func (m *Mutation) GetInsertAutoId() []*Entity {
- if m != nil {
- return m.InsertAutoId
- }
- return nil
-}
-
-func (m *Mutation) GetDelete() []*Key {
- if m != nil {
- return m.Delete
- }
- return nil
-}
-
-func (m *Mutation) GetForce() bool {
- if m != nil && m.Force != nil {
- return *m.Force
- }
- return false
-}
-
-// The result of applying a mutation.
-type MutationResult struct {
- // Number of index writes.
- IndexUpdates *int32 `protobuf:"varint,1,req,name=index_updates" json:"index_updates,omitempty"`
- // Keys for <code>insertAutoId</code> entities. One per entity from the
- // request, in the same order.
- InsertAutoIdKey []*Key `protobuf:"bytes,2,rep,name=insert_auto_id_key" json:"insert_auto_id_key,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *MutationResult) Reset() { *m = MutationResult{} }
-func (m *MutationResult) String() string { return proto.CompactTextString(m) }
-func (*MutationResult) ProtoMessage() {}
-
-func (m *MutationResult) GetIndexUpdates() int32 {
- if m != nil && m.IndexUpdates != nil {
- return *m.IndexUpdates
- }
- return 0
-}
-
-func (m *MutationResult) GetInsertAutoIdKey() []*Key {
- if m != nil {
- return m.InsertAutoIdKey
- }
- return nil
-}
-
-// Options shared by read requests.
-type ReadOptions struct {
- // The read consistency to use.
- // Cannot be set when transaction is set.
- // Lookup and ancestor queries default to STRONG, global queries default to
- // EVENTUAL and cannot be set to STRONG.
- ReadConsistency *ReadOptions_ReadConsistency `protobuf:"varint,1,opt,name=read_consistency,enum=pb.ReadOptions_ReadConsistency,def=0" json:"read_consistency,omitempty"`
- // The transaction to use. Optional.
- Transaction []byte `protobuf:"bytes,2,opt,name=transaction" json:"transaction,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *ReadOptions) Reset() { *m = ReadOptions{} }
-func (m *ReadOptions) String() string { return proto.CompactTextString(m) }
-func (*ReadOptions) ProtoMessage() {}
-
-const Default_ReadOptions_ReadConsistency ReadOptions_ReadConsistency = ReadOptions_DEFAULT
-
-func (m *ReadOptions) GetReadConsistency() ReadOptions_ReadConsistency {
- if m != nil && m.ReadConsistency != nil {
- return *m.ReadConsistency
- }
- return Default_ReadOptions_ReadConsistency
-}
-
-func (m *ReadOptions) GetTransaction() []byte {
- if m != nil {
- return m.Transaction
- }
- return nil
-}
-
-// The request for Lookup.
-type LookupRequest struct {
- // Options for this lookup request. Optional.
- ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options" json:"read_options,omitempty"`
- // Keys of entities to look up from the datastore.
- Key []*Key `protobuf:"bytes,3,rep,name=key" json:"key,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *LookupRequest) Reset() { *m = LookupRequest{} }
-func (m *LookupRequest) String() string { return proto.CompactTextString(m) }
-func (*LookupRequest) ProtoMessage() {}
-
-func (m *LookupRequest) GetReadOptions() *ReadOptions {
- if m != nil {
- return m.ReadOptions
- }
- return nil
-}
-
-func (m *LookupRequest) GetKey() []*Key {
- if m != nil {
- return m.Key
- }
- return nil
-}
-
-// The response for Lookup.
-type LookupResponse struct {
- // Entities found as ResultType.FULL entities.
- Found []*EntityResult `protobuf:"bytes,1,rep,name=found" json:"found,omitempty"`
- // Entities not found as ResultType.KEY_ONLY entities.
- Missing []*EntityResult `protobuf:"bytes,2,rep,name=missing" json:"missing,omitempty"`
- // A list of keys that were not looked up due to resource constraints.
- Deferred []*Key `protobuf:"bytes,3,rep,name=deferred" json:"deferred,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *LookupResponse) Reset() { *m = LookupResponse{} }
-func (m *LookupResponse) String() string { return proto.CompactTextString(m) }
-func (*LookupResponse) ProtoMessage() {}
-
-func (m *LookupResponse) GetFound() []*EntityResult {
- if m != nil {
- return m.Found
- }
- return nil
-}
-
-func (m *LookupResponse) GetMissing() []*EntityResult {
- if m != nil {
- return m.Missing
- }
- return nil
-}
-
-func (m *LookupResponse) GetDeferred() []*Key {
- if m != nil {
- return m.Deferred
- }
- return nil
-}
-
-// The request for RunQuery.
-type RunQueryRequest struct {
- // The options for this query.
- ReadOptions *ReadOptions `protobuf:"bytes,1,opt,name=read_options" json:"read_options,omitempty"`
- // Entities are partitioned into subsets, identified by a dataset (usually
- // implicitly specified by the project) and namespace ID. Queries are scoped
- // to a single partition.
- // This partition ID is normalized with the standard default context
- // partition ID, but all other partition IDs in RunQueryRequest are
- // normalized with this partition ID as the context partition ID.
- PartitionId *PartitionId `protobuf:"bytes,2,opt,name=partition_id" json:"partition_id,omitempty"`
- // The query to run.
- // Either this field or field gql_query must be set, but not both.
- Query *Query `protobuf:"bytes,3,opt,name=query" json:"query,omitempty"`
- // The GQL query to run.
- // Either this field or field query must be set, but not both.
- GqlQuery *GqlQuery `protobuf:"bytes,7,opt,name=gql_query" json:"gql_query,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *RunQueryRequest) Reset() { *m = RunQueryRequest{} }
-func (m *RunQueryRequest) String() string { return proto.CompactTextString(m) }
-func (*RunQueryRequest) ProtoMessage() {}
-
-func (m *RunQueryRequest) GetReadOptions() *ReadOptions {
- if m != nil {
- return m.ReadOptions
- }
- return nil
-}
-
-func (m *RunQueryRequest) GetPartitionId() *PartitionId {
- if m != nil {
- return m.PartitionId
- }
- return nil
-}
-
-func (m *RunQueryRequest) GetQuery() *Query {
- if m != nil {
- return m.Query
- }
- return nil
-}
-
-func (m *RunQueryRequest) GetGqlQuery() *GqlQuery {
- if m != nil {
- return m.GqlQuery
- }
- return nil
-}
-
-// The response for RunQuery.
-type RunQueryResponse struct {
- // A batch of query results (always present).
- Batch *QueryResultBatch `protobuf:"bytes,1,opt,name=batch" json:"batch,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *RunQueryResponse) Reset() { *m = RunQueryResponse{} }
-func (m *RunQueryResponse) String() string { return proto.CompactTextString(m) }
-func (*RunQueryResponse) ProtoMessage() {}
-
-func (m *RunQueryResponse) GetBatch() *QueryResultBatch {
- if m != nil {
- return m.Batch
- }
- return nil
-}
-
-// The request for BeginTransaction.
-type BeginTransactionRequest struct {
- // The transaction isolation level.
- IsolationLevel *BeginTransactionRequest_IsolationLevel `protobuf:"varint,1,opt,name=isolation_level,enum=pb.BeginTransactionRequest_IsolationLevel,def=0" json:"isolation_level,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *BeginTransactionRequest) Reset() { *m = BeginTransactionRequest{} }
-func (m *BeginTransactionRequest) String() string { return proto.CompactTextString(m) }
-func (*BeginTransactionRequest) ProtoMessage() {}
-
-const Default_BeginTransactionRequest_IsolationLevel BeginTransactionRequest_IsolationLevel = BeginTransactionRequest_SNAPSHOT
-
-func (m *BeginTransactionRequest) GetIsolationLevel() BeginTransactionRequest_IsolationLevel {
- if m != nil && m.IsolationLevel != nil {
- return *m.IsolationLevel
- }
- return Default_BeginTransactionRequest_IsolationLevel
-}
-
-// The response for BeginTransaction.
-type BeginTransactionResponse struct {
- // The transaction identifier (always present).
- Transaction []byte `protobuf:"bytes,1,opt,name=transaction" json:"transaction,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *BeginTransactionResponse) Reset() { *m = BeginTransactionResponse{} }
-func (m *BeginTransactionResponse) String() string { return proto.CompactTextString(m) }
-func (*BeginTransactionResponse) ProtoMessage() {}
-
-func (m *BeginTransactionResponse) GetTransaction() []byte {
- if m != nil {
- return m.Transaction
- }
- return nil
-}
-
-// The request for Rollback.
-type RollbackRequest struct {
- // The transaction identifier, returned by a call to
- // <code>beginTransaction</code>.
- Transaction []byte `protobuf:"bytes,1,req,name=transaction" json:"transaction,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *RollbackRequest) Reset() { *m = RollbackRequest{} }
-func (m *RollbackRequest) String() string { return proto.CompactTextString(m) }
-func (*RollbackRequest) ProtoMessage() {}
-
-func (m *RollbackRequest) GetTransaction() []byte {
- if m != nil {
- return m.Transaction
- }
- return nil
-}
-
-// The response for Rollback.
-type RollbackResponse struct {
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *RollbackResponse) Reset() { *m = RollbackResponse{} }
-func (m *RollbackResponse) String() string { return proto.CompactTextString(m) }
-func (*RollbackResponse) ProtoMessage() {}
-
-// The request for Commit.
-type CommitRequest struct {
- // The transaction identifier, returned by a call to
- // <code>beginTransaction</code>. Must be set when mode is TRANSACTIONAL.
- Transaction []byte `protobuf:"bytes,1,opt,name=transaction" json:"transaction,omitempty"`
- // The mutation to perform. Optional.
- Mutation *Mutation `protobuf:"bytes,2,opt,name=mutation" json:"mutation,omitempty"`
- // The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
- Mode *CommitRequest_Mode `protobuf:"varint,5,opt,name=mode,enum=pb.CommitRequest_Mode,def=1" json:"mode,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *CommitRequest) Reset() { *m = CommitRequest{} }
-func (m *CommitRequest) String() string { return proto.CompactTextString(m) }
-func (*CommitRequest) ProtoMessage() {}
-
-const Default_CommitRequest_Mode CommitRequest_Mode = CommitRequest_TRANSACTIONAL
-
-func (m *CommitRequest) GetTransaction() []byte {
- if m != nil {
- return m.Transaction
- }
- return nil
-}
-
-func (m *CommitRequest) GetMutation() *Mutation {
- if m != nil {
- return m.Mutation
- }
- return nil
-}
-
-func (m *CommitRequest) GetMode() CommitRequest_Mode {
- if m != nil && m.Mode != nil {
- return *m.Mode
- }
- return Default_CommitRequest_Mode
-}
-
-// The response for Commit.
-type CommitResponse struct {
- // The result of performing the mutation (if any).
- MutationResult *MutationResult `protobuf:"bytes,1,opt,name=mutation_result" json:"mutation_result,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *CommitResponse) Reset() { *m = CommitResponse{} }
-func (m *CommitResponse) String() string { return proto.CompactTextString(m) }
-func (*CommitResponse) ProtoMessage() {}
-
-func (m *CommitResponse) GetMutationResult() *MutationResult {
- if m != nil {
- return m.MutationResult
- }
- return nil
-}
-
-// The request for AllocateIds.
-type AllocateIdsRequest struct {
- // A list of keys with incomplete key paths to allocate IDs for.
- // No key may be reserved/read-only.
- Key []*Key `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *AllocateIdsRequest) Reset() { *m = AllocateIdsRequest{} }
-func (m *AllocateIdsRequest) String() string { return proto.CompactTextString(m) }
-func (*AllocateIdsRequest) ProtoMessage() {}
-
-func (m *AllocateIdsRequest) GetKey() []*Key {
- if m != nil {
- return m.Key
- }
- return nil
-}
-
-// The response for AllocateIds.
-type AllocateIdsResponse struct {
- // The keys specified in the request (in the same order), each with
- // its key path completed with a newly allocated ID.
- Key []*Key `protobuf:"bytes,1,rep,name=key" json:"key,omitempty"`
- XXX_unrecognized []byte `json:"-"`
-}
-
-func (m *AllocateIdsResponse) Reset() { *m = AllocateIdsResponse{} }
-func (m *AllocateIdsResponse) String() string { return proto.CompactTextString(m) }
-func (*AllocateIdsResponse) ProtoMessage() {}
-
-func (m *AllocateIdsResponse) GetKey() []*Key {
- if m != nil {
- return m.Key
- }
- return nil
-}
-
-func init() {
- proto.RegisterEnum("pb.EntityResult_ResultType", EntityResult_ResultType_name, EntityResult_ResultType_value)
- proto.RegisterEnum("pb.PropertyExpression_AggregationFunction", PropertyExpression_AggregationFunction_name, PropertyExpression_AggregationFunction_value)
- proto.RegisterEnum("pb.PropertyOrder_Direction", PropertyOrder_Direction_name, PropertyOrder_Direction_value)
- proto.RegisterEnum("pb.CompositeFilter_Operator", CompositeFilter_Operator_name, CompositeFilter_Operator_value)
- proto.RegisterEnum("pb.PropertyFilter_Operator", PropertyFilter_Operator_name, PropertyFilter_Operator_value)
- proto.RegisterEnum("pb.QueryResultBatch_MoreResultsType", QueryResultBatch_MoreResultsType_name, QueryResultBatch_MoreResultsType_value)
- proto.RegisterEnum("pb.ReadOptions_ReadConsistency", ReadOptions_ReadConsistency_name, ReadOptions_ReadConsistency_value)
- proto.RegisterEnum("pb.BeginTransactionRequest_IsolationLevel", BeginTransactionRequest_IsolationLevel_name, BeginTransactionRequest_IsolationLevel_value)
- proto.RegisterEnum("pb.CommitRequest_Mode", CommitRequest_Mode_name, CommitRequest_Mode_value)
-}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.proto b/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.proto
deleted file mode 100644
index bb4c199..0000000
--- a/Godeps/_workspace/src/google.golang.org/cloud/internal/datastore/datastore_v1.proto
+++ /dev/null
@@ -1,594 +0,0 @@
-// Copyright 2013 Google Inc. All Rights Reserved.
-//
-// The datastore v1 service proto definitions
-
-syntax = "proto2";
-
-package pb;
-option java_package = "com.google.api.services.datastore";
-
-
-// An identifier for a particular subset of entities.
-//
-// Entities are partitioned into various subsets, each used by different
-// datasets and different namespaces within a dataset and so forth.
-//
-// All input partition IDs are normalized before use.
-// A partition ID is normalized as follows:
-// If the partition ID is unset or is set to an empty partition ID, replace it
-// with the context partition ID.
-// Otherwise, if the partition ID has no dataset ID, assign it the context
-// partition ID's dataset ID.
-// Unless otherwise documented, the context partition ID has the dataset ID set
-// to the context dataset ID and no other partition dimension set.
-//
-// A partition ID is empty if all of its fields are unset.
-//
-// Partition dimension:
-// A dimension may be unset.
-// A dimension's value must never be "".
-// A dimension's value must match [A-Za-z\d\.\-_]{1,100}
-// If the value of any dimension matches regex "__.*__",
-// the partition is reserved/read-only.
-// A reserved/read-only partition ID is forbidden in certain documented contexts.
-//
-// Dataset ID:
-// A dataset id's value must never be "".
-// A dataset id's value must match
-// ([a-z\d\-]{1,100}~)?([a-z\d][a-z\d\-\.]{0,99}:)?([a-z\d][a-z\d\-]{0,99}
-message PartitionId {
- // The dataset ID.
- optional string dataset_id = 3;
- // The namespace.
- optional string namespace = 4;
-}
-
-// A unique identifier for an entity.
-// If a key's partition id or any of its path kinds or names are
-// reserved/read-only, the key is reserved/read-only.
-// A reserved/read-only key is forbidden in certain documented contexts.
-message Key {
- // Entities are partitioned into subsets, currently identified by a dataset
- // (usually implicitly specified by the project) and namespace ID.
- // Queries are scoped to a single partition.
- optional PartitionId partition_id = 1;
-
- // A (kind, ID/name) pair used to construct a key path.
- //
- // At most one of name or ID may be set.
- // If either is set, the element is complete.
- // If neither is set, the element is incomplete.
- message PathElement {
- // The kind of the entity.
- // A kind matching regex "__.*__" is reserved/read-only.
- // A kind must not contain more than 500 characters.
- // Cannot be "".
- required string kind = 1;
- // The ID of the entity.
- // Never equal to zero. Values less than zero are discouraged and will not
- // be supported in the future.
- optional int64 id = 2;
- // The name of the entity.
- // A name matching regex "__.*__" is reserved/read-only.
- // A name must not be more than 500 characters.
- // Cannot be "".
- optional string name = 3;
- }
-
- // The entity path.
- // An entity path consists of one or more elements composed of a kind and a
- // string or numerical identifier, which identify entities. The first
- // element identifies a <em>root entity</em>, the second element identifies
- // a <em>child</em> of the root entity, the third element a child of the
- // second entity, and so forth. The entities identified by all prefixes of
- // the path are called the element's <em>ancestors</em>.
- // An entity path is always fully complete: ALL of the entity's ancestors
- // are required to be in the path along with the entity identifier itself.
- // The only exception is that in some documented cases, the identifier in the
- // last path element (for the entity) itself may be omitted. A path can never
- // be empty.
- repeated PathElement path_element = 2;
-}
-
-// A message that can hold any of the supported value types and associated
-// metadata.
-//
-// At most one of the <type>Value fields may be set.
-// If none are set the value is "null".
-//
-message Value {
- // A boolean value.
- optional bool boolean_value = 1;
- // An integer value.
- optional int64 integer_value = 2;
- // A double value.
- optional double double_value = 3;
- // A timestamp value.
- optional int64 timestamp_microseconds_value = 4;
- // A key value.
- optional Key key_value = 5;
- // A blob key value.
- optional string blob_key_value = 16;
- // A UTF-8 encoded string value.
- optional string string_value = 17;
- // A blob value.
- optional bytes blob_value = 18;
- // An entity value.
- // May have no key.
- // May have a key with an incomplete key path.
- // May have a reserved/read-only key.
- optional Entity entity_value = 6;
- // A list value.
- // Cannot contain another list value.
- // Cannot also have a meaning and indexing set.
- repeated Value list_value = 7;
-
- // The <code>meaning</code> field is reserved and should not be used.
- optional int32 meaning = 14;
-
- // If the value should be indexed.
- //
- // The <code>indexed</code> property may be set for a
- // <code>null</code> value.
- // When <code>indexed</code> is <code>true</code>, <code>stringValue</code>
- // is limited to 500 characters and the blob value is limited to 500 bytes.
- // Exception: If meaning is set to 2, string_value is limited to 2038
- // characters regardless of indexed.
- // When indexed is true, meaning 15 and 22 are not allowed, and meaning 16
- // will be ignored on input (and will never be set on output).
- // Input values by default have <code>indexed</code> set to
- // <code>true</code>; however, you can explicitly set <code>indexed</code> to
- // <code>true</code> if you want. (An output value never has
- // <code>indexed</code> explicitly set to <code>true</code>.) If a value is
- // itself an entity, it cannot have <code>indexed</code> set to
- // <code>true</code>.
- // Exception: An entity value with meaning 9, 20 or 21 may be indexed.
- optional bool indexed = 15 [default = true];
-}
-
-// An entity property.
-message Property {
- // The name of the property.
- // A property name matching regex "__.*__" is reserved.
- // A reserved property name is forbidden in certain documented contexts.
- // The name must not contain more than 500 characters.
- // Cannot be "".
- required string name = 1;
-
- // The value(s) of the property.
- // Each value can have only one value property populated. For example,
- // you cannot have a values list of <code>{ value: { integerValue: 22,
- // stringValue: "a" } }</code>, but you can have <code>{ value: { listValue:
- // [ { integerValue: 22 }, { stringValue: "a" } ] }</code>.
- required Value value = 4;
-}
-
-// An entity.
-//
-// An entity is limited to 1 megabyte when stored. That <em>roughly</em>
-// corresponds to a limit of 1 megabyte for the serialized form of this
-// message.
-message Entity {
- // The entity's key.
- //
- // An entity must have a key, unless otherwise documented (for example,
- // an entity in <code>Value.entityValue</code> may have no key).
- // An entity's kind is its key's path's last element's kind,
- // or null if it has no key.
- optional Key key = 1;
- // The entity's properties.
- // Each property's name must be unique for its entity.
- repeated Property property = 2;
-}
-
-// The result of fetching an entity from the datastore.
-message EntityResult {
- // Specifies what data the 'entity' field contains.
- // A ResultType is either implied (for example, in LookupResponse.found it
- // is always FULL) or specified by context (for example, in message
- // QueryResultBatch, field 'entity_result_type' specifies a ResultType
- // for all the values in field 'entity_result').
- enum ResultType {
- FULL = 1; // The entire entity.
- PROJECTION = 2; // A projected subset of properties.
- // The entity may have no key.
- // A property value may have meaning 18.
- KEY_ONLY = 3; // Only the key.
- }
-
- // The resulting entity.
- required Entity entity = 1;
-}
-
-// A query.
-message Query {
- // The projection to return. If not set the entire entity is returned.
- repeated PropertyExpression projection = 2;
-
- // The kinds to query (if empty, returns entities from all kinds).
- repeated KindExpression kind = 3;
-
- // The filter to apply (optional).
- optional Filter filter = 4;
-
- // The order to apply to the query results (if empty, order is unspecified).
- repeated PropertyOrder order = 5;
-
- // The properties to group by (if empty, no grouping is applied to the
- // result set).
- repeated PropertyReference group_by = 6;
-
- // A starting point for the query results. Optional. Query cursors are
- // returned in query result batches.
- optional bytes /* serialized QueryCursor */ start_cursor = 7;
-
- // An ending point for the query results. Optional. Query cursors are
- // returned in query result batches.
- optional bytes /* serialized QueryCursor */ end_cursor = 8;
-
- // The number of results to skip. Applies before limit, but after all other
- // constraints (optional, defaults to 0).
- optional int32 offset = 10 [default=0];
-
- // The maximum number of results to return. Applies after all other
- // constraints. Optional.
- optional int32 limit = 11;
-}
-
-// A representation of a kind.
-message KindExpression {
- // The name of the kind.
- required string name = 1;
-}
-
-// A reference to a property relative to the kind expressions.
-// exactly.
-message PropertyReference {
- // The name of the property.
- required string name = 2;
-}
-
-// A representation of a property in a projection.
-message PropertyExpression {
- enum AggregationFunction {
- FIRST = 1;
- }
- // The property to project.
- required PropertyReference property = 1;
- // The aggregation function to apply to the property. Optional.
- // Can only be used when grouping by at least one property. Must
- // then be set on all properties in the projection that are not
- // being grouped by.
- optional AggregationFunction aggregation_function = 2;
-}
-
-// The desired order for a specific property.
-message PropertyOrder {
- enum Direction {
- ASCENDING = 1;
- DESCENDING = 2;
- }
- // The property to order by.
- required PropertyReference property = 1;
- // The direction to order by.
- optional Direction direction = 2 [default=ASCENDING];
-}
-
-// A holder for any type of filter. Exactly one field should be specified.
-message Filter {
- // A composite filter.
- optional CompositeFilter composite_filter = 1;
- // A filter on a property.
- optional PropertyFilter property_filter = 2;
-}
-
-// A filter that merges the multiple other filters using the given operation.
-message CompositeFilter {
- enum Operator {
- AND = 1;
- }
-
- // The operator for combining multiple filters.
- required Operator operator = 1;
- // The list of filters to combine.
- // Must contain at least one filter.
- repeated Filter filter = 2;
-}
-
-// A filter on a specific property.
-message PropertyFilter {
- enum Operator {
- LESS_THAN = 1;
- LESS_THAN_OR_EQUAL = 2;
- GREATER_THAN = 3;
- GREATER_THAN_OR_EQUAL = 4;
- EQUAL = 5;
-
- HAS_ANCESTOR = 11;
- }
-
- // The property to filter by.
- required PropertyReference property = 1;
- // The operator to filter by.
- required Operator operator = 2;
- // The value to compare the property to.
- required Value value = 3;
-}
-
-// A GQL query.
-message GqlQuery {
- required string query_string = 1;
- // When false, the query string must not contain a literal.
- optional bool allow_literal = 2 [default = false];
- // A named argument must set field GqlQueryArg.name.
- // No two named arguments may have the same name.
- // For each non-reserved named binding site in the query string,
- // there must be a named argument with that name,
- // but not necessarily the inverse.
- repeated GqlQueryArg name_arg = 3;
- // Numbered binding site @1 references the first numbered argument,
- // effectively using 1-based indexing, rather than the usual 0.
- // A numbered argument must NOT set field GqlQueryArg.name.
- // For each binding site numbered i in query_string,
- // there must be an ith numbered argument.
- // The inverse must also be true.
- repeated GqlQueryArg number_arg = 4;
-}
-
-// A binding argument for a GQL query.
-// Exactly one of fields value and cursor must be set.
-message GqlQueryArg {
- // Must match regex "[A-Za-z_$][A-Za-z_$0-9]*".
- // Must not match regex "__.*__".
- // Must not be "".
- optional string name = 1;
- optional Value value = 2;
- optional bytes cursor = 3;
-}
-
-// A batch of results produced by a query.
-message QueryResultBatch {
- // The possible values for the 'more_results' field.
- enum MoreResultsType {
- NOT_FINISHED = 1; // There are additional batches to fetch from this query.
- MORE_RESULTS_AFTER_LIMIT = 2; // The query is finished, but there are more
- // results after the limit.
- NO_MORE_RESULTS = 3; // The query has been exhausted.
- }
-
- // The result type for every entity in entityResults.
- required EntityResult.ResultType entity_result_type = 1;
- // The results for this batch.
- repeated EntityResult entity_result = 2;
-
- // A cursor that points to the position after the last result in the batch.
- // May be absent.
- optional bytes /* serialized QueryCursor */ end_cursor = 4;
-
- // The state of the query after the current batch.
- required MoreResultsType more_results = 5;
-
- // The number of results skipped because of <code>Query.offset</code>.
- optional int32 skipped_results = 6;
-}
-
-// A set of changes to apply.
-//
-// No entity in this message may have a reserved property name,
-// not even a property in an entity in a value.
-// No value in this message may have meaning 18,
-// not even a value in an entity in another value.
-//
-// If entities with duplicate keys are present, an arbitrary choice will
-// be made as to which is written.
-message Mutation {
- // Entities to upsert.
- // Each upserted entity's key must have a complete path and
- // must not be reserved/read-only.
- repeated Entity upsert = 1;
- // Entities to update.
- // Each updated entity's key must have a complete path and
- // must not be reserved/read-only.
- repeated Entity update = 2;
- // Entities to insert.
- // Each inserted entity's key must have a complete path and
- // must not be reserved/read-only.
- repeated Entity insert = 3;
- // Insert entities with a newly allocated ID.
- // Each inserted entity's key must omit the final identifier in its path and
- // must not be reserved/read-only.
- repeated Entity insert_auto_id = 4;
- // Keys of entities to delete.
- // Each key must have a complete key path and must not be reserved/read-only.
- repeated Key delete = 5;
- // Ignore a user specified read-only period. Optional.
- optional bool force = 6;
-}
-
-// The result of applying a mutation.
-message MutationResult {
- // Number of index writes.
- required int32 index_updates = 1;
- // Keys for <code>insertAutoId</code> entities. One per entity from the
- // request, in the same order.
- repeated Key insert_auto_id_key = 2;
-}
-
-// Options shared by read requests.
-message ReadOptions {
- enum ReadConsistency {
- DEFAULT = 0;
- STRONG = 1;
- EVENTUAL = 2;
- }
-
- // The read consistency to use.
- // Cannot be set when transaction is set.
- // Lookup and ancestor queries default to STRONG, global queries default to
- // EVENTUAL and cannot be set to STRONG.
- optional ReadConsistency read_consistency = 1 [default=DEFAULT];
-
- // The transaction to use. Optional.
- optional bytes /* serialized Transaction */ transaction = 2;
-}
-
-// The request for Lookup.
-message LookupRequest {
-
- // Options for this lookup request. Optional.
- optional ReadOptions read_options = 1;
- // Keys of entities to look up from the datastore.
- repeated Key key = 3;
-}
-
-// The response for Lookup.
-message LookupResponse {
-
- // The order of results in these fields is undefined and has no relation to
- // the order of the keys in the input.
-
- // Entities found as ResultType.FULL entities.
- repeated EntityResult found = 1;
-
- // Entities not found as ResultType.KEY_ONLY entities.
- repeated EntityResult missing = 2;
-
- // A list of keys that were not looked up due to resource constraints.
- repeated Key deferred = 3;
-}
-
-
-// The request for RunQuery.
-message RunQueryRequest {
-
- // The options for this query.
- optional ReadOptions read_options = 1;
-
- // Entities are partitioned into subsets, identified by a dataset (usually
- // implicitly specified by the project) and namespace ID. Queries are scoped
- // to a single partition.
- // This partition ID is normalized with the standard default context
- // partition ID, but all other partition IDs in RunQueryRequest are
- // normalized with this partition ID as the context partition ID.
- optional PartitionId partition_id = 2;
-
- // The query to run.
- // Either this field or field gql_query must be set, but not both.
- optional Query query = 3;
- // The GQL query to run.
- // Either this field or field query must be set, but not both.
- optional GqlQuery gql_query = 7;
-}
-
-// The response for RunQuery.
-message RunQueryResponse {
-
- // A batch of query results (always present).
- optional QueryResultBatch batch = 1;
-
-}
-
-// The request for BeginTransaction.
-message BeginTransactionRequest {
-
- enum IsolationLevel {
- SNAPSHOT = 0; // Read from a consistent snapshot. Concurrent transactions
- // conflict if their mutations conflict. For example:
- // Read(A),Write(B) may not conflict with Read(B),Write(A),
- // but Read(B),Write(B) does conflict with Read(B),Write(B).
- SERIALIZABLE = 1; // Read from a consistent snapshot. Concurrent
- // transactions conflict if they cannot be serialized.
- // For example Read(A),Write(B) does conflict with
- // Read(B),Write(A) but Read(A) may not conflict with
- // Write(A).
- }
-
- // The transaction isolation level.
- optional IsolationLevel isolation_level = 1 [default=SNAPSHOT];
-}
-
-// The response for BeginTransaction.
-message BeginTransactionResponse {
-
- // The transaction identifier (always present).
- optional bytes /* serialized Transaction */ transaction = 1;
-}
-
-// The request for Rollback.
-message RollbackRequest {
-
- // The transaction identifier, returned by a call to
- // <code>beginTransaction</code>.
- required bytes /* serialized Transaction */ transaction = 1;
-}
-
-// The response for Rollback.
-message RollbackResponse {
-// Empty
-}
-
-// The request for Commit.
-message CommitRequest {
-
- enum Mode {
- TRANSACTIONAL = 1;
- NON_TRANSACTIONAL = 2;
- }
-
- // The transaction identifier, returned by a call to
- // <code>beginTransaction</code>. Must be set when mode is TRANSACTIONAL.
- optional bytes /* serialized Transaction */ transaction = 1;
- // The mutation to perform. Optional.
- optional Mutation mutation = 2;
- // The type of commit to perform. Either TRANSACTIONAL or NON_TRANSACTIONAL.
- optional Mode mode = 5 [default=TRANSACTIONAL];
-}
-
-// The response for Commit.
-message CommitResponse {
-
- // The result of performing the mutation (if any).
- optional MutationResult mutation_result = 1;
-}
-
-// The request for AllocateIds.
-message AllocateIdsRequest {
-
- // A list of keys with incomplete key paths to allocate IDs for.
- // No key may be reserved/read-only.
- repeated Key key = 1;
-}
-
-// The response for AllocateIds.
-message AllocateIdsResponse {
-
- // The keys specified in the request (in the same order), each with
- // its key path completed with a newly allocated ID.
- repeated Key key = 1;
-}
-
-// Each rpc normalizes the partition IDs of the keys in its input entities,
-// and always returns entities with keys with normalized partition IDs.
-// (Note that applies to all entities, including entities in values.)
-service DatastoreService {
- // Look up some entities by key.
- rpc Lookup(LookupRequest) returns (LookupResponse) {
- };
- // Query for entities.
- rpc RunQuery(RunQueryRequest) returns (RunQueryResponse) {
- };
- // Begin a new transaction.
- rpc BeginTransaction(BeginTransactionRequest) returns (BeginTransactionResponse) {
- };
- // Commit a transaction, optionally creating, deleting or modifying some
- // entities.
- rpc Commit(CommitRequest) returns (CommitResponse) {
- };
- // Roll back a transaction.
- rpc Rollback(RollbackRequest) returns (RollbackResponse) {
- };
- // Allocate IDs for incomplete keys (useful for referencing an entity before
- // it is inserted).
- rpc AllocateIds(AllocateIdsRequest) returns (AllocateIdsResponse) {
- };
-}
diff --git a/Godeps/_workspace/src/google.golang.org/cloud/internal/testutil/context.go b/Godeps/_workspace/src/google.golang.org/cloud/internal/testutil/context.go
deleted file mode 100644
index aafd683..0000000
--- a/Godeps/_workspace/src/google.golang.org/cloud/internal/testutil/context.go
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright 2014 Google Inc. All Rights Reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package testutil contains helper functions for writing tests.
-package testutil
-
-import (
- "io/ioutil"
- "log"
- "net/http"
- "os"
-
- "golang.org/x/net/context"
- "golang.org/x/oauth2"
- "golang.org/x/oauth2/google"
- "google.golang.org/cloud"
-)
-
-const (
- envProjID = "GCLOUD_TESTS_GOLANG_PROJECT_ID"
- envPrivateKey = "GCLOUD_TESTS_GOLANG_KEY"
-)
-
-func Context(scopes ...string) context.Context {
- key, projID := os.Getenv(envPrivateKey), os.Getenv(envProjID)
- if key == "" || projID == "" {
- log.Fatal("GCLOUD_TESTS_GOLANG_KEY and GCLOUD_TESTS_GOLANG_PROJECT_ID must be set. See CONTRIBUTING.md for details.")
- }
- jsonKey, err := ioutil.ReadFile(key)
- if err != nil {
- log.Fatalf("Cannot read the JSON key file, err: %v", err)
- }
- conf, err := google.JWTConfigFromJSON(jsonKey, scopes...)
- if err != nil {
- log.Fatal(err)
- }
- return cloud.NewContext(projID, conf.Client(oauth2.NoContext))
-}
-
-func NoAuthContext() context.Context {
- projID := os.Getenv(envProjID)
- if projID == "" {
- log.Fatal("GCLOUD_TESTS_GOLANG_PROJECT_ID must be set. See CONTRIBUTING.md for details.")
- }
- return cloud.NewContext(projID, &http.Client{Transport: http.DefaultTransport})
-}
--
1.9.3