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