blob: 36648d1a7d319bac2952f218441da2c00779d33f [file]
// Copyright 2026 Google LLC.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// Code generated file. DO NOT EDIT.
// Package firebasecrashlytics provides access to the Firebase Crashlytics API.
//
// For product documentation, see: https://firebase.google.com/docs/crashlytics
//
// # Library status
//
// These client libraries are officially supported by Google. However, this
// library is considered complete and is in maintenance mode. This means
// that we will address critical bugs and security issues but will not add
// any new features.
//
// When possible, we recommend using our newer
// [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
// that are still actively being worked and iterated on.
//
// # Creating a client
//
// Usage example:
//
// import "google.golang.org/api/firebasecrashlytics/v1alpha"
// ...
// ctx := context.Background()
// firebasecrashlyticsService, err := firebasecrashlytics.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
//
// By default, all available scopes (see "Constants") are used to authenticate.
// To restrict scopes, use [google.golang.org/api/option.WithScopes]:
//
// firebasecrashlyticsService, err := firebasecrashlytics.NewService(ctx, option.WithScopes(firebasecrashlytics.FirebaseScope))
//
// To use an API key for authentication (note: some APIs do not support API
// keys), use [google.golang.org/api/option.WithAPIKey]:
//
// firebasecrashlyticsService, err := firebasecrashlytics.NewService(ctx, option.WithAPIKey("AIza..."))
//
// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
// flow, use [google.golang.org/api/option.WithTokenSource]:
//
// config := &oauth2.Config{...}
// // ...
// token, err := config.Exchange(ctx, ...)
// firebasecrashlyticsService, err := firebasecrashlytics.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
//
// See [google.golang.org/api/option.ClientOption] for details on options.
package firebasecrashlytics // import "google.golang.org/api/firebasecrashlytics/v1alpha"
import (
"bytes"
"context"
"encoding/json"
"errors"
"fmt"
"io"
"log/slog"
"net/http"
"net/url"
"strconv"
"strings"
"github.com/googleapis/gax-go/v2/internallog"
googleapi "google.golang.org/api/googleapi"
internal "google.golang.org/api/internal"
gensupport "google.golang.org/api/internal/gensupport"
option "google.golang.org/api/option"
internaloption "google.golang.org/api/option/internaloption"
htransport "google.golang.org/api/transport/http"
)
// Always reference these packages, just in case the auto-generated code
// below doesn't.
var _ = bytes.NewBuffer
var _ = strconv.Itoa
var _ = fmt.Sprintf
var _ = json.NewDecoder
var _ = io.Copy
var _ = url.Parse
var _ = gensupport.MarshalJSON
var _ = googleapi.Version
var _ = errors.New
var _ = strings.Replace
var _ = context.Canceled
var _ = internaloption.WithDefaultEndpoint
var _ = internal.Version
var _ = internallog.New
const apiId = "firebasecrashlytics:v1alpha"
const apiName = "firebasecrashlytics"
const apiVersion = "v1alpha"
const basePath = "https://firebasecrashlytics.googleapis.com/"
const basePathTemplate = "https://firebasecrashlytics.UNIVERSE_DOMAIN/"
const mtlsBasePath = "https://firebasecrashlytics.mtls.googleapis.com/"
// OAuth2 scopes used by this API.
const (
// See, edit, configure, and delete your Google Cloud data and see the email
// address for your Google Account.
CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
// View and administer all your Firebase data and settings
FirebaseScope = "https://www.googleapis.com/auth/firebase"
)
// NewService creates a new Service.
func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
scopesOption := internaloption.WithDefaultScopes(
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/firebase",
)
// NOTE: prepend, so we don't override user-specified scopes.
opts = append([]option.ClientOption{scopesOption}, opts...)
opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
opts = append(opts, internaloption.EnableNewAuthLibrary())
client, endpoint, err := htransport.NewClient(ctx, opts...)
if err != nil {
return nil, err
}
s := &Service{client: client, BasePath: basePath, logger: internaloption.GetLogger(opts)}
s.Projects = NewProjectsService(s)
if endpoint != "" {
s.BasePath = endpoint
}
return s, nil
}
// 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 New(client *http.Client) (*Service, error) {
if client == nil {
return nil, errors.New("client is nil")
}
return NewService(context.TODO(), option.WithHTTPClient(client))
}
type Service struct {
client *http.Client
logger *slog.Logger
BasePath string // API endpoint base URL
UserAgent string // optional additional User-Agent fragment
Projects *ProjectsService
}
func (s *Service) userAgent() string {
if s.UserAgent == "" {
return googleapi.UserAgent
}
return googleapi.UserAgent + " " + s.UserAgent
}
func NewProjectsService(s *Service) *ProjectsService {
rs := &ProjectsService{s: s}
rs.Apps = NewProjectsAppsService(s)
return rs
}
type ProjectsService struct {
s *Service
Apps *ProjectsAppsService
}
func NewProjectsAppsService(s *Service) *ProjectsAppsService {
rs := &ProjectsAppsService{s: s}
rs.Events = NewProjectsAppsEventsService(s)
rs.Issues = NewProjectsAppsIssuesService(s)
rs.Reports = NewProjectsAppsReportsService(s)
rs.Users = NewProjectsAppsUsersService(s)
return rs
}
type ProjectsAppsService struct {
s *Service
Events *ProjectsAppsEventsService
Issues *ProjectsAppsIssuesService
Reports *ProjectsAppsReportsService
Users *ProjectsAppsUsersService
}
func NewProjectsAppsEventsService(s *Service) *ProjectsAppsEventsService {
rs := &ProjectsAppsEventsService{s: s}
return rs
}
type ProjectsAppsEventsService struct {
s *Service
}
func NewProjectsAppsIssuesService(s *Service) *ProjectsAppsIssuesService {
rs := &ProjectsAppsIssuesService{s: s}
rs.Notes = NewProjectsAppsIssuesNotesService(s)
return rs
}
type ProjectsAppsIssuesService struct {
s *Service
Notes *ProjectsAppsIssuesNotesService
}
func NewProjectsAppsIssuesNotesService(s *Service) *ProjectsAppsIssuesNotesService {
rs := &ProjectsAppsIssuesNotesService{s: s}
return rs
}
type ProjectsAppsIssuesNotesService struct {
s *Service
}
func NewProjectsAppsReportsService(s *Service) *ProjectsAppsReportsService {
rs := &ProjectsAppsReportsService{s: s}
return rs
}
type ProjectsAppsReportsService struct {
s *Service
}
func NewProjectsAppsUsersService(s *Service) *ProjectsAppsUsersService {
rs := &ProjectsAppsUsersService{s: s}
return rs
}
type ProjectsAppsUsersService struct {
s *Service
}
// BatchGetEventsResponse: Response message for the BatchGetEvents method.
type BatchGetEventsResponse struct {
// Events: The list of retrieved events.
Events []*Event `json:"events,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Events") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Events") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchGetEventsResponse) MarshalJSON() ([]byte, error) {
type NoMethod BatchGetEventsResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchUpdateIssuesRequest: Request message for the BatchUpdateIssues method.
type BatchUpdateIssuesRequest struct {
// Requests: Required. The request message specifying the resources to update.
// A maximum of 100 issues can be modified in a batch.
Requests []*UpdateIssueRequest `json:"requests,omitempty"`
// UpdateMask: Optional. The list of Issue fields to update. If this is set,
// the update_mask field in the UpdateIssueRequest messages must either be
// empty or match this field.
UpdateMask string `json:"updateMask,omitempty"`
// ForceSendFields is a list of field names (e.g. "Requests") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Requests") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchUpdateIssuesRequest) MarshalJSON() ([]byte, error) {
type NoMethod BatchUpdateIssuesRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// BatchUpdateIssuesResponse: Response message for the BatchUpdateIssues
// method.
type BatchUpdateIssuesResponse struct {
// Issues: Issues updated in the same order as in BatchUpdateIssuesRequest.
Issues []*Issue `json:"issues,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Issues") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Issues") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s BatchUpdateIssuesResponse) MarshalJSON() ([]byte, error) {
type NoMethod BatchUpdateIssuesResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Breadcrumb: Analytics events recorded during the session.
type Breadcrumb struct {
// EventTime: Device timestamp for the event.
EventTime string `json:"eventTime,omitempty"`
// Params: Event parameters.
Params map[string]string `json:"params,omitempty"`
// Title: Analytic event name.
Title string `json:"title,omitempty"`
// ForceSendFields is a list of field names (e.g. "EventTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "EventTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Breadcrumb) MarshalJSON() ([]byte, error) {
type NoMethod Breadcrumb
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Browser: Web browser metadata.
type Browser struct {
// Browser: Browser name.
Browser string `json:"browser,omitempty"`
// DisplayName: Browser name and version number. Formatted to be suitable for
// passing to BrowserFilter.
DisplayName string `json:"displayName,omitempty"`
// DisplayVersion: Browser display version number.
DisplayVersion string `json:"displayVersion,omitempty"`
// ForceSendFields is a list of field names (e.g. "Browser") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Browser") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Browser) MarshalJSON() ([]byte, error) {
type NoMethod Browser
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// CustomAttribute: Developer-provided custom key-value pair metadata.
type CustomAttribute struct {
// Key: Output only. Custom attribute key name.
Key string `json:"key,omitempty"`
// Value: Output only. Custom attribute value.
Value string `json:"value,omitempty"`
// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Key") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s CustomAttribute) MarshalJSON() ([]byte, error) {
type NoMethod CustomAttribute
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// DeleteUserCrashReportsResponse: Response message for the
// DeleteUserCrashReports method. All crash reports associated with the
// specified user will be deleted typically within 24 hours of receiving the
// crash report.
type DeleteUserCrashReportsResponse struct {
// TargetCompleteTime: Target time to complete the delete crash reports
// operation.
TargetCompleteTime string `json:"targetCompleteTime,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "TargetCompleteTime") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "TargetCompleteTime") to include
// in API requests with the JSON null value. By default, fields with empty
// values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s DeleteUserCrashReportsResponse) MarshalJSON() ([]byte, error) {
type NoMethod DeleteUserCrashReportsResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Device: Mobile device metadata.
type Device struct {
// Architecture: Device processor architecture.
Architecture string `json:"architecture,omitempty"`
// CompanyName: An invariant name of the manufacturer that submitted this
// product in its most recognizable public form, e.g. "Google".
CompanyName string `json:"companyName,omitempty"`
// DisplayName: Full device name, suitable for passing to DeviceFilter. Format:
// "manufacturer (model)".
DisplayName string `json:"displayName,omitempty"`
// FormFactor: See FormFactor message.
//
// Possible values:
// "FORM_FACTOR_UNSPECIFIED" - Unknown.
// "PHONE" - Includes mobile phones, small foldables and other form factors
// not fitting the other categories.
// "TABLET" - Includes tablets and larger foldables.
// "DESKTOP" - Includes desktops, laptops, Chromebooks, etc.
// "TV" - Includes televisions and set-tops.
// "WATCH" - Includes both watches and other wearables.
FormFactor string `json:"formFactor,omitempty"`
// Manufacturer: Device brand name which is consistent with
// android.os.Build.BRAND.
Manufacturer string `json:"manufacturer,omitempty"`
// MarketingName: Marketing name, most recognizable public form, e.g. "Pixel
// 6".
MarketingName string `json:"marketingName,omitempty"`
// Model: The model name which is consistent with android.os.Build.MODEL, e.g.
// ("SPH-L710", "GT-I9300").
Model string `json:"model,omitempty"`
// ForceSendFields is a list of field names (e.g. "Architecture") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Architecture") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Device) MarshalJSON() ([]byte, error) {
type NoMethod Device
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Empty: A generic empty message that you can re-use to avoid defining
// duplicated empty messages in your APIs. A typical example is to use it as
// the request or the response type of an API method. For instance: service Foo
// { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
type Empty struct {
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
}
// Error: A non-fatal error and its stacktrace, only from Apple apps.
type Error struct {
// Blamed: True when the Crashlytics analysis has determined that the
// stacktrace in this error is where the fault occurred.
Blamed bool `json:"blamed,omitempty"`
// Code: Error code associated with the app's custom logged NSError.
Code int64 `json:"code,omitempty,string"`
// Frames: The frames in the error's stacktrace.
Frames []*Frame `json:"frames,omitempty"`
// Queue: The queue on which the thread was running.
Queue string `json:"queue,omitempty"`
// Subtitle: The subtitle of the error.
Subtitle string `json:"subtitle,omitempty"`
// Title: The title of the error.
Title string `json:"title,omitempty"`
// ForceSendFields is a list of field names (e.g. "Blamed") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Blamed") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Error) MarshalJSON() ([]byte, error) {
type NoMethod Error
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Event: The message describing a single Crashlytics event. Related to
// BigQuery export schema, which can be found at Export Crashlytics data to
// BigQuery
// (https://firebase.google.com/docs/crashlytics/bigquery-export#dataset-schema-crashlytics)
type Event struct {
// AppOrientation: App orientation at the time of the crash (portrait or
// landscape).
AppOrientation string `json:"appOrientation,omitempty"`
// BlameFrame: The stack trace frame blamed by Crashlytics processing. May not
// be present in future analyzer.
BlameFrame *Frame `json:"blameFrame,omitempty"`
// Breadcrumbs: Analytics events recorded by the analytics SDK during the
// session.
Breadcrumbs []*Breadcrumb `json:"breadcrumbs,omitempty"`
// Browser: Browser and version.
Browser *Browser `json:"browser,omitempty"`
// BuildStamp: Metadata provided by the app's build system, including version
// control repository info.
BuildStamp string `json:"buildStamp,omitempty"`
// BundleOrPackage: The bundle name for iOS apps or the package name of Android
// apps. Format: "com.mycompany.myapp".
BundleOrPackage string `json:"bundleOrPackage,omitempty"`
// CrashlyticsSdkVersion: Crashlytics SDK version.
CrashlyticsSdkVersion string `json:"crashlyticsSdkVersion,omitempty"`
// CustomKeys: Custom keys set by the developer during the session.
CustomKeys map[string]string `json:"customKeys,omitempty"`
// Device: Mobile device metadata.
Device *Device `json:"device,omitempty"`
// DeviceOrientation: Device orientation at the time of the crash (portrait or
// landscape).
DeviceOrientation string `json:"deviceOrientation,omitempty"`
// Errors: Apple only. A non-fatal error captured by the iOS SDK and its
// stacktrace.
Errors []*Error `json:"errors,omitempty"`
// EventId: Output only. Immutable. The unique event identifier is assigned
// during processing.
EventId string `json:"eventId,omitempty"`
// EventTime: Device timestamp that the event was recorded.
EventTime string `json:"eventTime,omitempty"`
// Exceptions: Android and web only. Exceptions that occurred during this
// event. Nested exceptions are presented in reverse chronological order, so
// that the last record is the first exception thrown.
Exceptions []*Exception `json:"exceptions,omitempty"`
// InstallationUuid: Unique identifier for the device-app installation. This
// field is used to compute the unique number of impacted users.
InstallationUuid string `json:"installationUuid,omitempty"`
// Issue: Details for the [Issue] assigned to this [Event].
Issue *Issue `json:"issue,omitempty"`
// IssueSubtitle: The subtitle of the issue in which the event was grouped.
// This is usually a symbol or an exception message.
IssueSubtitle string `json:"issueSubtitle,omitempty"`
// IssueTitle: The title of the issue in which the event was grouped. This is
// usually a source file or method name.
IssueTitle string `json:"issueTitle,omitempty"`
// IssueVariant: Details for the [IssueVariant] assigned to this [Event].
IssueVariant *IssueVariant `json:"issueVariant,omitempty"`
// Logs: Log messages recorded by the developer during the session.
Logs []*Log `json:"logs,omitempty"`
// Memory: Mobile device memory usage.
Memory *Memory `json:"memory,omitempty"`
// Name: Required. Output only. Immutable. Identifier. The name of the event
// resource. Format: "projects/{project}/apps/{app_id}/events/{event}".
Name string `json:"name,omitempty"`
// OperatingSystem: Operating system and version.
OperatingSystem *OperatingSystem `json:"operatingSystem,omitempty"`
// Platform: ANDROID, IOS, or WEB.
Platform string `json:"platform,omitempty"`
// ProcessState: The state of the app process at the time of the event.
ProcessState string `json:"processState,omitempty"`
// ReceivedTime: Server timestamp that the event was received by Crashlytics.
ReceivedTime string `json:"receivedTime,omitempty"`
// RoutePath: Output only. Web only. The route path of the web application when
// the event occurred, excluding query parameters and fragment.
RoutePath string `json:"routePath,omitempty"`
// SessionId: Unique identifier for the Firebase session.
SessionId string `json:"sessionId,omitempty"`
// Storage: Mobile device disk/flash usage.
Storage *Storage `json:"storage,omitempty"`
// Threads: Application threads present at the time the event was recorded.
// Each contains a stacktrace. One thread will be blamed for the error.
Threads []*Thread `json:"threads,omitempty"`
// User: End user identifiers for the device owner.
User *User `json:"user,omitempty"`
// Version: Mobile application version.
Version *Version `json:"version,omitempty"`
// ForceSendFields is a list of field names (e.g. "AppOrientation") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "AppOrientation") to include in
// API requests with the JSON null value. By default, fields with empty values
// are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Event) MarshalJSON() ([]byte, error) {
type NoMethod Event
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Exception: A Java or Javascript exception and its stacktrace. Only from
// Android or web apps.
type Exception struct {
// Blamed: True when the Crashlytics analysis has determined that this thread
// is where the fault occurred.
Blamed bool `json:"blamed,omitempty"`
// ExceptionMessage: A message associated with the exception.
ExceptionMessage string `json:"exceptionMessage,omitempty"`
// Frames: The frames in the exception's stacktrace.
Frames []*Frame `json:"frames,omitempty"`
// Nested: True for all but the last-thrown exception (i.e. the first record).
Nested bool `json:"nested,omitempty"`
// Subtitle: The subtitle of the exception.
Subtitle string `json:"subtitle,omitempty"`
// Title: The title of the exception.
Title string `json:"title,omitempty"`
// Type: The exception type e.g. java.lang.IllegalStateException.
Type string `json:"type,omitempty"`
// ForceSendFields is a list of field names (e.g. "Blamed") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Blamed") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Exception) MarshalJSON() ([]byte, error) {
type NoMethod Exception
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// FirebaseSessionEvent: Sessions recorded by the Firebase App Quality Sessions
// SDK.
type FirebaseSessionEvent struct {
// Device: Mobile device metadata.
Device *Device `json:"device,omitempty"`
// EventTime: The start timestamp for the session event.
EventTime string `json:"eventTime,omitempty"`
// EventType: Session event type. The SDK only supports SESSION_START events at
// this time.
//
// Possible values:
// "SESSION_EVENT_TYPE_UNKNOWN" - Unknown.
// "SESSION_START" - Application session started.
EventType string `json:"eventType,omitempty"`
// FirebaseInstallationId: Uniquely identifies a device with Firebase apps
// installed.
FirebaseInstallationId string `json:"firebaseInstallationId,omitempty"`
// FirstSessionId: The identifier of the first session since the last cold
// start. This id and the session_id will be the same for app launches.
FirstSessionId string `json:"firstSessionId,omitempty"`
// OperatingSystem: Operating system and version.
OperatingSystem *OperatingSystem `json:"operatingSystem,omitempty"`
// SessionId: Unique identifier for the Firebase session.
SessionId string `json:"sessionId,omitempty"`
// SessionIndex: Indicates the number of sessions since the last cold start.
SessionIndex int64 `json:"sessionIndex,omitempty"`
// Version: Mobile application version numbers.
Version *Version `json:"version,omitempty"`
// ForceSendFields is a list of field names (e.g. "Device") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Device") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s FirebaseSessionEvent) MarshalJSON() ([]byte, error) {
type NoMethod FirebaseSessionEvent
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Frame: A frame in a stacktrace.
type Frame struct {
// Address: The address in the binary image which contains the code. Present
// for native frames.
Address int64 `json:"address,omitempty,string"`
// Blamed: True when the Crashlytics analysis has determined that this frame is
// likely to be the cause of the error.
Blamed bool `json:"blamed,omitempty"`
// Column: The column on the line.
Column int64 `json:"column,omitempty,string"`
// File: The name of the source file in which the frame is found.
File string `json:"file,omitempty"`
// Library: The display name of the library that includes the frame.
Library string `json:"library,omitempty"`
// Line: The line number in the file of the frame.
Line int64 `json:"line,omitempty,string"`
// Offset: The byte offset into the binary image that contains the code.
// Present for native frames.
Offset int64 `json:"offset,omitempty,string"`
// Owner: One of DEVELOPER, VENDOR, RUNTIME, PLATFORM, or SYSTEM.
Owner string `json:"owner,omitempty"`
// Symbol: The frame symbol after it has been deobfuscated or symbolicated. The
// raw symbol from the device if it could not be hydrated.
Symbol string `json:"symbol,omitempty"`
// ForceSendFields is a list of field names (e.g. "Address") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Address") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Frame) MarshalJSON() ([]byte, error) {
type NoMethod Frame
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// IntervalMetrics: A set of computed metric values for a time interval
type IntervalMetrics struct {
// CrashFreeSessionsPercentage: Mobile only. Percentage of crash-free sessions.
// (total_sessions_count - impacted_sessions_count) / total_sessions_count *
// 100.
CrashFreeSessionsPercentage float64 `json:"crashFreeSessionsPercentage,omitempty"`
// CrashFreeUsersPercentage: Mobile only. Percentage of crash-free users.
// (total_users_count - impacted_users_count) / total_users_count * 100
CrashFreeUsersPercentage float64 `json:"crashFreeUsersPercentage,omitempty"`
// EndTime: The end of the interval covered by the computation.
EndTime string `json:"endTime,omitempty"`
// EventsCount: The total count of events in the interval.
EventsCount int64 `json:"eventsCount,omitempty,string"`
// ImpactedSessionsCount: The number of distinct sessions in the set of events.
ImpactedSessionsCount int64 `json:"impactedSessionsCount,omitempty,string"`
// ImpactedUsersCount: The number of distinct users in the set of events.
ImpactedUsersCount int64 `json:"impactedUsersCount,omitempty,string"`
// SessionsCount: Deprecated: Prefer `impacted_sessions_count`. The number of
// distinct sessions in the set of events.
SessionsCount int64 `json:"sessionsCount,omitempty,string"`
// StartTime: The start of the interval covered by the computation.
StartTime string `json:"startTime,omitempty"`
// TotalSessionsCount: The number of distinct sessions.
TotalSessionsCount int64 `json:"totalSessionsCount,omitempty,string"`
// TotalUsersCount: The number of distinct users.
TotalUsersCount int64 `json:"totalUsersCount,omitempty,string"`
// ForceSendFields is a list of field names (e.g.
// "CrashFreeSessionsPercentage") to unconditionally include in API requests.
// By default, fields with empty or default values are omitted from API
// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
// for more details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "CrashFreeSessionsPercentage") to
// include in API requests with the JSON null value. By default, fields with
// empty values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s IntervalMetrics) MarshalJSON() ([]byte, error) {
type NoMethod IntervalMetrics
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
func (s *IntervalMetrics) UnmarshalJSON(data []byte) error {
type NoMethod IntervalMetrics
var s1 struct {
CrashFreeSessionsPercentage gensupport.JSONFloat64 `json:"crashFreeSessionsPercentage"`
CrashFreeUsersPercentage gensupport.JSONFloat64 `json:"crashFreeUsersPercentage"`
*NoMethod
}
s1.NoMethod = (*NoMethod)(s)
if err := json.Unmarshal(data, &s1); err != nil {
return err
}
s.CrashFreeSessionsPercentage = float64(s1.CrashFreeSessionsPercentage)
s.CrashFreeUsersPercentage = float64(s1.CrashFreeUsersPercentage)
return nil
}
// Issue: An issue describes a set of similar events that have been analyzed by
// Crashlytics and grouped together. All events within an issue will be of the
// same error_type: crash, non-fatal exception or ANR. All events within an
// issue will contain similar stack traces in their blamed thread.
type Issue struct {
// ErrorType: Output only. Immutable. Indicates whether this issue is a crash,
// non-fatal exception, or ANR.
//
// Possible values:
// "ERROR_TYPE_UNSPECIFIED" - Unknown.
// "FATAL" - Fatal crash event.
// "NON_FATAL" - Non-fatal event, such as a caught Java exception or NSError
// on iOS.
// "ANR" - Application not responding error, Android only.
ErrorType string `json:"errorType,omitempty"`
// FirstSeenTime: Output only. Immutable. The first time this issue was seen.
FirstSeenTime string `json:"firstSeenTime,omitempty"`
// FirstSeenVersion: Output only. Immutable. The first app display_version in
// which this issue was seen, populated for mobile issues only.
FirstSeenVersion string `json:"firstSeenVersion,omitempty"`
// Id: Output only. Immutable. Unique identifier for the issue.
Id string `json:"id,omitempty"`
// LastSeenTime: Output only. The most recent time this issue was seen.
LastSeenTime string `json:"lastSeenTime,omitempty"`
// LastSeenVersion: Output only. The most recent app display_version in which
// this issue was seen, populated for mobile issues only.
LastSeenVersion string `json:"lastSeenVersion,omitempty"`
// Name: Required. Output only. Immutable. Identifier. The name of the issue
// resource. Format: "projects/{project}/apps/{app}/issues/{issue}".
Name string `json:"name,omitempty"`
// NotesCount: Output only. The number of notes attached to an issue.
NotesCount int64 `json:"notesCount,omitempty,string"`
// SampleEvent: Output only. The resource name for a sample event in this
// issue.
SampleEvent string `json:"sampleEvent,omitempty"`
// Signals: Output only. Immutable. Distinctive characteristics assigned by the
// Crashlytics analyzer.
Signals []*IssueSignals `json:"signals,omitempty"`
// State: Output only. Indicates whether this issue is open, closed or muted.
// For details on how issue states change without user actions, see Regressed
// Issues
// (https://firebase.google.com/docs/crashlytics/troubleshooting?platform=ios#regressed-issues).
//
// Possible values:
// "STATE_UNSPECIFIED" - Unknown.
// "OPEN" - Ongoing issue.
// "CLOSED" - Issue resolved.
// "MUTED" - Issue muted. No alerts will be fired for this issue.
State string `json:"state,omitempty"`
// StateUpdateTime: Output only. The time at which the issue state was last
// changed.
StateUpdateTime string `json:"stateUpdateTime,omitempty"`
// Subtitle: Output only. Immutable. Caption subtitle. This is usually a symbol
// or an exception message.
Subtitle string `json:"subtitle,omitempty"`
// Title: Output only. Immutable. Caption title. This is usually a source file
// or method name.
Title string `json:"title,omitempty"`
// Uri: Output only. Provides a link to the Issue on the Firebase console. When
// this Issue is obtained as part of a Report, then the link will be configured
// with the same time interval and filters as the request.
Uri string `json:"uri,omitempty"`
// Variants: Output only. Immutable. The top 12 variants (subgroups) within the
// issue. Variants group events within an issue that are very similar. A single
// result implies that the variant is the same as the parent issue. This field
// will be empty when multiple issues are requested. Request a single issue to
// list variants.
Variants []*IssueVariant `json:"variants,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "ErrorType") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "ErrorType") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Issue) MarshalJSON() ([]byte, error) {
type NoMethod Issue
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// IssueSignals: Distinctive characteristics assigned by the Crashlytics
// analyzer.
type IssueSignals struct {
// Description: Output only. Supporting detail information.
Description string `json:"description,omitempty"`
// Signal: Output only. The signal name.
//
// Possible values:
// "SIGNAL_UNSPECIFIED" - Default.
// "SIGNAL_EARLY" - Indicates an issue that is impacting end users early in
// the app session.
// "SIGNAL_FRESH" - Indicates newly detected issues.
// "SIGNAL_REGRESSED" - Indicates previously closed issues which have been
// detected again.
// "SIGNAL_REPETITIVE" - Indicates issues impacting some end users multiple
// times.
Signal string `json:"signal,omitempty"`
// ForceSendFields is a list of field names (e.g. "Description") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Description") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s IssueSignals) MarshalJSON() ([]byte, error) {
type NoMethod IssueSignals
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// IssueVariant: A variant is a subgroup of an issue where all events have very
// similar stack traces. Issues may contain one or more variants.
type IssueVariant struct {
// Id: Output only. Immutable. Distinct identifier for the variant.
Id string `json:"id,omitempty"`
// SampleEvent: Output only. The resource name for a sample event in this
// variant.
SampleEvent string `json:"sampleEvent,omitempty"`
// Uri: Output only. Provides a link to the variant on the Firebase console.
// When this variant is obtained as part of a Report, then the link will be
// configured with the same time interval and filters as the request.
Uri string `json:"uri,omitempty"`
// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Id") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s IssueVariant) MarshalJSON() ([]byte, error) {
type NoMethod IssueVariant
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ListEventsResponse: Response message for the ListEvents method.
type ListEventsResponse struct {
// Events: Returns one element per event, in descending order the by event
// timestamp.
Events []*Event `json:"events,omitempty"`
// NextPageToken: A pagination token to retrieve the next page of events. The
// next page will have earlier or later events depending on the request's
// ordering. If this field is not present, there are no subsequent events.
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. "Events") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Events") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ListEventsResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListEventsResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ListNotesResponse: Response message for the ListNotes method.
type ListNotesResponse struct {
// NextPageToken: A pagination token to retrieve the next page of notes. If
// this field is not present, there are no subsequent notes.
NextPageToken string `json:"nextPageToken,omitempty"`
// Notes: Returns notes ordered descending by the timestamp.
Notes []*Note `json:"notes,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "NextPageToken") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "NextPageToken") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ListNotesResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListNotesResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ListReportsResponse: Response method for the ListReports method. The
// response will always include all of the available reports.
type ListReportsResponse struct {
// Reports: The report objects returned will contain their names and usage
// instructions, but include no results. Use the `GetReport` method to run the
// report and obtain the paged results.
Reports []*Report `json:"reports,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Reports") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Reports") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ListReportsResponse) MarshalJSON() ([]byte, error) {
type NoMethod ListReportsResponse
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Log: Developer-provided log lines recorded during the session.
type Log struct {
// LogTime: Device timestamp when the line was logged.
LogTime string `json:"logTime,omitempty"`
// Message: Log message.
Message string `json:"message,omitempty"`
// ForceSendFields is a list of field names (e.g. "LogTime") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "LogTime") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Log) MarshalJSON() ([]byte, error) {
type NoMethod Log
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Memory: Mobile device memory usage.
type Memory struct {
// Free: Bytes free.
Free int64 `json:"free,omitempty,string"`
// Used: Bytes in use.
Used int64 `json:"used,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Free") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Free") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Memory) MarshalJSON() ([]byte, error) {
type NoMethod Memory
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Note: Developer notes for an issue.
type Note struct {
// Author: Output only. The email of the author of the note.
Author string `json:"author,omitempty"`
// Body: Immutable. The body of the note.
Body string `json:"body,omitempty"`
// CreateTime: Output only. Time when the note was created.
CreateTime string `json:"createTime,omitempty"`
// Name: Output only. Identifier. Format:
// "projects/{project}/apps/app/issues/{issue}/notes/{note}".
Name string `json:"name,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "Author") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Author") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Note) MarshalJSON() ([]byte, error) {
type NoMethod Note
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// OperatingSystem: Mobile device operating system metadata.
type OperatingSystem struct {
// DeviceType: The device category (mobile, tablet, desktop).
DeviceType string `json:"deviceType,omitempty"`
// DisplayName: Name and version number. Formatted to be suitable for passing
// to OperatingSystemFilter.
DisplayName string `json:"displayName,omitempty"`
// DisplayVersion: Operating system display version number.
DisplayVersion string `json:"displayVersion,omitempty"`
// ModificationState: Indicates if the OS has been modified or "jailbroken".
ModificationState string `json:"modificationState,omitempty"`
// Os: Operating system name.
Os string `json:"os,omitempty"`
// Type: The OS type on Apple platforms (iOS, iPadOS, etc.).
Type string `json:"type,omitempty"`
// ForceSendFields is a list of field names (e.g. "DeviceType") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DeviceType") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s OperatingSystem) MarshalJSON() ([]byte, error) {
type NoMethod OperatingSystem
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// PlayTrack: Describes a release track in the Play Developer Console.
type PlayTrack struct {
// Title: User-generated or auto-generated name of the track. PROD and INTERNAL
// track types always have auto-generated names, e.g. "prod" and "internal"
// respectively. Tracks of type EARLY_ACCESS always have a user-generated name.
// Other track types do not have any guarantees, might have user-generated or
// auto-generated names.
Title string `json:"title,omitempty"`
// Type: The type of track (prod, internal, etc...).
//
// Possible values:
// "TRACK_TYPE_UNSPECIFIED" - Unknown.
// "TRACK_TYPE_PROD" - Production.
// "TRACK_TYPE_INTERNAL" - Internal testing.
// "TRACK_TYPE_OPEN_TESTING" - Open testing.
// "TRACK_TYPE_CLOSED_TESTING" - Closed testing.
// "TRACK_TYPE_EARLY_ACCESS" - Early access.
Type string `json:"type,omitempty"`
// ForceSendFields is a list of field names (e.g. "Title") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Title") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s PlayTrack) MarshalJSON() ([]byte, error) {
type NoMethod PlayTrack
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Report: Response message for the GetReport method. A report consists of the
// results of a query over an application's events. The events may be filtered
// by various criteria defined in the filters proto. The result will consist of
// a number of paginated groups, of a type relevant to the report such as
// issues or device models.
type Report struct {
// DisplayName: Output only. The displayable title of the report.
DisplayName string `json:"displayName,omitempty"`
// Groups: Aggregate event statistics in the report will be grouped by a
// dimension, such as by issue or by version. The response contains one element
// per group, and all ReportGroup messages will have the same parent field.
Groups []*ReportGroup `json:"groups,omitempty"`
// Name: The name of the report. Format:
// "projects/{project}/apps/{app_id}/reports/{report}".
Name string `json:"name,omitempty"`
// NextPageToken: Output only. A page token used to retrieve additional report
// groups. If this field is not present, there are no subsequent pages
// available to retrieve.
NextPageToken string `json:"nextPageToken,omitempty"`
// TotalSize: Output only. The total number of groups retrievable by the
// request.
TotalSize int64 `json:"totalSize,omitempty"`
// Usage: Usage instructions for the report with a description of the result
// metrics. This field contains a description of the underlying query and
// describes the expected response data with any known caveats. This string can
// be displayed in the UI of any integration that offers comprehensive access
// to all Crashlytics reports.
Usage string `json:"usage,omitempty"`
// ServerResponse contains the HTTP response code and headers from the server.
googleapi.ServerResponse `json:"-"`
// ForceSendFields is a list of field names (e.g. "DisplayName") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "DisplayName") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Report) MarshalJSON() ([]byte, error) {
type NoMethod Report
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// ReportGroup: A group of results in an EventReport. In any report, the
// group_parent field is strictly the same type for all of the groups in any
// collection.
type ReportGroup struct {
// Browser: Browser metrics group.
Browser *Browser `json:"browser,omitempty"`
// CustomAttribute: Custom attribute metrics group.
CustomAttribute *CustomAttribute `json:"customAttribute,omitempty"`
// Device: Device metrics group.
Device *Device `json:"device,omitempty"`
// Issue: Issue metrics group.
Issue *Issue `json:"issue,omitempty"`
// Metrics: Scalar metrics will contain a single object covering the entire
// interval, while time-dimensioned graphs will contain one per time grain.
Metrics []*IntervalMetrics `json:"metrics,omitempty"`
// OperatingSystem: Operating system metrics group.
OperatingSystem *OperatingSystem `json:"operatingSystem,omitempty"`
// Subgroups: When applicable, this field contains additional nested groupings.
// For example, events can be grouped by operating system and by operating
// system version.
Subgroups []*ReportGroup `json:"subgroups,omitempty"`
// Variant: Issue variant metrics group.
Variant *IssueVariant `json:"variant,omitempty"`
// Version: Version metrics group.
Version *Version `json:"version,omitempty"`
// WebMetricsGroup: Web metrics group.
WebMetricsGroup *WebMetricsGroup `json:"webMetricsGroup,omitempty"`
// ForceSendFields is a list of field names (e.g. "Browser") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Browser") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s ReportGroup) MarshalJSON() ([]byte, error) {
type NoMethod ReportGroup
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Storage: Mobile device disk/flash usage. Not reported for all devices.
type Storage struct {
// Free: Bytes free.
Free int64 `json:"free,omitempty,string"`
// Used: Bytes used.
Used int64 `json:"used,omitempty,string"`
// ForceSendFields is a list of field names (e.g. "Free") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Free") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Storage) MarshalJSON() ([]byte, error) {
type NoMethod Storage
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Thread: An application thread.
type Thread struct {
// Blamed: True when the Crashlytics analysis has determined that the
// stacktrace in this thread is where the fault occurred.
Blamed bool `json:"blamed,omitempty"`
// CrashAddress: The address of the signal that caused the application to
// crash. Only present on crashed native threads.
CrashAddress int64 `json:"crashAddress,omitempty,string"`
// Crashed: True when the thread has crashed.
Crashed bool `json:"crashed,omitempty"`
// Frames: The frames in the thread's stacktrace.
Frames []*Frame `json:"frames,omitempty"`
// Name: The name of the thread.
Name string `json:"name,omitempty"`
// Queue: The queue on which the thread was running.
Queue string `json:"queue,omitempty"`
// Signal: The name of the signal that caused the app to crash. Only present on
// crashed native threads.
Signal string `json:"signal,omitempty"`
// SignalCode: The code of the signal that caused the app to crash. Only
// present on crashed native threads.
SignalCode string `json:"signalCode,omitempty"`
// Subtitle: The subtitle of the thread.
Subtitle string `json:"subtitle,omitempty"`
// SysThreadId: The system id of the thread, only available for ANR threads.
SysThreadId int64 `json:"sysThreadId,omitempty,string"`
// ThreadId: The id of the thread, only available for ANR threads.
ThreadId int64 `json:"threadId,omitempty,string"`
// ThreadState: Output only. The state of the thread at the time the ANR
// occurred.
//
// Possible values:
// "STATE_UNSPECIFIED" - Thread state unspecified.
// "THREAD_STATE_TERMINATED" - Thread was terminated.
// "THREAD_STATE_RUNNABLE" - Thread was runnable.
// "THREAD_STATE_TIMED_WAITING" - Thread was waiting with a timeout.
// "THREAD_STATE_BLOCKED" - Thread was blocked.
// "THREAD_STATE_WAITING" - Thread was waiting.
// "THREAD_STATE_NEW" - Thread was started, yet to run anything.
// "THREAD_STATE_NATIVE_RUNNABLE" - The thread was native and we could not
// heuristically determine that it was was waiting, so assume it's runnable.
// "THREAD_STATE_NATIVE_WAITING" - We heuristically determined that the
// thread is waiting.
ThreadState string `json:"threadState,omitempty"`
// Title: The title of the thread.
Title string `json:"title,omitempty"`
// ForceSendFields is a list of field names (e.g. "Blamed") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Blamed") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Thread) MarshalJSON() ([]byte, error) {
type NoMethod Thread
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// UpdateIssueRequest: Request message for the UpdateIssue method.
type UpdateIssueRequest struct {
// Issue: Required. The issue to update. The issue's `name` field is used to
// identify the issue to update. Format:
// "projects/{project}/apps/{app}/issues/{issue}".
Issue *Issue `json:"issue,omitempty"`
// UpdateMask: Optional. The list of Issue fields to update. Currently only
// "state" is mutable.
UpdateMask string `json:"updateMask,omitempty"`
// ForceSendFields is a list of field names (e.g. "Issue") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Issue") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s UpdateIssueRequest) MarshalJSON() ([]byte, error) {
type NoMethod UpdateIssueRequest
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// User: Developer-provided end user identifiers.
type User struct {
// Id: User id if provided by the app developer.
Id string `json:"id,omitempty"`
// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Id") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s User) MarshalJSON() ([]byte, error) {
type NoMethod User
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// Version: Application software version.
type Version struct {
// BuildVersion: Mobile only. One display_version can have many build_version.
// On Android, strictly the same as "version code". On iOS, strictly the same
// as "build number" or CFBundleVersion.
BuildVersion string `json:"buildVersion,omitempty"`
// DisplayName: Compound readable string containing both display and build
// versions. Format: "display_version (build_version)" e.g. "1.2.3 (456)". This
// string can be used for filtering with the VersionFilter.display_name field.
DisplayName string `json:"displayName,omitempty"`
// DisplayVersion: Readable version string, e.g. "1.2.3". On Android, strictly
// the same as "version name". On iOS, strictly the same as "version number" or
// CFBundleShortVersionString.
DisplayVersion string `json:"displayVersion,omitempty"`
// Tracks: Indicates releases which have artifacts that are currently available
// in the Play Store to the target audience of the track. Versions may be
// available in multiple tracks.
Tracks []*PlayTrack `json:"tracks,omitempty"`
// ForceSendFields is a list of field names (e.g. "BuildVersion") to
// unconditionally include in API requests. By default, fields with empty or
// default values are omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "BuildVersion") to include in API
// requests with the JSON null value. By default, fields with empty values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s Version) MarshalJSON() ([]byte, error) {
type NoMethod Version
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
// WebMetricsGroup: Represents a grouping for metrics specific to web
// applications.
type WebMetricsGroup struct {
// Id: The id of the web metrics group
Id string `json:"id,omitempty"`
// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
// include in API requests. By default, fields with empty or default values are
// omitted from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
// details.
ForceSendFields []string `json:"-"`
// NullFields is a list of field names (e.g. "Id") to include in API requests
// with the JSON null value. By default, fields with empty values are omitted
// from API requests. See
// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
NullFields []string `json:"-"`
}
func (s WebMetricsGroup) MarshalJSON() ([]byte, error) {
type NoMethod WebMetricsGroup
return gensupport.MarshalJSON(NoMethod(s), s.ForceSendFields, s.NullFields)
}
type ProjectsAppsEventsBatchGetCall struct {
s *Service
parent string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// BatchGet: Fetch a batch of up to 100 events by name.
//
// - parent: The firebase application. Format:
// "projects/{project}/apps/{app_id}".
func (r *ProjectsAppsEventsService) BatchGet(parent string) *ProjectsAppsEventsBatchGetCall {
c := &ProjectsAppsEventsBatchGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
return c
}
// Names sets the optional parameter "names": Required. The resource names of
// the desired events. A maximum of 100 events can be retrieved in a batch.
// Format: "projects/{project}/apps/{app_id}/events/{event_id}". The app_id and
// event_id are required, but project may be "-" to conserve space in long
// URIs.
func (c *ProjectsAppsEventsBatchGetCall) Names(names ...string) *ProjectsAppsEventsBatchGetCall {
c.urlParams_.SetMulti("names", append([]string{}, names...))
return c
}
// ReadMask sets the optional parameter "readMask": The list of Event fields to
// include in the response. If omitted, the full event is returned.
func (c *ProjectsAppsEventsBatchGetCall) ReadMask(readMask string) *ProjectsAppsEventsBatchGetCall {
c.urlParams_.Set("readMask", readMask)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsEventsBatchGetCall) Fields(s ...googleapi.Field) *ProjectsAppsEventsBatchGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsEventsBatchGetCall) IfNoneMatch(entityTag string) *ProjectsAppsEventsBatchGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsEventsBatchGetCall) Context(ctx context.Context) *ProjectsAppsEventsBatchGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsEventsBatchGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsEventsBatchGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/events:batchGet")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.events.batchGet", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.events.batchGet" call.
// Any non-2xx status code is an error. Response headers are in either
// *BatchGetEventsResponse.ServerResponse.Header or (if a response was returned
// at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAppsEventsBatchGetCall) Do(opts ...googleapi.CallOption) (*BatchGetEventsResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &BatchGetEventsResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.events.batchGet", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsEventsListCall struct {
s *Service
parent string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: List the events for an issue matching filter criteria, sorted in
// descending order by timestamp.
//
// - parent: The Firebase application. Format:
// "projects/{project}/apps/{app_id}".
func (r *ProjectsAppsEventsService) List(parent string) *ProjectsAppsEventsListCall {
c := &ProjectsAppsEventsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
return c
}
// FilterBrowserDisplayNames sets the optional parameter
// "filter.browser.displayNames": Only count events from the given browser.
// This string matches Browser.display_name. Format: "name (display_version)"
// e.g. "Chrome (123)", or just "name" for all possible versions, e.g. simply
// "Chrome".
func (c *ProjectsAppsEventsListCall) FilterBrowserDisplayNames(filterBrowserDisplayNames ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.browser.displayNames", append([]string{}, filterBrowserDisplayNames...))
return c
}
// FilterDeviceDisplayNames sets the optional parameter
// "filter.device.displayNames": Only counts events from the given Device
// model. This string matches Device.display_name. Format: "manufacturer
// (model)" e.g. "Google (Pixel 6)", or just "manufacturer" for all possible
// models, e.g. simply "Google". Note that a device's marketing_name field can
// not be used for filtering.
func (c *ProjectsAppsEventsListCall) FilterDeviceDisplayNames(filterDeviceDisplayNames ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.device.displayNames", append([]string{}, filterDeviceDisplayNames...))
return c
}
// FilterDeviceFormFactors sets the optional parameter
// "filter.device.formFactors": Only counts events from devices with the given
// form factor (e.g. phone or tablet).
//
// Possible values:
//
// "FORM_FACTOR_UNSPECIFIED" - Unknown.
// "PHONE" - Includes mobile phones, small foldables and other form factors
//
// not fitting the other categories.
//
// "TABLET" - Includes tablets and larger foldables.
// "DESKTOP" - Includes desktops, laptops, Chromebooks, etc.
// "TV" - Includes televisions and set-tops.
// "WATCH" - Includes both watches and other wearables.
func (c *ProjectsAppsEventsListCall) FilterDeviceFormFactors(filterDeviceFormFactors ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.device.formFactors", append([]string{}, filterDeviceFormFactors...))
return c
}
// FilterIntervalEndTime sets the optional parameter "filter.interval.endTime":
// Exclusive end of the interval. If specified, a Timestamp matching this
// interval will have to be before the end.
func (c *ProjectsAppsEventsListCall) FilterIntervalEndTime(filterIntervalEndTime string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.interval.endTime", filterIntervalEndTime)
return c
}
// FilterIntervalStartTime sets the optional parameter
// "filter.interval.startTime": Inclusive start of the interval. If specified,
// a Timestamp matching this interval will have to be the same or after the
// start.
func (c *ProjectsAppsEventsListCall) FilterIntervalStartTime(filterIntervalStartTime string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.interval.startTime", filterIntervalStartTime)
return c
}
// FilterIssueContent sets the optional parameter "filter.issue.content": A
// space separated list of filter terms matched against the contents of the
// issue. Contents include the title and the stack trace. Matches must begin at
// alphanumeric tokens, i.e., 'util.Sorted' matches 'java.util.SortedSet' but
// not 'myutil.SortedArray'. The filter matches if all filter terms match. All
// non-alphanumeric characters are ignored for matching. Filtering is assumed
// to be prefix-search and order-independent unless phrases are surrounded by
// "". Any terms contained in quotes are searched using exact-match (given
// filter term "foo", we will not return "foobar"), and must appear in the
// order given exactly. To get order-dependence but prefix-search, use a *
// within the quotes ("abc foo*" will match "abc foobar", but not "foo abc"
// "abcd foobar", or "abc xyz foobar").
func (c *ProjectsAppsEventsListCall) FilterIssueContent(filterIssueContent string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.issue.content", filterIssueContent)
return c
}
// FilterIssueErrorTypes sets the optional parameter "filter.issue.errorTypes":
// Only counts events of the given error types. This field matches
// [Issue.error_type].
//
// Possible values:
//
// "ERROR_TYPE_UNSPECIFIED" - Unknown.
// "FATAL" - Fatal crash event.
// "NON_FATAL" - Non-fatal event, such as a caught Java exception or NSError
//
// on iOS.
//
// "ANR" - Application not responding error, Android only.
func (c *ProjectsAppsEventsListCall) FilterIssueErrorTypes(filterIssueErrorTypes ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.issue.errorTypes", append([]string{}, filterIssueErrorTypes...))
return c
}
// FilterIssueId sets the optional parameter "filter.issue.id": Only counts
// events in the given issue ID. This field matches [Issue.id].
func (c *ProjectsAppsEventsListCall) FilterIssueId(filterIssueId string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.issue.id", filterIssueId)
return c
}
// FilterIssueSignals sets the optional parameter "filter.issue.signals": Only
// returns issues currently marked with the given signals. This field matches
// [Issue.signals.signal].
//
// Possible values:
//
// "SIGNAL_UNSPECIFIED" - Default.
// "SIGNAL_EARLY" - Indicates an issue that is impacting end users early in
//
// the app session.
//
// "SIGNAL_FRESH" - Indicates newly detected issues.
// "SIGNAL_REGRESSED" - Indicates previously closed issues which have been
//
// detected again.
//
// "SIGNAL_REPETITIVE" - Indicates issues impacting some end users multiple
//
// times.
func (c *ProjectsAppsEventsListCall) FilterIssueSignals(filterIssueSignals ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.issue.signals", append([]string{}, filterIssueSignals...))
return c
}
// FilterIssueState sets the optional parameter "filter.issue.state":
// Deprecated: Prefer `states` field. Only includes events for issues with the
// given issue state. Only available for `topIssues` reports.
//
// Possible values:
//
// "STATE_UNSPECIFIED" - Unknown.
// "OPEN" - Ongoing issue.
// "CLOSED" - Issue resolved.
// "MUTED" - Issue muted. No alerts will be fired for this issue.
func (c *ProjectsAppsEventsListCall) FilterIssueState(filterIssueState string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.issue.state", filterIssueState)
return c
}
// FilterIssueStates sets the optional parameter "filter.issue.states": Only
// includes events for issues with the given issue states. Only available for
// `topIssues` reports.
//
// Possible values:
//
// "STATE_UNSPECIFIED" - Unknown.
// "OPEN" - Ongoing issue.
// "CLOSED" - Issue resolved.
// "MUTED" - Issue muted. No alerts will be fired for this issue.
func (c *ProjectsAppsEventsListCall) FilterIssueStates(filterIssueStates ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.issue.states", append([]string{}, filterIssueStates...))
return c
}
// FilterIssueVariantId sets the optional parameter "filter.issue.variantId":
// Only counts events for the given issue variant ID. This field matches
// [IssueVariant.id].
func (c *ProjectsAppsEventsListCall) FilterIssueVariantId(filterIssueVariantId string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filter.issue.variantId", filterIssueVariantId)
return c
}
// FilterOperatingSystemDisplayNames sets the optional parameter
// "filter.operatingSystem.displayNames": Only counts events in the given
// operating system and version. This string matches
// OperatingSystem.display_name. Format: "osName (osVersion)" e.g. "Android
// (11)". or just "osName" for all versions, e.g. simply "iPadOS".
func (c *ProjectsAppsEventsListCall) FilterOperatingSystemDisplayNames(filterOperatingSystemDisplayNames ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.operatingSystem.displayNames", append([]string{}, filterOperatingSystemDisplayNames...))
return c
}
// FilterVersionDisplayNames sets the optional parameter
// "filter.version.displayNames": Only counts events in the given app version.
// This string matches Version.display_name. Format: "display_version
// (build_version)" e.g. "1.2.3 (456)".
func (c *ProjectsAppsEventsListCall) FilterVersionDisplayNames(filterVersionDisplayNames ...string) *ProjectsAppsEventsListCall {
c.urlParams_.SetMulti("filter.version.displayNames", append([]string{}, filterVersionDisplayNames...))
return c
}
// FilterExpression sets the optional parameter "filterExpression": Filters
// events by custom keys
// (https://firebase.google.com/docs/crashlytics/customize-crash-reports#add-keys).
// Supported forms: * Equality: `custom_keys.level = "vip" or
// `custom_keys.level:"vip" * Presence: `custom_keys.level:*` * OR across
// values of one key: `custom_keys.level = "vip" OR custom_keys.level =
// "enterprise" * AND across different keys: `custom_keys.level = "vip" AND
// custom_keys.region = "us" Keys are case-sensitive. Keys and values
// containing spaces must be double-quoted, for example `custom_keys."app
// state" = "background". OR across different keys, repeating a key within an
// AND, NOT, and comparators other than `=` and `:` are rejected with
// INVALID_ARGUMENT. Wildcards are not supported in values; use
// `custom_keys.:*` to match events that set a key to any value. This filter
// expression applies in addition to the `filter` field above. The syntax is a
// subset of AIP-160 (https://google.aip.dev/160).
func (c *ProjectsAppsEventsListCall) FilterExpression(filterExpression string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("filterExpression", filterExpression)
return c
}
// PageSize sets the optional parameter "pageSize": The maximum number of
// events per page. If omitted, defaults to 10.
func (c *ProjectsAppsEventsListCall) PageSize(pageSize int64) *ProjectsAppsEventsListCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous calls.
func (c *ProjectsAppsEventsListCall) PageToken(pageToken string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// ReadMask sets the optional parameter "readMask": The list of Event fields to
// include in the response. If omitted, the full event is returned.
func (c *ProjectsAppsEventsListCall) ReadMask(readMask string) *ProjectsAppsEventsListCall {
c.urlParams_.Set("readMask", readMask)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsEventsListCall) Fields(s ...googleapi.Field) *ProjectsAppsEventsListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsEventsListCall) IfNoneMatch(entityTag string) *ProjectsAppsEventsListCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsEventsListCall) Context(ctx context.Context) *ProjectsAppsEventsListCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsEventsListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsEventsListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/events")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.events.list", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.events.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListEventsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAppsEventsListCall) Do(opts ...googleapi.CallOption) (*ListEventsResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &ListEventsResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.events.list", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsAppsEventsListCall) Pages(ctx context.Context, f func(*ListEventsResponse) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken"))
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
type ProjectsAppsIssuesBatchUpdateCall struct {
s *Service
parent string
batchupdateissuesrequest *BatchUpdateIssuesRequest
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// BatchUpdate: Change the state of a group of issues. This method is not
// atomic, so partial failures can occur. In the event of a partial failure,
// the request will fail and you will need to call `GetIssue` to see which
// issues were not updated.
//
// - parent: The parent resource shared by all issues being updated. Format:
// projects/{project}/apps/{app}. If this is set, the parent field in the
// UpdateIssueRequest messages must either be empty or match this field.
func (r *ProjectsAppsIssuesService) BatchUpdate(parent string, batchupdateissuesrequest *BatchUpdateIssuesRequest) *ProjectsAppsIssuesBatchUpdateCall {
c := &ProjectsAppsIssuesBatchUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
c.batchupdateissuesrequest = batchupdateissuesrequest
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesBatchUpdateCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesBatchUpdateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesBatchUpdateCall) Context(ctx context.Context) *ProjectsAppsIssuesBatchUpdateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesBatchUpdateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesBatchUpdateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.batchupdateissuesrequest)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/issues:batchUpdate")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.batchUpdate", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.batchUpdate" call.
// Any non-2xx status code is an error. Response headers are in either
// *BatchUpdateIssuesResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsAppsIssuesBatchUpdateCall) Do(opts ...googleapi.CallOption) (*BatchUpdateIssuesResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &BatchUpdateIssuesResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.batchUpdate", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsIssuesGetCall struct {
s *Service
name string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// Get: Retrieve an issue.
//
// - name: The name of the issue to retrieve. Format:
// "projects/{project}/apps/{app}/issues/{issue}".
func (r *ProjectsAppsIssuesService) Get(name string) *ProjectsAppsIssuesGetCall {
c := &ProjectsAppsIssuesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesGetCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsIssuesGetCall) IfNoneMatch(entityTag string) *ProjectsAppsIssuesGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesGetCall) Context(ctx context.Context) *ProjectsAppsIssuesGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.get", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Issue.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAppsIssuesGetCall) Do(opts ...googleapi.CallOption) (*Issue, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Issue{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.get", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsIssuesPatchCall struct {
s *Service
name string
issue *Issue
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Patch: Change the state of an issue.
//
// - name: Output only. Immutable. Identifier. The name of the issue resource.
// Format: "projects/{project}/apps/{app}/issues/{issue}".
func (r *ProjectsAppsIssuesService) Patch(name string, issue *Issue) *ProjectsAppsIssuesPatchCall {
c := &ProjectsAppsIssuesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
c.issue = issue
return c
}
// UpdateMask sets the optional parameter "updateMask": The list of Issue
// fields to update. Currently only "state" is mutable.
func (c *ProjectsAppsIssuesPatchCall) UpdateMask(updateMask string) *ProjectsAppsIssuesPatchCall {
c.urlParams_.Set("updateMask", updateMask)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesPatchCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesPatchCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesPatchCall) Context(ctx context.Context) *ProjectsAppsIssuesPatchCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesPatchCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesPatchCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.issue)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("PATCH", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.patch", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.patch" call.
// Any non-2xx status code is an error. Response headers are in either
// *Issue.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAppsIssuesPatchCall) Do(opts ...googleapi.CallOption) (*Issue, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Issue{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.patch", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsIssuesNotesCreateCall struct {
s *Service
parent string
note *Note
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Create: Create a new note for an issue.
//
// - parent: The parent resource where this note will be created. Format:
// "projects/{project}/apps/{app}/issues/{issue}".
func (r *ProjectsAppsIssuesNotesService) Create(parent string, note *Note) *ProjectsAppsIssuesNotesCreateCall {
c := &ProjectsAppsIssuesNotesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
c.note = note
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesNotesCreateCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesNotesCreateCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesNotesCreateCall) Context(ctx context.Context) *ProjectsAppsIssuesNotesCreateCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesNotesCreateCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesNotesCreateCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
body, err := googleapi.WithoutDataWrapper.JSONBuffer(c.note)
if err != nil {
return nil, err
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/notes")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("POST", urls, body)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.create", "request", internallog.HTTPRequest(req, body.Bytes()))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.notes.create" call.
// Any non-2xx status code is an error. Response headers are in either
// *Note.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAppsIssuesNotesCreateCall) Do(opts ...googleapi.CallOption) (*Note, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Note{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.create", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsIssuesNotesDeleteCall struct {
s *Service
name string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// Delete: Delete a note by its name.
//
// - name: The name of the note to delete. Format:
// projects/{project}/apps/{app}/issues/{issue}/notes/{note}.
func (r *ProjectsAppsIssuesNotesService) Delete(name string) *ProjectsAppsIssuesNotesDeleteCall {
c := &ProjectsAppsIssuesNotesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesNotesDeleteCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesNotesDeleteCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesNotesDeleteCall) Context(ctx context.Context) *ProjectsAppsIssuesNotesDeleteCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesNotesDeleteCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesNotesDeleteCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("DELETE", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.delete", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.notes.delete" call.
// Any non-2xx status code is an error. Response headers are in either
// *Empty.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAppsIssuesNotesDeleteCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Empty{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.delete", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsIssuesNotesListCall struct {
s *Service
parent string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: List all notes for a certain issue, sorted in descending order by
// timestamp.
//
// - parent: The issue the notes belongs to. Format:
// "projects/{project}/apps/{app}/issues/{issue}".
func (r *ProjectsAppsIssuesNotesService) List(parent string) *ProjectsAppsIssuesNotesListCall {
c := &ProjectsAppsIssuesNotesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
return c
}
// PageSize sets the optional parameter "pageSize": The maximum number of notes
// per page. If omitted, defaults to 10.
func (c *ProjectsAppsIssuesNotesListCall) PageSize(pageSize int64) *ProjectsAppsIssuesNotesListCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous calls.
func (c *ProjectsAppsIssuesNotesListCall) PageToken(pageToken string) *ProjectsAppsIssuesNotesListCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsIssuesNotesListCall) Fields(s ...googleapi.Field) *ProjectsAppsIssuesNotesListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsIssuesNotesListCall) IfNoneMatch(entityTag string) *ProjectsAppsIssuesNotesListCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsIssuesNotesListCall) Context(ctx context.Context) *ProjectsAppsIssuesNotesListCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsIssuesNotesListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsIssuesNotesListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/notes")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.list", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.issues.notes.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListNotesResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAppsIssuesNotesListCall) Do(opts ...googleapi.CallOption) (*ListNotesResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &ListNotesResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.issues.notes.list", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsAppsIssuesNotesListCall) Pages(ctx context.Context, f func(*ListNotesResponse) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken"))
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
type ProjectsAppsReportsGetCall struct {
s *Service
name string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// Get: Get a report with its computed results.
//
// - name: The report name. Format:
// "projects/{project}/apps/{app_id}/reports/{report}".
func (r *ProjectsAppsReportsService) Get(name string) *ProjectsAppsReportsGetCall {
c := &ProjectsAppsReportsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.name = name
return c
}
// FilterBrowserDisplayNames sets the optional parameter
// "filter.browser.displayNames": Only count events from the given browser.
// This string matches Browser.display_name. Format: "name (display_version)"
// e.g. "Chrome (123)", or just "name" for all possible versions, e.g. simply
// "Chrome".
func (c *ProjectsAppsReportsGetCall) FilterBrowserDisplayNames(filterBrowserDisplayNames ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.browser.displayNames", append([]string{}, filterBrowserDisplayNames...))
return c
}
// FilterDeviceDisplayNames sets the optional parameter
// "filter.device.displayNames": Only counts events from the given Device
// model. This string matches Device.display_name. Format: "manufacturer
// (model)" e.g. "Google (Pixel 6)", or just "manufacturer" for all possible
// models, e.g. simply "Google". Note that a device's marketing_name field can
// not be used for filtering.
func (c *ProjectsAppsReportsGetCall) FilterDeviceDisplayNames(filterDeviceDisplayNames ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.device.displayNames", append([]string{}, filterDeviceDisplayNames...))
return c
}
// FilterDeviceFormFactors sets the optional parameter
// "filter.device.formFactors": Only counts events from devices with the given
// form factor (e.g. phone or tablet).
//
// Possible values:
//
// "FORM_FACTOR_UNSPECIFIED" - Unknown.
// "PHONE" - Includes mobile phones, small foldables and other form factors
//
// not fitting the other categories.
//
// "TABLET" - Includes tablets and larger foldables.
// "DESKTOP" - Includes desktops, laptops, Chromebooks, etc.
// "TV" - Includes televisions and set-tops.
// "WATCH" - Includes both watches and other wearables.
func (c *ProjectsAppsReportsGetCall) FilterDeviceFormFactors(filterDeviceFormFactors ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.device.formFactors", append([]string{}, filterDeviceFormFactors...))
return c
}
// FilterIntervalEndTime sets the optional parameter "filter.interval.endTime":
// Exclusive end of the interval. If specified, a Timestamp matching this
// interval will have to be before the end.
func (c *ProjectsAppsReportsGetCall) FilterIntervalEndTime(filterIntervalEndTime string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.interval.endTime", filterIntervalEndTime)
return c
}
// FilterIntervalStartTime sets the optional parameter
// "filter.interval.startTime": Inclusive start of the interval. If specified,
// a Timestamp matching this interval will have to be the same or after the
// start.
func (c *ProjectsAppsReportsGetCall) FilterIntervalStartTime(filterIntervalStartTime string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.interval.startTime", filterIntervalStartTime)
return c
}
// FilterIssueContent sets the optional parameter "filter.issue.content": A
// space separated list of filter terms matched against the contents of the
// issue. Contents include the title and the stack trace. Matches must begin at
// alphanumeric tokens, i.e., 'util.Sorted' matches 'java.util.SortedSet' but
// not 'myutil.SortedArray'. The filter matches if all filter terms match. All
// non-alphanumeric characters are ignored for matching. Filtering is assumed
// to be prefix-search and order-independent unless phrases are surrounded by
// "". Any terms contained in quotes are searched using exact-match (given
// filter term "foo", we will not return "foobar"), and must appear in the
// order given exactly. To get order-dependence but prefix-search, use a *
// within the quotes ("abc foo*" will match "abc foobar", but not "foo abc"
// "abcd foobar", or "abc xyz foobar").
func (c *ProjectsAppsReportsGetCall) FilterIssueContent(filterIssueContent string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.issue.content", filterIssueContent)
return c
}
// FilterIssueErrorTypes sets the optional parameter "filter.issue.errorTypes":
// Only counts events of the given error types. This field matches
// [Issue.error_type].
//
// Possible values:
//
// "ERROR_TYPE_UNSPECIFIED" - Unknown.
// "FATAL" - Fatal crash event.
// "NON_FATAL" - Non-fatal event, such as a caught Java exception or NSError
//
// on iOS.
//
// "ANR" - Application not responding error, Android only.
func (c *ProjectsAppsReportsGetCall) FilterIssueErrorTypes(filterIssueErrorTypes ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.issue.errorTypes", append([]string{}, filterIssueErrorTypes...))
return c
}
// FilterIssueId sets the optional parameter "filter.issue.id": Only counts
// events in the given issue ID. This field matches [Issue.id].
func (c *ProjectsAppsReportsGetCall) FilterIssueId(filterIssueId string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.issue.id", filterIssueId)
return c
}
// FilterIssueSignals sets the optional parameter "filter.issue.signals": Only
// returns issues currently marked with the given signals. This field matches
// [Issue.signals.signal].
//
// Possible values:
//
// "SIGNAL_UNSPECIFIED" - Default.
// "SIGNAL_EARLY" - Indicates an issue that is impacting end users early in
//
// the app session.
//
// "SIGNAL_FRESH" - Indicates newly detected issues.
// "SIGNAL_REGRESSED" - Indicates previously closed issues which have been
//
// detected again.
//
// "SIGNAL_REPETITIVE" - Indicates issues impacting some end users multiple
//
// times.
func (c *ProjectsAppsReportsGetCall) FilterIssueSignals(filterIssueSignals ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.issue.signals", append([]string{}, filterIssueSignals...))
return c
}
// FilterIssueState sets the optional parameter "filter.issue.state":
// Deprecated: Prefer `states` field. Only includes events for issues with the
// given issue state. Only available for `topIssues` reports.
//
// Possible values:
//
// "STATE_UNSPECIFIED" - Unknown.
// "OPEN" - Ongoing issue.
// "CLOSED" - Issue resolved.
// "MUTED" - Issue muted. No alerts will be fired for this issue.
func (c *ProjectsAppsReportsGetCall) FilterIssueState(filterIssueState string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.issue.state", filterIssueState)
return c
}
// FilterIssueStates sets the optional parameter "filter.issue.states": Only
// includes events for issues with the given issue states. Only available for
// `topIssues` reports.
//
// Possible values:
//
// "STATE_UNSPECIFIED" - Unknown.
// "OPEN" - Ongoing issue.
// "CLOSED" - Issue resolved.
// "MUTED" - Issue muted. No alerts will be fired for this issue.
func (c *ProjectsAppsReportsGetCall) FilterIssueStates(filterIssueStates ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.issue.states", append([]string{}, filterIssueStates...))
return c
}
// FilterIssueVariantId sets the optional parameter "filter.issue.variantId":
// Only counts events for the given issue variant ID. This field matches
// [IssueVariant.id].
func (c *ProjectsAppsReportsGetCall) FilterIssueVariantId(filterIssueVariantId string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("filter.issue.variantId", filterIssueVariantId)
return c
}
// FilterOperatingSystemDisplayNames sets the optional parameter
// "filter.operatingSystem.displayNames": Only counts events in the given
// operating system and version. This string matches
// OperatingSystem.display_name. Format: "osName (osVersion)" e.g. "Android
// (11)". or just "osName" for all versions, e.g. simply "iPadOS".
func (c *ProjectsAppsReportsGetCall) FilterOperatingSystemDisplayNames(filterOperatingSystemDisplayNames ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.operatingSystem.displayNames", append([]string{}, filterOperatingSystemDisplayNames...))
return c
}
// FilterVersionDisplayNames sets the optional parameter
// "filter.version.displayNames": Only counts events in the given app version.
// This string matches Version.display_name. Format: "display_version
// (build_version)" e.g. "1.2.3 (456)".
func (c *ProjectsAppsReportsGetCall) FilterVersionDisplayNames(filterVersionDisplayNames ...string) *ProjectsAppsReportsGetCall {
c.urlParams_.SetMulti("filter.version.displayNames", append([]string{}, filterVersionDisplayNames...))
return c
}
// Granularity sets the optional parameter "granularity": The report response
// will contain one data point per time grain. If omitted, the report will
// contain a single data point for the complete interval.
//
// Possible values:
//
// "TIME_GRANULARITY_UNSPECIFIED" - Unknown.
// "TIME_GRANULARITY_NONE" - Returns a single interval for the requested time
//
// range.
//
// "TIME_GRANULARITY_HOUR" - Hour.
// "TIME_GRANULARITY_DAY" - Day.
func (c *ProjectsAppsReportsGetCall) Granularity(granularity string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("granularity", granularity)
return c
}
// MetricsMode sets the optional parameter "metricsMode": Controls whether
// metrics are raw observed values (mobile and web) or extrapolated values (web
// only). If omitted, defaults to OBSERVED.
//
// Possible values:
//
// "METRICS_MODE_UNSPECIFIED" - Unknown.
// "METRICS_MODE_OBSERVED" - Raw counts of the events, sessions, and users
//
// that were actually collected.
//
// "METRICS_MODE_EXTRAPOLATED" - Web only. Estimated event counts based on
//
// the per-session sampling rate recorded on each event.
func (c *ProjectsAppsReportsGetCall) MetricsMode(metricsMode string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("metricsMode", metricsMode)
return c
}
// PageSize sets the optional parameter "pageSize": The maximum number of
// result groups to return. The maximum value is 100; values above 100 will be
// coerced to 100. If omitted, defaults to 25.
func (c *ProjectsAppsReportsGetCall) PageSize(pageSize int64) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
return c
}
// PageToken sets the optional parameter "pageToken": A page token, received
// from a previous call. The page token is only valid for the exact same set of
// filters, which must also be sent in subsequent requests. This token is valid
// for 10 minutes after the first request.
func (c *ProjectsAppsReportsGetCall) PageToken(pageToken string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("pageToken", pageToken)
return c
}
// View sets the optional parameter "view": Response view. If not set, defaults
// to `REPORT_VIEW_FULL`.
//
// Possible values:
//
// "REPORT_VIEW_UNSPECIFIED" - The default / unset value. The API will
//
// default to `REPORT_VIEW_BASIC` view for `ListReports` and `REPORT_VIEW_FULL`
// for `GetReport`.
//
// "REPORT_VIEW_BASIC" - Only includes the report `display_name` and optional
//
// `usage`. This is the default view for `ListReports`.
//
// "REPORT_VIEW_FULL" - Includes all fields on report. This is the default
//
// view for `GetReport`.
func (c *ProjectsAppsReportsGetCall) View(view string) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsReportsGetCall) Fields(s ...googleapi.Field) *ProjectsAppsReportsGetCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsReportsGetCall) IfNoneMatch(entityTag string) *ProjectsAppsReportsGetCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsReportsGetCall) Context(ctx context.Context) *ProjectsAppsReportsGetCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsReportsGetCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsReportsGetCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.name,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.reports.get", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.reports.get" call.
// Any non-2xx status code is an error. Response headers are in either
// *Report.ServerResponse.Header or (if a response was returned at all) in
// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
// whether the returned error was because http.StatusNotModified was returned.
func (c *ProjectsAppsReportsGetCall) Do(opts ...googleapi.CallOption) (*Report, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &Report{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.reports.get", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
// Pages invokes f for each page of results.
// A non-nil error returned from f will halt the iteration.
// The provided context supersedes any context provided to the Context method.
func (c *ProjectsAppsReportsGetCall) Pages(ctx context.Context, f func(*Report) error) error {
c.ctx_ = ctx
defer c.PageToken(c.urlParams_.Get("pageToken"))
for {
x, err := c.Do()
if err != nil {
return err
}
if err := f(x); err != nil {
return err
}
if x.NextPageToken == "" {
return nil
}
c.PageToken(x.NextPageToken)
}
}
type ProjectsAppsReportsListCall struct {
s *Service
parent string
urlParams_ gensupport.URLParams
ifNoneMatch_ string
ctx_ context.Context
header_ http.Header
}
// List: List all of the available reports.
//
// - parent: The firebase application. Format:
// "projects/{project}/apps/{app_id}".
func (r *ProjectsAppsReportsService) List(parent string) *ProjectsAppsReportsListCall {
c := &ProjectsAppsReportsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.parent = parent
return c
}
// View sets the optional parameter "view": Response view. If not set, defaults
// to `REPORT_VIEW_BASIC`. `REPORT_VIEW_FULL` is not supported for list
// operations.
//
// Possible values:
//
// "REPORT_VIEW_UNSPECIFIED" - The default / unset value. The API will
//
// default to `REPORT_VIEW_BASIC` view for `ListReports` and `REPORT_VIEW_FULL`
// for `GetReport`.
//
// "REPORT_VIEW_BASIC" - Only includes the report `display_name` and optional
//
// `usage`. This is the default view for `ListReports`.
//
// "REPORT_VIEW_FULL" - Includes all fields on report. This is the default
//
// view for `GetReport`.
func (c *ProjectsAppsReportsListCall) View(view string) *ProjectsAppsReportsListCall {
c.urlParams_.Set("view", view)
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsReportsListCall) Fields(s ...googleapi.Field) *ProjectsAppsReportsListCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// IfNoneMatch sets an 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.
func (c *ProjectsAppsReportsListCall) IfNoneMatch(entityTag string) *ProjectsAppsReportsListCall {
c.ifNoneMatch_ = entityTag
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsReportsListCall) Context(ctx context.Context) *ProjectsAppsReportsListCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsReportsListCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsReportsListCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
if c.ifNoneMatch_ != "" {
reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
}
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+parent}/reports")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("GET", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"parent": c.parent,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.reports.list", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.reports.list" call.
// Any non-2xx status code is an error. Response headers are in either
// *ListReportsResponse.ServerResponse.Header or (if a response was returned at
// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
// check whether the returned error was because http.StatusNotModified was
// returned.
func (c *ProjectsAppsReportsListCall) Do(opts ...googleapi.CallOption) (*ListReportsResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &ListReportsResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.reports.list", "response", internallog.HTTPResponse(res, b))
return ret, nil
}
type ProjectsAppsUsersDeleteCrashReportsCall struct {
s *Service
nameid string
urlParams_ gensupport.URLParams
ctx_ context.Context
header_ http.Header
}
// DeleteCrashReports: Enqueues a request to permanently remove crash reports
// associated with the specified user. All reports belonging to the specified
// user will be deleted typically within 24 hours of receiving the crash
// report.
//
// - name: Resource name for user reports, in the format: projects/
// PROJECT_IDENTIFIER/apps/APP_ID/users/USER_ID/crashReports -
// PROJECT_IDENTIFIER: The Firebase project's project number (recommended) or
// its project ID. Learn more about using project identifiers in Google's AIP
// 2510 standard (https://google.aip.dev/cloud/2510). - APP_ID: The globally
// unique, Firebase-assigned identifier for the Firebase App. This is not
// your package name or bundle ID. Learn how to find your app ID
// (https://firebase.google.com/support/faq/#find-app-id). - USER_ID: The
// user ID set using the Crashlytics SDK. Learn how to set user identifiers
// (https://firebase.google.com/docs/crashlytics/customize-crash-reports#set-user-ids).
func (r *ProjectsAppsUsersService) DeleteCrashReports(nameid string) *ProjectsAppsUsersDeleteCrashReportsCall {
c := &ProjectsAppsUsersDeleteCrashReportsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
c.nameid = nameid
return c
}
// Fields allows partial responses to be retrieved. See
// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
// details.
func (c *ProjectsAppsUsersDeleteCrashReportsCall) Fields(s ...googleapi.Field) *ProjectsAppsUsersDeleteCrashReportsCall {
c.urlParams_.Set("fields", googleapi.CombineFields(s))
return c
}
// Context sets the context to be used in this call's Do method.
func (c *ProjectsAppsUsersDeleteCrashReportsCall) Context(ctx context.Context) *ProjectsAppsUsersDeleteCrashReportsCall {
c.ctx_ = ctx
return c
}
// Header returns a http.Header that can be modified by the caller to add
// headers to the request.
func (c *ProjectsAppsUsersDeleteCrashReportsCall) Header() http.Header {
if c.header_ == nil {
c.header_ = make(http.Header)
}
return c.header_
}
func (c *ProjectsAppsUsersDeleteCrashReportsCall) doRequest(alt string) (*http.Response, error) {
reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
c.urlParams_.Set("alt", alt)
c.urlParams_.Set("prettyPrint", "false")
urls := googleapi.ResolveRelative(c.s.BasePath, "v1alpha/{+name}")
urls += "?" + c.urlParams_.Encode()
req, err := http.NewRequest("DELETE", urls, nil)
if err != nil {
return nil, err
}
req.Header = reqHeaders
googleapi.Expand(req.URL, map[string]string{
"name": c.nameid,
})
c.s.logger.DebugContext(c.ctx_, "api request", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.users.deleteCrashReports", "request", internallog.HTTPRequest(req, nil))
return gensupport.SendRequest(c.ctx_, c.s.client, req)
}
// Do executes the "firebasecrashlytics.projects.apps.users.deleteCrashReports" call.
// Any non-2xx status code is an error. Response headers are in either
// *DeleteUserCrashReportsResponse.ServerResponse.Header or (if a response was
// returned at all) in error.(*googleapi.Error).Header. Use
// googleapi.IsNotModified to check whether the returned error was because
// http.StatusNotModified was returned.
func (c *ProjectsAppsUsersDeleteCrashReportsCall) Do(opts ...googleapi.CallOption) (*DeleteUserCrashReportsResponse, error) {
gensupport.SetOptions(c.urlParams_, opts...)
res, err := c.doRequest("json")
if res != nil && res.StatusCode == http.StatusNotModified {
if res.Body != nil {
res.Body.Close()
}
return nil, gensupport.WrapError(&googleapi.Error{
Code: res.StatusCode,
Header: res.Header,
})
}
if err != nil {
return nil, err
}
defer googleapi.CloseBody(res)
if err := googleapi.CheckResponse(res); err != nil {
return nil, gensupport.WrapError(err)
}
ret := &DeleteUserCrashReportsResponse{
ServerResponse: googleapi.ServerResponse{
Header: res.Header,
HTTPStatusCode: res.StatusCode,
},
}
target := &ret
b, err := gensupport.DecodeResponseBytes(target, res)
if err != nil {
return nil, err
}
c.s.logger.DebugContext(c.ctx_, "api response", "serviceName", apiName, "rpcName", "firebasecrashlytics.projects.apps.users.deleteCrashReports", "response", internallog.HTTPResponse(res, b))
return ret, nil
}