Documentation

Overview

Package firebaseml provides access to the Firebase ML API.

For product documentation, see: https://firebase.google.com

Creating a client

Usage example:

import "google.golang.org/api/firebaseml/v1beta2"
...
ctx := context.Background()
firebasemlService, err := firebaseml.NewService(ctx)

In this example, Google Application Default Credentials are used for authentication.

For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.

Other authentication options

To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:

firebasemlService, err := firebaseml.NewService(ctx, option.WithAPIKey("AIza..."))

To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:

config := &oauth2.Config{...}
// ...
token, err := config.Exchange(ctx, ...)
firebasemlService, err := firebaseml.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))

See https://godoc.org/google.golang.org/api/option/ for details on options.

Index

Constants

View Source
const (
	// View and manage your data across Google Cloud Platform services
	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
)

OAuth2 scopes used by this API.

Variables

This section is empty.

Functions

This section is empty.

Types

type Empty

type Empty struct {
	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`
}

Empty: A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`.

type ListModelsResponse

type ListModelsResponse struct {
	// Models: The list of models
	Models []*Model `json:"models,omitempty"`

	// NextPageToken: Token to retrieve the next page of results, or empty
	// if there are no more results in the list.
	NextPageToken string `json:"nextPageToken,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "Models") 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. "Models") 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:"-"`
}

ListModelsResponse: The response for list models

func (*ListModelsResponse) MarshalJSON

func (s *ListModelsResponse) MarshalJSON() ([]byte, error)

type Model

type Model struct {
	// ActiveOperations: Output only. Lists operation ids associated with
	// this model whose status is NOT done.
	ActiveOperations []*Operation `json:"activeOperations,omitempty"`

	// CreateTime: Output only. Timestamp when this model was created in
	// Firebase ML.
	CreateTime string `json:"createTime,omitempty"`

	// DisplayName: Required. The name of the model to create. The name can
	// be up to 32 characters long and can consist only of ASCII Latin
	// letters A-Z and a-z, underscores(_) and ASCII digits 0-9. It must
	// start with a letter.
	DisplayName string `json:"displayName,omitempty"`

	// Etag: Output only. See RFC7232
	// https://tools.ietf.org/html/rfc7232#section-2.3
	Etag string `json:"etag,omitempty"`

	// ModelHash: Output only. The model_hash will change if a new file is
	// available for download.
	ModelHash string `json:"modelHash,omitempty"`

	// Name: The resource name of the Model. Model names have the form
	// `projects/{project_id}/models/{model_id}` The name is ignored when
	// creating a model.
	Name string `json:"name,omitempty"`

	// State: State common to all model types. Includes publishing and
	// validation information.
	State *ModelState `json:"state,omitempty"`

	// Tags: User defined tags which can be used to group/filter models
	// during listing
	Tags []string `json:"tags,omitempty"`

	// TfliteModel: A TFLite Model
	TfliteModel *TfLiteModel `json:"tfliteModel,omitempty"`

	// UpdateTime: Output only. Timestamp when this model was updated in
	// Firebase ML.
	UpdateTime string `json:"updateTime,omitempty"`

	// ServerResponse contains the HTTP response code and headers from the
	// server.
	googleapi.ServerResponse `json:"-"`

	// ForceSendFields is a list of field names (e.g. "ActiveOperations") 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. "ActiveOperations") 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:"-"`
}

Model: An ML model hosted in Firebase ML

func (*Model) MarshalJSON

func (s *Model) MarshalJSON() ([]byte, error)

type ModelOperationMetadata

type ModelOperationMetadata struct {
	// Possible values:
	//   "BASIC_OPERATION_STATUS_UNSPECIFIED" - The status is unspecified
	//   "BASIC_OPERATION_STATUS_UPLOADING" - The model file is being
	// uploaded
	//   "BASIC_OPERATION_STATUS_VERIFYING" - The model file is being
	// verified
	BasicOperationStatus string `json:"basicOperationStatus,omitempty"`

	// Name: The name of the model we are creating/updating The name must
	// have the form `projects/{project_id}/models/{model_id}`
	Name string `json:"name,omitempty"`

	// ForceSendFields is a list of field names (e.g.
	// "BasicOperationStatus") 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. "BasicOperationStatus") 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:"-"`
}

ModelOperationMetadata: This is returned in the longrunning operations for create/update.

func (*ModelOperationMetadata) MarshalJSON

func (s *ModelOperationMetadata) MarshalJSON() ([]byte, error)

type ModelState

type ModelState struct {
	// Published: Indicates if this model has been published.
	Published bool `json:"published,omitempty"`

	// ValidationError: Output only. Indicates the latest validation error
	// on the model if any. A model may have validation errors if there were
	// problems during the model creation/update. e.g. in the case of a
	// TfLiteModel, if a tflite model file was missing or in the wrong
	// format. This field will be empty for valid models.
	ValidationError *Status `json:"validationError,omitempty"`

	// ForceSendFields is a list of field names (e.g. "Published") 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. "Published") 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:"-"`
}

ModelState: State common to all model types. Includes publishing and validation information.

func (*ModelState) MarshalJSON

func (s *ModelState) MarshalJSON() ([]byte, error)

type Operation

type Operation struct {
	// Done: If the value is `false`, it means the operation is still in
	// progress. If `true`, the operation is completed, and either `error`
	// or `response` is available.
	Done bool `json:"done,omitempty"`

	// Error: The error result of the operation in case of failure or
	// cancellation.
	Error *Status `json:"error,omitempty"`

	// Metadata: Service-specific metadata associated with the operation. It
	// typically contains progress information and common metadata such as
	// create time. Some services might not provide such metadata. Any
	// method that returns a long-running operation should document the
	// metadata type, if any.
	Metadata googleapi.RawMessage `json:"metadata,omitempty"`

	// Name: The server-assigned name, which is only unique within the same
	// service that originally returns it. If you use the default HTTP
	// mapping, the `name` should be a resource name ending with
	// `operations/{unique_id}`.
	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:"-"`
}

Operation: This resource represents a long-running operation that is the result of a network API call.

func (*Operation) MarshalJSON

func (s *Operation) MarshalJSON() ([]byte, error)

type ProjectsModelsCreateCall

type ProjectsModelsCreateCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsModelsCreateCall) Context

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 (*ProjectsModelsCreateCall) Do

Do executes the "firebaseml.projects.models.create" call. Exactly one of *Operation or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Operation.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ProjectsModelsCreateCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsModelsCreateCall) Header

func (c *ProjectsModelsCreateCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

type ProjectsModelsDeleteCall

type ProjectsModelsDeleteCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsModelsDeleteCall) Context

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 (*ProjectsModelsDeleteCall) Do

Do executes the "firebaseml.projects.models.delete" call. Exactly one of *Empty or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Empty.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ProjectsModelsDeleteCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsModelsDeleteCall) Header

func (c *ProjectsModelsDeleteCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

type ProjectsModelsGetCall

type ProjectsModelsGetCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsModelsGetCall) Context

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 (*ProjectsModelsGetCall) Do

Do executes the "firebaseml.projects.models.get" call. Exactly one of *Model or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Model.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 (*ProjectsModelsGetCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsModelsGetCall) Header

func (c *ProjectsModelsGetCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

func (*ProjectsModelsGetCall) IfNoneMatch

func (c *ProjectsModelsGetCall) IfNoneMatch(entityTag string) *ProjectsModelsGetCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

type ProjectsModelsListCall

type ProjectsModelsListCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsModelsListCall) Context

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 (*ProjectsModelsListCall) Do

Do executes the "firebaseml.projects.models.list" call. Exactly one of *ListModelsResponse or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *ListModelsResponse.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 (*ProjectsModelsListCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsModelsListCall) Filter

Filter sets the optional parameter "filter": A filter for the list e.g. 'tags: abc' to list models which are tagged with "abc"

func (*ProjectsModelsListCall) Header

func (c *ProjectsModelsListCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

func (*ProjectsModelsListCall) IfNoneMatch

func (c *ProjectsModelsListCall) IfNoneMatch(entityTag string) *ProjectsModelsListCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

func (*ProjectsModelsListCall) PageSize

func (c *ProjectsModelsListCall) PageSize(pageSize int64) *ProjectsModelsListCall

PageSize sets the optional parameter "pageSize": The maximum number of items to return

func (*ProjectsModelsListCall) PageToken

func (c *ProjectsModelsListCall) PageToken(pageToken string) *ProjectsModelsListCall

PageToken sets the optional parameter "pageToken": The next_page_token value returned from a previous List request, if any.

func (*ProjectsModelsListCall) Pages

Pages invokes f for each page of results. A non-nil error returned from f will halt the iteration. The provided context supersedes any context provided to the Context method.

type ProjectsModelsPatchCall

type ProjectsModelsPatchCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsModelsPatchCall) Context

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 (*ProjectsModelsPatchCall) Do

Do executes the "firebaseml.projects.models.patch" call. Exactly one of *Operation or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Operation.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ProjectsModelsPatchCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsModelsPatchCall) Header

func (c *ProjectsModelsPatchCall) Header() http.Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

func (*ProjectsModelsPatchCall) UpdateMask

func (c *ProjectsModelsPatchCall) UpdateMask(updateMask string) *ProjectsModelsPatchCall

UpdateMask sets the optional parameter "updateMask": The update mask

type ProjectsModelsService

type ProjectsModelsService struct {
	// contains filtered or unexported fields
}

func NewProjectsModelsService

func NewProjectsModelsService(s *Service) *ProjectsModelsService

func (*ProjectsModelsService) Create

func (r *ProjectsModelsService) Create(parent string, model *Model) *ProjectsModelsCreateCall

Create: Creates a model in Firebase ML. The longrunning operation will eventually return a Model

func (*ProjectsModelsService) Delete

Delete: Deletes a model

func (*ProjectsModelsService) Get

Get: Gets a model resource.

func (*ProjectsModelsService) List

List: Lists the models

func (*ProjectsModelsService) Patch

Patch: Updates a model. The longrunning operation will eventually return a Model.

type ProjectsOperationsGetCall

type ProjectsOperationsGetCall struct {
	// contains filtered or unexported fields
}

func (*ProjectsOperationsGetCall) Context

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 (*ProjectsOperationsGetCall) Do

Do executes the "firebaseml.projects.operations.get" call. Exactly one of *Operation or error will be non-nil. Any non-2xx status code is an error. Response headers are in either *Operation.ServerResponse.Header or (if a response was returned at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check whether the returned error was because http.StatusNotModified was returned.

func (*ProjectsOperationsGetCall) Fields

Fields allows partial responses to be retrieved. See https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more information.

func (*ProjectsOperationsGetCall) Header

Header returns an http.Header that can be modified by the caller to add HTTP headers to the request.

func (*ProjectsOperationsGetCall) IfNoneMatch

func (c *ProjectsOperationsGetCall) IfNoneMatch(entityTag string) *ProjectsOperationsGetCall

IfNoneMatch sets the optional parameter which makes the operation fail if the object's ETag matches the given value. This is useful for getting updates only after the object has changed since the last request. Use googleapi.IsNotModified to check whether the response error from Do is the result of In-None-Match.

type ProjectsOperationsService

type ProjectsOperationsService struct {
	// contains filtered or unexported fields
}

func NewProjectsOperationsService

func NewProjectsOperationsService(s *Service) *ProjectsOperationsService

func (*ProjectsOperationsService) Get

Get: Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.

type ProjectsService

type ProjectsService struct {
	Models *ProjectsModelsService

	Operations *ProjectsOperationsService
	// contains filtered or unexported fields
}

func NewProjectsService

func NewProjectsService(s *Service) *ProjectsService

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
}

func New

func New(client *http.Client) (*Service, error)

New creates a new Service. It uses the provided http.Client for requests.

Deprecated: please use NewService instead. To provide a custom HTTP client, use option.WithHTTPClient. If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.

func NewService

func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error)

NewService creates a new Service.

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). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).

func (*Status) MarshalJSON

func (s *Status) MarshalJSON() ([]byte, error)

type TfLiteModel

type TfLiteModel struct {
	// AutomlModel: The AutoML model id referencing a model you created with
	// the AutoML API. The name should have format
	// 'projects//locations//models/' (This is the model resource name
	// returned from the AutoML API)
	AutomlModel string `json:"automlModel,omitempty"`

	// GcsTfliteUri: The TfLite file containing the model. (Stored in Google
	// Cloud). The gcs_tflite_uri should have form:
	// gs://some-bucket/some-model.tflite Note: If you update the file in
	// the original location, it is necessary to call UpdateModel for ML to
	// pick up and validate the updated file.
	GcsTfliteUri string `json:"gcsTfliteUri,omitempty"`

	// SizeBytes: Output only. The size of the TFLite model
	SizeBytes string `json:"sizeBytes,omitempty"`

	// ForceSendFields is a list of field names (e.g. "AutomlModel") 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. "AutomlModel") 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:"-"`
}

TfLiteModel: Information that is specific to TfLite models.

func (*TfLiteModel) MarshalJSON

func (s *TfLiteModel) MarshalJSON() ([]byte, error)