Documentation ¶
Overview ¶
Package datastore provides access to the Google Cloud Datastore API.
See https://cloud.google.com/datastore/
Usage example:
import "google.golang.org/api/datastore/v1beta1" ... datastoreService, err := datastore.New(oauthHttpClient)
Index ¶
- Constants
- type GoogleDatastoreAdminV1beta1CommonMetadata
- type GoogleDatastoreAdminV1beta1EntityFilter
- type GoogleDatastoreAdminV1beta1ExportEntitiesMetadata
- type GoogleDatastoreAdminV1beta1ExportEntitiesRequest
- type GoogleDatastoreAdminV1beta1ExportEntitiesResponse
- type GoogleDatastoreAdminV1beta1ImportEntitiesMetadata
- type GoogleDatastoreAdminV1beta1ImportEntitiesRequest
- type GoogleDatastoreAdminV1beta1Progress
- type GoogleLongrunningOperation
- type ProjectsExportCall
- func (c *ProjectsExportCall) Context(ctx context.Context) *ProjectsExportCall
- func (c *ProjectsExportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error)
- func (c *ProjectsExportCall) Fields(s ...googleapi.Field) *ProjectsExportCall
- func (c *ProjectsExportCall) Header() http.Header
- type ProjectsImportCall
- func (c *ProjectsImportCall) Context(ctx context.Context) *ProjectsImportCall
- func (c *ProjectsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error)
- func (c *ProjectsImportCall) Fields(s ...googleapi.Field) *ProjectsImportCall
- func (c *ProjectsImportCall) Header() http.Header
- type ProjectsService
- type Service
- type Status
Constants ¶
const ( // View and manage your data across Google Cloud Platform services CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform" // View and manage your Google Cloud Datastore data DatastoreScope = "https://www.googleapis.com/auth/datastore" )
OAuth2 scopes used by this API.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GoogleDatastoreAdminV1beta1CommonMetadata ¶
type GoogleDatastoreAdminV1beta1CommonMetadata struct { // EndTime: The time the operation ended, either successfully or // otherwise. EndTime string `json:"endTime,omitempty"` // Labels: The client-assigned labels which were provided when the // operation was // created. May also include additional labels. Labels map[string]string `json:"labels,omitempty"` // OperationType: The type of the operation. Can be used as a filter // in // ListOperationsRequest. // // Possible values: // "OPERATION_TYPE_UNSPECIFIED" - Unspecified. // "EXPORT_ENTITIES" - ExportEntities. // "IMPORT_ENTITIES" - ImportEntities. OperationType string `json:"operationType,omitempty"` // StartTime: The time that work began on the operation. StartTime string `json:"startTime,omitempty"` // State: The current state of the Operation. // // Possible values: // "STATE_UNSPECIFIED" - Unspecified. // "INITIALIZING" - Request is being prepared for processing. // "PROCESSING" - Request is actively being processed. // "CANCELLING" - Request is in the process of being cancelled after // user called // google.longrunning.Operations.CancelOperation on the operation. // "FINALIZING" - Request has been processed and is in its // finalization stage. // "SUCCESSFUL" - Request has completed successfully. // "FAILED" - Request has finished being processed, but encountered an // error. // "CANCELLED" - Request has finished being cancelled after user // called // google.longrunning.Operations.CancelOperation. State string `json:"state,omitempty"` // ForceSendFields is a list of field names (e.g. "EndTime") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "EndTime") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1CommonMetadata: Metadata common to all Datastore Admin operations.
func (*GoogleDatastoreAdminV1beta1CommonMetadata) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1CommonMetadata) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1EntityFilter ¶
type GoogleDatastoreAdminV1beta1EntityFilter struct { // Kinds: If empty, then this represents all kinds. Kinds []string `json:"kinds,omitempty"` // NamespaceIds: An empty list represents all namespaces. This is the // preferred // usage for projects that don't use namespaces. // // An empty string element represents the default namespace. This should // be // used if the project has data in non-default namespaces, but doesn't // want to // include them. // Each namespace in this list must be unique. NamespaceIds []string `json:"namespaceIds,omitempty"` // ForceSendFields is a list of field names (e.g. "Kinds") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Kinds") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1EntityFilter: Identifies a subset of entities in a project. This is specified as combinations of kinds and namespaces (either or both of which may be all, as described in the following examples). Example usage:
Entire project:
kinds=[], namespace_ids=[]
Kinds Foo and Bar in all namespaces:
kinds=['Foo', 'Bar'], namespace_ids=[]
Kinds Foo and Bar only in the default namespace:
kinds=['Foo', 'Bar'], namespace_ids=['']
Kinds Foo and Bar in both the default and Baz namespaces:
kinds=['Foo', 'Bar'], namespace_ids=['', 'Baz']
The entire Baz namespace:
kinds=[], namespace_ids=['Baz']
func (*GoogleDatastoreAdminV1beta1EntityFilter) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1EntityFilter) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1ExportEntitiesMetadata ¶
type GoogleDatastoreAdminV1beta1ExportEntitiesMetadata struct { // Common: Metadata common to all Datastore Admin operations. Common *GoogleDatastoreAdminV1beta1CommonMetadata `json:"common,omitempty"` // EntityFilter: Description of which entities are being exported. EntityFilter *GoogleDatastoreAdminV1beta1EntityFilter `json:"entityFilter,omitempty"` // OutputUrlPrefix: Location for the export metadata and data files. // This will be the same // value as // the // google.datastore.admin.v1beta1.ExportEntitiesRequest.output_url_pr // efix // field. The final output location is provided // in // google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url. OutputUrlPrefix string `json:"outputUrlPrefix,omitempty"` // ProgressBytes: An estimate of the number of bytes processed. ProgressBytes *GoogleDatastoreAdminV1beta1Progress `json:"progressBytes,omitempty"` // ProgressEntities: An estimate of the number of entities processed. ProgressEntities *GoogleDatastoreAdminV1beta1Progress `json:"progressEntities,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1ExportEntitiesMetadata: Metadata for ExportEntities operations.
func (*GoogleDatastoreAdminV1beta1ExportEntitiesMetadata) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1ExportEntitiesMetadata) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1ExportEntitiesRequest ¶
type GoogleDatastoreAdminV1beta1ExportEntitiesRequest struct { // EntityFilter: Description of what data from the project is included // in the export. EntityFilter *GoogleDatastoreAdminV1beta1EntityFilter `json:"entityFilter,omitempty"` // Labels: Client-assigned labels. Labels map[string]string `json:"labels,omitempty"` // OutputUrlPrefix: Location for the export metadata and data // files. // // The full resource URL of the external storage location. Currently, // only // Google Cloud Storage is supported. So output_url_prefix should be of // the // form: `gs://BUCKET_NAME[/NAMESPACE_PATH]`, where `BUCKET_NAME` is // the // name of the Cloud Storage bucket and `NAMESPACE_PATH` is an optional // Cloud // Storage namespace path (this is not a Cloud Datastore namespace). For // more // information about Cloud Storage namespace paths, see // [Object // name // considerations](https://cloud.google.com/storage/docs/naming#obje // ct-considerations). // // The resulting files will be nested deeper than the specified URL // prefix. // The final output URL will be provided in // the // google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url // f // ield. That value should be used for subsequent ImportEntities // operations. // // By nesting the data files deeper, the same Cloud Storage bucket can // be used // in multiple ExportEntities operations without conflict. OutputUrlPrefix string `json:"outputUrlPrefix,omitempty"` // ForceSendFields is a list of field names (e.g. "EntityFilter") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "EntityFilter") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1ExportEntitiesRequest: The request for google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.
func (*GoogleDatastoreAdminV1beta1ExportEntitiesRequest) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1ExportEntitiesRequest) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1ExportEntitiesResponse ¶
type GoogleDatastoreAdminV1beta1ExportEntitiesResponse struct { // OutputUrl: Location of the output metadata file. This can be used to // begin an import // into Cloud Datastore (this project or another project). // See // google.datastore.admin.v1beta1.ImportEntitiesRequest.input_url. // On // ly present if the operation completed successfully. OutputUrl string `json:"outputUrl,omitempty"` // ForceSendFields is a list of field names (e.g. "OutputUrl") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "OutputUrl") to include in // API requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1ExportEntitiesResponse: The response for google.datastore.admin.v1beta1.DatastoreAdmin.ExportEntities.
func (*GoogleDatastoreAdminV1beta1ExportEntitiesResponse) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1ExportEntitiesResponse) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1ImportEntitiesMetadata ¶
type GoogleDatastoreAdminV1beta1ImportEntitiesMetadata struct { // Common: Metadata common to all Datastore Admin operations. Common *GoogleDatastoreAdminV1beta1CommonMetadata `json:"common,omitempty"` // EntityFilter: Description of which entities are being imported. EntityFilter *GoogleDatastoreAdminV1beta1EntityFilter `json:"entityFilter,omitempty"` // InputUrl: The location of the import metadata file. This will be the // same value as // the // google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url // field // . InputUrl string `json:"inputUrl,omitempty"` // ProgressBytes: An estimate of the number of bytes processed. ProgressBytes *GoogleDatastoreAdminV1beta1Progress `json:"progressBytes,omitempty"` // ProgressEntities: An estimate of the number of entities processed. ProgressEntities *GoogleDatastoreAdminV1beta1Progress `json:"progressEntities,omitempty"` // ForceSendFields is a list of field names (e.g. "Common") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Common") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1ImportEntitiesMetadata: Metadata for ImportEntities operations.
func (*GoogleDatastoreAdminV1beta1ImportEntitiesMetadata) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1ImportEntitiesMetadata) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1ImportEntitiesRequest ¶
type GoogleDatastoreAdminV1beta1ImportEntitiesRequest struct { // EntityFilter: Optionally specify which kinds/namespaces are to be // imported. If provided, // the list must be a subset of the EntityFilter used in creating the // export, // otherwise a FAILED_PRECONDITION error will be returned. If no filter // is // specified then all entities from the export are imported. EntityFilter *GoogleDatastoreAdminV1beta1EntityFilter `json:"entityFilter,omitempty"` // InputUrl: The full resource URL of the external storage location. // Currently, only // Google Cloud Storage is supported. So input_url should be of the // form: // `gs://BUCKET_NAME[/NAMESPACE_PATH]/OVERALL_EXPORT_METADATA_FILE` // , where // `BUCKET_NAME` is the name of the Cloud Storage bucket, // `NAMESPACE_PATH` is // an optional Cloud Storage namespace path (this is not a Cloud // Datastore // namespace), and `OVERALL_EXPORT_METADATA_FILE` is the metadata file // written // by the ExportEntities operation. For more information about Cloud // Storage // namespace paths, see // [Object // name // considerations](https://cloud.google.com/storage/docs/naming#obje // ct-considerations). // // For more information, // see // google.datastore.admin.v1beta1.ExportEntitiesResponse.output_url. InputUrl string `json:"inputUrl,omitempty"` // Labels: Client-assigned labels. Labels map[string]string `json:"labels,omitempty"` // ForceSendFields is a list of field names (e.g. "EntityFilter") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "EntityFilter") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1ImportEntitiesRequest: The request for google.datastore.admin.v1beta1.DatastoreAdmin.ImportEntities.
func (*GoogleDatastoreAdminV1beta1ImportEntitiesRequest) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1ImportEntitiesRequest) MarshalJSON() ([]byte, error)
type GoogleDatastoreAdminV1beta1Progress ¶
type GoogleDatastoreAdminV1beta1Progress struct { // WorkCompleted: The amount of work that has been completed. Note that // this may be greater // than work_estimated. WorkCompleted int64 `json:"workCompleted,omitempty,string"` // WorkEstimated: An estimate of how much work needs to be performed. // May be zero if the // work estimate is unavailable. WorkEstimated int64 `json:"workEstimated,omitempty,string"` // ForceSendFields is a list of field names (e.g. "WorkCompleted") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "WorkCompleted") to include // in API requests with the JSON null value. By default, fields with // empty values are omitted from API requests. However, any field with // an empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleDatastoreAdminV1beta1Progress: Measures the progress of a particular metric.
func (*GoogleDatastoreAdminV1beta1Progress) MarshalJSON ¶
func (s *GoogleDatastoreAdminV1beta1Progress) MarshalJSON() ([]byte, error)
type GoogleLongrunningOperation ¶
type GoogleLongrunningOperation struct { // Done: If the value is `false`, it means the operation is still in // progress. // If `true`, the operation is completed, and either `error` or // `response` is // available. Done bool `json:"done,omitempty"` // Error: The error result of the operation in case of failure or // cancellation. Error *Status `json:"error,omitempty"` // Metadata: Service-specific metadata associated with the operation. // It typically // contains progress information and common metadata such as create // time. // Some services might not provide such metadata. Any method that // returns a // long-running operation should document the metadata type, if any. Metadata googleapi.RawMessage `json:"metadata,omitempty"` // Name: The server-assigned name, which is only unique within the same // service that // originally returns it. If you use the default HTTP mapping, // the // `name` should have the format of `operations/some/unique/name`. Name string `json:"name,omitempty"` // Response: The normal response of the operation in case of success. // If the original // method returns no data on success, such as `Delete`, the response // is // `google.protobuf.Empty`. If the original method is // standard // `Get`/`Create`/`Update`, the response should be the resource. For // other // methods, the response should have the type `XxxResponse`, where // `Xxx` // is the original method name. For example, if the original method // name // is `TakeSnapshot()`, the inferred response type // is // `TakeSnapshotResponse`. Response googleapi.RawMessage `json:"response,omitempty"` // ServerResponse contains the HTTP response code and headers from the // server. googleapi.ServerResponse `json:"-"` // ForceSendFields is a list of field names (e.g. "Done") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Done") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
GoogleLongrunningOperation: This resource represents a long-running operation that is the result of a network API call.
func (*GoogleLongrunningOperation) MarshalJSON ¶
func (s *GoogleLongrunningOperation) MarshalJSON() ([]byte, error)
type ProjectsExportCall ¶
type ProjectsExportCall struct {
// contains filtered or unexported fields
}
func (*ProjectsExportCall) Context ¶
func (c *ProjectsExportCall) Context(ctx context.Context) *ProjectsExportCall
Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.
func (*ProjectsExportCall) Do ¶
func (c *ProjectsExportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error)
Do executes the "datastore.projects.export" call. Exactly one of *GoogleLongrunningOperation or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *GoogleLongrunningOperation.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.
func (*ProjectsExportCall) Fields ¶
func (c *ProjectsExportCall) Fields(s ...googleapi.Field) *ProjectsExportCall
Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.
func (*ProjectsExportCall) Header ¶
func (c *ProjectsExportCall) Header() http.Header
Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.
type ProjectsImportCall ¶
type ProjectsImportCall struct {
// contains filtered or unexported fields
}
func (*ProjectsImportCall) Context ¶
func (c *ProjectsImportCall) Context(ctx context.Context) *ProjectsImportCall
Context sets the context to be used in this call's Do method. Any pending HTTP request will be aborted if the provided context is canceled.
func (*ProjectsImportCall) Do ¶
func (c *ProjectsImportCall) Do(opts ...googleapi.CallOption) (*GoogleLongrunningOperation, error)
Do executes the "datastore.projects.import" call. Exactly one of *GoogleLongrunningOperation or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *GoogleLongrunningOperation.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.
func (*ProjectsImportCall) Fields ¶
func (c *ProjectsImportCall) Fields(s ...googleapi.Field) *ProjectsImportCall
Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.
func (*ProjectsImportCall) Header ¶
func (c *ProjectsImportCall) Header() http.Header
Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.
type ProjectsService ¶
type ProjectsService struct {
// contains filtered or unexported fields
}
func NewProjectsService ¶
func NewProjectsService(s *Service) *ProjectsService
func (*ProjectsService) Export ¶
func (r *ProjectsService) Export(projectId string, googledatastoreadminv1beta1exportentitiesrequest *GoogleDatastoreAdminV1beta1ExportEntitiesRequest) *ProjectsExportCall
Export: Exports a copy of all or a subset of entities from Google Cloud Datastore to another storage system, such as Google Cloud Storage. Recent updates to entities may not be reflected in the export. The export occurs in the background and its progress can be monitored and managed via the Operation resource that is created. The output of an export may only be used once the associated operation is done. If an export operation is cancelled before completion it may leave partial data behind in Google Cloud Storage.
func (*ProjectsService) Import ¶
func (r *ProjectsService) Import(projectId string, googledatastoreadminv1beta1importentitiesrequest *GoogleDatastoreAdminV1beta1ImportEntitiesRequest) *ProjectsImportCall
Import: Imports entities into Google Cloud Datastore. Existing entities with the same key are overwritten. The import occurs in the background and its progress can be monitored and managed via the Operation resource that is created. If an ImportEntities operation is cancelled, it is possible that a subset of the data has already been imported to Cloud Datastore.
type Service ¶
type Service struct { BasePath string // API endpoint base URL UserAgent string // optional additional User-Agent fragment Projects *ProjectsService // contains filtered or unexported fields }
type Status ¶
type Status struct { // Code: The status code, which should be an enum value of // google.rpc.Code. Code int64 `json:"code,omitempty"` // Details: A list of messages that carry the error details. There is a // common set of // message types for APIs to use. Details []googleapi.RawMessage `json:"details,omitempty"` // Message: A developer-facing error message, which should be in // English. Any // user-facing error message should be localized and sent in // the // google.rpc.Status.details field, or localized by the client. Message string `json:"message,omitempty"` // ForceSendFields is a list of field names (e.g. "Code") to // unconditionally include in API requests. By default, fields with // empty values are omitted from API requests. However, any non-pointer, // non-interface field appearing in ForceSendFields will be sent to the // server regardless of whether the field is empty or not. This may be // used to include empty fields in Patch requests. ForceSendFields []string `json:"-"` // NullFields is a list of field names (e.g. "Code") to include in API // requests with the JSON null value. By default, fields with empty // values are omitted from API requests. However, any field with an // empty value appearing in NullFields will be sent to the server as // null. It is an error if a field in this list has a non-empty value. // This may be used to include null fields in Patch requests. NullFields []string `json:"-"` }
Status: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). The error model is designed to be:
- Simple to use and understand for most users - Flexible enough to meet unexpected needs
Overview ¶
The `Status` message contains three pieces of data: error code, error message, and error details. The error code should be an enum value of google.rpc.Code, but it may accept additional error codes if needed. The error message should be a developer-facing English message that helps developers *understand* and *resolve* the error. If a localized user-facing error message is needed, put the localized message in the error details or localize it in the client. The optional error details may contain arbitrary information about the error. There is a predefined set of error detail types in the package `google.rpc` that can be used for common error conditions.
Language mapping ¶
The `Status` message is the logical representation of the error model, but it is not necessarily the actual wire format. When the `Status` message is exposed in different client libraries and different wire protocols, it can be mapped differently. For example, it will likely be mapped to some exceptions in Java, but more likely mapped to some error codes in C.
Other uses ¶
The error model and the `Status` message can be used in a variety of environments, either with or without APIs, to provide a consistent developer experience across different environments.
Example uses of this error model include:
- Partial errors. If a service needs to return partial errors to the client,
it may embed the `Status` in the normal response to indicate the
partial
errors.
- Workflow errors. A typical workflow has multiple steps. Each step may
have a `Status` message for error reporting.
- Batch operations. If a client uses batch request and batch response, the
`Status` message should be used directly inside batch response,
one for
each error sub-response.
- Asynchronous operations. If an API call embeds asynchronous operation
results in its response, the status of those operations should
be
represented directly using the `Status` message.
- Logging. If some API errors are stored in logs, the message `Status` could
be used directly after any stripping needed for security/privacy
reasons.