...

Source file src/google.golang.org/api/testing/v1/testing-gen.go

Documentation: google.golang.org/api/testing/v1

     1  // Copyright 2024 Google LLC.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // Code generated file. DO NOT EDIT.
     6  
     7  // Package testing provides access to the Cloud Testing API.
     8  //
     9  // For product documentation, see: https://firebase.google.com/docs/test-lab/
    10  //
    11  // # Library status
    12  //
    13  // These client libraries are officially supported by Google. However, this
    14  // library is considered complete and is in maintenance mode. This means
    15  // that we will address critical bugs and security issues but will not add
    16  // any new features.
    17  //
    18  // When possible, we recommend using our newer
    19  // [Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)
    20  // that are still actively being worked and iterated on.
    21  //
    22  // # Creating a client
    23  //
    24  // Usage example:
    25  //
    26  //	import "google.golang.org/api/testing/v1"
    27  //	...
    28  //	ctx := context.Background()
    29  //	testingService, err := testing.NewService(ctx)
    30  //
    31  // In this example, Google Application Default Credentials are used for
    32  // authentication. For information on how to create and obtain Application
    33  // Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
    34  //
    35  // # Other authentication options
    36  //
    37  // By default, all available scopes (see "Constants") are used to authenticate.
    38  // To restrict scopes, use [google.golang.org/api/option.WithScopes]:
    39  //
    40  //	testingService, err := testing.NewService(ctx, option.WithScopes(testing.CloudPlatformReadOnlyScope))
    41  //
    42  // To use an API key for authentication (note: some APIs do not support API
    43  // keys), use [google.golang.org/api/option.WithAPIKey]:
    44  //
    45  //	testingService, err := testing.NewService(ctx, option.WithAPIKey("AIza..."))
    46  //
    47  // To use an OAuth token (e.g., a user token obtained via a three-legged OAuth
    48  // flow, use [google.golang.org/api/option.WithTokenSource]:
    49  //
    50  //	config := &oauth2.Config{...}
    51  //	// ...
    52  //	token, err := config.Exchange(ctx, ...)
    53  //	testingService, err := testing.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
    54  //
    55  // See [google.golang.org/api/option.ClientOption] for details on options.
    56  package testing // import "google.golang.org/api/testing/v1"
    57  
    58  import (
    59  	"bytes"
    60  	"context"
    61  	"encoding/json"
    62  	"errors"
    63  	"fmt"
    64  	"io"
    65  	"net/http"
    66  	"net/url"
    67  	"strconv"
    68  	"strings"
    69  
    70  	googleapi "google.golang.org/api/googleapi"
    71  	internal "google.golang.org/api/internal"
    72  	gensupport "google.golang.org/api/internal/gensupport"
    73  	option "google.golang.org/api/option"
    74  	internaloption "google.golang.org/api/option/internaloption"
    75  	htransport "google.golang.org/api/transport/http"
    76  )
    77  
    78  // Always reference these packages, just in case the auto-generated code
    79  // below doesn't.
    80  var _ = bytes.NewBuffer
    81  var _ = strconv.Itoa
    82  var _ = fmt.Sprintf
    83  var _ = json.NewDecoder
    84  var _ = io.Copy
    85  var _ = url.Parse
    86  var _ = gensupport.MarshalJSON
    87  var _ = googleapi.Version
    88  var _ = errors.New
    89  var _ = strings.Replace
    90  var _ = context.Canceled
    91  var _ = internaloption.WithDefaultEndpoint
    92  var _ = internal.Version
    93  
    94  const apiId = "testing:v1"
    95  const apiName = "testing"
    96  const apiVersion = "v1"
    97  const basePath = "https://testing.googleapis.com/"
    98  const basePathTemplate = "https://testing.UNIVERSE_DOMAIN/"
    99  const mtlsBasePath = "https://testing.mtls.googleapis.com/"
   100  
   101  // OAuth2 scopes used by this API.
   102  const (
   103  	// See, edit, configure, and delete your Google Cloud data and see the email
   104  	// address for your Google Account.
   105  	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
   106  
   107  	// View your data across Google Cloud services and see the email address of
   108  	// your Google Account
   109  	CloudPlatformReadOnlyScope = "https://www.googleapis.com/auth/cloud-platform.read-only"
   110  )
   111  
   112  // NewService creates a new APIService.
   113  func NewService(ctx context.Context, opts ...option.ClientOption) (*APIService, error) {
   114  	scopesOption := internaloption.WithDefaultScopes(
   115  		"https://www.googleapis.com/auth/cloud-platform",
   116  		"https://www.googleapis.com/auth/cloud-platform.read-only",
   117  	)
   118  	// NOTE: prepend, so we don't override user-specified scopes.
   119  	opts = append([]option.ClientOption{scopesOption}, opts...)
   120  	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
   121  	opts = append(opts, internaloption.WithDefaultEndpointTemplate(basePathTemplate))
   122  	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
   123  	opts = append(opts, internaloption.EnableNewAuthLibrary())
   124  	client, endpoint, err := htransport.NewClient(ctx, opts...)
   125  	if err != nil {
   126  		return nil, err
   127  	}
   128  	s, err := New(client)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	if endpoint != "" {
   133  		s.BasePath = endpoint
   134  	}
   135  	return s, nil
   136  }
   137  
   138  // New creates a new APIService. It uses the provided http.Client for requests.
   139  //
   140  // Deprecated: please use NewService instead.
   141  // To provide a custom HTTP client, use option.WithHTTPClient.
   142  // If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
   143  func New(client *http.Client) (*APIService, error) {
   144  	if client == nil {
   145  		return nil, errors.New("client is nil")
   146  	}
   147  	s := &APIService{client: client, BasePath: basePath}
   148  	s.ApplicationDetailService = NewApplicationDetailServiceService(s)
   149  	s.Projects = NewProjectsService(s)
   150  	s.TestEnvironmentCatalog = NewTestEnvironmentCatalogService(s)
   151  	return s, nil
   152  }
   153  
   154  type APIService struct {
   155  	client    *http.Client
   156  	BasePath  string // API endpoint base URL
   157  	UserAgent string // optional additional User-Agent fragment
   158  
   159  	ApplicationDetailService *ApplicationDetailServiceService
   160  
   161  	Projects *ProjectsService
   162  
   163  	TestEnvironmentCatalog *TestEnvironmentCatalogService
   164  }
   165  
   166  func (s *APIService) userAgent() string {
   167  	if s.UserAgent == "" {
   168  		return googleapi.UserAgent
   169  	}
   170  	return googleapi.UserAgent + " " + s.UserAgent
   171  }
   172  
   173  func NewApplicationDetailServiceService(s *APIService) *ApplicationDetailServiceService {
   174  	rs := &ApplicationDetailServiceService{s: s}
   175  	return rs
   176  }
   177  
   178  type ApplicationDetailServiceService struct {
   179  	s *APIService
   180  }
   181  
   182  func NewProjectsService(s *APIService) *ProjectsService {
   183  	rs := &ProjectsService{s: s}
   184  	rs.DeviceSessions = NewProjectsDeviceSessionsService(s)
   185  	rs.TestMatrices = NewProjectsTestMatricesService(s)
   186  	return rs
   187  }
   188  
   189  type ProjectsService struct {
   190  	s *APIService
   191  
   192  	DeviceSessions *ProjectsDeviceSessionsService
   193  
   194  	TestMatrices *ProjectsTestMatricesService
   195  }
   196  
   197  func NewProjectsDeviceSessionsService(s *APIService) *ProjectsDeviceSessionsService {
   198  	rs := &ProjectsDeviceSessionsService{s: s}
   199  	return rs
   200  }
   201  
   202  type ProjectsDeviceSessionsService struct {
   203  	s *APIService
   204  }
   205  
   206  func NewProjectsTestMatricesService(s *APIService) *ProjectsTestMatricesService {
   207  	rs := &ProjectsTestMatricesService{s: s}
   208  	return rs
   209  }
   210  
   211  type ProjectsTestMatricesService struct {
   212  	s *APIService
   213  }
   214  
   215  func NewTestEnvironmentCatalogService(s *APIService) *TestEnvironmentCatalogService {
   216  	rs := &TestEnvironmentCatalogService{s: s}
   217  	return rs
   218  }
   219  
   220  type TestEnvironmentCatalogService struct {
   221  	s *APIService
   222  }
   223  
   224  // Account: Identifies an account and how to log into it.
   225  type Account struct {
   226  	// GoogleAuto: An automatic google login account.
   227  	GoogleAuto *GoogleAuto `json:"googleAuto,omitempty"`
   228  	// ForceSendFields is a list of field names (e.g. "GoogleAuto") to
   229  	// unconditionally include in API requests. By default, fields with empty or
   230  	// default values are omitted from API requests. See
   231  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   232  	// details.
   233  	ForceSendFields []string `json:"-"`
   234  	// NullFields is a list of field names (e.g. "GoogleAuto") to include in API
   235  	// requests with the JSON null value. By default, fields with empty values are
   236  	// omitted from API requests. See
   237  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   238  	NullFields []string `json:"-"`
   239  }
   240  
   241  func (s *Account) MarshalJSON() ([]byte, error) {
   242  	type NoMethod Account
   243  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   244  }
   245  
   246  // AndroidDevice: A single Android device.
   247  type AndroidDevice struct {
   248  	// AndroidModelId: Required. The id of the Android device to be used. Use the
   249  	// TestEnvironmentDiscoveryService to get supported options.
   250  	AndroidModelId string `json:"androidModelId,omitempty"`
   251  	// AndroidVersionId: Required. The id of the Android OS version to be used. Use
   252  	// the TestEnvironmentDiscoveryService to get supported options.
   253  	AndroidVersionId string `json:"androidVersionId,omitempty"`
   254  	// Locale: Required. The locale the test device used for testing. Use the
   255  	// TestEnvironmentDiscoveryService to get supported options.
   256  	Locale string `json:"locale,omitempty"`
   257  	// Orientation: Required. How the device is oriented during the test. Use the
   258  	// TestEnvironmentDiscoveryService to get supported options.
   259  	Orientation string `json:"orientation,omitempty"`
   260  	// ForceSendFields is a list of field names (e.g. "AndroidModelId") to
   261  	// unconditionally include in API requests. By default, fields with empty or
   262  	// default values are omitted from API requests. See
   263  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   264  	// details.
   265  	ForceSendFields []string `json:"-"`
   266  	// NullFields is a list of field names (e.g. "AndroidModelId") to include in
   267  	// API requests with the JSON null value. By default, fields with empty values
   268  	// are omitted from API requests. See
   269  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   270  	NullFields []string `json:"-"`
   271  }
   272  
   273  func (s *AndroidDevice) MarshalJSON() ([]byte, error) {
   274  	type NoMethod AndroidDevice
   275  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   276  }
   277  
   278  // AndroidDeviceCatalog: The currently supported Android devices.
   279  type AndroidDeviceCatalog struct {
   280  	// Models: The set of supported Android device models.
   281  	Models []*AndroidModel `json:"models,omitempty"`
   282  	// RuntimeConfiguration: The set of supported runtime configurations.
   283  	RuntimeConfiguration *AndroidRuntimeConfiguration `json:"runtimeConfiguration,omitempty"`
   284  	// Versions: The set of supported Android OS versions.
   285  	Versions []*AndroidVersion `json:"versions,omitempty"`
   286  	// ForceSendFields is a list of field names (e.g. "Models") to unconditionally
   287  	// include in API requests. By default, fields with empty or default values are
   288  	// omitted from API requests. See
   289  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   290  	// details.
   291  	ForceSendFields []string `json:"-"`
   292  	// NullFields is a list of field names (e.g. "Models") to include in API
   293  	// requests with the JSON null value. By default, fields with empty values are
   294  	// omitted from API requests. See
   295  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   296  	NullFields []string `json:"-"`
   297  }
   298  
   299  func (s *AndroidDeviceCatalog) MarshalJSON() ([]byte, error) {
   300  	type NoMethod AndroidDeviceCatalog
   301  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   302  }
   303  
   304  // AndroidDeviceList: A list of Android device configurations in which the test
   305  // is to be executed.
   306  type AndroidDeviceList struct {
   307  	// AndroidDevices: Required. A list of Android devices.
   308  	AndroidDevices []*AndroidDevice `json:"androidDevices,omitempty"`
   309  	// ForceSendFields is a list of field names (e.g. "AndroidDevices") to
   310  	// unconditionally include in API requests. By default, fields with empty or
   311  	// default values are omitted from API requests. See
   312  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   313  	// details.
   314  	ForceSendFields []string `json:"-"`
   315  	// NullFields is a list of field names (e.g. "AndroidDevices") to include in
   316  	// API requests with the JSON null value. By default, fields with empty values
   317  	// are omitted from API requests. See
   318  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   319  	NullFields []string `json:"-"`
   320  }
   321  
   322  func (s *AndroidDeviceList) MarshalJSON() ([]byte, error) {
   323  	type NoMethod AndroidDeviceList
   324  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   325  }
   326  
   327  // AndroidInstrumentationTest: A test of an Android application that can
   328  // control an Android component independently of its normal lifecycle. Android
   329  // instrumentation tests run an application APK and test APK inside the same
   330  // process on a virtual or physical AndroidDevice. They also specify a test
   331  // runner class, such as com.google.GoogleTestRunner, which can vary on the
   332  // specific instrumentation framework chosen. See for more information on types
   333  // of Android tests.
   334  type AndroidInstrumentationTest struct {
   335  	// AppApk: The APK for the application under test.
   336  	AppApk *FileReference `json:"appApk,omitempty"`
   337  	// AppBundle: A multi-apk app bundle for the application under test.
   338  	AppBundle *AppBundle `json:"appBundle,omitempty"`
   339  	// AppPackageId: The java package for the application under test. The default
   340  	// value is determined by examining the application's manifest.
   341  	AppPackageId string `json:"appPackageId,omitempty"`
   342  	// OrchestratorOption: The option of whether running each test within its own
   343  	// invocation of instrumentation with Android Test Orchestrator or not. **
   344  	// Orchestrator is only compatible with AndroidJUnitRunner version 1.1 or
   345  	// higher! ** Orchestrator offers the following benefits: - No shared state -
   346  	// Crashes are isolated - Logs are scoped per test See for more information
   347  	// about Android Test Orchestrator. If not set, the test will be run without
   348  	// the orchestrator.
   349  	//
   350  	// Possible values:
   351  	//   "ORCHESTRATOR_OPTION_UNSPECIFIED" - Default value: the server will choose
   352  	// the mode. Currently implies that the test will run without the orchestrator.
   353  	// In the future, all instrumentation tests will be run with the orchestrator.
   354  	// Using the orchestrator is highly encouraged because of all the benefits it
   355  	// offers.
   356  	//   "USE_ORCHESTRATOR" - Run test using orchestrator. ** Only compatible with
   357  	// AndroidJUnitRunner version 1.1 or higher! ** Recommended.
   358  	//   "DO_NOT_USE_ORCHESTRATOR" - Run test without using orchestrator.
   359  	OrchestratorOption string `json:"orchestratorOption,omitempty"`
   360  	// ShardingOption: The option to run tests in multiple shards in parallel.
   361  	ShardingOption *ShardingOption `json:"shardingOption,omitempty"`
   362  	// TestApk: Required. The APK containing the test code to be executed.
   363  	TestApk *FileReference `json:"testApk,omitempty"`
   364  	// TestPackageId: The java package for the test to be executed. The default
   365  	// value is determined by examining the application's manifest.
   366  	TestPackageId string `json:"testPackageId,omitempty"`
   367  	// TestRunnerClass: The InstrumentationTestRunner class. The default value is
   368  	// determined by examining the application's manifest.
   369  	TestRunnerClass string `json:"testRunnerClass,omitempty"`
   370  	// TestTargets: Each target must be fully qualified with the package name or
   371  	// class name, in one of these formats: - "package package_name" - "class
   372  	// package_name.class_name" - "class package_name.class_name#method_name" If
   373  	// empty, all targets in the module will be run.
   374  	TestTargets []string `json:"testTargets,omitempty"`
   375  	// ForceSendFields is a list of field names (e.g. "AppApk") to unconditionally
   376  	// include in API requests. By default, fields with empty or default values are
   377  	// omitted from API requests. See
   378  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   379  	// details.
   380  	ForceSendFields []string `json:"-"`
   381  	// NullFields is a list of field names (e.g. "AppApk") to include in API
   382  	// requests with the JSON null value. By default, fields with empty values are
   383  	// omitted from API requests. See
   384  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   385  	NullFields []string `json:"-"`
   386  }
   387  
   388  func (s *AndroidInstrumentationTest) MarshalJSON() ([]byte, error) {
   389  	type NoMethod AndroidInstrumentationTest
   390  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   391  }
   392  
   393  // AndroidMatrix: A set of Android device configuration permutations is defined
   394  // by the the cross-product of the given axes. Internally, the given
   395  // AndroidMatrix will be expanded into a set of AndroidDevices. Only supported
   396  // permutations will be instantiated. Invalid permutations (e.g., incompatible
   397  // models/versions) are ignored.
   398  type AndroidMatrix struct {
   399  	// AndroidModelIds: Required. The ids of the set of Android device to be used.
   400  	// Use the TestEnvironmentDiscoveryService to get supported options.
   401  	AndroidModelIds []string `json:"androidModelIds,omitempty"`
   402  	// AndroidVersionIds: Required. The ids of the set of Android OS version to be
   403  	// used. Use the TestEnvironmentDiscoveryService to get supported options.
   404  	AndroidVersionIds []string `json:"androidVersionIds,omitempty"`
   405  	// Locales: Required. The set of locales the test device will enable for
   406  	// testing. Use the TestEnvironmentDiscoveryService to get supported options.
   407  	Locales []string `json:"locales,omitempty"`
   408  	// Orientations: Required. The set of orientations to test with. Use the
   409  	// TestEnvironmentDiscoveryService to get supported options.
   410  	Orientations []string `json:"orientations,omitempty"`
   411  	// ForceSendFields is a list of field names (e.g. "AndroidModelIds") to
   412  	// unconditionally include in API requests. By default, fields with empty or
   413  	// default values are omitted from API requests. See
   414  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   415  	// details.
   416  	ForceSendFields []string `json:"-"`
   417  	// NullFields is a list of field names (e.g. "AndroidModelIds") to include in
   418  	// API requests with the JSON null value. By default, fields with empty values
   419  	// are omitted from API requests. See
   420  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   421  	NullFields []string `json:"-"`
   422  }
   423  
   424  func (s *AndroidMatrix) MarshalJSON() ([]byte, error) {
   425  	type NoMethod AndroidMatrix
   426  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   427  }
   428  
   429  // AndroidModel: A description of an Android device tests may be run on.
   430  type AndroidModel struct {
   431  	// Brand: The company that this device is branded with. Example: "Google",
   432  	// "Samsung".
   433  	Brand string `json:"brand,omitempty"`
   434  	// Codename: The name of the industrial design. This corresponds to
   435  	// android.os.Build.DEVICE.
   436  	Codename string `json:"codename,omitempty"`
   437  	// Form: Whether this device is virtual or physical.
   438  	//
   439  	// Possible values:
   440  	//   "DEVICE_FORM_UNSPECIFIED" - Do not use. For proto versioning only.
   441  	//   "VIRTUAL" - Android virtual device using Compute Engine native
   442  	// virtualization. Firebase Test Lab only.
   443  	//   "PHYSICAL" - Actual hardware.
   444  	//   "EMULATOR" - Android virtual device using emulator in nested
   445  	// virtualization. Equivalent to Android Studio.
   446  	Form string `json:"form,omitempty"`
   447  	// FormFactor: Whether this device is a phone, tablet, wearable, etc.
   448  	//
   449  	// Possible values:
   450  	//   "DEVICE_FORM_FACTOR_UNSPECIFIED" - Do not use. For proto versioning only.
   451  	//   "PHONE" - This device has the shape of a phone.
   452  	//   "TABLET" - This device has the shape of a tablet.
   453  	//   "WEARABLE" - This device has the shape of a watch or other wearable.
   454  	FormFactor string `json:"formFactor,omitempty"`
   455  	// Id: The unique opaque id for this model. Use this for invoking the
   456  	// TestExecutionService.
   457  	Id string `json:"id,omitempty"`
   458  	// LowFpsVideoRecording: True if and only if tests with this model are recorded
   459  	// by stitching together screenshots. See use_low_spec_video_recording in
   460  	// device config.
   461  	LowFpsVideoRecording bool `json:"lowFpsVideoRecording,omitempty"`
   462  	// Manufacturer: The manufacturer of this device.
   463  	Manufacturer string `json:"manufacturer,omitempty"`
   464  	// Name: The human-readable marketing name for this device model. Examples:
   465  	// "Nexus 5", "Galaxy S5".
   466  	Name string `json:"name,omitempty"`
   467  	// PerVersionInfo: Version-specific information of an Android model.
   468  	PerVersionInfo []*PerAndroidVersionInfo `json:"perVersionInfo,omitempty"`
   469  	// ScreenDensity: Screen density in DPI. This corresponds to ro.sf.lcd_density
   470  	ScreenDensity int64 `json:"screenDensity,omitempty"`
   471  	// ScreenX: Screen size in the horizontal (X) dimension measured in pixels.
   472  	ScreenX int64 `json:"screenX,omitempty"`
   473  	// ScreenY: Screen size in the vertical (Y) dimension measured in pixels.
   474  	ScreenY int64 `json:"screenY,omitempty"`
   475  	// SupportedAbis: The list of supported ABIs for this device. This corresponds
   476  	// to either android.os.Build.SUPPORTED_ABIS (for API level 21 and above) or
   477  	// android.os.Build.CPU_ABI/CPU_ABI2. The most preferred ABI is the first
   478  	// element in the list. Elements are optionally prefixed by "version_id:"
   479  	// (where version_id is the id of an AndroidVersion), denoting an ABI that is
   480  	// supported only on a particular version.
   481  	SupportedAbis []string `json:"supportedAbis,omitempty"`
   482  	// SupportedVersionIds: The set of Android versions this device supports.
   483  	SupportedVersionIds []string `json:"supportedVersionIds,omitempty"`
   484  	// Tags: Tags for this dimension. Examples: "default", "preview", "deprecated".
   485  	Tags []string `json:"tags,omitempty"`
   486  	// ThumbnailUrl: URL of a thumbnail image (photo) of the device.
   487  	ThumbnailUrl string `json:"thumbnailUrl,omitempty"`
   488  	// ForceSendFields is a list of field names (e.g. "Brand") to unconditionally
   489  	// include in API requests. By default, fields with empty or default values are
   490  	// omitted from API requests. See
   491  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   492  	// details.
   493  	ForceSendFields []string `json:"-"`
   494  	// NullFields is a list of field names (e.g. "Brand") to include in API
   495  	// requests with the JSON null value. By default, fields with empty values are
   496  	// omitted from API requests. See
   497  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   498  	NullFields []string `json:"-"`
   499  }
   500  
   501  func (s *AndroidModel) MarshalJSON() ([]byte, error) {
   502  	type NoMethod AndroidModel
   503  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   504  }
   505  
   506  // AndroidRoboTest: A test of an android application that explores the
   507  // application on a virtual or physical Android Device, finding culprits and
   508  // crashes as it goes.
   509  type AndroidRoboTest struct {
   510  	// AppApk: The APK for the application under test.
   511  	AppApk *FileReference `json:"appApk,omitempty"`
   512  	// AppBundle: A multi-apk app bundle for the application under test.
   513  	AppBundle *AppBundle `json:"appBundle,omitempty"`
   514  	// AppInitialActivity: The initial activity that should be used to start the
   515  	// app.
   516  	AppInitialActivity string `json:"appInitialActivity,omitempty"`
   517  	// AppPackageId: The java package for the application under test. The default
   518  	// value is determined by examining the application's manifest.
   519  	AppPackageId string `json:"appPackageId,omitempty"`
   520  	// MaxDepth: The max depth of the traversal stack Robo can explore. Needs to be
   521  	// at least 2 to make Robo explore the app beyond the first activity. Default
   522  	// is 50.
   523  	MaxDepth int64 `json:"maxDepth,omitempty"`
   524  	// MaxSteps: The max number of steps Robo can execute. Default is no limit.
   525  	MaxSteps int64 `json:"maxSteps,omitempty"`
   526  	// RoboDirectives: A set of directives Robo should apply during the crawl. This
   527  	// allows users to customize the crawl. For example, the username and password
   528  	// for a test account can be provided.
   529  	RoboDirectives []*RoboDirective `json:"roboDirectives,omitempty"`
   530  	// RoboMode: The mode in which Robo should run. Most clients should allow the
   531  	// server to populate this field automatically.
   532  	//
   533  	// Possible values:
   534  	//   "ROBO_MODE_UNSPECIFIED" - This means that the server should choose the
   535  	// mode. Recommended.
   536  	//   "ROBO_VERSION_1" - Runs Robo in UIAutomator-only mode without app
   537  	// resigning
   538  	//   "ROBO_VERSION_2" - Runs Robo in standard Espresso with UIAutomator
   539  	// fallback
   540  	RoboMode string `json:"roboMode,omitempty"`
   541  	// RoboScript: A JSON file with a sequence of actions Robo should perform as a
   542  	// prologue for the crawl.
   543  	RoboScript *FileReference `json:"roboScript,omitempty"`
   544  	// StartingIntents: The intents used to launch the app for the crawl. If none
   545  	// are provided, then the main launcher activity is launched. If some are
   546  	// provided, then only those provided are launched (the main launcher activity
   547  	// must be provided explicitly).
   548  	StartingIntents []*RoboStartingIntent `json:"startingIntents,omitempty"`
   549  	// ForceSendFields is a list of field names (e.g. "AppApk") to unconditionally
   550  	// include in API requests. By default, fields with empty or default values are
   551  	// omitted from API requests. See
   552  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   553  	// details.
   554  	ForceSendFields []string `json:"-"`
   555  	// NullFields is a list of field names (e.g. "AppApk") to include in API
   556  	// requests with the JSON null value. By default, fields with empty values are
   557  	// omitted from API requests. See
   558  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   559  	NullFields []string `json:"-"`
   560  }
   561  
   562  func (s *AndroidRoboTest) MarshalJSON() ([]byte, error) {
   563  	type NoMethod AndroidRoboTest
   564  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   565  }
   566  
   567  // AndroidRuntimeConfiguration: Android configuration that can be selected at
   568  // the time a test is run.
   569  type AndroidRuntimeConfiguration struct {
   570  	// Locales: The set of available locales.
   571  	Locales []*Locale `json:"locales,omitempty"`
   572  	// Orientations: The set of available orientations.
   573  	Orientations []*Orientation `json:"orientations,omitempty"`
   574  	// ForceSendFields is a list of field names (e.g. "Locales") to unconditionally
   575  	// include in API requests. By default, fields with empty or default values are
   576  	// omitted from API requests. See
   577  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   578  	// details.
   579  	ForceSendFields []string `json:"-"`
   580  	// NullFields is a list of field names (e.g. "Locales") to include in API
   581  	// requests with the JSON null value. By default, fields with empty values are
   582  	// omitted from API requests. See
   583  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   584  	NullFields []string `json:"-"`
   585  }
   586  
   587  func (s *AndroidRuntimeConfiguration) MarshalJSON() ([]byte, error) {
   588  	type NoMethod AndroidRuntimeConfiguration
   589  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   590  }
   591  
   592  // AndroidTestLoop: A test of an Android Application with a Test Loop. The
   593  // intent \ will be implicitly added, since Games is the only user of this api,
   594  // for the time being.
   595  type AndroidTestLoop struct {
   596  	// AppApk: The APK for the application under test.
   597  	AppApk *FileReference `json:"appApk,omitempty"`
   598  	// AppBundle: A multi-apk app bundle for the application under test.
   599  	AppBundle *AppBundle `json:"appBundle,omitempty"`
   600  	// AppPackageId: The java package for the application under test. The default
   601  	// is determined by examining the application's manifest.
   602  	AppPackageId string `json:"appPackageId,omitempty"`
   603  	// ScenarioLabels: The list of scenario labels that should be run during the
   604  	// test. The scenario labels should map to labels defined in the application's
   605  	// manifest. For example, player_experience and
   606  	// com.google.test.loops.player_experience add all of the loops labeled in the
   607  	// manifest with the com.google.test.loops.player_experience name to the
   608  	// execution. Scenarios can also be specified in the scenarios field.
   609  	ScenarioLabels []string `json:"scenarioLabels,omitempty"`
   610  	// Scenarios: The list of scenarios that should be run during the test. The
   611  	// default is all test loops, derived from the application's manifest.
   612  	Scenarios []int64 `json:"scenarios,omitempty"`
   613  	// ForceSendFields is a list of field names (e.g. "AppApk") to unconditionally
   614  	// include in API requests. By default, fields with empty or default values are
   615  	// omitted from API requests. See
   616  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   617  	// details.
   618  	ForceSendFields []string `json:"-"`
   619  	// NullFields is a list of field names (e.g. "AppApk") to include in API
   620  	// requests with the JSON null value. By default, fields with empty values are
   621  	// omitted from API requests. See
   622  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   623  	NullFields []string `json:"-"`
   624  }
   625  
   626  func (s *AndroidTestLoop) MarshalJSON() ([]byte, error) {
   627  	type NoMethod AndroidTestLoop
   628  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   629  }
   630  
   631  // AndroidVersion: A version of the Android OS.
   632  type AndroidVersion struct {
   633  	// ApiLevel: The API level for this Android version. Examples: 18, 19.
   634  	ApiLevel int64 `json:"apiLevel,omitempty"`
   635  	// CodeName: The code name for this Android version. Examples: "JellyBean",
   636  	// "KitKat".
   637  	CodeName string `json:"codeName,omitempty"`
   638  	// Distribution: Market share for this version.
   639  	Distribution *Distribution `json:"distribution,omitempty"`
   640  	// Id: An opaque id for this Android version. Use this id to invoke the
   641  	// TestExecutionService.
   642  	Id string `json:"id,omitempty"`
   643  	// ReleaseDate: The date this Android version became available in the market.
   644  	ReleaseDate *Date `json:"releaseDate,omitempty"`
   645  	// Tags: Tags for this dimension. Examples: "default", "preview", "deprecated".
   646  	Tags []string `json:"tags,omitempty"`
   647  	// VersionString: A string representing this version of the Android OS.
   648  	// Examples: "4.3", "4.4".
   649  	VersionString string `json:"versionString,omitempty"`
   650  	// ForceSendFields is a list of field names (e.g. "ApiLevel") to
   651  	// unconditionally include in API requests. By default, fields with empty or
   652  	// default values are omitted from API requests. See
   653  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   654  	// details.
   655  	ForceSendFields []string `json:"-"`
   656  	// NullFields is a list of field names (e.g. "ApiLevel") to include in API
   657  	// requests with the JSON null value. By default, fields with empty values are
   658  	// omitted from API requests. See
   659  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   660  	NullFields []string `json:"-"`
   661  }
   662  
   663  func (s *AndroidVersion) MarshalJSON() ([]byte, error) {
   664  	type NoMethod AndroidVersion
   665  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   666  }
   667  
   668  // Apk: An Android package file to install.
   669  type Apk struct {
   670  	// Location: The path to an APK to be installed on the device before the test
   671  	// begins.
   672  	Location *FileReference `json:"location,omitempty"`
   673  	// PackageName: The java package for the APK to be installed. Value is
   674  	// determined by examining the application's manifest.
   675  	PackageName string `json:"packageName,omitempty"`
   676  	// ForceSendFields is a list of field names (e.g. "Location") to
   677  	// unconditionally include in API requests. By default, fields with empty or
   678  	// default values are omitted from API requests. See
   679  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   680  	// details.
   681  	ForceSendFields []string `json:"-"`
   682  	// NullFields is a list of field names (e.g. "Location") to include in API
   683  	// requests with the JSON null value. By default, fields with empty values are
   684  	// omitted from API requests. See
   685  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   686  	NullFields []string `json:"-"`
   687  }
   688  
   689  func (s *Apk) MarshalJSON() ([]byte, error) {
   690  	type NoMethod Apk
   691  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   692  }
   693  
   694  // ApkDetail: Android application details based on application manifest and
   695  // archive contents.
   696  type ApkDetail struct {
   697  	ApkManifest *ApkManifest `json:"apkManifest,omitempty"`
   698  	// ForceSendFields is a list of field names (e.g. "ApkManifest") to
   699  	// unconditionally include in API requests. By default, fields with empty or
   700  	// default values are omitted from API requests. See
   701  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   702  	// details.
   703  	ForceSendFields []string `json:"-"`
   704  	// NullFields is a list of field names (e.g. "ApkManifest") to include in API
   705  	// requests with the JSON null value. By default, fields with empty values are
   706  	// omitted from API requests. See
   707  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   708  	NullFields []string `json:"-"`
   709  }
   710  
   711  func (s *ApkDetail) MarshalJSON() ([]byte, error) {
   712  	type NoMethod ApkDetail
   713  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   714  }
   715  
   716  // ApkManifest: An Android app manifest. See
   717  // http://developer.android.com/guide/topics/manifest/manifest-intro.html
   718  type ApkManifest struct {
   719  	// ApplicationLabel: User-readable name for the application.
   720  	ApplicationLabel string          `json:"applicationLabel,omitempty"`
   721  	IntentFilters    []*IntentFilter `json:"intentFilters,omitempty"`
   722  	// MaxSdkVersion: Maximum API level on which the application is designed to
   723  	// run.
   724  	MaxSdkVersion int64 `json:"maxSdkVersion,omitempty"`
   725  	// Metadata: Meta-data tags defined in the manifest.
   726  	Metadata []*Metadata `json:"metadata,omitempty"`
   727  	// MinSdkVersion: Minimum API level required for the application to run.
   728  	MinSdkVersion int64 `json:"minSdkVersion,omitempty"`
   729  	// PackageName: Full Java-style package name for this application, e.g.
   730  	// "com.example.foo".
   731  	PackageName string `json:"packageName,omitempty"`
   732  	// Services: Services contained in the tag.
   733  	Services []*Service `json:"services,omitempty"`
   734  	// TargetSdkVersion: Specifies the API Level on which the application is
   735  	// designed to run.
   736  	TargetSdkVersion int64 `json:"targetSdkVersion,omitempty"`
   737  	// UsesFeature: Feature usage tags defined in the manifest.
   738  	UsesFeature []*UsesFeature `json:"usesFeature,omitempty"`
   739  	// UsesPermission: Permissions declared to be used by the application
   740  	UsesPermission []string `json:"usesPermission,omitempty"`
   741  	// VersionCode: Version number used internally by the app.
   742  	VersionCode int64 `json:"versionCode,omitempty,string"`
   743  	// VersionName: Version number shown to users.
   744  	VersionName string `json:"versionName,omitempty"`
   745  	// ForceSendFields is a list of field names (e.g. "ApplicationLabel") to
   746  	// unconditionally include in API requests. By default, fields with empty or
   747  	// default values are omitted from API requests. See
   748  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   749  	// details.
   750  	ForceSendFields []string `json:"-"`
   751  	// NullFields is a list of field names (e.g. "ApplicationLabel") to include in
   752  	// API requests with the JSON null value. By default, fields with empty values
   753  	// are omitted from API requests. See
   754  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   755  	NullFields []string `json:"-"`
   756  }
   757  
   758  func (s *ApkManifest) MarshalJSON() ([]byte, error) {
   759  	type NoMethod ApkManifest
   760  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   761  }
   762  
   763  // AppBundle: An Android App Bundle file format, containing a BundleConfig.pb
   764  // file, a base module directory, zero or more dynamic feature module
   765  // directories. See https://developer.android.com/guide/app-bundle/build for
   766  // guidance on building App Bundles.
   767  type AppBundle struct {
   768  	// BundleLocation: .aab file representing the app bundle under test.
   769  	BundleLocation *FileReference `json:"bundleLocation,omitempty"`
   770  	// ForceSendFields is a list of field names (e.g. "BundleLocation") to
   771  	// unconditionally include in API requests. By default, fields with empty or
   772  	// default values are omitted from API requests. See
   773  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   774  	// details.
   775  	ForceSendFields []string `json:"-"`
   776  	// NullFields is a list of field names (e.g. "BundleLocation") to include in
   777  	// API requests with the JSON null value. By default, fields with empty values
   778  	// are omitted from API requests. See
   779  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   780  	NullFields []string `json:"-"`
   781  }
   782  
   783  func (s *AppBundle) MarshalJSON() ([]byte, error) {
   784  	type NoMethod AppBundle
   785  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   786  }
   787  
   788  // CancelDeviceSessionRequest: The request object for cancelling a Device
   789  // Session.
   790  type CancelDeviceSessionRequest struct {
   791  }
   792  
   793  // CancelTestMatrixResponse: Response containing the current state of the
   794  // specified test matrix.
   795  type CancelTestMatrixResponse struct {
   796  	// TestState: The current rolled-up state of the test matrix. If this state is
   797  	// already final, then the cancelation request will have no effect.
   798  	//
   799  	// Possible values:
   800  	//   "TEST_STATE_UNSPECIFIED" - Do not use. For proto versioning only.
   801  	//   "VALIDATING" - The execution or matrix is being validated.
   802  	//   "PENDING" - The execution or matrix is waiting for resources to become
   803  	// available.
   804  	//   "RUNNING" - The execution is currently being processed. Can only be set on
   805  	// an execution.
   806  	//   "FINISHED" - The execution or matrix has terminated normally. On a matrix
   807  	// this means that the matrix level processing completed normally, but
   808  	// individual executions may be in an ERROR state.
   809  	//   "ERROR" - The execution or matrix has stopped because it encountered an
   810  	// infrastructure failure.
   811  	//   "UNSUPPORTED_ENVIRONMENT" - The execution was not run because it
   812  	// corresponds to a unsupported environment. Can only be set on an execution.
   813  	//   "INCOMPATIBLE_ENVIRONMENT" - The execution was not run because the
   814  	// provided inputs are incompatible with the requested environment. Example:
   815  	// requested AndroidVersion is lower than APK's minSdkVersion Can only be set
   816  	// on an execution.
   817  	//   "INCOMPATIBLE_ARCHITECTURE" - The execution was not run because the
   818  	// provided inputs are incompatible with the requested architecture. Example:
   819  	// requested device does not support running the native code in the supplied
   820  	// APK Can only be set on an execution.
   821  	//   "CANCELLED" - The user cancelled the execution. Can only be set on an
   822  	// execution.
   823  	//   "INVALID" - The execution or matrix was not run because the provided
   824  	// inputs are not valid. Examples: input file is not of the expected type, is
   825  	// malformed/corrupt, or was flagged as malware
   826  	TestState string `json:"testState,omitempty"`
   827  
   828  	// ServerResponse contains the HTTP response code and headers from the server.
   829  	googleapi.ServerResponse `json:"-"`
   830  	// ForceSendFields is a list of field names (e.g. "TestState") to
   831  	// unconditionally include in API requests. By default, fields with empty or
   832  	// default values are omitted from API requests. See
   833  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   834  	// details.
   835  	ForceSendFields []string `json:"-"`
   836  	// NullFields is a list of field names (e.g. "TestState") to include in API
   837  	// requests with the JSON null value. By default, fields with empty values are
   838  	// omitted from API requests. See
   839  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   840  	NullFields []string `json:"-"`
   841  }
   842  
   843  func (s *CancelTestMatrixResponse) MarshalJSON() ([]byte, error) {
   844  	type NoMethod CancelTestMatrixResponse
   845  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   846  }
   847  
   848  // ClientInfo: Information about the client which invoked the test.
   849  type ClientInfo struct {
   850  	// ClientInfoDetails: The list of detailed information about client.
   851  	ClientInfoDetails []*ClientInfoDetail `json:"clientInfoDetails,omitempty"`
   852  	// Name: Required. Client name, such as gcloud.
   853  	Name string `json:"name,omitempty"`
   854  	// ForceSendFields is a list of field names (e.g. "ClientInfoDetails") to
   855  	// unconditionally include in API requests. By default, fields with empty or
   856  	// default values are omitted from API requests. See
   857  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   858  	// details.
   859  	ForceSendFields []string `json:"-"`
   860  	// NullFields is a list of field names (e.g. "ClientInfoDetails") to include in
   861  	// API requests with the JSON null value. By default, fields with empty values
   862  	// are omitted from API requests. See
   863  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   864  	NullFields []string `json:"-"`
   865  }
   866  
   867  func (s *ClientInfo) MarshalJSON() ([]byte, error) {
   868  	type NoMethod ClientInfo
   869  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   870  }
   871  
   872  // ClientInfoDetail: Key-value pair of detailed information about the client
   873  // which invoked the test. Examples: {'Version', '1.0'}, {'Release Track',
   874  // 'BETA'}.
   875  type ClientInfoDetail struct {
   876  	// Key: Required. The key of detailed client information.
   877  	Key string `json:"key,omitempty"`
   878  	// Value: Required. The value of detailed client information.
   879  	Value string `json:"value,omitempty"`
   880  	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
   881  	// include in API requests. By default, fields with empty or default values are
   882  	// omitted from API requests. See
   883  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   884  	// details.
   885  	ForceSendFields []string `json:"-"`
   886  	// NullFields is a list of field names (e.g. "Key") to include in API requests
   887  	// with the JSON null value. By default, fields with empty values are omitted
   888  	// from API requests. See
   889  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   890  	NullFields []string `json:"-"`
   891  }
   892  
   893  func (s *ClientInfoDetail) MarshalJSON() ([]byte, error) {
   894  	type NoMethod ClientInfoDetail
   895  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   896  }
   897  
   898  // Date: Represents a whole or partial calendar date, such as a birthday. The
   899  // time of day and time zone are either specified elsewhere or are
   900  // insignificant. The date is relative to the Gregorian Calendar. This can
   901  // represent one of the following: * A full date, with non-zero year, month,
   902  // and day values. * A month and day, with a zero year (for example, an
   903  // anniversary). * A year on its own, with a zero month and a zero day. * A
   904  // year and month, with a zero day (for example, a credit card expiration
   905  // date). Related types: * google.type.TimeOfDay * google.type.DateTime *
   906  // google.protobuf.Timestamp
   907  type Date struct {
   908  	// Day: Day of a month. Must be from 1 to 31 and valid for the year and month,
   909  	// or 0 to specify a year by itself or a year and month where the day isn't
   910  	// significant.
   911  	Day int64 `json:"day,omitempty"`
   912  	// Month: Month of a year. Must be from 1 to 12, or 0 to specify a year without
   913  	// a month and day.
   914  	Month int64 `json:"month,omitempty"`
   915  	// Year: Year of the date. Must be from 1 to 9999, or 0 to specify a date
   916  	// without a year.
   917  	Year int64 `json:"year,omitempty"`
   918  	// ForceSendFields is a list of field names (e.g. "Day") to unconditionally
   919  	// include in API requests. By default, fields with empty or default values are
   920  	// omitted from API requests. See
   921  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   922  	// details.
   923  	ForceSendFields []string `json:"-"`
   924  	// NullFields is a list of field names (e.g. "Day") to include in API requests
   925  	// with the JSON null value. By default, fields with empty values are omitted
   926  	// from API requests. See
   927  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   928  	NullFields []string `json:"-"`
   929  }
   930  
   931  func (s *Date) MarshalJSON() ([]byte, error) {
   932  	type NoMethod Date
   933  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   934  }
   935  
   936  // DeviceFile: A single device file description.
   937  type DeviceFile struct {
   938  	// ObbFile: A reference to an opaque binary blob file.
   939  	ObbFile *ObbFile `json:"obbFile,omitempty"`
   940  	// RegularFile: A reference to a regular file.
   941  	RegularFile *RegularFile `json:"regularFile,omitempty"`
   942  	// ForceSendFields is a list of field names (e.g. "ObbFile") to unconditionally
   943  	// include in API requests. By default, fields with empty or default values are
   944  	// omitted from API requests. See
   945  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   946  	// details.
   947  	ForceSendFields []string `json:"-"`
   948  	// NullFields is a list of field names (e.g. "ObbFile") to include in API
   949  	// requests with the JSON null value. By default, fields with empty values are
   950  	// omitted from API requests. See
   951  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   952  	NullFields []string `json:"-"`
   953  }
   954  
   955  func (s *DeviceFile) MarshalJSON() ([]byte, error) {
   956  	type NoMethod DeviceFile
   957  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   958  }
   959  
   960  // DeviceIpBlock: A single device IP block
   961  type DeviceIpBlock struct {
   962  	// AddedDate: The date this block was added to Firebase Test Lab
   963  	AddedDate *Date `json:"addedDate,omitempty"`
   964  	// Block: An IP address block in CIDR notation eg: 34.68.194.64/29
   965  	Block string `json:"block,omitempty"`
   966  	// Form: Whether this block is used by physical or virtual devices
   967  	//
   968  	// Possible values:
   969  	//   "DEVICE_FORM_UNSPECIFIED" - Do not use. For proto versioning only.
   970  	//   "VIRTUAL" - Android virtual device using Compute Engine native
   971  	// virtualization. Firebase Test Lab only.
   972  	//   "PHYSICAL" - Actual hardware.
   973  	//   "EMULATOR" - Android virtual device using emulator in nested
   974  	// virtualization. Equivalent to Android Studio.
   975  	Form string `json:"form,omitempty"`
   976  	// ForceSendFields is a list of field names (e.g. "AddedDate") to
   977  	// unconditionally include in API requests. By default, fields with empty or
   978  	// default values are omitted from API requests. See
   979  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
   980  	// details.
   981  	ForceSendFields []string `json:"-"`
   982  	// NullFields is a list of field names (e.g. "AddedDate") to include in API
   983  	// requests with the JSON null value. By default, fields with empty values are
   984  	// omitted from API requests. See
   985  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
   986  	NullFields []string `json:"-"`
   987  }
   988  
   989  func (s *DeviceIpBlock) MarshalJSON() ([]byte, error) {
   990  	type NoMethod DeviceIpBlock
   991  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
   992  }
   993  
   994  // DeviceIpBlockCatalog: List of IP blocks used by the Firebase Test Lab
   995  type DeviceIpBlockCatalog struct {
   996  	// IpBlocks: The device IP blocks used by Firebase Test Lab
   997  	IpBlocks []*DeviceIpBlock `json:"ipBlocks,omitempty"`
   998  	// ForceSendFields is a list of field names (e.g. "IpBlocks") to
   999  	// unconditionally include in API requests. By default, fields with empty or
  1000  	// default values are omitted from API requests. See
  1001  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1002  	// details.
  1003  	ForceSendFields []string `json:"-"`
  1004  	// NullFields is a list of field names (e.g. "IpBlocks") to include in API
  1005  	// requests with the JSON null value. By default, fields with empty values are
  1006  	// omitted from API requests. See
  1007  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1008  	NullFields []string `json:"-"`
  1009  }
  1010  
  1011  func (s *DeviceIpBlockCatalog) MarshalJSON() ([]byte, error) {
  1012  	type NoMethod DeviceIpBlockCatalog
  1013  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1014  }
  1015  
  1016  // DeviceSession: Protobuf message describing the device message, used from
  1017  // several RPCs.
  1018  type DeviceSession struct {
  1019  	// ActiveStartTime: Output only. The timestamp that the session first became
  1020  	// ACTIVE.
  1021  	ActiveStartTime string `json:"activeStartTime,omitempty"`
  1022  	// AndroidDevice: Required. The requested device
  1023  	AndroidDevice *AndroidDevice `json:"androidDevice,omitempty"`
  1024  	// CreateTime: Output only. The time that the Session was created.
  1025  	CreateTime string `json:"createTime,omitempty"`
  1026  	// DisplayName: Output only. The title of the DeviceSession to be presented in
  1027  	// the UI.
  1028  	DisplayName string `json:"displayName,omitempty"`
  1029  	// ExpireTime: Optional. If the device is still in use at this time, any
  1030  	// connections will be ended and the SessionState will transition from ACTIVE
  1031  	// to FINISHED.
  1032  	ExpireTime string `json:"expireTime,omitempty"`
  1033  	// InactivityTimeout: Output only. The interval of time that this device must
  1034  	// be interacted with before it transitions from ACTIVE to TIMEOUT_INACTIVITY.
  1035  	InactivityTimeout string `json:"inactivityTimeout,omitempty"`
  1036  	// Name: Optional. Name of the DeviceSession, e.g.
  1037  	// "projects/{project_id}/deviceSessions/{session_id}"
  1038  	Name string `json:"name,omitempty"`
  1039  	// State: Output only. Current state of the DeviceSession.
  1040  	//
  1041  	// Possible values:
  1042  	//   "SESSION_STATE_UNSPECIFIED" - Default value. This value is unused.
  1043  	//   "REQUESTED" - Initial state of a session request. The session is being
  1044  	// validated for correctness and a device is not yet requested.
  1045  	//   "PENDING" - The session has been validated and is in the queue for a
  1046  	// device.
  1047  	//   "ACTIVE" - The session has been granted and the device is accepting
  1048  	// connections.
  1049  	//   "EXPIRED" - The session duration exceeded the device’s reservation time
  1050  	// period and timed out automatically.
  1051  	//   "FINISHED" - The user is finished with the session and it was canceled by
  1052  	// the user while the request was still getting allocated or after allocation
  1053  	// and during device usage period.
  1054  	//   "UNAVAILABLE" - Unable to complete the session because the device was
  1055  	// unavailable and it failed to allocate through the scheduler. For example, a
  1056  	// device not in the catalog was requested or the request expired in the
  1057  	// allocation queue.
  1058  	//   "ERROR" - Unable to complete the session for an internal reason, such as
  1059  	// an infrastructure failure.
  1060  	State string `json:"state,omitempty"`
  1061  	// StateHistories: Output only. The historical state transitions of the
  1062  	// session_state message including the current session state.
  1063  	StateHistories []*SessionStateEvent `json:"stateHistories,omitempty"`
  1064  	// Ttl: Optional. The amount of time that a device will be initially allocated
  1065  	// for. This can eventually be extended with the UpdateDeviceSession RPC.
  1066  	// Default: 15 minutes.
  1067  	Ttl string `json:"ttl,omitempty"`
  1068  
  1069  	// ServerResponse contains the HTTP response code and headers from the server.
  1070  	googleapi.ServerResponse `json:"-"`
  1071  	// ForceSendFields is a list of field names (e.g. "ActiveStartTime") to
  1072  	// unconditionally include in API requests. By default, fields with empty or
  1073  	// default values are omitted from API requests. See
  1074  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1075  	// details.
  1076  	ForceSendFields []string `json:"-"`
  1077  	// NullFields is a list of field names (e.g. "ActiveStartTime") to include in
  1078  	// API requests with the JSON null value. By default, fields with empty values
  1079  	// are omitted from API requests. See
  1080  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1081  	NullFields []string `json:"-"`
  1082  }
  1083  
  1084  func (s *DeviceSession) MarshalJSON() ([]byte, error) {
  1085  	type NoMethod DeviceSession
  1086  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1087  }
  1088  
  1089  // DirectAccessVersionInfo: Denotes whether Direct Access is supported, and by
  1090  // which client versions. DirectAccessService is currently available as a
  1091  // preview to select developers. You can register today on behalf of you and
  1092  // your team at
  1093  // https://developer.android.com/studio/preview/android-device-streaming
  1094  type DirectAccessVersionInfo struct {
  1095  	// DirectAccessSupported: Whether direct access is supported at all. Clients
  1096  	// are expected to filter down the device list to only android models and
  1097  	// versions which support Direct Access when that is the user intent.
  1098  	DirectAccessSupported bool `json:"directAccessSupported,omitempty"`
  1099  	// MinimumAndroidStudioVersion: Output only. Indicates client-device
  1100  	// compatibility, where a device is known to work only with certain workarounds
  1101  	// implemented in the Android Studio client. Expected format
  1102  	// "major.minor.micro.patch", e.g. "5921.22.2211.8881706".
  1103  	MinimumAndroidStudioVersion string `json:"minimumAndroidStudioVersion,omitempty"`
  1104  	// ForceSendFields is a list of field names (e.g. "DirectAccessSupported") to
  1105  	// unconditionally include in API requests. By default, fields with empty or
  1106  	// default values are omitted from API requests. See
  1107  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1108  	// details.
  1109  	ForceSendFields []string `json:"-"`
  1110  	// NullFields is a list of field names (e.g. "DirectAccessSupported") to
  1111  	// include in API requests with the JSON null value. By default, fields with
  1112  	// empty values are omitted from API requests. See
  1113  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1114  	NullFields []string `json:"-"`
  1115  }
  1116  
  1117  func (s *DirectAccessVersionInfo) MarshalJSON() ([]byte, error) {
  1118  	type NoMethod DirectAccessVersionInfo
  1119  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1120  }
  1121  
  1122  // Distribution: Data about the relative number of devices running a given
  1123  // configuration of the Android platform.
  1124  type Distribution struct {
  1125  	// MarketShare: Output only. The estimated fraction (0-1) of the total market
  1126  	// with this configuration.
  1127  	MarketShare float64 `json:"marketShare,omitempty"`
  1128  	// MeasurementTime: Output only. The time this distribution was measured.
  1129  	MeasurementTime string `json:"measurementTime,omitempty"`
  1130  	// ForceSendFields is a list of field names (e.g. "MarketShare") to
  1131  	// unconditionally include in API requests. By default, fields with empty or
  1132  	// default values are omitted from API requests. See
  1133  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1134  	// details.
  1135  	ForceSendFields []string `json:"-"`
  1136  	// NullFields is a list of field names (e.g. "MarketShare") to include in API
  1137  	// requests with the JSON null value. By default, fields with empty values are
  1138  	// omitted from API requests. See
  1139  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1140  	NullFields []string `json:"-"`
  1141  }
  1142  
  1143  func (s *Distribution) MarshalJSON() ([]byte, error) {
  1144  	type NoMethod Distribution
  1145  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1146  }
  1147  
  1148  func (s *Distribution) UnmarshalJSON(data []byte) error {
  1149  	type NoMethod Distribution
  1150  	var s1 struct {
  1151  		MarketShare gensupport.JSONFloat64 `json:"marketShare"`
  1152  		*NoMethod
  1153  	}
  1154  	s1.NoMethod = (*NoMethod)(s)
  1155  	if err := json.Unmarshal(data, &s1); err != nil {
  1156  		return err
  1157  	}
  1158  	s.MarketShare = float64(s1.MarketShare)
  1159  	return nil
  1160  }
  1161  
  1162  // Empty: A generic empty message that you can re-use to avoid defining
  1163  // duplicated empty messages in your APIs. A typical example is to use it as
  1164  // the request or the response type of an API method. For instance: service Foo
  1165  // { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  1166  type Empty struct {
  1167  	// ServerResponse contains the HTTP response code and headers from the server.
  1168  	googleapi.ServerResponse `json:"-"`
  1169  }
  1170  
  1171  // Environment: The environment in which the test is run.
  1172  type Environment struct {
  1173  	// AndroidDevice: An Android device which must be used with an Android test.
  1174  	AndroidDevice *AndroidDevice `json:"androidDevice,omitempty"`
  1175  	// IosDevice: An iOS device which must be used with an iOS test.
  1176  	IosDevice *IosDevice `json:"iosDevice,omitempty"`
  1177  	// ForceSendFields is a list of field names (e.g. "AndroidDevice") to
  1178  	// unconditionally include in API requests. By default, fields with empty or
  1179  	// default values are omitted from API requests. See
  1180  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1181  	// details.
  1182  	ForceSendFields []string `json:"-"`
  1183  	// NullFields is a list of field names (e.g. "AndroidDevice") to include in API
  1184  	// requests with the JSON null value. By default, fields with empty values are
  1185  	// omitted from API requests. See
  1186  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1187  	NullFields []string `json:"-"`
  1188  }
  1189  
  1190  func (s *Environment) MarshalJSON() ([]byte, error) {
  1191  	type NoMethod Environment
  1192  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1193  }
  1194  
  1195  // EnvironmentMatrix: The matrix of environments in which the test is to be
  1196  // executed.
  1197  type EnvironmentMatrix struct {
  1198  	// AndroidDeviceList: A list of Android devices; the test will be run only on
  1199  	// the specified devices.
  1200  	AndroidDeviceList *AndroidDeviceList `json:"androidDeviceList,omitempty"`
  1201  	// AndroidMatrix: A matrix of Android devices.
  1202  	AndroidMatrix *AndroidMatrix `json:"androidMatrix,omitempty"`
  1203  	// IosDeviceList: A list of iOS devices.
  1204  	IosDeviceList *IosDeviceList `json:"iosDeviceList,omitempty"`
  1205  	// ForceSendFields is a list of field names (e.g. "AndroidDeviceList") to
  1206  	// unconditionally include in API requests. By default, fields with empty or
  1207  	// default values are omitted from API requests. See
  1208  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1209  	// details.
  1210  	ForceSendFields []string `json:"-"`
  1211  	// NullFields is a list of field names (e.g. "AndroidDeviceList") to include in
  1212  	// API requests with the JSON null value. By default, fields with empty values
  1213  	// are omitted from API requests. See
  1214  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1215  	NullFields []string `json:"-"`
  1216  }
  1217  
  1218  func (s *EnvironmentMatrix) MarshalJSON() ([]byte, error) {
  1219  	type NoMethod EnvironmentMatrix
  1220  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1221  }
  1222  
  1223  // EnvironmentVariable: A key-value pair passed as an environment variable to
  1224  // the test.
  1225  type EnvironmentVariable struct {
  1226  	// Key: Key for the environment variable.
  1227  	Key string `json:"key,omitempty"`
  1228  	// Value: Value for the environment variable.
  1229  	Value string `json:"value,omitempty"`
  1230  	// ForceSendFields is a list of field names (e.g. "Key") to unconditionally
  1231  	// include in API requests. By default, fields with empty or default values are
  1232  	// omitted from API requests. See
  1233  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1234  	// details.
  1235  	ForceSendFields []string `json:"-"`
  1236  	// NullFields is a list of field names (e.g. "Key") to include in API requests
  1237  	// with the JSON null value. By default, fields with empty values are omitted
  1238  	// from API requests. See
  1239  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1240  	NullFields []string `json:"-"`
  1241  }
  1242  
  1243  func (s *EnvironmentVariable) MarshalJSON() ([]byte, error) {
  1244  	type NoMethod EnvironmentVariable
  1245  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1246  }
  1247  
  1248  // FileReference: A reference to a file, used for user inputs.
  1249  type FileReference struct {
  1250  	// GcsPath: A path to a file in Google Cloud Storage. Example:
  1251  	// gs://build-app-1414623860166/app%40debug-unaligned.apk These paths are
  1252  	// expected to be url encoded (percent encoding)
  1253  	GcsPath string `json:"gcsPath,omitempty"`
  1254  	// ForceSendFields is a list of field names (e.g. "GcsPath") to unconditionally
  1255  	// include in API requests. By default, fields with empty or default values are
  1256  	// omitted from API requests. See
  1257  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1258  	// details.
  1259  	ForceSendFields []string `json:"-"`
  1260  	// NullFields is a list of field names (e.g. "GcsPath") to include in API
  1261  	// requests with the JSON null value. By default, fields with empty values are
  1262  	// omitted from API requests. See
  1263  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1264  	NullFields []string `json:"-"`
  1265  }
  1266  
  1267  func (s *FileReference) MarshalJSON() ([]byte, error) {
  1268  	type NoMethod FileReference
  1269  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1270  }
  1271  
  1272  // GetApkDetailsResponse: Response containing the details of the specified
  1273  // Android application.
  1274  type GetApkDetailsResponse struct {
  1275  	// ApkDetail: Details of the Android App.
  1276  	ApkDetail *ApkDetail `json:"apkDetail,omitempty"`
  1277  
  1278  	// ServerResponse contains the HTTP response code and headers from the server.
  1279  	googleapi.ServerResponse `json:"-"`
  1280  	// ForceSendFields is a list of field names (e.g. "ApkDetail") to
  1281  	// unconditionally include in API requests. By default, fields with empty or
  1282  	// default values are omitted from API requests. See
  1283  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1284  	// details.
  1285  	ForceSendFields []string `json:"-"`
  1286  	// NullFields is a list of field names (e.g. "ApkDetail") to include in API
  1287  	// requests with the JSON null value. By default, fields with empty values are
  1288  	// omitted from API requests. See
  1289  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1290  	NullFields []string `json:"-"`
  1291  }
  1292  
  1293  func (s *GetApkDetailsResponse) MarshalJSON() ([]byte, error) {
  1294  	type NoMethod GetApkDetailsResponse
  1295  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1296  }
  1297  
  1298  // GoogleAuto: Enables automatic Google account login. If set, the service
  1299  // automatically generates a Google test account and adds it to the device,
  1300  // before executing the test. Note that test accounts might be reused. Many
  1301  // applications show their full set of functionalities when an account is
  1302  // present on the device. Logging into the device with these generated accounts
  1303  // allows testing more functionalities.
  1304  type GoogleAuto struct {
  1305  }
  1306  
  1307  // GoogleCloudStorage: A storage location within Google cloud storage (GCS).
  1308  type GoogleCloudStorage struct {
  1309  	// GcsPath: Required. The path to a directory in GCS that will eventually
  1310  	// contain the results for this test. The requesting user must have write
  1311  	// access on the bucket in the supplied path.
  1312  	GcsPath string `json:"gcsPath,omitempty"`
  1313  	// ForceSendFields is a list of field names (e.g. "GcsPath") to unconditionally
  1314  	// include in API requests. By default, fields with empty or default values are
  1315  	// omitted from API requests. See
  1316  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1317  	// details.
  1318  	ForceSendFields []string `json:"-"`
  1319  	// NullFields is a list of field names (e.g. "GcsPath") to include in API
  1320  	// requests with the JSON null value. By default, fields with empty values are
  1321  	// omitted from API requests. See
  1322  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1323  	NullFields []string `json:"-"`
  1324  }
  1325  
  1326  func (s *GoogleCloudStorage) MarshalJSON() ([]byte, error) {
  1327  	type NoMethod GoogleCloudStorage
  1328  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1329  }
  1330  
  1331  // IntentFilter: The section of an tag.
  1332  // https://developer.android.com/guide/topics/manifest/intent-filter-element.html
  1333  type IntentFilter struct {
  1334  	// ActionNames: The android:name value of the tag.
  1335  	ActionNames []string `json:"actionNames,omitempty"`
  1336  	// CategoryNames: The android:name value of the tag.
  1337  	CategoryNames []string `json:"categoryNames,omitempty"`
  1338  	// MimeType: The android:mimeType value of the tag.
  1339  	MimeType string `json:"mimeType,omitempty"`
  1340  	// ForceSendFields is a list of field names (e.g. "ActionNames") to
  1341  	// unconditionally include in API requests. By default, fields with empty or
  1342  	// default values are omitted from API requests. See
  1343  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1344  	// details.
  1345  	ForceSendFields []string `json:"-"`
  1346  	// NullFields is a list of field names (e.g. "ActionNames") to include in API
  1347  	// requests with the JSON null value. By default, fields with empty values are
  1348  	// omitted from API requests. See
  1349  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1350  	NullFields []string `json:"-"`
  1351  }
  1352  
  1353  func (s *IntentFilter) MarshalJSON() ([]byte, error) {
  1354  	type NoMethod IntentFilter
  1355  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1356  }
  1357  
  1358  // IosDevice: A single iOS device.
  1359  type IosDevice struct {
  1360  	// IosModelId: Required. The id of the iOS device to be used. Use the
  1361  	// TestEnvironmentDiscoveryService to get supported options.
  1362  	IosModelId string `json:"iosModelId,omitempty"`
  1363  	// IosVersionId: Required. The id of the iOS major software version to be used.
  1364  	// Use the TestEnvironmentDiscoveryService to get supported options.
  1365  	IosVersionId string `json:"iosVersionId,omitempty"`
  1366  	// Locale: Required. The locale the test device used for testing. Use the
  1367  	// TestEnvironmentDiscoveryService to get supported options.
  1368  	Locale string `json:"locale,omitempty"`
  1369  	// Orientation: Required. How the device is oriented during the test. Use the
  1370  	// TestEnvironmentDiscoveryService to get supported options.
  1371  	Orientation string `json:"orientation,omitempty"`
  1372  	// ForceSendFields is a list of field names (e.g. "IosModelId") to
  1373  	// unconditionally include in API requests. By default, fields with empty or
  1374  	// default values are omitted from API requests. See
  1375  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1376  	// details.
  1377  	ForceSendFields []string `json:"-"`
  1378  	// NullFields is a list of field names (e.g. "IosModelId") to include in API
  1379  	// requests with the JSON null value. By default, fields with empty values are
  1380  	// omitted from API requests. See
  1381  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1382  	NullFields []string `json:"-"`
  1383  }
  1384  
  1385  func (s *IosDevice) MarshalJSON() ([]byte, error) {
  1386  	type NoMethod IosDevice
  1387  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1388  }
  1389  
  1390  // IosDeviceCatalog: The currently supported iOS devices.
  1391  type IosDeviceCatalog struct {
  1392  	// Models: The set of supported iOS device models.
  1393  	Models []*IosModel `json:"models,omitempty"`
  1394  	// RuntimeConfiguration: The set of supported runtime configurations.
  1395  	RuntimeConfiguration *IosRuntimeConfiguration `json:"runtimeConfiguration,omitempty"`
  1396  	// Versions: The set of supported iOS software versions.
  1397  	Versions []*IosVersion `json:"versions,omitempty"`
  1398  	// XcodeVersions: The set of supported Xcode versions.
  1399  	XcodeVersions []*XcodeVersion `json:"xcodeVersions,omitempty"`
  1400  	// ForceSendFields is a list of field names (e.g. "Models") to unconditionally
  1401  	// include in API requests. By default, fields with empty or default values are
  1402  	// omitted from API requests. See
  1403  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1404  	// details.
  1405  	ForceSendFields []string `json:"-"`
  1406  	// NullFields is a list of field names (e.g. "Models") to include in API
  1407  	// requests with the JSON null value. By default, fields with empty values are
  1408  	// omitted from API requests. See
  1409  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1410  	NullFields []string `json:"-"`
  1411  }
  1412  
  1413  func (s *IosDeviceCatalog) MarshalJSON() ([]byte, error) {
  1414  	type NoMethod IosDeviceCatalog
  1415  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1416  }
  1417  
  1418  // IosDeviceFile: A file or directory to install on the device before the test
  1419  // starts.
  1420  type IosDeviceFile struct {
  1421  	// BundleId: The bundle id of the app where this file lives. iOS apps sandbox
  1422  	// their own filesystem, so app files must specify which app installed on the
  1423  	// device.
  1424  	BundleId string `json:"bundleId,omitempty"`
  1425  	// Content: The source file
  1426  	Content *FileReference `json:"content,omitempty"`
  1427  	// DevicePath: Location of the file on the device, inside the app's sandboxed
  1428  	// filesystem
  1429  	DevicePath string `json:"devicePath,omitempty"`
  1430  	// ForceSendFields is a list of field names (e.g. "BundleId") to
  1431  	// unconditionally include in API requests. By default, fields with empty or
  1432  	// default values are omitted from API requests. See
  1433  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1434  	// details.
  1435  	ForceSendFields []string `json:"-"`
  1436  	// NullFields is a list of field names (e.g. "BundleId") to include in API
  1437  	// requests with the JSON null value. By default, fields with empty values are
  1438  	// omitted from API requests. See
  1439  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1440  	NullFields []string `json:"-"`
  1441  }
  1442  
  1443  func (s *IosDeviceFile) MarshalJSON() ([]byte, error) {
  1444  	type NoMethod IosDeviceFile
  1445  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1446  }
  1447  
  1448  // IosDeviceList: A list of iOS device configurations in which the test is to
  1449  // be executed.
  1450  type IosDeviceList struct {
  1451  	// IosDevices: Required. A list of iOS devices.
  1452  	IosDevices []*IosDevice `json:"iosDevices,omitempty"`
  1453  	// ForceSendFields is a list of field names (e.g. "IosDevices") to
  1454  	// unconditionally include in API requests. By default, fields with empty or
  1455  	// default values are omitted from API requests. See
  1456  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1457  	// details.
  1458  	ForceSendFields []string `json:"-"`
  1459  	// NullFields is a list of field names (e.g. "IosDevices") to include in API
  1460  	// requests with the JSON null value. By default, fields with empty values are
  1461  	// omitted from API requests. See
  1462  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1463  	NullFields []string `json:"-"`
  1464  }
  1465  
  1466  func (s *IosDeviceList) MarshalJSON() ([]byte, error) {
  1467  	type NoMethod IosDeviceList
  1468  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1469  }
  1470  
  1471  // IosModel: A description of an iOS device tests may be run on.
  1472  type IosModel struct {
  1473  	// DeviceCapabilities: Device capabilities. Copied from
  1474  	// https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
  1475  	DeviceCapabilities []string `json:"deviceCapabilities,omitempty"`
  1476  	// FormFactor: Whether this device is a phone, tablet, wearable, etc.
  1477  	//
  1478  	// Possible values:
  1479  	//   "DEVICE_FORM_FACTOR_UNSPECIFIED" - Do not use. For proto versioning only.
  1480  	//   "PHONE" - This device has the shape of a phone.
  1481  	//   "TABLET" - This device has the shape of a tablet.
  1482  	//   "WEARABLE" - This device has the shape of a watch or other wearable.
  1483  	FormFactor string `json:"formFactor,omitempty"`
  1484  	// Id: The unique opaque id for this model. Use this for invoking the
  1485  	// TestExecutionService.
  1486  	Id string `json:"id,omitempty"`
  1487  	// Name: The human-readable name for this device model. Examples: "iPhone 4s",
  1488  	// "iPad Mini 2".
  1489  	Name string `json:"name,omitempty"`
  1490  	// PerVersionInfo: Version-specific information of an iOS model.
  1491  	PerVersionInfo []*PerIosVersionInfo `json:"perVersionInfo,omitempty"`
  1492  	// ScreenDensity: Screen density in DPI.
  1493  	ScreenDensity int64 `json:"screenDensity,omitempty"`
  1494  	// ScreenX: Screen size in the horizontal (X) dimension measured in pixels.
  1495  	ScreenX int64 `json:"screenX,omitempty"`
  1496  	// ScreenY: Screen size in the vertical (Y) dimension measured in pixels.
  1497  	ScreenY int64 `json:"screenY,omitempty"`
  1498  	// SupportedVersionIds: The set of iOS major software versions this device
  1499  	// supports.
  1500  	SupportedVersionIds []string `json:"supportedVersionIds,omitempty"`
  1501  	// Tags: Tags for this dimension. Examples: "default", "preview", "deprecated".
  1502  	Tags []string `json:"tags,omitempty"`
  1503  	// ForceSendFields is a list of field names (e.g. "DeviceCapabilities") to
  1504  	// unconditionally include in API requests. By default, fields with empty or
  1505  	// default values are omitted from API requests. See
  1506  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1507  	// details.
  1508  	ForceSendFields []string `json:"-"`
  1509  	// NullFields is a list of field names (e.g. "DeviceCapabilities") to include
  1510  	// in API requests with the JSON null value. By default, fields with empty
  1511  	// values are omitted from API requests. See
  1512  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1513  	NullFields []string `json:"-"`
  1514  }
  1515  
  1516  func (s *IosModel) MarshalJSON() ([]byte, error) {
  1517  	type NoMethod IosModel
  1518  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1519  }
  1520  
  1521  // IosRoboTest: A test that explores an iOS application on an iOS device.
  1522  type IosRoboTest struct {
  1523  	// AppBundleId: The bundle ID for the app-under-test. This is determined by
  1524  	// examining the application's "Info.plist" file.
  1525  	AppBundleId string `json:"appBundleId,omitempty"`
  1526  	// AppIpa: Required. The ipa stored at this file should be used to run the
  1527  	// test.
  1528  	AppIpa *FileReference `json:"appIpa,omitempty"`
  1529  	// RoboScript: An optional Roboscript to customize the crawl. See
  1530  	// https://firebase.google.com/docs/test-lab/android/robo-scripts-reference for
  1531  	// more information about Roboscripts.
  1532  	RoboScript *FileReference `json:"roboScript,omitempty"`
  1533  	// ForceSendFields is a list of field names (e.g. "AppBundleId") to
  1534  	// unconditionally include in API requests. By default, fields with empty or
  1535  	// default values are omitted from API requests. See
  1536  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1537  	// details.
  1538  	ForceSendFields []string `json:"-"`
  1539  	// NullFields is a list of field names (e.g. "AppBundleId") to include in API
  1540  	// requests with the JSON null value. By default, fields with empty values are
  1541  	// omitted from API requests. See
  1542  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1543  	NullFields []string `json:"-"`
  1544  }
  1545  
  1546  func (s *IosRoboTest) MarshalJSON() ([]byte, error) {
  1547  	type NoMethod IosRoboTest
  1548  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1549  }
  1550  
  1551  // IosRuntimeConfiguration: iOS configuration that can be selected at the time
  1552  // a test is run.
  1553  type IosRuntimeConfiguration struct {
  1554  	// Locales: The set of available locales.
  1555  	Locales []*Locale `json:"locales,omitempty"`
  1556  	// Orientations: The set of available orientations.
  1557  	Orientations []*Orientation `json:"orientations,omitempty"`
  1558  	// ForceSendFields is a list of field names (e.g. "Locales") to unconditionally
  1559  	// include in API requests. By default, fields with empty or default values are
  1560  	// omitted from API requests. See
  1561  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1562  	// details.
  1563  	ForceSendFields []string `json:"-"`
  1564  	// NullFields is a list of field names (e.g. "Locales") to include in API
  1565  	// requests with the JSON null value. By default, fields with empty values are
  1566  	// omitted from API requests. See
  1567  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1568  	NullFields []string `json:"-"`
  1569  }
  1570  
  1571  func (s *IosRuntimeConfiguration) MarshalJSON() ([]byte, error) {
  1572  	type NoMethod IosRuntimeConfiguration
  1573  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1574  }
  1575  
  1576  // IosTestLoop: A test of an iOS application that implements one or more game
  1577  // loop scenarios. This test type accepts an archived application (.ipa file)
  1578  // and a list of integer scenarios that will be executed on the app
  1579  // sequentially.
  1580  type IosTestLoop struct {
  1581  	// AppBundleId: Output only. The bundle id for the application under test.
  1582  	AppBundleId string `json:"appBundleId,omitempty"`
  1583  	// AppIpa: Required. The .ipa of the application to test.
  1584  	AppIpa *FileReference `json:"appIpa,omitempty"`
  1585  	// Scenarios: The list of scenarios that should be run during the test.
  1586  	// Defaults to the single scenario 0 if unspecified.
  1587  	Scenarios []int64 `json:"scenarios,omitempty"`
  1588  	// ForceSendFields is a list of field names (e.g. "AppBundleId") to
  1589  	// unconditionally include in API requests. By default, fields with empty or
  1590  	// default values are omitted from API requests. See
  1591  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1592  	// details.
  1593  	ForceSendFields []string `json:"-"`
  1594  	// NullFields is a list of field names (e.g. "AppBundleId") to include in API
  1595  	// requests with the JSON null value. By default, fields with empty values are
  1596  	// omitted from API requests. See
  1597  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1598  	NullFields []string `json:"-"`
  1599  }
  1600  
  1601  func (s *IosTestLoop) MarshalJSON() ([]byte, error) {
  1602  	type NoMethod IosTestLoop
  1603  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1604  }
  1605  
  1606  // IosTestSetup: A description of how to set up an iOS device prior to running
  1607  // the test.
  1608  type IosTestSetup struct {
  1609  	// AdditionalIpas: iOS apps to install in addition to those being directly
  1610  	// tested.
  1611  	AdditionalIpas []*FileReference `json:"additionalIpas,omitempty"`
  1612  	// NetworkProfile: The network traffic profile used for running the test.
  1613  	// Available network profiles can be queried by using the NETWORK_CONFIGURATION
  1614  	// environment type when calling
  1615  	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
  1616  	NetworkProfile string `json:"networkProfile,omitempty"`
  1617  	// PullDirectories: List of directories on the device to upload to Cloud
  1618  	// Storage at the end of the test. Directories should either be in a shared
  1619  	// directory (such as /private/var/mobile/Media) or within an accessible
  1620  	// directory inside the app's filesystem (such as /Documents) by specifying the
  1621  	// bundle ID.
  1622  	PullDirectories []*IosDeviceFile `json:"pullDirectories,omitempty"`
  1623  	// PushFiles: List of files to push to the device before starting the test.
  1624  	PushFiles []*IosDeviceFile `json:"pushFiles,omitempty"`
  1625  	// ForceSendFields is a list of field names (e.g. "AdditionalIpas") to
  1626  	// unconditionally include in API requests. By default, fields with empty or
  1627  	// default values are omitted from API requests. See
  1628  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1629  	// details.
  1630  	ForceSendFields []string `json:"-"`
  1631  	// NullFields is a list of field names (e.g. "AdditionalIpas") to include in
  1632  	// API requests with the JSON null value. By default, fields with empty values
  1633  	// are omitted from API requests. See
  1634  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1635  	NullFields []string `json:"-"`
  1636  }
  1637  
  1638  func (s *IosTestSetup) MarshalJSON() ([]byte, error) {
  1639  	type NoMethod IosTestSetup
  1640  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1641  }
  1642  
  1643  // IosVersion: An iOS version.
  1644  type IosVersion struct {
  1645  	// Id: An opaque id for this iOS version. Use this id to invoke the
  1646  	// TestExecutionService.
  1647  	Id string `json:"id,omitempty"`
  1648  	// MajorVersion: An integer representing the major iOS version. Examples: "8",
  1649  	// "9".
  1650  	MajorVersion int64 `json:"majorVersion,omitempty"`
  1651  	// MinorVersion: An integer representing the minor iOS version. Examples: "1",
  1652  	// "2".
  1653  	MinorVersion int64 `json:"minorVersion,omitempty"`
  1654  	// SupportedXcodeVersionIds: The available Xcode versions for this version.
  1655  	SupportedXcodeVersionIds []string `json:"supportedXcodeVersionIds,omitempty"`
  1656  	// Tags: Tags for this dimension. Examples: "default", "preview", "deprecated".
  1657  	Tags []string `json:"tags,omitempty"`
  1658  	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
  1659  	// include in API requests. By default, fields with empty or default values are
  1660  	// omitted from API requests. See
  1661  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1662  	// details.
  1663  	ForceSendFields []string `json:"-"`
  1664  	// NullFields is a list of field names (e.g. "Id") to include in API requests
  1665  	// with the JSON null value. By default, fields with empty values are omitted
  1666  	// from API requests. See
  1667  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1668  	NullFields []string `json:"-"`
  1669  }
  1670  
  1671  func (s *IosVersion) MarshalJSON() ([]byte, error) {
  1672  	type NoMethod IosVersion
  1673  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1674  }
  1675  
  1676  // IosXcTest: A test of an iOS application that uses the XCTest framework.
  1677  // Xcode supports the option to "build for testing", which generates an
  1678  // .xctestrun file that contains a test specification (arguments, test methods,
  1679  // etc). This test type accepts a zip file containing the .xctestrun file and
  1680  // the corresponding contents of the Build/Products directory that contains all
  1681  // the binaries needed to run the tests.
  1682  type IosXcTest struct {
  1683  	// AppBundleId: Output only. The bundle id for the application under test.
  1684  	AppBundleId string `json:"appBundleId,omitempty"`
  1685  	// TestSpecialEntitlements: The option to test special app entitlements.
  1686  	// Setting this would re-sign the app having special entitlements with an
  1687  	// explicit application-identifier. Currently supports testing aps-environment
  1688  	// entitlement.
  1689  	TestSpecialEntitlements bool `json:"testSpecialEntitlements,omitempty"`
  1690  	// TestsZip: Required. The .zip containing the .xctestrun file and the contents
  1691  	// of the DerivedData/Build/Products directory. The .xctestrun file in this zip
  1692  	// is ignored if the xctestrun field is specified.
  1693  	TestsZip *FileReference `json:"testsZip,omitempty"`
  1694  	// XcodeVersion: The Xcode version that should be used for the test. Use the
  1695  	// TestEnvironmentDiscoveryService to get supported options. Defaults to the
  1696  	// latest Xcode version Firebase Test Lab supports.
  1697  	XcodeVersion string `json:"xcodeVersion,omitempty"`
  1698  	// Xctestrun: An .xctestrun file that will override the .xctestrun file in the
  1699  	// tests zip. Because the .xctestrun file contains environment variables along
  1700  	// with test methods to run and/or ignore, this can be useful for sharding
  1701  	// tests. Default is taken from the tests zip.
  1702  	Xctestrun *FileReference `json:"xctestrun,omitempty"`
  1703  	// ForceSendFields is a list of field names (e.g. "AppBundleId") to
  1704  	// unconditionally include in API requests. By default, fields with empty or
  1705  	// default values are omitted from API requests. See
  1706  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1707  	// details.
  1708  	ForceSendFields []string `json:"-"`
  1709  	// NullFields is a list of field names (e.g. "AppBundleId") to include in API
  1710  	// requests with the JSON null value. By default, fields with empty values are
  1711  	// omitted from API requests. See
  1712  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1713  	NullFields []string `json:"-"`
  1714  }
  1715  
  1716  func (s *IosXcTest) MarshalJSON() ([]byte, error) {
  1717  	type NoMethod IosXcTest
  1718  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1719  }
  1720  
  1721  // LauncherActivityIntent: Specifies an intent that starts the main launcher
  1722  // activity.
  1723  type LauncherActivityIntent struct {
  1724  }
  1725  
  1726  // ListDeviceSessionsResponse: A list of device sessions.
  1727  type ListDeviceSessionsResponse struct {
  1728  	// DeviceSessions: The sessions matching the specified filter in the given
  1729  	// cloud project.
  1730  	DeviceSessions []*DeviceSession `json:"deviceSessions,omitempty"`
  1731  	// NextPageToken: A token, which can be sent as `page_token` to retrieve the
  1732  	// next page. If this field is omitted, there are no subsequent pages.
  1733  	NextPageToken string `json:"nextPageToken,omitempty"`
  1734  
  1735  	// ServerResponse contains the HTTP response code and headers from the server.
  1736  	googleapi.ServerResponse `json:"-"`
  1737  	// ForceSendFields is a list of field names (e.g. "DeviceSessions") to
  1738  	// unconditionally include in API requests. By default, fields with empty or
  1739  	// default values are omitted from API requests. See
  1740  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1741  	// details.
  1742  	ForceSendFields []string `json:"-"`
  1743  	// NullFields is a list of field names (e.g. "DeviceSessions") to include in
  1744  	// API requests with the JSON null value. By default, fields with empty values
  1745  	// are omitted from API requests. See
  1746  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1747  	NullFields []string `json:"-"`
  1748  }
  1749  
  1750  func (s *ListDeviceSessionsResponse) MarshalJSON() ([]byte, error) {
  1751  	type NoMethod ListDeviceSessionsResponse
  1752  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1753  }
  1754  
  1755  // Locale: A location/region designation for language.
  1756  type Locale struct {
  1757  	// Id: The id for this locale. Example: "en_US".
  1758  	Id string `json:"id,omitempty"`
  1759  	// Name: A human-friendly name for this language/locale. Example: "English".
  1760  	Name string `json:"name,omitempty"`
  1761  	// Region: A human-friendly string representing the region for this locale.
  1762  	// Example: "United States". Not present for every locale.
  1763  	Region string `json:"region,omitempty"`
  1764  	// Tags: Tags for this dimension. Example: "default".
  1765  	Tags []string `json:"tags,omitempty"`
  1766  	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
  1767  	// include in API requests. By default, fields with empty or default values are
  1768  	// omitted from API requests. See
  1769  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1770  	// details.
  1771  	ForceSendFields []string `json:"-"`
  1772  	// NullFields is a list of field names (e.g. "Id") to include in API requests
  1773  	// with the JSON null value. By default, fields with empty values are omitted
  1774  	// from API requests. See
  1775  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1776  	NullFields []string `json:"-"`
  1777  }
  1778  
  1779  func (s *Locale) MarshalJSON() ([]byte, error) {
  1780  	type NoMethod Locale
  1781  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1782  }
  1783  
  1784  // ManualSharding: Shards test cases into the specified groups of packages,
  1785  // classes, and/or methods. With manual sharding enabled, specifying test
  1786  // targets via environment_variables or in InstrumentationTest is invalid.
  1787  type ManualSharding struct {
  1788  	// TestTargetsForShard: Required. Group of packages, classes, and/or test
  1789  	// methods to be run for each manually-created shard. You must specify at least
  1790  	// one shard if this field is present. When you select one or more physical
  1791  	// devices, the number of repeated test_targets_for_shard must be <= 50. When
  1792  	// you select one or more ARM virtual devices, it must be <= 200. When you
  1793  	// select only x86 virtual devices, it must be <= 500.
  1794  	TestTargetsForShard []*TestTargetsForShard `json:"testTargetsForShard,omitempty"`
  1795  	// ForceSendFields is a list of field names (e.g. "TestTargetsForShard") to
  1796  	// unconditionally include in API requests. By default, fields with empty or
  1797  	// default values are omitted from API requests. See
  1798  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1799  	// details.
  1800  	ForceSendFields []string `json:"-"`
  1801  	// NullFields is a list of field names (e.g. "TestTargetsForShard") to include
  1802  	// in API requests with the JSON null value. By default, fields with empty
  1803  	// values are omitted from API requests. See
  1804  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1805  	NullFields []string `json:"-"`
  1806  }
  1807  
  1808  func (s *ManualSharding) MarshalJSON() ([]byte, error) {
  1809  	type NoMethod ManualSharding
  1810  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1811  }
  1812  
  1813  // MatrixErrorDetail: Describes a single error or issue with a matrix.
  1814  type MatrixErrorDetail struct {
  1815  	// Message: Output only. A human-readable message about how the error in the
  1816  	// TestMatrix. Expands on the `reason` field with additional details and
  1817  	// possible options to fix the issue.
  1818  	Message string `json:"message,omitempty"`
  1819  	// Reason: Output only. The reason for the error. This is a constant value in
  1820  	// UPPER_SNAKE_CASE that identifies the cause of the error.
  1821  	Reason string `json:"reason,omitempty"`
  1822  	// ForceSendFields is a list of field names (e.g. "Message") to unconditionally
  1823  	// include in API requests. By default, fields with empty or default values are
  1824  	// omitted from API requests. See
  1825  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1826  	// details.
  1827  	ForceSendFields []string `json:"-"`
  1828  	// NullFields is a list of field names (e.g. "Message") to include in API
  1829  	// requests with the JSON null value. By default, fields with empty values are
  1830  	// omitted from API requests. See
  1831  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1832  	NullFields []string `json:"-"`
  1833  }
  1834  
  1835  func (s *MatrixErrorDetail) MarshalJSON() ([]byte, error) {
  1836  	type NoMethod MatrixErrorDetail
  1837  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1838  }
  1839  
  1840  // Metadata: A tag within a manifest.
  1841  // https://developer.android.com/guide/topics/manifest/meta-data-element.html
  1842  type Metadata struct {
  1843  	// Name: The android:name value
  1844  	Name string `json:"name,omitempty"`
  1845  	// Value: The android:value value
  1846  	Value string `json:"value,omitempty"`
  1847  	// ForceSendFields is a list of field names (e.g. "Name") to unconditionally
  1848  	// include in API requests. By default, fields with empty or default values are
  1849  	// omitted from API requests. See
  1850  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1851  	// details.
  1852  	ForceSendFields []string `json:"-"`
  1853  	// NullFields is a list of field names (e.g. "Name") to include in API requests
  1854  	// with the JSON null value. By default, fields with empty values are omitted
  1855  	// from API requests. See
  1856  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1857  	NullFields []string `json:"-"`
  1858  }
  1859  
  1860  func (s *Metadata) MarshalJSON() ([]byte, error) {
  1861  	type NoMethod Metadata
  1862  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1863  }
  1864  
  1865  type NetworkConfiguration struct {
  1866  	// DownRule: The emulation rule applying to the download traffic.
  1867  	DownRule *TrafficRule `json:"downRule,omitempty"`
  1868  	// Id: The unique opaque id for this network traffic configuration.
  1869  	Id string `json:"id,omitempty"`
  1870  	// UpRule: The emulation rule applying to the upload traffic.
  1871  	UpRule *TrafficRule `json:"upRule,omitempty"`
  1872  	// ForceSendFields is a list of field names (e.g. "DownRule") to
  1873  	// unconditionally include in API requests. By default, fields with empty or
  1874  	// default values are omitted from API requests. See
  1875  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1876  	// details.
  1877  	ForceSendFields []string `json:"-"`
  1878  	// NullFields is a list of field names (e.g. "DownRule") to include in API
  1879  	// requests with the JSON null value. By default, fields with empty values are
  1880  	// omitted from API requests. See
  1881  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1882  	NullFields []string `json:"-"`
  1883  }
  1884  
  1885  func (s *NetworkConfiguration) MarshalJSON() ([]byte, error) {
  1886  	type NoMethod NetworkConfiguration
  1887  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1888  }
  1889  
  1890  type NetworkConfigurationCatalog struct {
  1891  	Configurations []*NetworkConfiguration `json:"configurations,omitempty"`
  1892  	// ForceSendFields is a list of field names (e.g. "Configurations") to
  1893  	// unconditionally include in API requests. By default, fields with empty or
  1894  	// default values are omitted from API requests. See
  1895  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1896  	// details.
  1897  	ForceSendFields []string `json:"-"`
  1898  	// NullFields is a list of field names (e.g. "Configurations") to include in
  1899  	// API requests with the JSON null value. By default, fields with empty values
  1900  	// are omitted from API requests. See
  1901  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1902  	NullFields []string `json:"-"`
  1903  }
  1904  
  1905  func (s *NetworkConfigurationCatalog) MarshalJSON() ([]byte, error) {
  1906  	type NoMethod NetworkConfigurationCatalog
  1907  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1908  }
  1909  
  1910  // NoActivityIntent: Skips the starting activity
  1911  type NoActivityIntent struct {
  1912  }
  1913  
  1914  // ObbFile: An opaque binary blob file to install on the device before the test
  1915  // starts.
  1916  type ObbFile struct {
  1917  	// Obb: Required. Opaque Binary Blob (OBB) file(s) to install on the device.
  1918  	Obb *FileReference `json:"obb,omitempty"`
  1919  	// ObbFileName: Required. OBB file name which must conform to the format as
  1920  	// specified by Android e.g. [main|patch].0300110.com.example.android.obb which
  1921  	// will be installed into \/Android/obb/\/ on the device.
  1922  	ObbFileName string `json:"obbFileName,omitempty"`
  1923  	// ForceSendFields is a list of field names (e.g. "Obb") to unconditionally
  1924  	// include in API requests. By default, fields with empty or default values are
  1925  	// omitted from API requests. See
  1926  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1927  	// details.
  1928  	ForceSendFields []string `json:"-"`
  1929  	// NullFields is a list of field names (e.g. "Obb") to include in API requests
  1930  	// with the JSON null value. By default, fields with empty values are omitted
  1931  	// from API requests. See
  1932  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1933  	NullFields []string `json:"-"`
  1934  }
  1935  
  1936  func (s *ObbFile) MarshalJSON() ([]byte, error) {
  1937  	type NoMethod ObbFile
  1938  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1939  }
  1940  
  1941  // Orientation: Screen orientation of the device.
  1942  type Orientation struct {
  1943  	// Id: The id for this orientation. Example: "portrait".
  1944  	Id string `json:"id,omitempty"`
  1945  	// Name: A human-friendly name for this orientation. Example: "portrait".
  1946  	Name string `json:"name,omitempty"`
  1947  	// Tags: Tags for this dimension. Example: "default".
  1948  	Tags []string `json:"tags,omitempty"`
  1949  	// ForceSendFields is a list of field names (e.g. "Id") to unconditionally
  1950  	// include in API requests. By default, fields with empty or default values are
  1951  	// omitted from API requests. See
  1952  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  1953  	// details.
  1954  	ForceSendFields []string `json:"-"`
  1955  	// NullFields is a list of field names (e.g. "Id") to include in API requests
  1956  	// with the JSON null value. By default, fields with empty values are omitted
  1957  	// from API requests. See
  1958  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  1959  	NullFields []string `json:"-"`
  1960  }
  1961  
  1962  func (s *Orientation) MarshalJSON() ([]byte, error) {
  1963  	type NoMethod Orientation
  1964  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  1965  }
  1966  
  1967  // PerAndroidVersionInfo: A version-specific information of an Android model.
  1968  type PerAndroidVersionInfo struct {
  1969  	// DeviceCapacity: The number of online devices for an Android version.
  1970  	//
  1971  	// Possible values:
  1972  	//   "DEVICE_CAPACITY_UNSPECIFIED" - The value of device capacity is unknown or
  1973  	// unset.
  1974  	//   "DEVICE_CAPACITY_HIGH" - Devices that are high in capacity (The lab has a
  1975  	// large number of these devices). These devices are generally suggested for
  1976  	// running a large number of simultaneous tests (e.g. more than 100 tests).
  1977  	// Please note that high capacity devices do not guarantee short wait times due
  1978  	// to several factors: 1. Traffic (how heavily they are used at any given
  1979  	// moment) 2. High capacity devices are prioritized for certain usages, which
  1980  	// may cause user tests to be slower than selecting other similar device types.
  1981  	//   "DEVICE_CAPACITY_MEDIUM" - Devices that are medium in capacity (The lab
  1982  	// has a decent number of these devices, though not as many as high capacity
  1983  	// devices). These devices are suitable for fewer test runs (e.g. fewer than
  1984  	// 100 tests) and only for low shard counts (e.g. less than 10 shards).
  1985  	//   "DEVICE_CAPACITY_LOW" - Devices that are low in capacity (The lab has a
  1986  	// small number of these devices). These devices may be used if users need to
  1987  	// test on this specific device model and version. Please note that due to low
  1988  	// capacity, the tests may take much longer to finish, especially if a large
  1989  	// number of tests are invoked at once. These devices are not suitable for test
  1990  	// sharding.
  1991  	//   "DEVICE_CAPACITY_NONE" - Devices that are completely missing from the lab.
  1992  	// These devices are unavailable either temporarily or permanently and should
  1993  	// not be requested. If the device is also marked as deprecated, this state is
  1994  	// very likely permanent.
  1995  	DeviceCapacity string `json:"deviceCapacity,omitempty"`
  1996  	// DirectAccessVersionInfo: Output only. Identifies supported clients for
  1997  	// DirectAccess for this Android version.
  1998  	DirectAccessVersionInfo *DirectAccessVersionInfo `json:"directAccessVersionInfo,omitempty"`
  1999  	// InteractiveDeviceAvailabilityEstimate: Output only. The estimated wait time
  2000  	// for a single interactive device session using Direct Access.
  2001  	InteractiveDeviceAvailabilityEstimate string `json:"interactiveDeviceAvailabilityEstimate,omitempty"`
  2002  	// VersionId: An Android version.
  2003  	VersionId string `json:"versionId,omitempty"`
  2004  	// ForceSendFields is a list of field names (e.g. "DeviceCapacity") to
  2005  	// unconditionally include in API requests. By default, fields with empty or
  2006  	// default values are omitted from API requests. See
  2007  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2008  	// details.
  2009  	ForceSendFields []string `json:"-"`
  2010  	// NullFields is a list of field names (e.g. "DeviceCapacity") to include in
  2011  	// API requests with the JSON null value. By default, fields with empty values
  2012  	// are omitted from API requests. See
  2013  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2014  	NullFields []string `json:"-"`
  2015  }
  2016  
  2017  func (s *PerAndroidVersionInfo) MarshalJSON() ([]byte, error) {
  2018  	type NoMethod PerAndroidVersionInfo
  2019  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2020  }
  2021  
  2022  // PerIosVersionInfo: A version-specific information of an iOS model.
  2023  type PerIosVersionInfo struct {
  2024  	// DeviceCapacity: The number of online devices for an iOS version.
  2025  	//
  2026  	// Possible values:
  2027  	//   "DEVICE_CAPACITY_UNSPECIFIED" - The value of device capacity is unknown or
  2028  	// unset.
  2029  	//   "DEVICE_CAPACITY_HIGH" - Devices that are high in capacity (The lab has a
  2030  	// large number of these devices). These devices are generally suggested for
  2031  	// running a large number of simultaneous tests (e.g. more than 100 tests).
  2032  	// Please note that high capacity devices do not guarantee short wait times due
  2033  	// to several factors: 1. Traffic (how heavily they are used at any given
  2034  	// moment) 2. High capacity devices are prioritized for certain usages, which
  2035  	// may cause user tests to be slower than selecting other similar device types.
  2036  	//   "DEVICE_CAPACITY_MEDIUM" - Devices that are medium in capacity (The lab
  2037  	// has a decent number of these devices, though not as many as high capacity
  2038  	// devices). These devices are suitable for fewer test runs (e.g. fewer than
  2039  	// 100 tests) and only for low shard counts (e.g. less than 10 shards).
  2040  	//   "DEVICE_CAPACITY_LOW" - Devices that are low in capacity (The lab has a
  2041  	// small number of these devices). These devices may be used if users need to
  2042  	// test on this specific device model and version. Please note that due to low
  2043  	// capacity, the tests may take much longer to finish, especially if a large
  2044  	// number of tests are invoked at once. These devices are not suitable for test
  2045  	// sharding.
  2046  	//   "DEVICE_CAPACITY_NONE" - Devices that are completely missing from the lab.
  2047  	// These devices are unavailable either temporarily or permanently and should
  2048  	// not be requested. If the device is also marked as deprecated, this state is
  2049  	// very likely permanent.
  2050  	DeviceCapacity string `json:"deviceCapacity,omitempty"`
  2051  	// VersionId: An iOS version.
  2052  	VersionId string `json:"versionId,omitempty"`
  2053  	// ForceSendFields is a list of field names (e.g. "DeviceCapacity") to
  2054  	// unconditionally include in API requests. By default, fields with empty or
  2055  	// default values are omitted from API requests. See
  2056  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2057  	// details.
  2058  	ForceSendFields []string `json:"-"`
  2059  	// NullFields is a list of field names (e.g. "DeviceCapacity") to include in
  2060  	// API requests with the JSON null value. By default, fields with empty values
  2061  	// are omitted from API requests. See
  2062  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2063  	NullFields []string `json:"-"`
  2064  }
  2065  
  2066  func (s *PerIosVersionInfo) MarshalJSON() ([]byte, error) {
  2067  	type NoMethod PerIosVersionInfo
  2068  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2069  }
  2070  
  2071  // ProvidedSoftwareCatalog: The currently provided software environment on the
  2072  // devices under test.
  2073  type ProvidedSoftwareCatalog struct {
  2074  	// AndroidxOrchestratorVersion: A string representing the current version of
  2075  	// AndroidX Test Orchestrator that is used in the environment. The package is
  2076  	// available at
  2077  	// https://maven.google.com/web/index.html#androidx.test:orchestrator.
  2078  	AndroidxOrchestratorVersion string `json:"androidxOrchestratorVersion,omitempty"`
  2079  	// OrchestratorVersion: Deprecated: Use AndroidX Test Orchestrator going
  2080  	// forward. A string representing the current version of Android Test
  2081  	// Orchestrator that is used in the environment. The package is available at
  2082  	// https://maven.google.com/web/index.html#com.android.support.test:orchestrator.
  2083  	OrchestratorVersion string `json:"orchestratorVersion,omitempty"`
  2084  	// ForceSendFields is a list of field names (e.g.
  2085  	// "AndroidxOrchestratorVersion") to unconditionally include in API requests.
  2086  	// By default, fields with empty or default values are omitted from API
  2087  	// requests. See https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields
  2088  	// for more details.
  2089  	ForceSendFields []string `json:"-"`
  2090  	// NullFields is a list of field names (e.g. "AndroidxOrchestratorVersion") to
  2091  	// include in API requests with the JSON null value. By default, fields with
  2092  	// empty values are omitted from API requests. See
  2093  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2094  	NullFields []string `json:"-"`
  2095  }
  2096  
  2097  func (s *ProvidedSoftwareCatalog) MarshalJSON() ([]byte, error) {
  2098  	type NoMethod ProvidedSoftwareCatalog
  2099  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2100  }
  2101  
  2102  // RegularFile: A file or directory to install on the device before the test
  2103  // starts.
  2104  type RegularFile struct {
  2105  	// Content: Required. The source file.
  2106  	Content *FileReference `json:"content,omitempty"`
  2107  	// DevicePath: Required. Where to put the content on the device. Must be an
  2108  	// absolute, allowlisted path. If the file exists, it will be replaced. The
  2109  	// following device-side directories and any of their subdirectories are
  2110  	// allowlisted: ${EXTERNAL_STORAGE}, /sdcard, or /storage
  2111  	// ${ANDROID_DATA}/local/tmp, or /data/local/tmp Specifying a path outside of
  2112  	// these directory trees is invalid. The paths /sdcard and /data will be made
  2113  	// available and treated as implicit path substitutions. E.g. if /sdcard on a
  2114  	// particular device does not map to external storage, the system will replace
  2115  	// it with the external storage path prefix for that device and copy the file
  2116  	// there. It is strongly advised to use the Environment API in app and test
  2117  	// code to access files on the device in a portable way.
  2118  	DevicePath string `json:"devicePath,omitempty"`
  2119  	// ForceSendFields is a list of field names (e.g. "Content") to unconditionally
  2120  	// include in API requests. By default, fields with empty or default values are
  2121  	// omitted from API requests. See
  2122  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2123  	// details.
  2124  	ForceSendFields []string `json:"-"`
  2125  	// NullFields is a list of field names (e.g. "Content") to include in API
  2126  	// requests with the JSON null value. By default, fields with empty values are
  2127  	// omitted from API requests. See
  2128  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2129  	NullFields []string `json:"-"`
  2130  }
  2131  
  2132  func (s *RegularFile) MarshalJSON() ([]byte, error) {
  2133  	type NoMethod RegularFile
  2134  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2135  }
  2136  
  2137  // ResultStorage: Locations where the results of running the test are stored.
  2138  type ResultStorage struct {
  2139  	// GoogleCloudStorage: Required.
  2140  	GoogleCloudStorage *GoogleCloudStorage `json:"googleCloudStorage,omitempty"`
  2141  	// ResultsUrl: Output only. URL to the results in the Firebase Web Console.
  2142  	ResultsUrl string `json:"resultsUrl,omitempty"`
  2143  	// ToolResultsExecution: Output only. The tool results execution that results
  2144  	// are written to.
  2145  	ToolResultsExecution *ToolResultsExecution `json:"toolResultsExecution,omitempty"`
  2146  	// ToolResultsHistory: The tool results history that contains the tool results
  2147  	// execution that results are written to. If not provided, the service will
  2148  	// choose an appropriate value.
  2149  	ToolResultsHistory *ToolResultsHistory `json:"toolResultsHistory,omitempty"`
  2150  	// ForceSendFields is a list of field names (e.g. "GoogleCloudStorage") to
  2151  	// unconditionally include in API requests. By default, fields with empty or
  2152  	// default values are omitted from API requests. See
  2153  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2154  	// details.
  2155  	ForceSendFields []string `json:"-"`
  2156  	// NullFields is a list of field names (e.g. "GoogleCloudStorage") to include
  2157  	// in API requests with the JSON null value. By default, fields with empty
  2158  	// values are omitted from API requests. See
  2159  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2160  	NullFields []string `json:"-"`
  2161  }
  2162  
  2163  func (s *ResultStorage) MarshalJSON() ([]byte, error) {
  2164  	type NoMethod ResultStorage
  2165  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2166  }
  2167  
  2168  // RoboDirective: Directs Robo to interact with a specific UI element if it is
  2169  // encountered during the crawl. Currently, Robo can perform text entry or
  2170  // element click.
  2171  type RoboDirective struct {
  2172  	// ActionType: Required. The type of action that Robo should perform on the
  2173  	// specified element.
  2174  	//
  2175  	// Possible values:
  2176  	//   "ACTION_TYPE_UNSPECIFIED" - DO NOT USE. For proto versioning only.
  2177  	//   "SINGLE_CLICK" - Direct Robo to click on the specified element. No-op if
  2178  	// specified element is not clickable.
  2179  	//   "ENTER_TEXT" - Direct Robo to enter text on the specified element. No-op
  2180  	// if specified element is not enabled or does not allow text entry.
  2181  	//   "IGNORE" - Direct Robo to ignore interactions with a specific element.
  2182  	ActionType string `json:"actionType,omitempty"`
  2183  	// InputText: The text that Robo is directed to set. If left empty, the
  2184  	// directive will be treated as a CLICK on the element matching the
  2185  	// resource_name.
  2186  	InputText string `json:"inputText,omitempty"`
  2187  	// ResourceName: Required. The android resource name of the target UI element.
  2188  	// For example, in Java: R.string.foo in xml: @string/foo Only the "foo" part
  2189  	// is needed. Reference doc:
  2190  	// https://developer.android.com/guide/topics/resources/accessing-resources.html
  2191  	ResourceName string `json:"resourceName,omitempty"`
  2192  	// ForceSendFields is a list of field names (e.g. "ActionType") to
  2193  	// unconditionally include in API requests. By default, fields with empty or
  2194  	// default values are omitted from API requests. See
  2195  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2196  	// details.
  2197  	ForceSendFields []string `json:"-"`
  2198  	// NullFields is a list of field names (e.g. "ActionType") to include in API
  2199  	// requests with the JSON null value. By default, fields with empty values are
  2200  	// omitted from API requests. See
  2201  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2202  	NullFields []string `json:"-"`
  2203  }
  2204  
  2205  func (s *RoboDirective) MarshalJSON() ([]byte, error) {
  2206  	type NoMethod RoboDirective
  2207  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2208  }
  2209  
  2210  // RoboStartingIntent: Message for specifying the start activities to crawl.
  2211  type RoboStartingIntent struct {
  2212  	// LauncherActivity: An intent that starts the main launcher activity.
  2213  	LauncherActivity *LauncherActivityIntent `json:"launcherActivity,omitempty"`
  2214  	// NoActivity: Skips the starting activity
  2215  	NoActivity *NoActivityIntent `json:"noActivity,omitempty"`
  2216  	// StartActivity: An intent that starts an activity with specific details.
  2217  	StartActivity *StartActivityIntent `json:"startActivity,omitempty"`
  2218  	// Timeout: Timeout in seconds for each intent.
  2219  	Timeout string `json:"timeout,omitempty"`
  2220  	// ForceSendFields is a list of field names (e.g. "LauncherActivity") to
  2221  	// unconditionally include in API requests. By default, fields with empty or
  2222  	// default values are omitted from API requests. See
  2223  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2224  	// details.
  2225  	ForceSendFields []string `json:"-"`
  2226  	// NullFields is a list of field names (e.g. "LauncherActivity") to include in
  2227  	// API requests with the JSON null value. By default, fields with empty values
  2228  	// are omitted from API requests. See
  2229  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2230  	NullFields []string `json:"-"`
  2231  }
  2232  
  2233  func (s *RoboStartingIntent) MarshalJSON() ([]byte, error) {
  2234  	type NoMethod RoboStartingIntent
  2235  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2236  }
  2237  
  2238  // Service: The section of an tag.
  2239  // https://developer.android.com/guide/topics/manifest/service-element
  2240  type Service struct {
  2241  	// IntentFilter: Intent filters in the service
  2242  	IntentFilter []*IntentFilter `json:"intentFilter,omitempty"`
  2243  	// Name: The android:name value
  2244  	Name string `json:"name,omitempty"`
  2245  	// ForceSendFields is a list of field names (e.g. "IntentFilter") to
  2246  	// unconditionally include in API requests. By default, fields with empty or
  2247  	// default values are omitted from API requests. See
  2248  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2249  	// details.
  2250  	ForceSendFields []string `json:"-"`
  2251  	// NullFields is a list of field names (e.g. "IntentFilter") to include in API
  2252  	// requests with the JSON null value. By default, fields with empty values are
  2253  	// omitted from API requests. See
  2254  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2255  	NullFields []string `json:"-"`
  2256  }
  2257  
  2258  func (s *Service) MarshalJSON() ([]byte, error) {
  2259  	type NoMethod Service
  2260  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2261  }
  2262  
  2263  // SessionStateEvent: A message encapsulating a series of Session states and
  2264  // the time that the DeviceSession first entered those states.
  2265  type SessionStateEvent struct {
  2266  	// EventTime: Output only. The time that the session_state first encountered
  2267  	// that state.
  2268  	EventTime string `json:"eventTime,omitempty"`
  2269  	// SessionState: Output only. The session_state tracked by this event
  2270  	//
  2271  	// Possible values:
  2272  	//   "SESSION_STATE_UNSPECIFIED" - Default value. This value is unused.
  2273  	//   "REQUESTED" - Initial state of a session request. The session is being
  2274  	// validated for correctness and a device is not yet requested.
  2275  	//   "PENDING" - The session has been validated and is in the queue for a
  2276  	// device.
  2277  	//   "ACTIVE" - The session has been granted and the device is accepting
  2278  	// connections.
  2279  	//   "EXPIRED" - The session duration exceeded the device’s reservation time
  2280  	// period and timed out automatically.
  2281  	//   "FINISHED" - The user is finished with the session and it was canceled by
  2282  	// the user while the request was still getting allocated or after allocation
  2283  	// and during device usage period.
  2284  	//   "UNAVAILABLE" - Unable to complete the session because the device was
  2285  	// unavailable and it failed to allocate through the scheduler. For example, a
  2286  	// device not in the catalog was requested or the request expired in the
  2287  	// allocation queue.
  2288  	//   "ERROR" - Unable to complete the session for an internal reason, such as
  2289  	// an infrastructure failure.
  2290  	SessionState string `json:"sessionState,omitempty"`
  2291  	// StateMessage: Output only. A human-readable message to explain the state.
  2292  	StateMessage string `json:"stateMessage,omitempty"`
  2293  	// ForceSendFields is a list of field names (e.g. "EventTime") to
  2294  	// unconditionally include in API requests. By default, fields with empty or
  2295  	// default values are omitted from API requests. See
  2296  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2297  	// details.
  2298  	ForceSendFields []string `json:"-"`
  2299  	// NullFields is a list of field names (e.g. "EventTime") to include in API
  2300  	// requests with the JSON null value. By default, fields with empty values are
  2301  	// omitted from API requests. See
  2302  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2303  	NullFields []string `json:"-"`
  2304  }
  2305  
  2306  func (s *SessionStateEvent) MarshalJSON() ([]byte, error) {
  2307  	type NoMethod SessionStateEvent
  2308  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2309  }
  2310  
  2311  // Shard: Output only. Details about the shard.
  2312  type Shard struct {
  2313  	// EstimatedShardDuration: Output only. The estimated shard duration based on
  2314  	// previous test case timing records, if available.
  2315  	EstimatedShardDuration string `json:"estimatedShardDuration,omitempty"`
  2316  	// NumShards: Output only. The total number of shards.
  2317  	NumShards int64 `json:"numShards,omitempty"`
  2318  	// ShardIndex: Output only. The index of the shard among all the shards.
  2319  	ShardIndex int64 `json:"shardIndex,omitempty"`
  2320  	// TestTargetsForShard: Output only. Test targets for each shard. Only set for
  2321  	// manual sharding.
  2322  	TestTargetsForShard *TestTargetsForShard `json:"testTargetsForShard,omitempty"`
  2323  	// ForceSendFields is a list of field names (e.g. "EstimatedShardDuration") to
  2324  	// unconditionally include in API requests. By default, fields with empty or
  2325  	// default values are omitted from API requests. See
  2326  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2327  	// details.
  2328  	ForceSendFields []string `json:"-"`
  2329  	// NullFields is a list of field names (e.g. "EstimatedShardDuration") to
  2330  	// include in API requests with the JSON null value. By default, fields with
  2331  	// empty values are omitted from API requests. See
  2332  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2333  	NullFields []string `json:"-"`
  2334  }
  2335  
  2336  func (s *Shard) MarshalJSON() ([]byte, error) {
  2337  	type NoMethod Shard
  2338  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2339  }
  2340  
  2341  // ShardingOption: Options for enabling sharding.
  2342  type ShardingOption struct {
  2343  	// ManualSharding: Shards test cases into the specified groups of packages,
  2344  	// classes, and/or methods.
  2345  	ManualSharding *ManualSharding `json:"manualSharding,omitempty"`
  2346  	// SmartSharding: Shards test based on previous test case timing records.
  2347  	SmartSharding *SmartSharding `json:"smartSharding,omitempty"`
  2348  	// UniformSharding: Uniformly shards test cases given a total number of shards.
  2349  	UniformSharding *UniformSharding `json:"uniformSharding,omitempty"`
  2350  	// ForceSendFields is a list of field names (e.g. "ManualSharding") to
  2351  	// unconditionally include in API requests. By default, fields with empty or
  2352  	// default values are omitted from API requests. See
  2353  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2354  	// details.
  2355  	ForceSendFields []string `json:"-"`
  2356  	// NullFields is a list of field names (e.g. "ManualSharding") to include in
  2357  	// API requests with the JSON null value. By default, fields with empty values
  2358  	// are omitted from API requests. See
  2359  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2360  	NullFields []string `json:"-"`
  2361  }
  2362  
  2363  func (s *ShardingOption) MarshalJSON() ([]byte, error) {
  2364  	type NoMethod ShardingOption
  2365  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2366  }
  2367  
  2368  // SmartSharding: Shards test based on previous test case timing records.
  2369  type SmartSharding struct {
  2370  	// TargetedShardDuration: The amount of time tests within a shard should take.
  2371  	// Default: 300 seconds (5 minutes). The minimum allowed: 120 seconds (2
  2372  	// minutes). The shard count is dynamically set based on time, up to the
  2373  	// maximum shard limit (described below). To guarantee at least one test case
  2374  	// for each shard, the number of shards will not exceed the number of test
  2375  	// cases. Shard duration will be exceeded if: - The maximum shard limit is
  2376  	// reached and there is more calculated test time remaining to allocate into
  2377  	// shards. - Any individual test is estimated to be longer than the targeted
  2378  	// shard duration. Shard duration is not guaranteed because smart sharding uses
  2379  	// test case history and default durations which may not be accurate. The rules
  2380  	// for finding the test case timing records are: - If the service has processed
  2381  	// a test case in the last 30 days, the record of the latest successful test
  2382  	// case will be used. - For new test cases, the average duration of other known
  2383  	// test cases will be used. - If there are no previous test case timing records
  2384  	// available, the default test case duration is 15 seconds. Because the actual
  2385  	// shard duration can exceed the targeted shard duration, we recommend that you
  2386  	// set the targeted value at least 5 minutes less than the maximum allowed test
  2387  	// timeout (45 minutes for physical devices and 60 minutes for virtual), or
  2388  	// that you use the custom test timeout value that you set. This approach
  2389  	// avoids cancelling the shard before all tests can finish. Note that there is
  2390  	// a limit for maximum number of shards. When you select one or more physical
  2391  	// devices, the number of shards must be <= 50. When you select one or more ARM
  2392  	// virtual devices, it must be <= 200. When you select only x86 virtual
  2393  	// devices, it must be <= 500. To guarantee at least one test case for per
  2394  	// shard, the number of shards will not exceed the number of test cases. Each
  2395  	// shard created counts toward daily test quota.
  2396  	TargetedShardDuration string `json:"targetedShardDuration,omitempty"`
  2397  	// ForceSendFields is a list of field names (e.g. "TargetedShardDuration") to
  2398  	// unconditionally include in API requests. By default, fields with empty or
  2399  	// default values are omitted from API requests. See
  2400  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2401  	// details.
  2402  	ForceSendFields []string `json:"-"`
  2403  	// NullFields is a list of field names (e.g. "TargetedShardDuration") to
  2404  	// include in API requests with the JSON null value. By default, fields with
  2405  	// empty values are omitted from API requests. See
  2406  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2407  	NullFields []string `json:"-"`
  2408  }
  2409  
  2410  func (s *SmartSharding) MarshalJSON() ([]byte, error) {
  2411  	type NoMethod SmartSharding
  2412  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2413  }
  2414  
  2415  // StartActivityIntent: A starting intent specified by an action, uri, and
  2416  // categories.
  2417  type StartActivityIntent struct {
  2418  	// Action: Action name. Required for START_ACTIVITY.
  2419  	Action string `json:"action,omitempty"`
  2420  	// Categories: Intent categories to set on the intent.
  2421  	Categories []string `json:"categories,omitempty"`
  2422  	// Uri: URI for the action.
  2423  	Uri string `json:"uri,omitempty"`
  2424  	// ForceSendFields is a list of field names (e.g. "Action") to unconditionally
  2425  	// include in API requests. By default, fields with empty or default values are
  2426  	// omitted from API requests. See
  2427  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2428  	// details.
  2429  	ForceSendFields []string `json:"-"`
  2430  	// NullFields is a list of field names (e.g. "Action") to include in API
  2431  	// requests with the JSON null value. By default, fields with empty values are
  2432  	// omitted from API requests. See
  2433  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2434  	NullFields []string `json:"-"`
  2435  }
  2436  
  2437  func (s *StartActivityIntent) MarshalJSON() ([]byte, error) {
  2438  	type NoMethod StartActivityIntent
  2439  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2440  }
  2441  
  2442  type SystraceSetup struct {
  2443  	// DurationSeconds: Systrace duration in seconds. Should be between 1 and 30
  2444  	// seconds. 0 disables systrace.
  2445  	DurationSeconds int64 `json:"durationSeconds,omitempty"`
  2446  	// ForceSendFields is a list of field names (e.g. "DurationSeconds") to
  2447  	// unconditionally include in API requests. By default, fields with empty or
  2448  	// default values are omitted from API requests. See
  2449  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2450  	// details.
  2451  	ForceSendFields []string `json:"-"`
  2452  	// NullFields is a list of field names (e.g. "DurationSeconds") to include in
  2453  	// API requests with the JSON null value. By default, fields with empty values
  2454  	// are omitted from API requests. See
  2455  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2456  	NullFields []string `json:"-"`
  2457  }
  2458  
  2459  func (s *SystraceSetup) MarshalJSON() ([]byte, error) {
  2460  	type NoMethod SystraceSetup
  2461  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2462  }
  2463  
  2464  // TestDetails: Additional details about the progress of the running test.
  2465  type TestDetails struct {
  2466  	// ErrorMessage: Output only. If the TestState is ERROR, then this string will
  2467  	// contain human-readable details about the error.
  2468  	ErrorMessage string `json:"errorMessage,omitempty"`
  2469  	// ProgressMessages: Output only. Human-readable, detailed descriptions of the
  2470  	// test's progress. For example: "Provisioning a device", "Starting Test".
  2471  	// During the course of execution new data may be appended to the end of
  2472  	// progress_messages.
  2473  	ProgressMessages []string `json:"progressMessages,omitempty"`
  2474  	// ForceSendFields is a list of field names (e.g. "ErrorMessage") to
  2475  	// unconditionally include in API requests. By default, fields with empty or
  2476  	// default values are omitted from API requests. See
  2477  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2478  	// details.
  2479  	ForceSendFields []string `json:"-"`
  2480  	// NullFields is a list of field names (e.g. "ErrorMessage") to include in API
  2481  	// requests with the JSON null value. By default, fields with empty values are
  2482  	// omitted from API requests. See
  2483  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2484  	NullFields []string `json:"-"`
  2485  }
  2486  
  2487  func (s *TestDetails) MarshalJSON() ([]byte, error) {
  2488  	type NoMethod TestDetails
  2489  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2490  }
  2491  
  2492  // TestEnvironmentCatalog: A description of a test environment.
  2493  type TestEnvironmentCatalog struct {
  2494  	// AndroidDeviceCatalog: Supported Android devices.
  2495  	AndroidDeviceCatalog *AndroidDeviceCatalog `json:"androidDeviceCatalog,omitempty"`
  2496  	// DeviceIpBlockCatalog: The IP blocks used by devices in the test environment.
  2497  	DeviceIpBlockCatalog *DeviceIpBlockCatalog `json:"deviceIpBlockCatalog,omitempty"`
  2498  	// IosDeviceCatalog: Supported iOS devices.
  2499  	IosDeviceCatalog *IosDeviceCatalog `json:"iosDeviceCatalog,omitempty"`
  2500  	// NetworkConfigurationCatalog: Supported network configurations.
  2501  	NetworkConfigurationCatalog *NetworkConfigurationCatalog `json:"networkConfigurationCatalog,omitempty"`
  2502  	// SoftwareCatalog: The software test environment provided by
  2503  	// TestExecutionService.
  2504  	SoftwareCatalog *ProvidedSoftwareCatalog `json:"softwareCatalog,omitempty"`
  2505  
  2506  	// ServerResponse contains the HTTP response code and headers from the server.
  2507  	googleapi.ServerResponse `json:"-"`
  2508  	// ForceSendFields is a list of field names (e.g. "AndroidDeviceCatalog") to
  2509  	// unconditionally include in API requests. By default, fields with empty or
  2510  	// default values are omitted from API requests. See
  2511  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2512  	// details.
  2513  	ForceSendFields []string `json:"-"`
  2514  	// NullFields is a list of field names (e.g. "AndroidDeviceCatalog") to include
  2515  	// in API requests with the JSON null value. By default, fields with empty
  2516  	// values are omitted from API requests. See
  2517  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2518  	NullFields []string `json:"-"`
  2519  }
  2520  
  2521  func (s *TestEnvironmentCatalog) MarshalJSON() ([]byte, error) {
  2522  	type NoMethod TestEnvironmentCatalog
  2523  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2524  }
  2525  
  2526  // TestExecution: A single test executed in a single environment.
  2527  type TestExecution struct {
  2528  	// Environment: Output only. How the host machine(s) are configured.
  2529  	Environment *Environment `json:"environment,omitempty"`
  2530  	// Id: Output only. Unique id set by the service.
  2531  	Id string `json:"id,omitempty"`
  2532  	// MatrixId: Output only. Id of the containing TestMatrix.
  2533  	MatrixId string `json:"matrixId,omitempty"`
  2534  	// ProjectId: Output only. The cloud project that owns the test execution.
  2535  	ProjectId string `json:"projectId,omitempty"`
  2536  	// Shard: Output only. Details about the shard.
  2537  	Shard *Shard `json:"shard,omitempty"`
  2538  	// State: Output only. Indicates the current progress of the test execution
  2539  	// (e.g., FINISHED).
  2540  	//
  2541  	// Possible values:
  2542  	//   "TEST_STATE_UNSPECIFIED" - Do not use. For proto versioning only.
  2543  	//   "VALIDATING" - The execution or matrix is being validated.
  2544  	//   "PENDING" - The execution or matrix is waiting for resources to become
  2545  	// available.
  2546  	//   "RUNNING" - The execution is currently being processed. Can only be set on
  2547  	// an execution.
  2548  	//   "FINISHED" - The execution or matrix has terminated normally. On a matrix
  2549  	// this means that the matrix level processing completed normally, but
  2550  	// individual executions may be in an ERROR state.
  2551  	//   "ERROR" - The execution or matrix has stopped because it encountered an
  2552  	// infrastructure failure.
  2553  	//   "UNSUPPORTED_ENVIRONMENT" - The execution was not run because it
  2554  	// corresponds to a unsupported environment. Can only be set on an execution.
  2555  	//   "INCOMPATIBLE_ENVIRONMENT" - The execution was not run because the
  2556  	// provided inputs are incompatible with the requested environment. Example:
  2557  	// requested AndroidVersion is lower than APK's minSdkVersion Can only be set
  2558  	// on an execution.
  2559  	//   "INCOMPATIBLE_ARCHITECTURE" - The execution was not run because the
  2560  	// provided inputs are incompatible with the requested architecture. Example:
  2561  	// requested device does not support running the native code in the supplied
  2562  	// APK Can only be set on an execution.
  2563  	//   "CANCELLED" - The user cancelled the execution. Can only be set on an
  2564  	// execution.
  2565  	//   "INVALID" - The execution or matrix was not run because the provided
  2566  	// inputs are not valid. Examples: input file is not of the expected type, is
  2567  	// malformed/corrupt, or was flagged as malware
  2568  	State string `json:"state,omitempty"`
  2569  	// TestDetails: Output only. Additional details about the running test.
  2570  	TestDetails *TestDetails `json:"testDetails,omitempty"`
  2571  	// TestSpecification: Output only. How to run the test.
  2572  	TestSpecification *TestSpecification `json:"testSpecification,omitempty"`
  2573  	// Timestamp: Output only. The time this test execution was initially created.
  2574  	Timestamp string `json:"timestamp,omitempty"`
  2575  	// ToolResultsStep: Output only. Where the results for this execution are
  2576  	// written.
  2577  	ToolResultsStep *ToolResultsStep `json:"toolResultsStep,omitempty"`
  2578  	// ForceSendFields is a list of field names (e.g. "Environment") to
  2579  	// unconditionally include in API requests. By default, fields with empty or
  2580  	// default values are omitted from API requests. See
  2581  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2582  	// details.
  2583  	ForceSendFields []string `json:"-"`
  2584  	// NullFields is a list of field names (e.g. "Environment") to include in API
  2585  	// requests with the JSON null value. By default, fields with empty values are
  2586  	// omitted from API requests. See
  2587  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2588  	NullFields []string `json:"-"`
  2589  }
  2590  
  2591  func (s *TestExecution) MarshalJSON() ([]byte, error) {
  2592  	type NoMethod TestExecution
  2593  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2594  }
  2595  
  2596  // TestMatrix: TestMatrix captures all details about a test. It contains the
  2597  // environment configuration, test specification, test executions and overall
  2598  // state and outcome.
  2599  type TestMatrix struct {
  2600  	// ClientInfo: Information about the client which invoked the test.
  2601  	ClientInfo *ClientInfo `json:"clientInfo,omitempty"`
  2602  	// EnvironmentMatrix: Required. The devices the tests are being executed on.
  2603  	EnvironmentMatrix *EnvironmentMatrix `json:"environmentMatrix,omitempty"`
  2604  	// ExtendedInvalidMatrixDetails: Output only. Details about why a matrix was
  2605  	// deemed invalid. If multiple checks can be safely performed, they will be
  2606  	// reported but no assumptions should be made about the length of this list.
  2607  	ExtendedInvalidMatrixDetails []*MatrixErrorDetail `json:"extendedInvalidMatrixDetails,omitempty"`
  2608  	// FailFast: If true, only a single attempt at most will be made to run each
  2609  	// execution/shard in the matrix. Flaky test attempts are not affected.
  2610  	// Normally, 2 or more attempts are made if a potential infrastructure issue is
  2611  	// detected. This feature is for latency sensitive workloads. The incidence of
  2612  	// execution failures may be significantly greater for fail-fast matrices and
  2613  	// support is more limited because of that expectation.
  2614  	FailFast bool `json:"failFast,omitempty"`
  2615  	// FlakyTestAttempts: The number of times a TestExecution should be
  2616  	// re-attempted if one or more of its test cases fail for any reason. The
  2617  	// maximum number of reruns allowed is 10. Default is 0, which implies no
  2618  	// reruns.
  2619  	FlakyTestAttempts int64 `json:"flakyTestAttempts,omitempty"`
  2620  	// InvalidMatrixDetails: Output only. Describes why the matrix is considered
  2621  	// invalid. Only useful for matrices in the INVALID state.
  2622  	//
  2623  	// Possible values:
  2624  	//   "INVALID_MATRIX_DETAILS_UNSPECIFIED" - Do not use. For proto versioning
  2625  	// only.
  2626  	//   "DETAILS_UNAVAILABLE" - The matrix is INVALID, but there are no further
  2627  	// details available.
  2628  	//   "MALFORMED_APK" - The input app APK could not be parsed.
  2629  	//   "MALFORMED_TEST_APK" - The input test APK could not be parsed.
  2630  	//   "NO_MANIFEST" - The AndroidManifest.xml could not be found.
  2631  	//   "NO_PACKAGE_NAME" - The APK manifest does not declare a package name.
  2632  	//   "INVALID_PACKAGE_NAME" - The APK application ID (aka package name) is
  2633  	// invalid. See also https://developer.android.com/studio/build/application-id
  2634  	//   "TEST_SAME_AS_APP" - The test package and app package are the same.
  2635  	//   "NO_INSTRUMENTATION" - The test apk does not declare an instrumentation.
  2636  	//   "NO_SIGNATURE" - The input app apk does not have a signature.
  2637  	//   "INSTRUMENTATION_ORCHESTRATOR_INCOMPATIBLE" - The test runner class
  2638  	// specified by user or in the test APK's manifest file is not compatible with
  2639  	// Android Test Orchestrator. Orchestrator is only compatible with
  2640  	// AndroidJUnitRunner version 1.1 or higher. Orchestrator can be disabled by
  2641  	// using DO_NOT_USE_ORCHESTRATOR OrchestratorOption.
  2642  	//   "NO_TEST_RUNNER_CLASS" - The test APK does not contain the test runner
  2643  	// class specified by the user or in the manifest file. This can be caused by
  2644  	// one of the following reasons: - the user provided a runner class name that's
  2645  	// incorrect, or - the test runner isn't built into the test APK (might be in
  2646  	// the app APK instead).
  2647  	//   "NO_LAUNCHER_ACTIVITY" - A main launcher activity could not be found.
  2648  	//   "FORBIDDEN_PERMISSIONS" - The app declares one or more permissions that
  2649  	// are not allowed.
  2650  	//   "INVALID_ROBO_DIRECTIVES" - There is a conflict in the provided
  2651  	// robo_directives.
  2652  	//   "INVALID_RESOURCE_NAME" - There is at least one invalid resource name in
  2653  	// the provided robo directives
  2654  	//   "INVALID_DIRECTIVE_ACTION" - Invalid definition of action in the robo
  2655  	// directives (e.g. a click or ignore action includes an input text field)
  2656  	//   "TEST_LOOP_INTENT_FILTER_NOT_FOUND" - There is no test loop intent filter,
  2657  	// or the one that is given is not formatted correctly.
  2658  	//   "SCENARIO_LABEL_NOT_DECLARED" - The request contains a scenario label that
  2659  	// was not declared in the manifest.
  2660  	//   "SCENARIO_LABEL_MALFORMED" - There was an error when parsing a label's
  2661  	// value.
  2662  	//   "SCENARIO_NOT_DECLARED" - The request contains a scenario number that was
  2663  	// not declared in the manifest.
  2664  	//   "DEVICE_ADMIN_RECEIVER" - Device administrator applications are not
  2665  	// allowed.
  2666  	//   "MALFORMED_XC_TEST_ZIP" - The zipped XCTest was malformed. The zip did not
  2667  	// contain a single .xctestrun file and the contents of the
  2668  	// DerivedData/Build/Products directory.
  2669  	//   "BUILT_FOR_IOS_SIMULATOR" - The zipped XCTest was built for the iOS
  2670  	// simulator rather than for a physical device.
  2671  	//   "NO_TESTS_IN_XC_TEST_ZIP" - The .xctestrun file did not specify any test
  2672  	// targets.
  2673  	//   "USE_DESTINATION_ARTIFACTS" - One or more of the test targets defined in
  2674  	// the .xctestrun file specifies "UseDestinationArtifacts", which is
  2675  	// disallowed.
  2676  	//   "TEST_NOT_APP_HOSTED" - XC tests which run on physical devices must have
  2677  	// "IsAppHostedTestBundle" == "true" in the xctestrun file.
  2678  	//   "PLIST_CANNOT_BE_PARSED" - An Info.plist file in the XCTest zip could not
  2679  	// be parsed.
  2680  	//   "TEST_ONLY_APK" - The APK is marked as "testOnly". Deprecated and not
  2681  	// currently used.
  2682  	//   "MALFORMED_IPA" - The input IPA could not be parsed.
  2683  	//   "MISSING_URL_SCHEME" - The application doesn't register the game loop URL
  2684  	// scheme.
  2685  	//   "MALFORMED_APP_BUNDLE" - The iOS application bundle (.app) couldn't be
  2686  	// processed.
  2687  	//   "NO_CODE_APK" - APK contains no code. See also
  2688  	// https://developer.android.com/guide/topics/manifest/application-element.html#code
  2689  	//   "INVALID_INPUT_APK" - Either the provided input APK path was malformed,
  2690  	// the APK file does not exist, or the user does not have permission to access
  2691  	// the APK file.
  2692  	//   "INVALID_APK_PREVIEW_SDK" - APK is built for a preview SDK which is
  2693  	// unsupported
  2694  	//   "MATRIX_TOO_LARGE" - The matrix expanded to contain too many executions.
  2695  	//   "TEST_QUOTA_EXCEEDED" - Not enough test quota to run the executions in
  2696  	// this matrix.
  2697  	//   "SERVICE_NOT_ACTIVATED" - A required cloud service api is not activated.
  2698  	// See:
  2699  	// https://firebase.google.com/docs/test-lab/android/continuous#requirements
  2700  	//   "UNKNOWN_PERMISSION_ERROR" - There was an unknown permission issue running
  2701  	// this test.
  2702  	InvalidMatrixDetails string `json:"invalidMatrixDetails,omitempty"`
  2703  	// OutcomeSummary: Output Only. The overall outcome of the test. Only set when
  2704  	// the test matrix state is FINISHED.
  2705  	//
  2706  	// Possible values:
  2707  	//   "OUTCOME_SUMMARY_UNSPECIFIED" - Do not use. For proto versioning only.
  2708  	//   "SUCCESS" - The test matrix run was successful, for instance: - All the
  2709  	// test cases passed. - Robo did not detect a crash of the application under
  2710  	// test.
  2711  	//   "FAILURE" - A run failed, for instance: - One or more test cases failed. -
  2712  	// A test timed out. - The application under test crashed.
  2713  	//   "INCONCLUSIVE" - Something unexpected happened. The run should still be
  2714  	// considered unsuccessful but this is likely a transient problem and
  2715  	// re-running the test might be successful.
  2716  	//   "SKIPPED" - All tests were skipped, for instance: - All device
  2717  	// configurations were incompatible.
  2718  	OutcomeSummary string `json:"outcomeSummary,omitempty"`
  2719  	// ProjectId: The cloud project that owns the test matrix.
  2720  	ProjectId string `json:"projectId,omitempty"`
  2721  	// ResultStorage: Required. Where the results for the matrix are written.
  2722  	ResultStorage *ResultStorage `json:"resultStorage,omitempty"`
  2723  	// State: Output only. Indicates the current progress of the test matrix.
  2724  	//
  2725  	// Possible values:
  2726  	//   "TEST_STATE_UNSPECIFIED" - Do not use. For proto versioning only.
  2727  	//   "VALIDATING" - The execution or matrix is being validated.
  2728  	//   "PENDING" - The execution or matrix is waiting for resources to become
  2729  	// available.
  2730  	//   "RUNNING" - The execution is currently being processed. Can only be set on
  2731  	// an execution.
  2732  	//   "FINISHED" - The execution or matrix has terminated normally. On a matrix
  2733  	// this means that the matrix level processing completed normally, but
  2734  	// individual executions may be in an ERROR state.
  2735  	//   "ERROR" - The execution or matrix has stopped because it encountered an
  2736  	// infrastructure failure.
  2737  	//   "UNSUPPORTED_ENVIRONMENT" - The execution was not run because it
  2738  	// corresponds to a unsupported environment. Can only be set on an execution.
  2739  	//   "INCOMPATIBLE_ENVIRONMENT" - The execution was not run because the
  2740  	// provided inputs are incompatible with the requested environment. Example:
  2741  	// requested AndroidVersion is lower than APK's minSdkVersion Can only be set
  2742  	// on an execution.
  2743  	//   "INCOMPATIBLE_ARCHITECTURE" - The execution was not run because the
  2744  	// provided inputs are incompatible with the requested architecture. Example:
  2745  	// requested device does not support running the native code in the supplied
  2746  	// APK Can only be set on an execution.
  2747  	//   "CANCELLED" - The user cancelled the execution. Can only be set on an
  2748  	// execution.
  2749  	//   "INVALID" - The execution or matrix was not run because the provided
  2750  	// inputs are not valid. Examples: input file is not of the expected type, is
  2751  	// malformed/corrupt, or was flagged as malware
  2752  	State string `json:"state,omitempty"`
  2753  	// TestExecutions: Output only. The list of test executions that the service
  2754  	// creates for this matrix.
  2755  	TestExecutions []*TestExecution `json:"testExecutions,omitempty"`
  2756  	// TestMatrixId: Output only. Unique id set by the service.
  2757  	TestMatrixId string `json:"testMatrixId,omitempty"`
  2758  	// TestSpecification: Required. How to run the test.
  2759  	TestSpecification *TestSpecification `json:"testSpecification,omitempty"`
  2760  	// Timestamp: Output only. The time this test matrix was initially created.
  2761  	Timestamp string `json:"timestamp,omitempty"`
  2762  
  2763  	// ServerResponse contains the HTTP response code and headers from the server.
  2764  	googleapi.ServerResponse `json:"-"`
  2765  	// ForceSendFields is a list of field names (e.g. "ClientInfo") to
  2766  	// unconditionally include in API requests. By default, fields with empty or
  2767  	// default values are omitted from API requests. See
  2768  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2769  	// details.
  2770  	ForceSendFields []string `json:"-"`
  2771  	// NullFields is a list of field names (e.g. "ClientInfo") to include in API
  2772  	// requests with the JSON null value. By default, fields with empty values are
  2773  	// omitted from API requests. See
  2774  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2775  	NullFields []string `json:"-"`
  2776  }
  2777  
  2778  func (s *TestMatrix) MarshalJSON() ([]byte, error) {
  2779  	type NoMethod TestMatrix
  2780  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2781  }
  2782  
  2783  // TestSetup: A description of how to set up the Android device prior to
  2784  // running the test.
  2785  type TestSetup struct {
  2786  	// Account: The device will be logged in on this account for the duration of
  2787  	// the test.
  2788  	Account *Account `json:"account,omitempty"`
  2789  	// AdditionalApks: APKs to install in addition to those being directly tested.
  2790  	// These will be installed after the app under test. Currently capped at 100.
  2791  	AdditionalApks []*Apk `json:"additionalApks,omitempty"`
  2792  	// DirectoriesToPull: List of directories on the device to upload to GCS at the
  2793  	// end of the test; they must be absolute paths under /sdcard, /storage or
  2794  	// /data/local/tmp. Path names are restricted to characters a-z A-Z 0-9 _ - . +
  2795  	// and / Note: The paths /sdcard and /data will be made available and treated
  2796  	// as implicit path substitutions. E.g. if /sdcard on a particular device does
  2797  	// not map to external storage, the system will replace it with the external
  2798  	// storage path prefix for that device.
  2799  	DirectoriesToPull []string `json:"directoriesToPull,omitempty"`
  2800  	// DontAutograntPermissions: Whether to prevent all runtime permissions to be
  2801  	// granted at app install
  2802  	DontAutograntPermissions bool `json:"dontAutograntPermissions,omitempty"`
  2803  	// EnvironmentVariables: Environment variables to set for the test (only
  2804  	// applicable for instrumentation tests).
  2805  	EnvironmentVariables []*EnvironmentVariable `json:"environmentVariables,omitempty"`
  2806  	// FilesToPush: List of files to push to the device before starting the test.
  2807  	FilesToPush []*DeviceFile `json:"filesToPush,omitempty"`
  2808  	// InitialSetupApks: Optional. Initial setup APKs to install before the app
  2809  	// under test is installed. Currently capped at 100.
  2810  	InitialSetupApks []*Apk `json:"initialSetupApks,omitempty"`
  2811  	// NetworkProfile: The network traffic profile used for running the test.
  2812  	// Available network profiles can be queried by using the NETWORK_CONFIGURATION
  2813  	// environment type when calling
  2814  	// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
  2815  	NetworkProfile string `json:"networkProfile,omitempty"`
  2816  	// Systrace: Systrace configuration for the run. Deprecated: Systrace used
  2817  	// Python 2 which was sunsetted on 2020-01-01. Systrace is no longer supported
  2818  	// in the Cloud Testing API, and no Systrace file will be provided in the
  2819  	// results.
  2820  	Systrace *SystraceSetup `json:"systrace,omitempty"`
  2821  	// ForceSendFields is a list of field names (e.g. "Account") to unconditionally
  2822  	// include in API requests. By default, fields with empty or default values are
  2823  	// omitted from API requests. See
  2824  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2825  	// details.
  2826  	ForceSendFields []string `json:"-"`
  2827  	// NullFields is a list of field names (e.g. "Account") to include in API
  2828  	// requests with the JSON null value. By default, fields with empty values are
  2829  	// omitted from API requests. See
  2830  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2831  	NullFields []string `json:"-"`
  2832  }
  2833  
  2834  func (s *TestSetup) MarshalJSON() ([]byte, error) {
  2835  	type NoMethod TestSetup
  2836  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2837  }
  2838  
  2839  // TestSpecification: A description of how to run the test.
  2840  type TestSpecification struct {
  2841  	// AndroidInstrumentationTest: An Android instrumentation test.
  2842  	AndroidInstrumentationTest *AndroidInstrumentationTest `json:"androidInstrumentationTest,omitempty"`
  2843  	// AndroidRoboTest: An Android robo test.
  2844  	AndroidRoboTest *AndroidRoboTest `json:"androidRoboTest,omitempty"`
  2845  	// AndroidTestLoop: An Android Application with a Test Loop.
  2846  	AndroidTestLoop *AndroidTestLoop `json:"androidTestLoop,omitempty"`
  2847  	// DisablePerformanceMetrics: Disables performance metrics recording. May
  2848  	// reduce test latency.
  2849  	DisablePerformanceMetrics bool `json:"disablePerformanceMetrics,omitempty"`
  2850  	// DisableVideoRecording: Disables video recording. May reduce test latency.
  2851  	DisableVideoRecording bool `json:"disableVideoRecording,omitempty"`
  2852  	// IosRoboTest: An iOS Robo test.
  2853  	IosRoboTest *IosRoboTest `json:"iosRoboTest,omitempty"`
  2854  	// IosTestLoop: An iOS application with a test loop.
  2855  	IosTestLoop *IosTestLoop `json:"iosTestLoop,omitempty"`
  2856  	// IosTestSetup: Test setup requirements for iOS.
  2857  	IosTestSetup *IosTestSetup `json:"iosTestSetup,omitempty"`
  2858  	// IosXcTest: An iOS XCTest, via an .xctestrun file.
  2859  	IosXcTest *IosXcTest `json:"iosXcTest,omitempty"`
  2860  	// TestSetup: Test setup requirements for Android e.g. files to install,
  2861  	// bootstrap scripts.
  2862  	TestSetup *TestSetup `json:"testSetup,omitempty"`
  2863  	// TestTimeout: Max time a test execution is allowed to run before it is
  2864  	// automatically cancelled. The default value is 5 min.
  2865  	TestTimeout string `json:"testTimeout,omitempty"`
  2866  	// ForceSendFields is a list of field names (e.g. "AndroidInstrumentationTest")
  2867  	// to unconditionally include in API requests. By default, fields with empty or
  2868  	// default values are omitted from API requests. See
  2869  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2870  	// details.
  2871  	ForceSendFields []string `json:"-"`
  2872  	// NullFields is a list of field names (e.g. "AndroidInstrumentationTest") to
  2873  	// include in API requests with the JSON null value. By default, fields with
  2874  	// empty values are omitted from API requests. See
  2875  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2876  	NullFields []string `json:"-"`
  2877  }
  2878  
  2879  func (s *TestSpecification) MarshalJSON() ([]byte, error) {
  2880  	type NoMethod TestSpecification
  2881  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2882  }
  2883  
  2884  // TestTargetsForShard: Test targets for a shard.
  2885  type TestTargetsForShard struct {
  2886  	// TestTargets: Group of packages, classes, and/or test methods to be run for
  2887  	// each shard. The targets need to be specified in AndroidJUnitRunner argument
  2888  	// format. For example, "package com.my.packages" "class
  2889  	// com.my.package.MyClass". The number of test_targets must be greater than 0.
  2890  	TestTargets []string `json:"testTargets,omitempty"`
  2891  	// ForceSendFields is a list of field names (e.g. "TestTargets") to
  2892  	// unconditionally include in API requests. By default, fields with empty or
  2893  	// default values are omitted from API requests. See
  2894  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2895  	// details.
  2896  	ForceSendFields []string `json:"-"`
  2897  	// NullFields is a list of field names (e.g. "TestTargets") to include in API
  2898  	// requests with the JSON null value. By default, fields with empty values are
  2899  	// omitted from API requests. See
  2900  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2901  	NullFields []string `json:"-"`
  2902  }
  2903  
  2904  func (s *TestTargetsForShard) MarshalJSON() ([]byte, error) {
  2905  	type NoMethod TestTargetsForShard
  2906  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2907  }
  2908  
  2909  // ToolResultsExecution: Represents a tool results execution resource. This has
  2910  // the results of a TestMatrix.
  2911  type ToolResultsExecution struct {
  2912  	// ExecutionId: Output only. A tool results execution ID.
  2913  	ExecutionId string `json:"executionId,omitempty"`
  2914  	// HistoryId: Output only. A tool results history ID.
  2915  	HistoryId string `json:"historyId,omitempty"`
  2916  	// ProjectId: Output only. The cloud project that owns the tool results
  2917  	// execution.
  2918  	ProjectId string `json:"projectId,omitempty"`
  2919  	// ForceSendFields is a list of field names (e.g. "ExecutionId") to
  2920  	// unconditionally include in API requests. By default, fields with empty or
  2921  	// default values are omitted from API requests. See
  2922  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2923  	// details.
  2924  	ForceSendFields []string `json:"-"`
  2925  	// NullFields is a list of field names (e.g. "ExecutionId") to include in API
  2926  	// requests with the JSON null value. By default, fields with empty values are
  2927  	// omitted from API requests. See
  2928  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2929  	NullFields []string `json:"-"`
  2930  }
  2931  
  2932  func (s *ToolResultsExecution) MarshalJSON() ([]byte, error) {
  2933  	type NoMethod ToolResultsExecution
  2934  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2935  }
  2936  
  2937  // ToolResultsHistory: Represents a tool results history resource.
  2938  type ToolResultsHistory struct {
  2939  	// HistoryId: Required. A tool results history ID.
  2940  	HistoryId string `json:"historyId,omitempty"`
  2941  	// ProjectId: Required. The cloud project that owns the tool results history.
  2942  	ProjectId string `json:"projectId,omitempty"`
  2943  	// ForceSendFields is a list of field names (e.g. "HistoryId") to
  2944  	// unconditionally include in API requests. By default, fields with empty or
  2945  	// default values are omitted from API requests. See
  2946  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2947  	// details.
  2948  	ForceSendFields []string `json:"-"`
  2949  	// NullFields is a list of field names (e.g. "HistoryId") to include in API
  2950  	// requests with the JSON null value. By default, fields with empty values are
  2951  	// omitted from API requests. See
  2952  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2953  	NullFields []string `json:"-"`
  2954  }
  2955  
  2956  func (s *ToolResultsHistory) MarshalJSON() ([]byte, error) {
  2957  	type NoMethod ToolResultsHistory
  2958  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2959  }
  2960  
  2961  // ToolResultsStep: Represents a tool results step resource. This has the
  2962  // results of a TestExecution.
  2963  type ToolResultsStep struct {
  2964  	// ExecutionId: Output only. A tool results execution ID.
  2965  	ExecutionId string `json:"executionId,omitempty"`
  2966  	// HistoryId: Output only. A tool results history ID.
  2967  	HistoryId string `json:"historyId,omitempty"`
  2968  	// ProjectId: Output only. The cloud project that owns the tool results step.
  2969  	ProjectId string `json:"projectId,omitempty"`
  2970  	// StepId: Output only. A tool results step ID.
  2971  	StepId string `json:"stepId,omitempty"`
  2972  	// ForceSendFields is a list of field names (e.g. "ExecutionId") to
  2973  	// unconditionally include in API requests. By default, fields with empty or
  2974  	// default values are omitted from API requests. See
  2975  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  2976  	// details.
  2977  	ForceSendFields []string `json:"-"`
  2978  	// NullFields is a list of field names (e.g. "ExecutionId") to include in API
  2979  	// requests with the JSON null value. By default, fields with empty values are
  2980  	// omitted from API requests. See
  2981  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  2982  	NullFields []string `json:"-"`
  2983  }
  2984  
  2985  func (s *ToolResultsStep) MarshalJSON() ([]byte, error) {
  2986  	type NoMethod ToolResultsStep
  2987  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  2988  }
  2989  
  2990  // TrafficRule: Network emulation parameters.
  2991  type TrafficRule struct {
  2992  	// Bandwidth: Bandwidth in kbits/second.
  2993  	Bandwidth float64 `json:"bandwidth,omitempty"`
  2994  	// Burst: Burst size in kbits.
  2995  	Burst float64 `json:"burst,omitempty"`
  2996  	// Delay: Packet delay, must be >= 0.
  2997  	Delay string `json:"delay,omitempty"`
  2998  	// PacketDuplicationRatio: Packet duplication ratio (0.0 - 1.0).
  2999  	PacketDuplicationRatio float64 `json:"packetDuplicationRatio,omitempty"`
  3000  	// PacketLossRatio: Packet loss ratio (0.0 - 1.0).
  3001  	PacketLossRatio float64 `json:"packetLossRatio,omitempty"`
  3002  	// ForceSendFields is a list of field names (e.g. "Bandwidth") to
  3003  	// unconditionally include in API requests. By default, fields with empty or
  3004  	// default values are omitted from API requests. See
  3005  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3006  	// details.
  3007  	ForceSendFields []string `json:"-"`
  3008  	// NullFields is a list of field names (e.g. "Bandwidth") to include in API
  3009  	// requests with the JSON null value. By default, fields with empty values are
  3010  	// omitted from API requests. See
  3011  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3012  	NullFields []string `json:"-"`
  3013  }
  3014  
  3015  func (s *TrafficRule) MarshalJSON() ([]byte, error) {
  3016  	type NoMethod TrafficRule
  3017  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3018  }
  3019  
  3020  func (s *TrafficRule) UnmarshalJSON(data []byte) error {
  3021  	type NoMethod TrafficRule
  3022  	var s1 struct {
  3023  		Bandwidth              gensupport.JSONFloat64 `json:"bandwidth"`
  3024  		Burst                  gensupport.JSONFloat64 `json:"burst"`
  3025  		PacketDuplicationRatio gensupport.JSONFloat64 `json:"packetDuplicationRatio"`
  3026  		PacketLossRatio        gensupport.JSONFloat64 `json:"packetLossRatio"`
  3027  		*NoMethod
  3028  	}
  3029  	s1.NoMethod = (*NoMethod)(s)
  3030  	if err := json.Unmarshal(data, &s1); err != nil {
  3031  		return err
  3032  	}
  3033  	s.Bandwidth = float64(s1.Bandwidth)
  3034  	s.Burst = float64(s1.Burst)
  3035  	s.PacketDuplicationRatio = float64(s1.PacketDuplicationRatio)
  3036  	s.PacketLossRatio = float64(s1.PacketLossRatio)
  3037  	return nil
  3038  }
  3039  
  3040  // UniformSharding: Uniformly shards test cases given a total number of shards.
  3041  // For instrumentation tests, it will be translated to "-e numShard" and "-e
  3042  // shardIndex" AndroidJUnitRunner arguments. With uniform sharding enabled,
  3043  // specifying either of these sharding arguments via `environment_variables` is
  3044  // invalid. Based on the sharding mechanism AndroidJUnitRunner uses, there is
  3045  // no guarantee that test cases will be distributed uniformly across all
  3046  // shards.
  3047  type UniformSharding struct {
  3048  	// NumShards: Required. The total number of shards to create. This must always
  3049  	// be a positive number that is no greater than the total number of test cases.
  3050  	// When you select one or more physical devices, the number of shards must be
  3051  	// <= 50. When you select one or more ARM virtual devices, it must be <= 200.
  3052  	// When you select only x86 virtual devices, it must be <= 500.
  3053  	NumShards int64 `json:"numShards,omitempty"`
  3054  	// ForceSendFields is a list of field names (e.g. "NumShards") to
  3055  	// unconditionally include in API requests. By default, fields with empty or
  3056  	// default values are omitted from API requests. See
  3057  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3058  	// details.
  3059  	ForceSendFields []string `json:"-"`
  3060  	// NullFields is a list of field names (e.g. "NumShards") to include in API
  3061  	// requests with the JSON null value. By default, fields with empty values are
  3062  	// omitted from API requests. See
  3063  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3064  	NullFields []string `json:"-"`
  3065  }
  3066  
  3067  func (s *UniformSharding) MarshalJSON() ([]byte, error) {
  3068  	type NoMethod UniformSharding
  3069  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3070  }
  3071  
  3072  // UsesFeature: A tag within a manifest.
  3073  // https://developer.android.com/guide/topics/manifest/uses-feature-element.html
  3074  type UsesFeature struct {
  3075  	// IsRequired: The android:required value
  3076  	IsRequired bool `json:"isRequired,omitempty"`
  3077  	// Name: The android:name value
  3078  	Name string `json:"name,omitempty"`
  3079  	// ForceSendFields is a list of field names (e.g. "IsRequired") to
  3080  	// unconditionally include in API requests. By default, fields with empty or
  3081  	// default values are omitted from API requests. See
  3082  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3083  	// details.
  3084  	ForceSendFields []string `json:"-"`
  3085  	// NullFields is a list of field names (e.g. "IsRequired") to include in API
  3086  	// requests with the JSON null value. By default, fields with empty values are
  3087  	// omitted from API requests. See
  3088  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3089  	NullFields []string `json:"-"`
  3090  }
  3091  
  3092  func (s *UsesFeature) MarshalJSON() ([]byte, error) {
  3093  	type NoMethod UsesFeature
  3094  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3095  }
  3096  
  3097  // XcodeVersion: An Xcode version that an iOS version is compatible with.
  3098  type XcodeVersion struct {
  3099  	// Tags: Tags for this Xcode version. Example: "default".
  3100  	Tags []string `json:"tags,omitempty"`
  3101  	// Version: The id for this version. Example: "9.2".
  3102  	Version string `json:"version,omitempty"`
  3103  	// ForceSendFields is a list of field names (e.g. "Tags") to unconditionally
  3104  	// include in API requests. By default, fields with empty or default values are
  3105  	// omitted from API requests. See
  3106  	// https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more
  3107  	// details.
  3108  	ForceSendFields []string `json:"-"`
  3109  	// NullFields is a list of field names (e.g. "Tags") to include in API requests
  3110  	// with the JSON null value. By default, fields with empty values are omitted
  3111  	// from API requests. See
  3112  	// https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.
  3113  	NullFields []string `json:"-"`
  3114  }
  3115  
  3116  func (s *XcodeVersion) MarshalJSON() ([]byte, error) {
  3117  	type NoMethod XcodeVersion
  3118  	return gensupport.MarshalJSON(NoMethod(*s), s.ForceSendFields, s.NullFields)
  3119  }
  3120  
  3121  type ApplicationDetailServiceGetApkDetailsCall struct {
  3122  	s             *APIService
  3123  	filereference *FileReference
  3124  	urlParams_    gensupport.URLParams
  3125  	ctx_          context.Context
  3126  	header_       http.Header
  3127  }
  3128  
  3129  // GetApkDetails: Gets the details of an Android application APK.
  3130  func (r *ApplicationDetailServiceService) GetApkDetails(filereference *FileReference) *ApplicationDetailServiceGetApkDetailsCall {
  3131  	c := &ApplicationDetailServiceGetApkDetailsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3132  	c.filereference = filereference
  3133  	return c
  3134  }
  3135  
  3136  // BundleLocationGcsPath sets the optional parameter "bundleLocation.gcsPath":
  3137  // A path to a file in Google Cloud Storage. Example:
  3138  // gs://build-app-1414623860166/app%40debug-unaligned.apk These paths are
  3139  // expected to be url encoded (percent encoding)
  3140  func (c *ApplicationDetailServiceGetApkDetailsCall) BundleLocationGcsPath(bundleLocationGcsPath string) *ApplicationDetailServiceGetApkDetailsCall {
  3141  	c.urlParams_.Set("bundleLocation.gcsPath", bundleLocationGcsPath)
  3142  	return c
  3143  }
  3144  
  3145  // Fields allows partial responses to be retrieved. See
  3146  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3147  // details.
  3148  func (c *ApplicationDetailServiceGetApkDetailsCall) Fields(s ...googleapi.Field) *ApplicationDetailServiceGetApkDetailsCall {
  3149  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3150  	return c
  3151  }
  3152  
  3153  // Context sets the context to be used in this call's Do method.
  3154  func (c *ApplicationDetailServiceGetApkDetailsCall) Context(ctx context.Context) *ApplicationDetailServiceGetApkDetailsCall {
  3155  	c.ctx_ = ctx
  3156  	return c
  3157  }
  3158  
  3159  // Header returns a http.Header that can be modified by the caller to add
  3160  // headers to the request.
  3161  func (c *ApplicationDetailServiceGetApkDetailsCall) Header() http.Header {
  3162  	if c.header_ == nil {
  3163  		c.header_ = make(http.Header)
  3164  	}
  3165  	return c.header_
  3166  }
  3167  
  3168  func (c *ApplicationDetailServiceGetApkDetailsCall) doRequest(alt string) (*http.Response, error) {
  3169  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3170  	var body io.Reader = nil
  3171  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.filereference)
  3172  	if err != nil {
  3173  		return nil, err
  3174  	}
  3175  	c.urlParams_.Set("alt", alt)
  3176  	c.urlParams_.Set("prettyPrint", "false")
  3177  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/applicationDetailService/getApkDetails")
  3178  	urls += "?" + c.urlParams_.Encode()
  3179  	req, err := http.NewRequest("POST", urls, body)
  3180  	if err != nil {
  3181  		return nil, err
  3182  	}
  3183  	req.Header = reqHeaders
  3184  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3185  }
  3186  
  3187  // Do executes the "testing.applicationDetailService.getApkDetails" call.
  3188  // Any non-2xx status code is an error. Response headers are in either
  3189  // *GetApkDetailsResponse.ServerResponse.Header or (if a response was returned
  3190  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  3191  // check whether the returned error was because http.StatusNotModified was
  3192  // returned.
  3193  func (c *ApplicationDetailServiceGetApkDetailsCall) Do(opts ...googleapi.CallOption) (*GetApkDetailsResponse, error) {
  3194  	gensupport.SetOptions(c.urlParams_, opts...)
  3195  	res, err := c.doRequest("json")
  3196  	if res != nil && res.StatusCode == http.StatusNotModified {
  3197  		if res.Body != nil {
  3198  			res.Body.Close()
  3199  		}
  3200  		return nil, gensupport.WrapError(&googleapi.Error{
  3201  			Code:   res.StatusCode,
  3202  			Header: res.Header,
  3203  		})
  3204  	}
  3205  	if err != nil {
  3206  		return nil, err
  3207  	}
  3208  	defer googleapi.CloseBody(res)
  3209  	if err := googleapi.CheckResponse(res); err != nil {
  3210  		return nil, gensupport.WrapError(err)
  3211  	}
  3212  	ret := &GetApkDetailsResponse{
  3213  		ServerResponse: googleapi.ServerResponse{
  3214  			Header:         res.Header,
  3215  			HTTPStatusCode: res.StatusCode,
  3216  		},
  3217  	}
  3218  	target := &ret
  3219  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3220  		return nil, err
  3221  	}
  3222  	return ret, nil
  3223  }
  3224  
  3225  type ProjectsDeviceSessionsCancelCall struct {
  3226  	s                          *APIService
  3227  	name                       string
  3228  	canceldevicesessionrequest *CancelDeviceSessionRequest
  3229  	urlParams_                 gensupport.URLParams
  3230  	ctx_                       context.Context
  3231  	header_                    http.Header
  3232  }
  3233  
  3234  // Cancel: POST
  3235  // /v1/projects/{project_id}/deviceSessions/{device_session_id}:cancel Changes
  3236  // the DeviceSession to state FINISHED and terminates all connections. Canceled
  3237  // sessions are not deleted and can be retrieved or listed by the user until
  3238  // they expire based on the 28 day deletion policy.
  3239  //
  3240  //   - name: Name of the DeviceSession, e.g.
  3241  //     "projects/{project_id}/deviceSessions/{session_id}".
  3242  func (r *ProjectsDeviceSessionsService) Cancel(name string, canceldevicesessionrequest *CancelDeviceSessionRequest) *ProjectsDeviceSessionsCancelCall {
  3243  	c := &ProjectsDeviceSessionsCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3244  	c.name = name
  3245  	c.canceldevicesessionrequest = canceldevicesessionrequest
  3246  	return c
  3247  }
  3248  
  3249  // Fields allows partial responses to be retrieved. See
  3250  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3251  // details.
  3252  func (c *ProjectsDeviceSessionsCancelCall) Fields(s ...googleapi.Field) *ProjectsDeviceSessionsCancelCall {
  3253  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3254  	return c
  3255  }
  3256  
  3257  // Context sets the context to be used in this call's Do method.
  3258  func (c *ProjectsDeviceSessionsCancelCall) Context(ctx context.Context) *ProjectsDeviceSessionsCancelCall {
  3259  	c.ctx_ = ctx
  3260  	return c
  3261  }
  3262  
  3263  // Header returns a http.Header that can be modified by the caller to add
  3264  // headers to the request.
  3265  func (c *ProjectsDeviceSessionsCancelCall) Header() http.Header {
  3266  	if c.header_ == nil {
  3267  		c.header_ = make(http.Header)
  3268  	}
  3269  	return c.header_
  3270  }
  3271  
  3272  func (c *ProjectsDeviceSessionsCancelCall) doRequest(alt string) (*http.Response, error) {
  3273  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3274  	var body io.Reader = nil
  3275  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.canceldevicesessionrequest)
  3276  	if err != nil {
  3277  		return nil, err
  3278  	}
  3279  	c.urlParams_.Set("alt", alt)
  3280  	c.urlParams_.Set("prettyPrint", "false")
  3281  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}:cancel")
  3282  	urls += "?" + c.urlParams_.Encode()
  3283  	req, err := http.NewRequest("POST", urls, body)
  3284  	if err != nil {
  3285  		return nil, err
  3286  	}
  3287  	req.Header = reqHeaders
  3288  	googleapi.Expand(req.URL, map[string]string{
  3289  		"name": c.name,
  3290  	})
  3291  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3292  }
  3293  
  3294  // Do executes the "testing.projects.deviceSessions.cancel" call.
  3295  // Any non-2xx status code is an error. Response headers are in either
  3296  // *Empty.ServerResponse.Header or (if a response was returned at all) in
  3297  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3298  // whether the returned error was because http.StatusNotModified was returned.
  3299  func (c *ProjectsDeviceSessionsCancelCall) Do(opts ...googleapi.CallOption) (*Empty, error) {
  3300  	gensupport.SetOptions(c.urlParams_, opts...)
  3301  	res, err := c.doRequest("json")
  3302  	if res != nil && res.StatusCode == http.StatusNotModified {
  3303  		if res.Body != nil {
  3304  			res.Body.Close()
  3305  		}
  3306  		return nil, gensupport.WrapError(&googleapi.Error{
  3307  			Code:   res.StatusCode,
  3308  			Header: res.Header,
  3309  		})
  3310  	}
  3311  	if err != nil {
  3312  		return nil, err
  3313  	}
  3314  	defer googleapi.CloseBody(res)
  3315  	if err := googleapi.CheckResponse(res); err != nil {
  3316  		return nil, gensupport.WrapError(err)
  3317  	}
  3318  	ret := &Empty{
  3319  		ServerResponse: googleapi.ServerResponse{
  3320  			Header:         res.Header,
  3321  			HTTPStatusCode: res.StatusCode,
  3322  		},
  3323  	}
  3324  	target := &ret
  3325  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3326  		return nil, err
  3327  	}
  3328  	return ret, nil
  3329  }
  3330  
  3331  type ProjectsDeviceSessionsCreateCall struct {
  3332  	s             *APIService
  3333  	parent        string
  3334  	devicesession *DeviceSession
  3335  	urlParams_    gensupport.URLParams
  3336  	ctx_          context.Context
  3337  	header_       http.Header
  3338  }
  3339  
  3340  // Create: POST /v1/projects/{project_id}/deviceSessions
  3341  //
  3342  //   - parent: The Compute Engine project under which this device will be
  3343  //     allocated. "projects/{project_id}".
  3344  func (r *ProjectsDeviceSessionsService) Create(parent string, devicesession *DeviceSession) *ProjectsDeviceSessionsCreateCall {
  3345  	c := &ProjectsDeviceSessionsCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3346  	c.parent = parent
  3347  	c.devicesession = devicesession
  3348  	return c
  3349  }
  3350  
  3351  // Fields allows partial responses to be retrieved. See
  3352  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3353  // details.
  3354  func (c *ProjectsDeviceSessionsCreateCall) Fields(s ...googleapi.Field) *ProjectsDeviceSessionsCreateCall {
  3355  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3356  	return c
  3357  }
  3358  
  3359  // Context sets the context to be used in this call's Do method.
  3360  func (c *ProjectsDeviceSessionsCreateCall) Context(ctx context.Context) *ProjectsDeviceSessionsCreateCall {
  3361  	c.ctx_ = ctx
  3362  	return c
  3363  }
  3364  
  3365  // Header returns a http.Header that can be modified by the caller to add
  3366  // headers to the request.
  3367  func (c *ProjectsDeviceSessionsCreateCall) Header() http.Header {
  3368  	if c.header_ == nil {
  3369  		c.header_ = make(http.Header)
  3370  	}
  3371  	return c.header_
  3372  }
  3373  
  3374  func (c *ProjectsDeviceSessionsCreateCall) doRequest(alt string) (*http.Response, error) {
  3375  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3376  	var body io.Reader = nil
  3377  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.devicesession)
  3378  	if err != nil {
  3379  		return nil, err
  3380  	}
  3381  	c.urlParams_.Set("alt", alt)
  3382  	c.urlParams_.Set("prettyPrint", "false")
  3383  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/deviceSessions")
  3384  	urls += "?" + c.urlParams_.Encode()
  3385  	req, err := http.NewRequest("POST", urls, body)
  3386  	if err != nil {
  3387  		return nil, err
  3388  	}
  3389  	req.Header = reqHeaders
  3390  	googleapi.Expand(req.URL, map[string]string{
  3391  		"parent": c.parent,
  3392  	})
  3393  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3394  }
  3395  
  3396  // Do executes the "testing.projects.deviceSessions.create" call.
  3397  // Any non-2xx status code is an error. Response headers are in either
  3398  // *DeviceSession.ServerResponse.Header or (if a response was returned at all)
  3399  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3400  // whether the returned error was because http.StatusNotModified was returned.
  3401  func (c *ProjectsDeviceSessionsCreateCall) Do(opts ...googleapi.CallOption) (*DeviceSession, error) {
  3402  	gensupport.SetOptions(c.urlParams_, opts...)
  3403  	res, err := c.doRequest("json")
  3404  	if res != nil && res.StatusCode == http.StatusNotModified {
  3405  		if res.Body != nil {
  3406  			res.Body.Close()
  3407  		}
  3408  		return nil, gensupport.WrapError(&googleapi.Error{
  3409  			Code:   res.StatusCode,
  3410  			Header: res.Header,
  3411  		})
  3412  	}
  3413  	if err != nil {
  3414  		return nil, err
  3415  	}
  3416  	defer googleapi.CloseBody(res)
  3417  	if err := googleapi.CheckResponse(res); err != nil {
  3418  		return nil, gensupport.WrapError(err)
  3419  	}
  3420  	ret := &DeviceSession{
  3421  		ServerResponse: googleapi.ServerResponse{
  3422  			Header:         res.Header,
  3423  			HTTPStatusCode: res.StatusCode,
  3424  		},
  3425  	}
  3426  	target := &ret
  3427  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3428  		return nil, err
  3429  	}
  3430  	return ret, nil
  3431  }
  3432  
  3433  type ProjectsDeviceSessionsGetCall struct {
  3434  	s            *APIService
  3435  	name         string
  3436  	urlParams_   gensupport.URLParams
  3437  	ifNoneMatch_ string
  3438  	ctx_         context.Context
  3439  	header_      http.Header
  3440  }
  3441  
  3442  // Get: GET /v1/projects/{project_id}/deviceSessions/{device_session_id} Return
  3443  // a DeviceSession, which documents the allocation status and whether the
  3444  // device is allocated. Clients making requests from this API must poll
  3445  // GetDeviceSession.
  3446  //
  3447  //   - name: Name of the DeviceSession, e.g.
  3448  //     "projects/{project_id}/deviceSessions/{session_id}".
  3449  func (r *ProjectsDeviceSessionsService) Get(name string) *ProjectsDeviceSessionsGetCall {
  3450  	c := &ProjectsDeviceSessionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3451  	c.name = name
  3452  	return c
  3453  }
  3454  
  3455  // Fields allows partial responses to be retrieved. See
  3456  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3457  // details.
  3458  func (c *ProjectsDeviceSessionsGetCall) Fields(s ...googleapi.Field) *ProjectsDeviceSessionsGetCall {
  3459  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3460  	return c
  3461  }
  3462  
  3463  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3464  // object's ETag matches the given value. This is useful for getting updates
  3465  // only after the object has changed since the last request.
  3466  func (c *ProjectsDeviceSessionsGetCall) IfNoneMatch(entityTag string) *ProjectsDeviceSessionsGetCall {
  3467  	c.ifNoneMatch_ = entityTag
  3468  	return c
  3469  }
  3470  
  3471  // Context sets the context to be used in this call's Do method.
  3472  func (c *ProjectsDeviceSessionsGetCall) Context(ctx context.Context) *ProjectsDeviceSessionsGetCall {
  3473  	c.ctx_ = ctx
  3474  	return c
  3475  }
  3476  
  3477  // Header returns a http.Header that can be modified by the caller to add
  3478  // headers to the request.
  3479  func (c *ProjectsDeviceSessionsGetCall) Header() http.Header {
  3480  	if c.header_ == nil {
  3481  		c.header_ = make(http.Header)
  3482  	}
  3483  	return c.header_
  3484  }
  3485  
  3486  func (c *ProjectsDeviceSessionsGetCall) doRequest(alt string) (*http.Response, error) {
  3487  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3488  	if c.ifNoneMatch_ != "" {
  3489  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3490  	}
  3491  	var body io.Reader = nil
  3492  	c.urlParams_.Set("alt", alt)
  3493  	c.urlParams_.Set("prettyPrint", "false")
  3494  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3495  	urls += "?" + c.urlParams_.Encode()
  3496  	req, err := http.NewRequest("GET", urls, body)
  3497  	if err != nil {
  3498  		return nil, err
  3499  	}
  3500  	req.Header = reqHeaders
  3501  	googleapi.Expand(req.URL, map[string]string{
  3502  		"name": c.name,
  3503  	})
  3504  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3505  }
  3506  
  3507  // Do executes the "testing.projects.deviceSessions.get" call.
  3508  // Any non-2xx status code is an error. Response headers are in either
  3509  // *DeviceSession.ServerResponse.Header or (if a response was returned at all)
  3510  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3511  // whether the returned error was because http.StatusNotModified was returned.
  3512  func (c *ProjectsDeviceSessionsGetCall) Do(opts ...googleapi.CallOption) (*DeviceSession, error) {
  3513  	gensupport.SetOptions(c.urlParams_, opts...)
  3514  	res, err := c.doRequest("json")
  3515  	if res != nil && res.StatusCode == http.StatusNotModified {
  3516  		if res.Body != nil {
  3517  			res.Body.Close()
  3518  		}
  3519  		return nil, gensupport.WrapError(&googleapi.Error{
  3520  			Code:   res.StatusCode,
  3521  			Header: res.Header,
  3522  		})
  3523  	}
  3524  	if err != nil {
  3525  		return nil, err
  3526  	}
  3527  	defer googleapi.CloseBody(res)
  3528  	if err := googleapi.CheckResponse(res); err != nil {
  3529  		return nil, gensupport.WrapError(err)
  3530  	}
  3531  	ret := &DeviceSession{
  3532  		ServerResponse: googleapi.ServerResponse{
  3533  			Header:         res.Header,
  3534  			HTTPStatusCode: res.StatusCode,
  3535  		},
  3536  	}
  3537  	target := &ret
  3538  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3539  		return nil, err
  3540  	}
  3541  	return ret, nil
  3542  }
  3543  
  3544  type ProjectsDeviceSessionsListCall struct {
  3545  	s            *APIService
  3546  	parent       string
  3547  	urlParams_   gensupport.URLParams
  3548  	ifNoneMatch_ string
  3549  	ctx_         context.Context
  3550  	header_      http.Header
  3551  }
  3552  
  3553  // List: GET /v1/projects/{project_id}/deviceSessions Lists device Sessions
  3554  // owned by the project user.
  3555  //
  3556  // - parent: The name of the parent to request, e.g. "projects/{project_id}".
  3557  func (r *ProjectsDeviceSessionsService) List(parent string) *ProjectsDeviceSessionsListCall {
  3558  	c := &ProjectsDeviceSessionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3559  	c.parent = parent
  3560  	return c
  3561  }
  3562  
  3563  // Filter sets the optional parameter "filter": If specified, responses will be
  3564  // filtered by the given filter. Allowed fields are: session_state.
  3565  func (c *ProjectsDeviceSessionsListCall) Filter(filter string) *ProjectsDeviceSessionsListCall {
  3566  	c.urlParams_.Set("filter", filter)
  3567  	return c
  3568  }
  3569  
  3570  // PageSize sets the optional parameter "pageSize": The maximum number of
  3571  // DeviceSessions to return.
  3572  func (c *ProjectsDeviceSessionsListCall) PageSize(pageSize int64) *ProjectsDeviceSessionsListCall {
  3573  	c.urlParams_.Set("pageSize", fmt.Sprint(pageSize))
  3574  	return c
  3575  }
  3576  
  3577  // PageToken sets the optional parameter "pageToken": A continuation token for
  3578  // paging.
  3579  func (c *ProjectsDeviceSessionsListCall) PageToken(pageToken string) *ProjectsDeviceSessionsListCall {
  3580  	c.urlParams_.Set("pageToken", pageToken)
  3581  	return c
  3582  }
  3583  
  3584  // Fields allows partial responses to be retrieved. See
  3585  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3586  // details.
  3587  func (c *ProjectsDeviceSessionsListCall) Fields(s ...googleapi.Field) *ProjectsDeviceSessionsListCall {
  3588  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3589  	return c
  3590  }
  3591  
  3592  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  3593  // object's ETag matches the given value. This is useful for getting updates
  3594  // only after the object has changed since the last request.
  3595  func (c *ProjectsDeviceSessionsListCall) IfNoneMatch(entityTag string) *ProjectsDeviceSessionsListCall {
  3596  	c.ifNoneMatch_ = entityTag
  3597  	return c
  3598  }
  3599  
  3600  // Context sets the context to be used in this call's Do method.
  3601  func (c *ProjectsDeviceSessionsListCall) Context(ctx context.Context) *ProjectsDeviceSessionsListCall {
  3602  	c.ctx_ = ctx
  3603  	return c
  3604  }
  3605  
  3606  // Header returns a http.Header that can be modified by the caller to add
  3607  // headers to the request.
  3608  func (c *ProjectsDeviceSessionsListCall) Header() http.Header {
  3609  	if c.header_ == nil {
  3610  		c.header_ = make(http.Header)
  3611  	}
  3612  	return c.header_
  3613  }
  3614  
  3615  func (c *ProjectsDeviceSessionsListCall) doRequest(alt string) (*http.Response, error) {
  3616  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3617  	if c.ifNoneMatch_ != "" {
  3618  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  3619  	}
  3620  	var body io.Reader = nil
  3621  	c.urlParams_.Set("alt", alt)
  3622  	c.urlParams_.Set("prettyPrint", "false")
  3623  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+parent}/deviceSessions")
  3624  	urls += "?" + c.urlParams_.Encode()
  3625  	req, err := http.NewRequest("GET", urls, body)
  3626  	if err != nil {
  3627  		return nil, err
  3628  	}
  3629  	req.Header = reqHeaders
  3630  	googleapi.Expand(req.URL, map[string]string{
  3631  		"parent": c.parent,
  3632  	})
  3633  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3634  }
  3635  
  3636  // Do executes the "testing.projects.deviceSessions.list" call.
  3637  // Any non-2xx status code is an error. Response headers are in either
  3638  // *ListDeviceSessionsResponse.ServerResponse.Header or (if a response was
  3639  // returned at all) in error.(*googleapi.Error).Header. Use
  3640  // googleapi.IsNotModified to check whether the returned error was because
  3641  // http.StatusNotModified was returned.
  3642  func (c *ProjectsDeviceSessionsListCall) Do(opts ...googleapi.CallOption) (*ListDeviceSessionsResponse, error) {
  3643  	gensupport.SetOptions(c.urlParams_, opts...)
  3644  	res, err := c.doRequest("json")
  3645  	if res != nil && res.StatusCode == http.StatusNotModified {
  3646  		if res.Body != nil {
  3647  			res.Body.Close()
  3648  		}
  3649  		return nil, gensupport.WrapError(&googleapi.Error{
  3650  			Code:   res.StatusCode,
  3651  			Header: res.Header,
  3652  		})
  3653  	}
  3654  	if err != nil {
  3655  		return nil, err
  3656  	}
  3657  	defer googleapi.CloseBody(res)
  3658  	if err := googleapi.CheckResponse(res); err != nil {
  3659  		return nil, gensupport.WrapError(err)
  3660  	}
  3661  	ret := &ListDeviceSessionsResponse{
  3662  		ServerResponse: googleapi.ServerResponse{
  3663  			Header:         res.Header,
  3664  			HTTPStatusCode: res.StatusCode,
  3665  		},
  3666  	}
  3667  	target := &ret
  3668  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3669  		return nil, err
  3670  	}
  3671  	return ret, nil
  3672  }
  3673  
  3674  // Pages invokes f for each page of results.
  3675  // A non-nil error returned from f will halt the iteration.
  3676  // The provided context supersedes any context provided to the Context method.
  3677  func (c *ProjectsDeviceSessionsListCall) Pages(ctx context.Context, f func(*ListDeviceSessionsResponse) error) error {
  3678  	c.ctx_ = ctx
  3679  	defer c.PageToken(c.urlParams_.Get("pageToken"))
  3680  	for {
  3681  		x, err := c.Do()
  3682  		if err != nil {
  3683  			return err
  3684  		}
  3685  		if err := f(x); err != nil {
  3686  			return err
  3687  		}
  3688  		if x.NextPageToken == "" {
  3689  			return nil
  3690  		}
  3691  		c.PageToken(x.NextPageToken)
  3692  	}
  3693  }
  3694  
  3695  type ProjectsDeviceSessionsPatchCall struct {
  3696  	s             *APIService
  3697  	name          string
  3698  	devicesession *DeviceSession
  3699  	urlParams_    gensupport.URLParams
  3700  	ctx_          context.Context
  3701  	header_       http.Header
  3702  }
  3703  
  3704  // Patch: PATCH
  3705  // /v1/projects/{projectId}/deviceSessions/deviceSessionId}:updateDeviceSession
  3706  // Updates the current device session to the fields described by the
  3707  // update_mask.
  3708  //
  3709  //   - name: Optional. Name of the DeviceSession, e.g.
  3710  //     "projects/{project_id}/deviceSessions/{session_id}".
  3711  func (r *ProjectsDeviceSessionsService) Patch(name string, devicesession *DeviceSession) *ProjectsDeviceSessionsPatchCall {
  3712  	c := &ProjectsDeviceSessionsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3713  	c.name = name
  3714  	c.devicesession = devicesession
  3715  	return c
  3716  }
  3717  
  3718  // UpdateMask sets the optional parameter "updateMask": Required. The list of
  3719  // fields to update.
  3720  func (c *ProjectsDeviceSessionsPatchCall) UpdateMask(updateMask string) *ProjectsDeviceSessionsPatchCall {
  3721  	c.urlParams_.Set("updateMask", updateMask)
  3722  	return c
  3723  }
  3724  
  3725  // Fields allows partial responses to be retrieved. See
  3726  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3727  // details.
  3728  func (c *ProjectsDeviceSessionsPatchCall) Fields(s ...googleapi.Field) *ProjectsDeviceSessionsPatchCall {
  3729  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3730  	return c
  3731  }
  3732  
  3733  // Context sets the context to be used in this call's Do method.
  3734  func (c *ProjectsDeviceSessionsPatchCall) Context(ctx context.Context) *ProjectsDeviceSessionsPatchCall {
  3735  	c.ctx_ = ctx
  3736  	return c
  3737  }
  3738  
  3739  // Header returns a http.Header that can be modified by the caller to add
  3740  // headers to the request.
  3741  func (c *ProjectsDeviceSessionsPatchCall) Header() http.Header {
  3742  	if c.header_ == nil {
  3743  		c.header_ = make(http.Header)
  3744  	}
  3745  	return c.header_
  3746  }
  3747  
  3748  func (c *ProjectsDeviceSessionsPatchCall) doRequest(alt string) (*http.Response, error) {
  3749  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3750  	var body io.Reader = nil
  3751  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.devicesession)
  3752  	if err != nil {
  3753  		return nil, err
  3754  	}
  3755  	c.urlParams_.Set("alt", alt)
  3756  	c.urlParams_.Set("prettyPrint", "false")
  3757  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/{+name}")
  3758  	urls += "?" + c.urlParams_.Encode()
  3759  	req, err := http.NewRequest("PATCH", urls, body)
  3760  	if err != nil {
  3761  		return nil, err
  3762  	}
  3763  	req.Header = reqHeaders
  3764  	googleapi.Expand(req.URL, map[string]string{
  3765  		"name": c.name,
  3766  	})
  3767  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3768  }
  3769  
  3770  // Do executes the "testing.projects.deviceSessions.patch" call.
  3771  // Any non-2xx status code is an error. Response headers are in either
  3772  // *DeviceSession.ServerResponse.Header or (if a response was returned at all)
  3773  // in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3774  // whether the returned error was because http.StatusNotModified was returned.
  3775  func (c *ProjectsDeviceSessionsPatchCall) Do(opts ...googleapi.CallOption) (*DeviceSession, error) {
  3776  	gensupport.SetOptions(c.urlParams_, opts...)
  3777  	res, err := c.doRequest("json")
  3778  	if res != nil && res.StatusCode == http.StatusNotModified {
  3779  		if res.Body != nil {
  3780  			res.Body.Close()
  3781  		}
  3782  		return nil, gensupport.WrapError(&googleapi.Error{
  3783  			Code:   res.StatusCode,
  3784  			Header: res.Header,
  3785  		})
  3786  	}
  3787  	if err != nil {
  3788  		return nil, err
  3789  	}
  3790  	defer googleapi.CloseBody(res)
  3791  	if err := googleapi.CheckResponse(res); err != nil {
  3792  		return nil, gensupport.WrapError(err)
  3793  	}
  3794  	ret := &DeviceSession{
  3795  		ServerResponse: googleapi.ServerResponse{
  3796  			Header:         res.Header,
  3797  			HTTPStatusCode: res.StatusCode,
  3798  		},
  3799  	}
  3800  	target := &ret
  3801  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3802  		return nil, err
  3803  	}
  3804  	return ret, nil
  3805  }
  3806  
  3807  type ProjectsTestMatricesCancelCall struct {
  3808  	s            *APIService
  3809  	projectId    string
  3810  	testMatrixId string
  3811  	urlParams_   gensupport.URLParams
  3812  	ctx_         context.Context
  3813  	header_      http.Header
  3814  }
  3815  
  3816  // Cancel: Cancels unfinished test executions in a test matrix. This call
  3817  // returns immediately and cancellation proceeds asynchronously. If the matrix
  3818  // is already final, this operation will have no effect. May return any of the
  3819  // following canonical error codes: - PERMISSION_DENIED - if the user is not
  3820  // authorized to read project - INVALID_ARGUMENT - if the request is malformed
  3821  // - NOT_FOUND - if the Test Matrix does not exist
  3822  //
  3823  // - projectId: Cloud project that owns the test.
  3824  // - testMatrixId: Test matrix that will be canceled.
  3825  func (r *ProjectsTestMatricesService) Cancel(projectId string, testMatrixId string) *ProjectsTestMatricesCancelCall {
  3826  	c := &ProjectsTestMatricesCancelCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3827  	c.projectId = projectId
  3828  	c.testMatrixId = testMatrixId
  3829  	return c
  3830  }
  3831  
  3832  // Fields allows partial responses to be retrieved. See
  3833  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3834  // details.
  3835  func (c *ProjectsTestMatricesCancelCall) Fields(s ...googleapi.Field) *ProjectsTestMatricesCancelCall {
  3836  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3837  	return c
  3838  }
  3839  
  3840  // Context sets the context to be used in this call's Do method.
  3841  func (c *ProjectsTestMatricesCancelCall) Context(ctx context.Context) *ProjectsTestMatricesCancelCall {
  3842  	c.ctx_ = ctx
  3843  	return c
  3844  }
  3845  
  3846  // Header returns a http.Header that can be modified by the caller to add
  3847  // headers to the request.
  3848  func (c *ProjectsTestMatricesCancelCall) Header() http.Header {
  3849  	if c.header_ == nil {
  3850  		c.header_ = make(http.Header)
  3851  	}
  3852  	return c.header_
  3853  }
  3854  
  3855  func (c *ProjectsTestMatricesCancelCall) doRequest(alt string) (*http.Response, error) {
  3856  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  3857  	var body io.Reader = nil
  3858  	c.urlParams_.Set("alt", alt)
  3859  	c.urlParams_.Set("prettyPrint", "false")
  3860  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel")
  3861  	urls += "?" + c.urlParams_.Encode()
  3862  	req, err := http.NewRequest("POST", urls, body)
  3863  	if err != nil {
  3864  		return nil, err
  3865  	}
  3866  	req.Header = reqHeaders
  3867  	googleapi.Expand(req.URL, map[string]string{
  3868  		"projectId":    c.projectId,
  3869  		"testMatrixId": c.testMatrixId,
  3870  	})
  3871  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3872  }
  3873  
  3874  // Do executes the "testing.projects.testMatrices.cancel" call.
  3875  // Any non-2xx status code is an error. Response headers are in either
  3876  // *CancelTestMatrixResponse.ServerResponse.Header or (if a response was
  3877  // returned at all) in error.(*googleapi.Error).Header. Use
  3878  // googleapi.IsNotModified to check whether the returned error was because
  3879  // http.StatusNotModified was returned.
  3880  func (c *ProjectsTestMatricesCancelCall) Do(opts ...googleapi.CallOption) (*CancelTestMatrixResponse, error) {
  3881  	gensupport.SetOptions(c.urlParams_, opts...)
  3882  	res, err := c.doRequest("json")
  3883  	if res != nil && res.StatusCode == http.StatusNotModified {
  3884  		if res.Body != nil {
  3885  			res.Body.Close()
  3886  		}
  3887  		return nil, gensupport.WrapError(&googleapi.Error{
  3888  			Code:   res.StatusCode,
  3889  			Header: res.Header,
  3890  		})
  3891  	}
  3892  	if err != nil {
  3893  		return nil, err
  3894  	}
  3895  	defer googleapi.CloseBody(res)
  3896  	if err := googleapi.CheckResponse(res); err != nil {
  3897  		return nil, gensupport.WrapError(err)
  3898  	}
  3899  	ret := &CancelTestMatrixResponse{
  3900  		ServerResponse: googleapi.ServerResponse{
  3901  			Header:         res.Header,
  3902  			HTTPStatusCode: res.StatusCode,
  3903  		},
  3904  	}
  3905  	target := &ret
  3906  	if err := gensupport.DecodeResponse(target, res); err != nil {
  3907  		return nil, err
  3908  	}
  3909  	return ret, nil
  3910  }
  3911  
  3912  type ProjectsTestMatricesCreateCall struct {
  3913  	s          *APIService
  3914  	projectId  string
  3915  	testmatrix *TestMatrix
  3916  	urlParams_ gensupport.URLParams
  3917  	ctx_       context.Context
  3918  	header_    http.Header
  3919  }
  3920  
  3921  // Create: Creates and runs a matrix of tests according to the given
  3922  // specifications. Unsupported environments will be returned in the state
  3923  // UNSUPPORTED. A test matrix is limited to use at most 2000 devices in
  3924  // parallel. The returned matrix will not yet contain the executions that will
  3925  // be created for this matrix. Execution creation happens later on and will
  3926  // require a call to GetTestMatrix. May return any of the following canonical
  3927  // error codes: - PERMISSION_DENIED - if the user is not authorized to write to
  3928  // project - INVALID_ARGUMENT - if the request is malformed or if the matrix
  3929  // tries to use too many simultaneous devices.
  3930  //
  3931  // - projectId: The GCE project under which this job will run.
  3932  func (r *ProjectsTestMatricesService) Create(projectId string, testmatrix *TestMatrix) *ProjectsTestMatricesCreateCall {
  3933  	c := &ProjectsTestMatricesCreateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  3934  	c.projectId = projectId
  3935  	c.testmatrix = testmatrix
  3936  	return c
  3937  }
  3938  
  3939  // RequestId sets the optional parameter "requestId": A string id used to
  3940  // detect duplicated requests. Ids are automatically scoped to a project, so
  3941  // users should ensure the ID is unique per-project. A UUID is recommended.
  3942  // Optional, but strongly recommended.
  3943  func (c *ProjectsTestMatricesCreateCall) RequestId(requestId string) *ProjectsTestMatricesCreateCall {
  3944  	c.urlParams_.Set("requestId", requestId)
  3945  	return c
  3946  }
  3947  
  3948  // Fields allows partial responses to be retrieved. See
  3949  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  3950  // details.
  3951  func (c *ProjectsTestMatricesCreateCall) Fields(s ...googleapi.Field) *ProjectsTestMatricesCreateCall {
  3952  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  3953  	return c
  3954  }
  3955  
  3956  // Context sets the context to be used in this call's Do method.
  3957  func (c *ProjectsTestMatricesCreateCall) Context(ctx context.Context) *ProjectsTestMatricesCreateCall {
  3958  	c.ctx_ = ctx
  3959  	return c
  3960  }
  3961  
  3962  // Header returns a http.Header that can be modified by the caller to add
  3963  // headers to the request.
  3964  func (c *ProjectsTestMatricesCreateCall) Header() http.Header {
  3965  	if c.header_ == nil {
  3966  		c.header_ = make(http.Header)
  3967  	}
  3968  	return c.header_
  3969  }
  3970  
  3971  func (c *ProjectsTestMatricesCreateCall) doRequest(alt string) (*http.Response, error) {
  3972  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "application/json", c.header_)
  3973  	var body io.Reader = nil
  3974  	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testmatrix)
  3975  	if err != nil {
  3976  		return nil, err
  3977  	}
  3978  	c.urlParams_.Set("alt", alt)
  3979  	c.urlParams_.Set("prettyPrint", "false")
  3980  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/testMatrices")
  3981  	urls += "?" + c.urlParams_.Encode()
  3982  	req, err := http.NewRequest("POST", urls, body)
  3983  	if err != nil {
  3984  		return nil, err
  3985  	}
  3986  	req.Header = reqHeaders
  3987  	googleapi.Expand(req.URL, map[string]string{
  3988  		"projectId": c.projectId,
  3989  	})
  3990  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  3991  }
  3992  
  3993  // Do executes the "testing.projects.testMatrices.create" call.
  3994  // Any non-2xx status code is an error. Response headers are in either
  3995  // *TestMatrix.ServerResponse.Header or (if a response was returned at all) in
  3996  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  3997  // whether the returned error was because http.StatusNotModified was returned.
  3998  func (c *ProjectsTestMatricesCreateCall) Do(opts ...googleapi.CallOption) (*TestMatrix, error) {
  3999  	gensupport.SetOptions(c.urlParams_, opts...)
  4000  	res, err := c.doRequest("json")
  4001  	if res != nil && res.StatusCode == http.StatusNotModified {
  4002  		if res.Body != nil {
  4003  			res.Body.Close()
  4004  		}
  4005  		return nil, gensupport.WrapError(&googleapi.Error{
  4006  			Code:   res.StatusCode,
  4007  			Header: res.Header,
  4008  		})
  4009  	}
  4010  	if err != nil {
  4011  		return nil, err
  4012  	}
  4013  	defer googleapi.CloseBody(res)
  4014  	if err := googleapi.CheckResponse(res); err != nil {
  4015  		return nil, gensupport.WrapError(err)
  4016  	}
  4017  	ret := &TestMatrix{
  4018  		ServerResponse: googleapi.ServerResponse{
  4019  			Header:         res.Header,
  4020  			HTTPStatusCode: res.StatusCode,
  4021  		},
  4022  	}
  4023  	target := &ret
  4024  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4025  		return nil, err
  4026  	}
  4027  	return ret, nil
  4028  }
  4029  
  4030  type ProjectsTestMatricesGetCall struct {
  4031  	s            *APIService
  4032  	projectId    string
  4033  	testMatrixId string
  4034  	urlParams_   gensupport.URLParams
  4035  	ifNoneMatch_ string
  4036  	ctx_         context.Context
  4037  	header_      http.Header
  4038  }
  4039  
  4040  // Get: Checks the status of a test matrix and the executions once they are
  4041  // created. The test matrix will contain the list of test executions to run if
  4042  // and only if the resultStorage.toolResultsExecution fields have been
  4043  // populated. Note: Flaky test executions may be added to the matrix at a later
  4044  // stage. May return any of the following canonical error codes: -
  4045  // PERMISSION_DENIED - if the user is not authorized to read project -
  4046  // INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the Test
  4047  // Matrix does not exist
  4048  //
  4049  // - projectId: Cloud project that owns the test matrix.
  4050  // - testMatrixId: Unique test matrix id which was assigned by the service.
  4051  func (r *ProjectsTestMatricesService) Get(projectId string, testMatrixId string) *ProjectsTestMatricesGetCall {
  4052  	c := &ProjectsTestMatricesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4053  	c.projectId = projectId
  4054  	c.testMatrixId = testMatrixId
  4055  	return c
  4056  }
  4057  
  4058  // Fields allows partial responses to be retrieved. See
  4059  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4060  // details.
  4061  func (c *ProjectsTestMatricesGetCall) Fields(s ...googleapi.Field) *ProjectsTestMatricesGetCall {
  4062  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4063  	return c
  4064  }
  4065  
  4066  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4067  // object's ETag matches the given value. This is useful for getting updates
  4068  // only after the object has changed since the last request.
  4069  func (c *ProjectsTestMatricesGetCall) IfNoneMatch(entityTag string) *ProjectsTestMatricesGetCall {
  4070  	c.ifNoneMatch_ = entityTag
  4071  	return c
  4072  }
  4073  
  4074  // Context sets the context to be used in this call's Do method.
  4075  func (c *ProjectsTestMatricesGetCall) Context(ctx context.Context) *ProjectsTestMatricesGetCall {
  4076  	c.ctx_ = ctx
  4077  	return c
  4078  }
  4079  
  4080  // Header returns a http.Header that can be modified by the caller to add
  4081  // headers to the request.
  4082  func (c *ProjectsTestMatricesGetCall) Header() http.Header {
  4083  	if c.header_ == nil {
  4084  		c.header_ = make(http.Header)
  4085  	}
  4086  	return c.header_
  4087  }
  4088  
  4089  func (c *ProjectsTestMatricesGetCall) doRequest(alt string) (*http.Response, error) {
  4090  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4091  	if c.ifNoneMatch_ != "" {
  4092  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4093  	}
  4094  	var body io.Reader = nil
  4095  	c.urlParams_.Set("alt", alt)
  4096  	c.urlParams_.Set("prettyPrint", "false")
  4097  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/projects/{projectId}/testMatrices/{testMatrixId}")
  4098  	urls += "?" + c.urlParams_.Encode()
  4099  	req, err := http.NewRequest("GET", urls, body)
  4100  	if err != nil {
  4101  		return nil, err
  4102  	}
  4103  	req.Header = reqHeaders
  4104  	googleapi.Expand(req.URL, map[string]string{
  4105  		"projectId":    c.projectId,
  4106  		"testMatrixId": c.testMatrixId,
  4107  	})
  4108  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4109  }
  4110  
  4111  // Do executes the "testing.projects.testMatrices.get" call.
  4112  // Any non-2xx status code is an error. Response headers are in either
  4113  // *TestMatrix.ServerResponse.Header or (if a response was returned at all) in
  4114  // error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
  4115  // whether the returned error was because http.StatusNotModified was returned.
  4116  func (c *ProjectsTestMatricesGetCall) Do(opts ...googleapi.CallOption) (*TestMatrix, error) {
  4117  	gensupport.SetOptions(c.urlParams_, opts...)
  4118  	res, err := c.doRequest("json")
  4119  	if res != nil && res.StatusCode == http.StatusNotModified {
  4120  		if res.Body != nil {
  4121  			res.Body.Close()
  4122  		}
  4123  		return nil, gensupport.WrapError(&googleapi.Error{
  4124  			Code:   res.StatusCode,
  4125  			Header: res.Header,
  4126  		})
  4127  	}
  4128  	if err != nil {
  4129  		return nil, err
  4130  	}
  4131  	defer googleapi.CloseBody(res)
  4132  	if err := googleapi.CheckResponse(res); err != nil {
  4133  		return nil, gensupport.WrapError(err)
  4134  	}
  4135  	ret := &TestMatrix{
  4136  		ServerResponse: googleapi.ServerResponse{
  4137  			Header:         res.Header,
  4138  			HTTPStatusCode: res.StatusCode,
  4139  		},
  4140  	}
  4141  	target := &ret
  4142  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4143  		return nil, err
  4144  	}
  4145  	return ret, nil
  4146  }
  4147  
  4148  type TestEnvironmentCatalogGetCall struct {
  4149  	s               *APIService
  4150  	environmentType string
  4151  	urlParams_      gensupport.URLParams
  4152  	ifNoneMatch_    string
  4153  	ctx_            context.Context
  4154  	header_         http.Header
  4155  }
  4156  
  4157  // Get: Gets the catalog of supported test environments. May return any of the
  4158  // following canonical error codes: - INVALID_ARGUMENT - if the request is
  4159  // malformed - NOT_FOUND - if the environment type does not exist - INTERNAL -
  4160  // if an internal error occurred
  4161  //
  4162  // - environmentType: The type of environment that should be listed.
  4163  func (r *TestEnvironmentCatalogService) Get(environmentType string) *TestEnvironmentCatalogGetCall {
  4164  	c := &TestEnvironmentCatalogGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
  4165  	c.environmentType = environmentType
  4166  	return c
  4167  }
  4168  
  4169  // ProjectId sets the optional parameter "projectId": For authorization, the
  4170  // cloud project requesting the TestEnvironmentCatalog.
  4171  func (c *TestEnvironmentCatalogGetCall) ProjectId(projectId string) *TestEnvironmentCatalogGetCall {
  4172  	c.urlParams_.Set("projectId", projectId)
  4173  	return c
  4174  }
  4175  
  4176  // Fields allows partial responses to be retrieved. See
  4177  // https://developers.google.com/gdata/docs/2.0/basics#PartialResponse for more
  4178  // details.
  4179  func (c *TestEnvironmentCatalogGetCall) Fields(s ...googleapi.Field) *TestEnvironmentCatalogGetCall {
  4180  	c.urlParams_.Set("fields", googleapi.CombineFields(s))
  4181  	return c
  4182  }
  4183  
  4184  // IfNoneMatch sets an optional parameter which makes the operation fail if the
  4185  // object's ETag matches the given value. This is useful for getting updates
  4186  // only after the object has changed since the last request.
  4187  func (c *TestEnvironmentCatalogGetCall) IfNoneMatch(entityTag string) *TestEnvironmentCatalogGetCall {
  4188  	c.ifNoneMatch_ = entityTag
  4189  	return c
  4190  }
  4191  
  4192  // Context sets the context to be used in this call's Do method.
  4193  func (c *TestEnvironmentCatalogGetCall) Context(ctx context.Context) *TestEnvironmentCatalogGetCall {
  4194  	c.ctx_ = ctx
  4195  	return c
  4196  }
  4197  
  4198  // Header returns a http.Header that can be modified by the caller to add
  4199  // headers to the request.
  4200  func (c *TestEnvironmentCatalogGetCall) Header() http.Header {
  4201  	if c.header_ == nil {
  4202  		c.header_ = make(http.Header)
  4203  	}
  4204  	return c.header_
  4205  }
  4206  
  4207  func (c *TestEnvironmentCatalogGetCall) doRequest(alt string) (*http.Response, error) {
  4208  	reqHeaders := gensupport.SetHeaders(c.s.userAgent(), "", c.header_)
  4209  	if c.ifNoneMatch_ != "" {
  4210  		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
  4211  	}
  4212  	var body io.Reader = nil
  4213  	c.urlParams_.Set("alt", alt)
  4214  	c.urlParams_.Set("prettyPrint", "false")
  4215  	urls := googleapi.ResolveRelative(c.s.BasePath, "v1/testEnvironmentCatalog/{environmentType}")
  4216  	urls += "?" + c.urlParams_.Encode()
  4217  	req, err := http.NewRequest("GET", urls, body)
  4218  	if err != nil {
  4219  		return nil, err
  4220  	}
  4221  	req.Header = reqHeaders
  4222  	googleapi.Expand(req.URL, map[string]string{
  4223  		"environmentType": c.environmentType,
  4224  	})
  4225  	return gensupport.SendRequest(c.ctx_, c.s.client, req)
  4226  }
  4227  
  4228  // Do executes the "testing.testEnvironmentCatalog.get" call.
  4229  // Any non-2xx status code is an error. Response headers are in either
  4230  // *TestEnvironmentCatalog.ServerResponse.Header or (if a response was returned
  4231  // at all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
  4232  // check whether the returned error was because http.StatusNotModified was
  4233  // returned.
  4234  func (c *TestEnvironmentCatalogGetCall) Do(opts ...googleapi.CallOption) (*TestEnvironmentCatalog, error) {
  4235  	gensupport.SetOptions(c.urlParams_, opts...)
  4236  	res, err := c.doRequest("json")
  4237  	if res != nil && res.StatusCode == http.StatusNotModified {
  4238  		if res.Body != nil {
  4239  			res.Body.Close()
  4240  		}
  4241  		return nil, gensupport.WrapError(&googleapi.Error{
  4242  			Code:   res.StatusCode,
  4243  			Header: res.Header,
  4244  		})
  4245  	}
  4246  	if err != nil {
  4247  		return nil, err
  4248  	}
  4249  	defer googleapi.CloseBody(res)
  4250  	if err := googleapi.CheckResponse(res); err != nil {
  4251  		return nil, gensupport.WrapError(err)
  4252  	}
  4253  	ret := &TestEnvironmentCatalog{
  4254  		ServerResponse: googleapi.ServerResponse{
  4255  			Header:         res.Header,
  4256  			HTTPStatusCode: res.StatusCode,
  4257  		},
  4258  	}
  4259  	target := &ret
  4260  	if err := gensupport.DecodeResponse(target, res); err != nil {
  4261  		return nil, err
  4262  	}
  4263  	return ret, nil
  4264  }
  4265  

View as plain text