mirror of
https://github.com/OMGeeky/google-apis-rs.git
synced 2026-01-19 01:40:05 +01:00
3630 lines
146 KiB
Rust
3630 lines
146 KiB
Rust
// DO NOT EDIT !
|
|
// This file was generated automatically from 'src/mako/api/lib.rs.mako'
|
|
// DO NOT EDIT !
|
|
|
|
//! This documentation was generated from *testing* crate version *1.0.13+20200408*, where *20200408* is the exact revision of the *testing:v1* schema built by the [mako](http://www.makotemplates.org/) code generator *v1.0.13*.
|
|
//!
|
|
//! Everything else about the *testing* *v1* API can be found at the
|
|
//! [official documentation site](https://developers.google.com/cloud-test-lab/).
|
|
//! The original source code is [on github](https://github.com/Byron/google-apis-rs/tree/master/gen/testing1).
|
|
//! # Features
|
|
//!
|
|
//! Handle the following *Resources* with ease from the central [hub](struct.Testing.html) ...
|
|
//!
|
|
//! * application detail service
|
|
//! * [*get apk details*](struct.ApplicationDetailServiceGetApkDetailCall.html)
|
|
//! * projects
|
|
//! * [*test matrices cancel*](struct.ProjectTestMatriceCancelCall.html), [*test matrices create*](struct.ProjectTestMatriceCreateCall.html) and [*test matrices get*](struct.ProjectTestMatriceGetCall.html)
|
|
//! * [test environment catalog](struct.TestEnvironmentCatalog.html)
|
|
//! * [*get*](struct.TestEnvironmentCatalogGetCall.html)
|
|
//!
|
|
//!
|
|
//!
|
|
//!
|
|
//! Not what you are looking for ? Find all other Google APIs in their Rust [documentation index](http://byron.github.io/google-apis-rs).
|
|
//!
|
|
//! # Structure of this Library
|
|
//!
|
|
//! The API is structured into the following primary items:
|
|
//!
|
|
//! * **[Hub](struct.Testing.html)**
|
|
//! * a central object to maintain state and allow accessing all *Activities*
|
|
//! * creates [*Method Builders*](trait.MethodsBuilder.html) which in turn
|
|
//! allow access to individual [*Call Builders*](trait.CallBuilder.html)
|
|
//! * **[Resources](trait.Resource.html)**
|
|
//! * primary types that you can apply *Activities* to
|
|
//! * a collection of properties and *Parts*
|
|
//! * **[Parts](trait.Part.html)**
|
|
//! * a collection of properties
|
|
//! * never directly used in *Activities*
|
|
//! * **[Activities](trait.CallBuilder.html)**
|
|
//! * operations to apply to *Resources*
|
|
//!
|
|
//! All *structures* are marked with applicable traits to further categorize them and ease browsing.
|
|
//!
|
|
//! Generally speaking, you can invoke *Activities* like this:
|
|
//!
|
|
//! ```Rust,ignore
|
|
//! let r = hub.resource().activity(...).doit()
|
|
//! ```
|
|
//!
|
|
//! Or specifically ...
|
|
//!
|
|
//! ```ignore
|
|
//! let r = hub.projects().test_matrices_create(...).doit()
|
|
//! let r = hub.projects().test_matrices_get(...).doit()
|
|
//! ```
|
|
//!
|
|
//! The `resource()` and `activity(...)` calls create [builders][builder-pattern]. The second one dealing with `Activities`
|
|
//! supports various methods to configure the impending operation (not shown here). It is made such that all required arguments have to be
|
|
//! specified right away (i.e. `(...)`), whereas all optional ones can be [build up][builder-pattern] as desired.
|
|
//! The `doit()` method performs the actual communication with the server and returns the respective result.
|
|
//!
|
|
//! # Usage
|
|
//!
|
|
//! ## Setting up your Project
|
|
//!
|
|
//! To use this library, you would put the following lines into your `Cargo.toml` file:
|
|
//!
|
|
//! ```toml
|
|
//! [dependencies]
|
|
//! google-testing1 = "*"
|
|
//! # This project intentionally uses an old version of Hyper. See
|
|
//! # https://github.com/Byron/google-apis-rs/issues/173 for more
|
|
//! # information.
|
|
//! hyper = "^0.10"
|
|
//! hyper-rustls = "^0.6"
|
|
//! serde = "^1.0"
|
|
//! serde_json = "^1.0"
|
|
//! yup-oauth2 = "^1.0"
|
|
//! ```
|
|
//!
|
|
//! ## A complete example
|
|
//!
|
|
//! ```test_harness,no_run
|
|
//! extern crate hyper;
|
|
//! extern crate hyper_rustls;
|
|
//! extern crate yup_oauth2 as oauth2;
|
|
//! extern crate google_testing1 as testing1;
|
|
//! use testing1::TestMatrix;
|
|
//! use testing1::{Result, Error};
|
|
//! # #[test] fn egal() {
|
|
//! use std::default::Default;
|
|
//! use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
//! use testing1::Testing;
|
|
//!
|
|
//! // Get an ApplicationSecret instance by some means. It contains the `client_id` and
|
|
//! // `client_secret`, among other things.
|
|
//! let secret: ApplicationSecret = Default::default();
|
|
//! // Instantiate the authenticator. It will choose a suitable authentication flow for you,
|
|
//! // unless you replace `None` with the desired Flow.
|
|
//! // Provide your own `AuthenticatorDelegate` to adjust the way it operates and get feedback about
|
|
//! // what's going on. You probably want to bring in your own `TokenStorage` to persist tokens and
|
|
//! // retrieve them from storage.
|
|
//! let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
//! hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
//! <MemoryStorage as Default>::default(), None);
|
|
//! let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
//! // As the method needs a request, you would usually fill it with the desired information
|
|
//! // into the respective structure. Some of the parts shown here might not be applicable !
|
|
//! // Values shown here are possibly random and not representative !
|
|
//! let mut req = TestMatrix::default();
|
|
//!
|
|
//! // You can configure optional parameters by calling the respective setters at will, and
|
|
//! // execute the final call using `doit()`.
|
|
//! // Values shown here are possibly random and not representative !
|
|
//! let result = hub.projects().test_matrices_create(req, "projectId")
|
|
//! .request_id("sed")
|
|
//! .doit();
|
|
//!
|
|
//! match result {
|
|
//! Err(e) => match e {
|
|
//! // The Error enum provides details about what exactly happened.
|
|
//! // You can also just use its `Debug`, `Display` or `Error` traits
|
|
//! Error::HttpError(_)
|
|
//! |Error::MissingAPIKey
|
|
//! |Error::MissingToken(_)
|
|
//! |Error::Cancelled
|
|
//! |Error::UploadSizeLimitExceeded(_, _)
|
|
//! |Error::Failure(_)
|
|
//! |Error::BadRequest(_)
|
|
//! |Error::FieldClash(_)
|
|
//! |Error::JsonDecodeError(_, _) => println!("{}", e),
|
|
//! },
|
|
//! Ok(res) => println!("Success: {:?}", res),
|
|
//! }
|
|
//! # }
|
|
//! ```
|
|
//! ## Handling Errors
|
|
//!
|
|
//! All errors produced by the system are provided either as [Result](enum.Result.html) enumeration as return value of
|
|
//! the doit() methods, or handed as possibly intermediate results to either the
|
|
//! [Hub Delegate](trait.Delegate.html), or the [Authenticator Delegate](https://docs.rs/yup-oauth2/*/yup_oauth2/trait.AuthenticatorDelegate.html).
|
|
//!
|
|
//! When delegates handle errors or intermediate values, they may have a chance to instruct the system to retry. This
|
|
//! makes the system potentially resilient to all kinds of errors.
|
|
//!
|
|
//! ## Uploads and Downloads
|
|
//! If a method supports downloads, the response body, which is part of the [Result](enum.Result.html), should be
|
|
//! read by you to obtain the media.
|
|
//! If such a method also supports a [Response Result](trait.ResponseResult.html), it will return that by default.
|
|
//! You can see it as meta-data for the actual media. To trigger a media download, you will have to set up the builder by making
|
|
//! this call: `.param("alt", "media")`.
|
|
//!
|
|
//! Methods supporting uploads can do so using up to 2 different protocols:
|
|
//! *simple* and *resumable*. The distinctiveness of each is represented by customized
|
|
//! `doit(...)` methods, which are then named `upload(...)` and `upload_resumable(...)` respectively.
|
|
//!
|
|
//! ## Customization and Callbacks
|
|
//!
|
|
//! You may alter the way an `doit()` method is called by providing a [delegate](trait.Delegate.html) to the
|
|
//! [Method Builder](trait.CallBuilder.html) before making the final `doit()` call.
|
|
//! Respective methods will be called to provide progress information, as well as determine whether the system should
|
|
//! retry on failure.
|
|
//!
|
|
//! The [delegate trait](trait.Delegate.html) is default-implemented, allowing you to customize it with minimal effort.
|
|
//!
|
|
//! ## Optional Parts in Server-Requests
|
|
//!
|
|
//! All structures provided by this library are made to be [encodable](trait.RequestValue.html) and
|
|
//! [decodable](trait.ResponseResult.html) via *json*. Optionals are used to indicate that partial requests are responses
|
|
//! are valid.
|
|
//! Most optionals are are considered [Parts](trait.Part.html) which are identifiable by name, which will be sent to
|
|
//! the server to indicate either the set parts of the request or the desired parts in the response.
|
|
//!
|
|
//! ## Builder Arguments
|
|
//!
|
|
//! Using [method builders](trait.CallBuilder.html), you are able to prepare an action call by repeatedly calling it's methods.
|
|
//! These will always take a single argument, for which the following statements are true.
|
|
//!
|
|
//! * [PODs][wiki-pod] are handed by copy
|
|
//! * strings are passed as `&str`
|
|
//! * [request values](trait.RequestValue.html) are moved
|
|
//!
|
|
//! Arguments will always be copied or cloned into the builder, to make them independent of their original life times.
|
|
//!
|
|
//! [wiki-pod]: http://en.wikipedia.org/wiki/Plain_old_data_structure
|
|
//! [builder-pattern]: http://en.wikipedia.org/wiki/Builder_pattern
|
|
//! [google-go-api]: https://github.com/google/google-api-go-client
|
|
//!
|
|
//!
|
|
|
|
// Unused attributes happen thanks to defined, but unused structures
|
|
// We don't warn about this, as depending on the API, some data structures or facilities are never used.
|
|
// Instead of pre-determining this, we just disable the lint. It's manually tuned to not have any
|
|
// unused imports in fully featured APIs. Same with unused_mut ... .
|
|
#![allow(unused_imports, unused_mut, dead_code)]
|
|
|
|
// DO NOT EDIT !
|
|
// This file was generated automatically from 'src/mako/api/lib.rs.mako'
|
|
// DO NOT EDIT !
|
|
|
|
#[macro_use]
|
|
extern crate serde_derive;
|
|
|
|
extern crate hyper;
|
|
extern crate serde;
|
|
extern crate serde_json;
|
|
extern crate yup_oauth2 as oauth2;
|
|
extern crate mime;
|
|
extern crate url;
|
|
|
|
mod cmn;
|
|
|
|
use std::collections::HashMap;
|
|
use std::cell::RefCell;
|
|
use std::borrow::BorrowMut;
|
|
use std::default::Default;
|
|
use std::collections::BTreeMap;
|
|
use serde_json as json;
|
|
use std::io;
|
|
use std::fs;
|
|
use std::mem;
|
|
use std::thread::sleep;
|
|
use std::time::Duration;
|
|
|
|
pub use cmn::*;
|
|
|
|
|
|
// ##############
|
|
// UTILITIES ###
|
|
// ############
|
|
|
|
/// Identifies the an OAuth2 authorization scope.
|
|
/// A scope is needed when requesting an
|
|
/// [authorization token](https://developers.google.com/youtube/v3/guides/authentication).
|
|
#[derive(PartialEq, Eq, Hash)]
|
|
pub enum Scope {
|
|
/// View and manage your data across Google Cloud Platform services
|
|
CloudPlatform,
|
|
|
|
/// View your data across Google Cloud Platform services
|
|
CloudPlatformReadOnly,
|
|
}
|
|
|
|
impl AsRef<str> for Scope {
|
|
fn as_ref(&self) -> &str {
|
|
match *self {
|
|
Scope::CloudPlatform => "https://www.googleapis.com/auth/cloud-platform",
|
|
Scope::CloudPlatformReadOnly => "https://www.googleapis.com/auth/cloud-platform.read-only",
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Default for Scope {
|
|
fn default() -> Scope {
|
|
Scope::CloudPlatform
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ########
|
|
// HUB ###
|
|
// ######
|
|
|
|
/// Central instance to access all Testing related resource activities
|
|
///
|
|
/// # Examples
|
|
///
|
|
/// Instantiate a new hub
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// extern crate hyper;
|
|
/// extern crate hyper_rustls;
|
|
/// extern crate yup_oauth2 as oauth2;
|
|
/// extern crate google_testing1 as testing1;
|
|
/// use testing1::TestMatrix;
|
|
/// use testing1::{Result, Error};
|
|
/// # #[test] fn egal() {
|
|
/// use std::default::Default;
|
|
/// use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// use testing1::Testing;
|
|
///
|
|
/// // Get an ApplicationSecret instance by some means. It contains the `client_id` and
|
|
/// // `client_secret`, among other things.
|
|
/// let secret: ApplicationSecret = Default::default();
|
|
/// // Instantiate the authenticator. It will choose a suitable authentication flow for you,
|
|
/// // unless you replace `None` with the desired Flow.
|
|
/// // Provide your own `AuthenticatorDelegate` to adjust the way it operates and get feedback about
|
|
/// // what's going on. You probably want to bring in your own `TokenStorage` to persist tokens and
|
|
/// // retrieve them from storage.
|
|
/// let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// <MemoryStorage as Default>::default(), None);
|
|
/// let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // As the method needs a request, you would usually fill it with the desired information
|
|
/// // into the respective structure. Some of the parts shown here might not be applicable !
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let mut req = TestMatrix::default();
|
|
///
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.projects().test_matrices_create(req, "projectId")
|
|
/// .request_id("dolores")
|
|
/// .doit();
|
|
///
|
|
/// match result {
|
|
/// Err(e) => match e {
|
|
/// // The Error enum provides details about what exactly happened.
|
|
/// // You can also just use its `Debug`, `Display` or `Error` traits
|
|
/// Error::HttpError(_)
|
|
/// |Error::MissingAPIKey
|
|
/// |Error::MissingToken(_)
|
|
/// |Error::Cancelled
|
|
/// |Error::UploadSizeLimitExceeded(_, _)
|
|
/// |Error::Failure(_)
|
|
/// |Error::BadRequest(_)
|
|
/// |Error::FieldClash(_)
|
|
/// |Error::JsonDecodeError(_, _) => println!("{}", e),
|
|
/// },
|
|
/// Ok(res) => println!("Success: {:?}", res),
|
|
/// }
|
|
/// # }
|
|
/// ```
|
|
pub struct Testing<C, A> {
|
|
client: RefCell<C>,
|
|
auth: RefCell<A>,
|
|
_user_agent: String,
|
|
_base_url: String,
|
|
_root_url: String,
|
|
}
|
|
|
|
impl<'a, C, A> Hub for Testing<C, A> {}
|
|
|
|
impl<'a, C, A> Testing<C, A>
|
|
where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
pub fn new(client: C, authenticator: A) -> Testing<C, A> {
|
|
Testing {
|
|
client: RefCell::new(client),
|
|
auth: RefCell::new(authenticator),
|
|
_user_agent: "google-api-rust-client/1.0.13".to_string(),
|
|
_base_url: "https://testing.googleapis.com/".to_string(),
|
|
_root_url: "https://testing.googleapis.com/".to_string(),
|
|
}
|
|
}
|
|
|
|
pub fn application_detail_service(&'a self) -> ApplicationDetailServiceMethods<'a, C, A> {
|
|
ApplicationDetailServiceMethods { hub: &self }
|
|
}
|
|
pub fn projects(&'a self) -> ProjectMethods<'a, C, A> {
|
|
ProjectMethods { hub: &self }
|
|
}
|
|
pub fn test_environment_catalog(&'a self) -> TestEnvironmentCatalogMethods<'a, C, A> {
|
|
TestEnvironmentCatalogMethods { hub: &self }
|
|
}
|
|
|
|
/// Set the user-agent header field to use in all requests to the server.
|
|
/// It defaults to `google-api-rust-client/1.0.13`.
|
|
///
|
|
/// Returns the previously set user-agent.
|
|
pub fn user_agent(&mut self, agent_name: String) -> String {
|
|
mem::replace(&mut self._user_agent, agent_name)
|
|
}
|
|
|
|
/// Set the base url to use in all requests to the server.
|
|
/// It defaults to `https://testing.googleapis.com/`.
|
|
///
|
|
/// Returns the previously set base url.
|
|
pub fn base_url(&mut self, new_base_url: String) -> String {
|
|
mem::replace(&mut self._base_url, new_base_url)
|
|
}
|
|
|
|
/// Set the root url to use in all requests to the server.
|
|
/// It defaults to `https://testing.googleapis.com/`.
|
|
///
|
|
/// Returns the previously set root url.
|
|
pub fn root_url(&mut self, new_root_url: String) -> String {
|
|
mem::replace(&mut self._root_url, new_root_url)
|
|
}
|
|
}
|
|
|
|
|
|
// ############
|
|
// SCHEMAS ###
|
|
// ##########
|
|
/// Test targets for a shard.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestTargetsForShard {
|
|
/// Group of packages, classes, and/or test methods to be run for each shard.
|
|
/// The targets need to be specified in AndroidJUnitRunner argument format. For
|
|
/// example, “package com.my.packages” “class com.my.package.MyClass”.
|
|
///
|
|
/// The number of shard_test_targets must be greater than 0.
|
|
#[serde(rename="testTargets")]
|
|
pub test_targets: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for TestTargetsForShard {}
|
|
|
|
|
|
/// The <intent-filter> section of an <activity> tag.
|
|
/// https://developer.android.com/guide/topics/manifest/intent-filter-element.html
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IntentFilter {
|
|
/// The android:mimeType value of the <data> tag.
|
|
#[serde(rename="mimeType")]
|
|
pub mime_type: Option<String>,
|
|
/// The android:name value of the <action> tag.
|
|
#[serde(rename="actionNames")]
|
|
pub action_names: Option<Vec<String>>,
|
|
/// The android:name value of the <category> tag.
|
|
#[serde(rename="categoryNames")]
|
|
pub category_names: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for IntentFilter {}
|
|
|
|
|
|
/// The environment in which the test is run.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Environment {
|
|
/// An iOS device which must be used with an iOS test.
|
|
#[serde(rename="iosDevice")]
|
|
pub ios_device: Option<IosDevice>,
|
|
/// An Android device which must be used with an Android test.
|
|
#[serde(rename="androidDevice")]
|
|
pub android_device: Option<AndroidDevice>,
|
|
}
|
|
|
|
impl Part for Environment {}
|
|
|
|
|
|
/// Android application details based on application manifest and apk archive
|
|
/// contents.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ApkDetail {
|
|
/// no description provided
|
|
#[serde(rename="apkManifest")]
|
|
pub apk_manifest: Option<ApkManifest>,
|
|
}
|
|
|
|
impl Part for ApkDetail {}
|
|
|
|
|
|
/// An Xcode version that an iOS version is compatible with.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct XcodeVersion {
|
|
/// The id for this version.
|
|
/// Example: "9.2".
|
|
pub version: Option<String>,
|
|
/// Tags for this Xcode version.
|
|
/// Example: "default".
|
|
pub tags: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for XcodeVersion {}
|
|
|
|
|
|
/// Network emulation parameters.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TrafficRule {
|
|
/// Packet delay, must be >= 0.
|
|
pub delay: Option<String>,
|
|
/// Packet loss ratio (0.0 - 1.0).
|
|
#[serde(rename="packetLossRatio")]
|
|
pub packet_loss_ratio: Option<f32>,
|
|
/// Bandwidth in kbits/second.
|
|
pub bandwidth: Option<f32>,
|
|
/// Burst size in kbits.
|
|
pub burst: Option<f32>,
|
|
/// Packet duplication ratio (0.0 - 1.0).
|
|
#[serde(rename="packetDuplicationRatio")]
|
|
pub packet_duplication_ratio: Option<f32>,
|
|
}
|
|
|
|
impl Part for TrafficRule {}
|
|
|
|
|
|
/// A list of Android device configurations in which the test is to be executed.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidDeviceList {
|
|
/// Required. A list of Android devices.
|
|
#[serde(rename="androidDevices")]
|
|
pub android_devices: Option<Vec<AndroidDevice>>,
|
|
}
|
|
|
|
impl Part for AndroidDeviceList {}
|
|
|
|
|
|
/// Represents a tool results execution resource.
|
|
///
|
|
/// This has the results of a TestMatrix.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ToolResultsExecution {
|
|
/// Output only. The cloud project that owns the tool results execution.
|
|
#[serde(rename="projectId")]
|
|
pub project_id: Option<String>,
|
|
/// Output only. A tool results execution ID.
|
|
#[serde(rename="executionId")]
|
|
pub execution_id: Option<String>,
|
|
/// Output only. A tool results history ID.
|
|
#[serde(rename="historyId")]
|
|
pub history_id: Option<String>,
|
|
}
|
|
|
|
impl Part for ToolResultsExecution {}
|
|
|
|
|
|
/// Response containing the details of the specified Android application APK.
|
|
///
|
|
/// # Activities
|
|
///
|
|
/// This type is used in activities, which are methods you may call on this type or where this type is involved in.
|
|
/// The list links the activity name, along with information about where it is used (one of *request* and *response*).
|
|
///
|
|
/// * [get apk details application detail service](struct.ApplicationDetailServiceGetApkDetailCall.html) (response)
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GetApkDetailsResponse {
|
|
/// Details of the Android APK.
|
|
#[serde(rename="apkDetail")]
|
|
pub apk_detail: Option<ApkDetail>,
|
|
}
|
|
|
|
impl ResponseResult for GetApkDetailsResponse {}
|
|
|
|
|
|
/// An Android App Bundle file format, containing a BundleConfig.pb file,
|
|
/// a base module directory, zero or more dynamic feature module directories.
|
|
/// <p>See https://developer.android.com/guide/app-bundle/build for guidance on
|
|
/// building App Bundles.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AppBundle {
|
|
/// .aab file representing the app bundle under test.
|
|
#[serde(rename="bundleLocation")]
|
|
pub bundle_location: Option<FileReference>,
|
|
}
|
|
|
|
impl Part for AppBundle {}
|
|
|
|
|
|
/// A single test executed in a single environment.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestExecution {
|
|
/// Output only. The cloud project that owns the test execution.
|
|
#[serde(rename="projectId")]
|
|
pub project_id: Option<String>,
|
|
/// Output only. Id of the containing TestMatrix.
|
|
#[serde(rename="matrixId")]
|
|
pub matrix_id: Option<String>,
|
|
/// Output only. Details about the shard.
|
|
pub shard: Option<Shard>,
|
|
/// Output only. Unique id set by the service.
|
|
pub id: Option<String>,
|
|
/// Output only. How the host machine(s) are configured.
|
|
pub environment: Option<Environment>,
|
|
/// Output only. Indicates the current progress of the test execution
|
|
/// (e.g., FINISHED).
|
|
pub state: Option<String>,
|
|
/// Output only. How to run the test.
|
|
#[serde(rename="testSpecification")]
|
|
pub test_specification: Option<TestSpecification>,
|
|
/// Output only. The time this test execution was initially created.
|
|
pub timestamp: Option<String>,
|
|
/// Output only. Where the results for this execution are written.
|
|
#[serde(rename="toolResultsStep")]
|
|
pub tool_results_step: Option<ToolResultsStep>,
|
|
/// Output only. Additional details about the running test.
|
|
#[serde(rename="testDetails")]
|
|
pub test_details: Option<TestDetails>,
|
|
}
|
|
|
|
impl Part for TestExecution {}
|
|
|
|
|
|
/// An Android app manifest. See
|
|
/// http://developer.android.com/guide/topics/manifest/manifest-intro.html
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ApkManifest {
|
|
/// Maximum API level on which the application is designed to run.
|
|
#[serde(rename="maxSdkVersion")]
|
|
pub max_sdk_version: Option<i32>,
|
|
/// Minimum API level required for the application to run.
|
|
#[serde(rename="minSdkVersion")]
|
|
pub min_sdk_version: Option<i32>,
|
|
/// Full Java-style package name for this application, e.g.
|
|
/// "com.example.foo".
|
|
#[serde(rename="packageName")]
|
|
pub package_name: Option<String>,
|
|
/// Specifies the API Level on which the application is designed to run.
|
|
#[serde(rename="targetSdkVersion")]
|
|
pub target_sdk_version: Option<i32>,
|
|
/// User-readable name for the application.
|
|
#[serde(rename="applicationLabel")]
|
|
pub application_label: Option<String>,
|
|
/// no description provided
|
|
#[serde(rename="intentFilters")]
|
|
pub intent_filters: Option<Vec<IntentFilter>>,
|
|
}
|
|
|
|
impl Part for ApkManifest {}
|
|
|
|
|
|
/// A description of how to set up the Android device prior to running the test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestSetup {
|
|
/// The device will be logged in on this account for the duration of the test.
|
|
pub account: Option<Account>,
|
|
/// List of directories on the device to upload to GCS at the end of the test;
|
|
/// they must be absolute paths under /sdcard or /data/local/tmp.
|
|
/// Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
|
|
///
|
|
/// Note: The paths /sdcard and /data will be made available and treated as
|
|
/// implicit path substitutions. E.g. if /sdcard on a particular device does
|
|
/// not map to external storage, the system will replace it with the external
|
|
/// storage path prefix for that device.
|
|
#[serde(rename="directoriesToPull")]
|
|
pub directories_to_pull: Option<Vec<String>>,
|
|
/// Systrace configuration for the run.
|
|
/// If set a systrace will be taken, starting on test start and lasting for the
|
|
/// configured duration. The systrace file thus obtained is put in the results
|
|
/// bucket together with the other artifacts from the run.
|
|
pub systrace: Option<SystraceSetup>,
|
|
/// The network traffic profile used for running the test.
|
|
/// Available network profiles can be queried by using the
|
|
/// NETWORK_CONFIGURATION environment type when calling
|
|
/// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
|
|
#[serde(rename="networkProfile")]
|
|
pub network_profile: Option<String>,
|
|
/// APKs to install in addition to those being directly tested.
|
|
/// Currently capped at 100.
|
|
#[serde(rename="additionalApks")]
|
|
pub additional_apks: Option<Vec<Apk>>,
|
|
/// Environment variables to set for the test (only applicable for
|
|
/// instrumentation tests).
|
|
#[serde(rename="environmentVariables")]
|
|
pub environment_variables: Option<Vec<EnvironmentVariable>>,
|
|
/// List of files to push to the device before starting the test.
|
|
#[serde(rename="filesToPush")]
|
|
pub files_to_push: Option<Vec<DeviceFile>>,
|
|
}
|
|
|
|
impl Part for TestSetup {}
|
|
|
|
|
|
/// A test of an Android Application with a Test Loop.
|
|
/// The intent \<intent-name\> will be implicitly added, since Games is the only
|
|
/// user of this api, for the time being.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidTestLoop {
|
|
/// A multi-apk app bundle for the application under test.
|
|
#[serde(rename="appBundle")]
|
|
pub app_bundle: Option<AppBundle>,
|
|
/// The java package for the application under test.
|
|
/// The default is determined by examining the application's manifest.
|
|
#[serde(rename="appPackageId")]
|
|
pub app_package_id: Option<String>,
|
|
/// The APK for the application under test.
|
|
#[serde(rename="appApk")]
|
|
pub app_apk: Option<FileReference>,
|
|
/// The list of scenario labels that should be run during the test.
|
|
/// The scenario labels should map to labels defined in the application's
|
|
/// manifest. For example, player_experience and
|
|
/// com.google.test.loops.player_experience add all of the loops labeled in the
|
|
/// manifest with the com.google.test.loops.player_experience name to the
|
|
/// execution.
|
|
/// Scenarios can also be specified in the scenarios field.
|
|
#[serde(rename="scenarioLabels")]
|
|
pub scenario_labels: Option<Vec<String>>,
|
|
/// The list of scenarios that should be run during the test.
|
|
/// The default is all test loops, derived from the application's
|
|
/// manifest.
|
|
pub scenarios: Option<Vec<i32>>,
|
|
}
|
|
|
|
impl Part for AndroidTestLoop {}
|
|
|
|
|
|
/// iOS configuration that can be selected at the time a test is run.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosRuntimeConfiguration {
|
|
/// The set of available orientations.
|
|
pub orientations: Option<Vec<Orientation>>,
|
|
/// The set of available locales.
|
|
pub locales: Option<Vec<Locale>>,
|
|
}
|
|
|
|
impl Part for IosRuntimeConfiguration {}
|
|
|
|
|
|
/// Represents a whole or partial calendar date, e.g. a birthday. The time of day
|
|
/// and time zone are either specified elsewhere or are not significant. The date
|
|
/// is relative to the Proleptic Gregorian Calendar. This can represent:
|
|
///
|
|
/// * A full date, with non-zero year, month and day values
|
|
/// * A month and day value, with a zero year, e.g. an anniversary
|
|
/// * A year on its own, with zero month and day values
|
|
/// * A year and month value, with a zero day, e.g. a credit card expiration date
|
|
///
|
|
/// Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Date {
|
|
/// Month of year. Must be from 1 to 12, or 0 if specifying a year without a
|
|
/// month and day.
|
|
pub month: Option<i32>,
|
|
/// Day of month. Must be from 1 to 31 and valid for the year and month, or 0
|
|
/// if specifying a year by itself or a year and month where the day is not
|
|
/// significant.
|
|
pub day: Option<i32>,
|
|
/// Year of date. Must be from 1 to 9999, or 0 if specifying a date without
|
|
/// a year.
|
|
pub year: Option<i32>,
|
|
}
|
|
|
|
impl Part for Date {}
|
|
|
|
|
|
/// The currently supported Android devices.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidDeviceCatalog {
|
|
/// The set of supported Android device models.
|
|
pub models: Option<Vec<AndroidModel>>,
|
|
/// The set of supported runtime configurations.
|
|
#[serde(rename="runtimeConfiguration")]
|
|
pub runtime_configuration: Option<AndroidRuntimeConfiguration>,
|
|
/// The set of supported Android OS versions.
|
|
pub versions: Option<Vec<AndroidVersion>>,
|
|
}
|
|
|
|
impl Part for AndroidDeviceCatalog {}
|
|
|
|
|
|
/// Additional details about the progress of the running test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestDetails {
|
|
/// Output only. Human-readable, detailed descriptions of the test's progress.
|
|
/// For example: "Provisioning a device", "Starting Test".
|
|
///
|
|
/// During the course of execution new data may be appended
|
|
/// to the end of progress_messages.
|
|
#[serde(rename="progressMessages")]
|
|
pub progress_messages: Option<Vec<String>>,
|
|
/// Output only. If the TestState is ERROR, then this string will contain
|
|
/// human-readable details about the error.
|
|
#[serde(rename="errorMessage")]
|
|
pub error_message: Option<String>,
|
|
}
|
|
|
|
impl Part for TestDetails {}
|
|
|
|
|
|
/// A description of an iOS device tests may be run on.
|
|
/// Next tag: 12
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosModel {
|
|
/// Whether this device is a phone, tablet, wearable, etc.
|
|
#[serde(rename="formFactor")]
|
|
pub form_factor: Option<String>,
|
|
/// The human-readable name for this device model.
|
|
/// Examples: "iPhone 4s", "iPad Mini 2".
|
|
pub name: Option<String>,
|
|
/// Tags for this dimension.
|
|
/// Examples: "default", "preview", "deprecated".
|
|
pub tags: Option<Vec<String>>,
|
|
/// Screen density in DPI.
|
|
#[serde(rename="screenDensity")]
|
|
pub screen_density: Option<i32>,
|
|
/// The set of iOS major software versions this device supports.
|
|
#[serde(rename="supportedVersionIds")]
|
|
pub supported_version_ids: Option<Vec<String>>,
|
|
/// Screen size in the vertical (Y) dimension measured in pixels.
|
|
#[serde(rename="screenY")]
|
|
pub screen_y: Option<i32>,
|
|
/// Screen size in the horizontal (X) dimension measured in pixels.
|
|
#[serde(rename="screenX")]
|
|
pub screen_x: Option<i32>,
|
|
/// The unique opaque id for this model.
|
|
/// Use this for invoking the TestExecutionService.
|
|
pub id: Option<String>,
|
|
/// Device capabilities.
|
|
/// Copied from
|
|
/// https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
|
|
#[serde(rename="deviceCapabilities")]
|
|
pub device_capabilities: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for IosModel {}
|
|
|
|
|
|
/// A single iOS device.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosDevice {
|
|
/// Required. The locale the test device used for testing.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub locale: Option<String>,
|
|
/// Required. The id of the iOS major software version to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="iosVersionId")]
|
|
pub ios_version_id: Option<String>,
|
|
/// Required. How the device is oriented during the test.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub orientation: Option<String>,
|
|
/// Required. The id of the iOS device to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="iosModelId")]
|
|
pub ios_model_id: Option<String>,
|
|
}
|
|
|
|
impl Part for IosDevice {}
|
|
|
|
|
|
/// Identifies an account and how to log into it.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Account {
|
|
/// An automatic google login account.
|
|
#[serde(rename="googleAuto")]
|
|
pub google_auto: Option<GoogleAuto>,
|
|
}
|
|
|
|
impl Part for Account {}
|
|
|
|
|
|
/// A test of an iOS application that implements one or more game loop scenarios.
|
|
/// This test type accepts an archived application (.ipa file) and a list of
|
|
/// integer scenarios that will be executed on the app sequentially.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosTestLoop {
|
|
/// The list of scenarios that should be run during the test. Defaults to the
|
|
/// single scenario 0 if unspecified.
|
|
pub scenarios: Option<Vec<i32>>,
|
|
/// Output only. The bundle id for the application under test.
|
|
#[serde(rename="appBundleId")]
|
|
pub app_bundle_id: Option<String>,
|
|
/// Required. The .ipa of the application to test.
|
|
#[serde(rename="appIpa")]
|
|
pub app_ipa: Option<FileReference>,
|
|
}
|
|
|
|
impl Part for IosTestLoop {}
|
|
|
|
|
|
/// The currently provided software environment on the devices under test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ProvidedSoftwareCatalog {
|
|
/// A string representing the current version of Android Test
|
|
/// Orchestrator that is provided by TestExecutionService.
|
|
/// Example: "1.0.2 beta".
|
|
#[serde(rename="orchestratorVersion")]
|
|
pub orchestrator_version: Option<String>,
|
|
}
|
|
|
|
impl Part for ProvidedSoftwareCatalog {}
|
|
|
|
|
|
/// A test of an android application that explores the application on a virtual
|
|
/// or physical Android Device, finding culprits and crashes as it goes.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidRoboTest {
|
|
/// A multi-apk app bundle for the application under test.
|
|
#[serde(rename="appBundle")]
|
|
pub app_bundle: Option<AppBundle>,
|
|
/// A set of directives Robo should apply during the crawl.
|
|
/// This allows users to customize the crawl. For example, the username and
|
|
/// password for a test account can be provided.
|
|
#[serde(rename="roboDirectives")]
|
|
pub robo_directives: Option<Vec<RoboDirective>>,
|
|
/// A JSON file with a sequence of actions Robo should perform as a prologue
|
|
/// for the crawl.
|
|
#[serde(rename="roboScript")]
|
|
pub robo_script: Option<FileReference>,
|
|
/// The max number of steps Robo can execute.
|
|
/// Default is no limit.
|
|
#[serde(rename="maxSteps")]
|
|
pub max_steps: Option<i32>,
|
|
/// The max depth of the traversal stack Robo can explore. Needs to be at least
|
|
/// 2 to make Robo explore the app beyond the first activity.
|
|
/// Default is 50.
|
|
#[serde(rename="maxDepth")]
|
|
pub max_depth: Option<i32>,
|
|
/// The intents used to launch the app for the crawl.
|
|
/// If none are provided, then the main launcher activity is launched.
|
|
/// If some are provided, then only those provided are launched (the main
|
|
/// launcher activity must be provided explicitly).
|
|
#[serde(rename="startingIntents")]
|
|
pub starting_intents: Option<Vec<RoboStartingIntent>>,
|
|
/// The APK for the application under test.
|
|
#[serde(rename="appApk")]
|
|
pub app_apk: Option<FileReference>,
|
|
/// The java package for the application under test.
|
|
/// The default value is determined by examining the application's manifest.
|
|
#[serde(rename="appPackageId")]
|
|
pub app_package_id: Option<String>,
|
|
/// The initial activity that should be used to start the app.
|
|
#[serde(rename="appInitialActivity")]
|
|
pub app_initial_activity: Option<String>,
|
|
}
|
|
|
|
impl Part for AndroidRoboTest {}
|
|
|
|
|
|
/// A reference to a file, used for user inputs.
|
|
///
|
|
/// # Activities
|
|
///
|
|
/// This type is used in activities, which are methods you may call on this type or where this type is involved in.
|
|
/// The list links the activity name, along with information about where it is used (one of *request* and *response*).
|
|
///
|
|
/// * [get apk details application detail service](struct.ApplicationDetailServiceGetApkDetailCall.html) (request)
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct FileReference {
|
|
/// A path to a file in Google Cloud Storage.
|
|
/// Example: gs://build-app-1414623860166/app-debug-unaligned.apk
|
|
#[serde(rename="gcsPath")]
|
|
pub gcs_path: Option<String>,
|
|
}
|
|
|
|
impl RequestValue for FileReference {}
|
|
|
|
|
|
/// Options for enabling sharding.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ShardingOption {
|
|
/// Shards test cases into the specified groups of packages, classes, and/or
|
|
/// methods.
|
|
#[serde(rename="manualSharding")]
|
|
pub manual_sharding: Option<ManualSharding>,
|
|
/// Uniformly shards test cases given a total number of shards.
|
|
#[serde(rename="uniformSharding")]
|
|
pub uniform_sharding: Option<UniformSharding>,
|
|
}
|
|
|
|
impl Part for ShardingOption {}
|
|
|
|
|
|
/// Directs Robo to interact with a specific UI element if it is encountered
|
|
/// during the crawl. Currently, Robo can perform text entry or element click.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct RoboDirective {
|
|
/// The text that Robo is directed to set. If left empty, the directive will be
|
|
/// treated as a CLICK on the element matching the resource_name.
|
|
#[serde(rename="inputText")]
|
|
pub input_text: Option<String>,
|
|
/// Required. The android resource name of the target UI element.
|
|
/// For example,
|
|
/// in Java: R.string.foo
|
|
/// in xml: @string/foo
|
|
/// Only the "foo" part is needed.
|
|
/// Reference doc:
|
|
/// https://developer.android.com/guide/topics/resources/accessing-resources.html
|
|
#[serde(rename="resourceName")]
|
|
pub resource_name: Option<String>,
|
|
/// Required. The type of action that Robo should perform on the specified
|
|
/// element.
|
|
#[serde(rename="actionType")]
|
|
pub action_type: Option<String>,
|
|
}
|
|
|
|
impl Part for RoboDirective {}
|
|
|
|
|
|
/// A test of an Android application that can control an Android component
|
|
/// independently of its normal lifecycle.
|
|
/// Android instrumentation tests run an application APK and test APK inside the
|
|
/// same process on a virtual or physical AndroidDevice. They also specify
|
|
/// a test runner class, such as com.google.GoogleTestRunner, which can vary
|
|
/// on the specific instrumentation framework chosen.
|
|
///
|
|
/// See <http://developer.android.com/tools/testing/testing_android.html> for
|
|
/// more information on types of Android tests.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidInstrumentationTest {
|
|
/// A multi-apk app bundle for the application under test.
|
|
#[serde(rename="appBundle")]
|
|
pub app_bundle: Option<AppBundle>,
|
|
/// Required. The APK containing the test code to be executed.
|
|
#[serde(rename="testApk")]
|
|
pub test_apk: Option<FileReference>,
|
|
/// The InstrumentationTestRunner class.
|
|
/// The default value is determined by examining the application's manifest.
|
|
#[serde(rename="testRunnerClass")]
|
|
pub test_runner_class: Option<String>,
|
|
/// The java package for the test to be executed.
|
|
/// The default value is determined by examining the application's manifest.
|
|
#[serde(rename="testPackageId")]
|
|
pub test_package_id: Option<String>,
|
|
/// The APK for the application under test.
|
|
#[serde(rename="appApk")]
|
|
pub app_apk: Option<FileReference>,
|
|
/// The java package for the application under test.
|
|
/// The default value is determined by examining the application's manifest.
|
|
#[serde(rename="appPackageId")]
|
|
pub app_package_id: Option<String>,
|
|
/// The option of whether running each test within its own invocation of
|
|
/// instrumentation with Android Test Orchestrator or not.
|
|
/// ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or
|
|
/// higher! **
|
|
/// Orchestrator offers the following benefits:
|
|
/// - No shared state
|
|
/// - Crashes are isolated
|
|
/// - Logs are scoped per test
|
|
///
|
|
/// See
|
|
/// <https://developer.android.com/training/testing/junit-runner.html#using-android-test-orchestrator>
|
|
/// for more information about Android Test Orchestrator.
|
|
///
|
|
/// If not set, the test will be run without the orchestrator.
|
|
#[serde(rename="orchestratorOption")]
|
|
pub orchestrator_option: Option<String>,
|
|
/// The option to run tests in multiple shards in parallel.
|
|
#[serde(rename="shardingOption")]
|
|
pub sharding_option: Option<ShardingOption>,
|
|
/// Each target must be fully qualified with the package name or class name,
|
|
/// in one of these formats:
|
|
/// - "package package_name"
|
|
/// - "class package_name.class_name"
|
|
/// - "class package_name.class_name#method_name"
|
|
///
|
|
/// If empty, all targets in the module will be run.
|
|
#[serde(rename="testTargets")]
|
|
pub test_targets: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for AndroidInstrumentationTest {}
|
|
|
|
|
|
/// There is no detailed description.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct NetworkConfiguration {
|
|
/// The unique opaque id for this network traffic configuration.
|
|
pub id: Option<String>,
|
|
/// The emulation rule applying to the download traffic.
|
|
#[serde(rename="downRule")]
|
|
pub down_rule: Option<TrafficRule>,
|
|
/// The emulation rule applying to the upload traffic.
|
|
#[serde(rename="upRule")]
|
|
pub up_rule: Option<TrafficRule>,
|
|
}
|
|
|
|
impl Part for NetworkConfiguration {}
|
|
|
|
|
|
/// Screen orientation of the device.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Orientation {
|
|
/// The id for this orientation.
|
|
/// Example: "portrait".
|
|
pub id: Option<String>,
|
|
/// A human-friendly name for this orientation.
|
|
/// Example: "portrait".
|
|
pub name: Option<String>,
|
|
/// Tags for this dimension.
|
|
/// Example: "default".
|
|
pub tags: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for Orientation {}
|
|
|
|
|
|
/// Output only. Details about the shard.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Shard {
|
|
/// Output only. The total number of shards.
|
|
#[serde(rename="numShards")]
|
|
pub num_shards: Option<i32>,
|
|
/// Output only. The index of the shard among all the shards.
|
|
#[serde(rename="shardIndex")]
|
|
pub shard_index: Option<i32>,
|
|
/// Output only. Test targets for each shard.
|
|
#[serde(rename="testTargetsForShard")]
|
|
pub test_targets_for_shard: Option<TestTargetsForShard>,
|
|
}
|
|
|
|
impl Part for Shard {}
|
|
|
|
|
|
/// A key-value pair passed as an environment variable to the test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct EnvironmentVariable {
|
|
/// Key for the environment variable.
|
|
pub key: Option<String>,
|
|
/// Value for the environment variable.
|
|
pub value: Option<String>,
|
|
}
|
|
|
|
impl Part for EnvironmentVariable {}
|
|
|
|
|
|
/// A storage location within Google cloud storage (GCS).
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GoogleCloudStorage {
|
|
/// Required. The path to a directory in GCS that will
|
|
/// eventually contain the results for this test.
|
|
/// The requesting user must have write access on the bucket in the supplied
|
|
/// path.
|
|
#[serde(rename="gcsPath")]
|
|
pub gcs_path: Option<String>,
|
|
}
|
|
|
|
impl Part for GoogleCloudStorage {}
|
|
|
|
|
|
/// Response containing the current state of the specified test matrix.
|
|
///
|
|
/// # Activities
|
|
///
|
|
/// This type is used in activities, which are methods you may call on this type or where this type is involved in.
|
|
/// The list links the activity name, along with information about where it is used (one of *request* and *response*).
|
|
///
|
|
/// * [test matrices cancel projects](struct.ProjectTestMatriceCancelCall.html) (response)
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct CancelTestMatrixResponse {
|
|
/// The current rolled-up state of the test matrix.
|
|
/// If this state is already final, then the cancelation request will
|
|
/// have no effect.
|
|
#[serde(rename="testState")]
|
|
pub test_state: Option<String>,
|
|
}
|
|
|
|
impl ResponseResult for CancelTestMatrixResponse {}
|
|
|
|
|
|
/// There is no detailed description.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct NetworkConfigurationCatalog {
|
|
/// no description provided
|
|
pub configurations: Option<Vec<NetworkConfiguration>>,
|
|
}
|
|
|
|
impl Part for NetworkConfigurationCatalog {}
|
|
|
|
|
|
/// A single Android device.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidDevice {
|
|
/// Required. The locale the test device used for testing.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub locale: Option<String>,
|
|
/// Required. The id of the Android OS version to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="androidVersionId")]
|
|
pub android_version_id: Option<String>,
|
|
/// Required. The id of the Android device to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="androidModelId")]
|
|
pub android_model_id: Option<String>,
|
|
/// Required. How the device is oriented during the test.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub orientation: Option<String>,
|
|
}
|
|
|
|
impl Part for AndroidDevice {}
|
|
|
|
|
|
/// A description of how to set up an iOS device prior to running the test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosTestSetup {
|
|
/// The network traffic profile used for running the test.
|
|
/// Available network profiles can be queried by using the
|
|
/// NETWORK_CONFIGURATION environment type when calling
|
|
/// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
|
|
#[serde(rename="networkProfile")]
|
|
pub network_profile: Option<String>,
|
|
}
|
|
|
|
impl Part for IosTestSetup {}
|
|
|
|
|
|
/// There is no detailed description.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct SystraceSetup {
|
|
/// Systrace duration in seconds.
|
|
/// Should be between 1 and 30 seconds. 0 disables systrace.
|
|
#[serde(rename="durationSeconds")]
|
|
pub duration_seconds: Option<i32>,
|
|
}
|
|
|
|
impl Part for SystraceSetup {}
|
|
|
|
|
|
/// A set of Android device configuration permutations is defined by the
|
|
/// the cross-product of the given axes. Internally, the given AndroidMatrix
|
|
/// will be expanded into a set of AndroidDevices.
|
|
///
|
|
/// Only supported permutations will be instantiated. Invalid permutations
|
|
/// (e.g., incompatible models/versions) are ignored.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidMatrix {
|
|
/// Required. The ids of the set of Android OS version to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="androidVersionIds")]
|
|
pub android_version_ids: Option<Vec<String>>,
|
|
/// Required. The ids of the set of Android device to be used.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
#[serde(rename="androidModelIds")]
|
|
pub android_model_ids: Option<Vec<String>>,
|
|
/// Required. The set of locales the test device will enable for testing.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub locales: Option<Vec<String>>,
|
|
/// Required. The set of orientations to test with.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
pub orientations: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for AndroidMatrix {}
|
|
|
|
|
|
/// Shards test cases into the specified groups of packages, classes, and/or
|
|
/// methods.
|
|
///
|
|
/// With manual sharding enabled, specifying test targets via
|
|
/// environment_variables or in InstrumentationTest is invalid.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ManualSharding {
|
|
/// Required. Group of packages, classes, and/or test methods to be run for
|
|
/// each shard. The number of shard_test_targets must be >= 1 and <= 50.
|
|
#[serde(rename="testTargetsForShard")]
|
|
pub test_targets_for_shard: Option<Vec<TestTargetsForShard>>,
|
|
}
|
|
|
|
impl Part for ManualSharding {}
|
|
|
|
|
|
/// A starting intent specified by an action, uri, and categories.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct StartActivityIntent {
|
|
/// Action name.
|
|
/// Required for START_ACTIVITY.
|
|
pub action: Option<String>,
|
|
/// URI for the action.
|
|
pub uri: Option<String>,
|
|
/// Intent categories to set on the intent.
|
|
pub categories: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for StartActivityIntent {}
|
|
|
|
|
|
/// Represents a tool results step resource.
|
|
///
|
|
/// This has the results of a TestExecution.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ToolResultsStep {
|
|
/// Output only. The cloud project that owns the tool results step.
|
|
#[serde(rename="projectId")]
|
|
pub project_id: Option<String>,
|
|
/// Output only. A tool results execution ID.
|
|
#[serde(rename="executionId")]
|
|
pub execution_id: Option<String>,
|
|
/// Output only. A tool results step ID.
|
|
#[serde(rename="stepId")]
|
|
pub step_id: Option<String>,
|
|
/// Output only. A tool results history ID.
|
|
#[serde(rename="historyId")]
|
|
pub history_id: Option<String>,
|
|
}
|
|
|
|
impl Part for ToolResultsStep {}
|
|
|
|
|
|
/// An opaque binary blob file to install on the device before the test starts.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ObbFile {
|
|
/// Required. OBB file name which must conform to the format as specified by
|
|
/// Android
|
|
/// e.g. [main|patch].0300110.com.example.android.obb
|
|
/// which will be installed into
|
|
/// \<shared-storage\>/Android/obb/\<package-name\>/
|
|
/// on the device.
|
|
#[serde(rename="obbFileName")]
|
|
pub obb_file_name: Option<String>,
|
|
/// Required. Opaque Binary Blob (OBB) file(s) to install on the device.
|
|
pub obb: Option<FileReference>,
|
|
}
|
|
|
|
impl Part for ObbFile {}
|
|
|
|
|
|
/// Information about the client which invoked the test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ClientInfo {
|
|
/// The list of detailed information about client.
|
|
#[serde(rename="clientInfoDetails")]
|
|
pub client_info_details: Option<Vec<ClientInfoDetail>>,
|
|
/// Required. Client name, such as gcloud.
|
|
pub name: Option<String>,
|
|
}
|
|
|
|
impl Part for ClientInfo {}
|
|
|
|
|
|
/// A test of an iOS application that uses the XCTest framework.
|
|
/// Xcode supports the option to "build for testing", which generates an
|
|
/// .xctestrun file that contains a test specification (arguments, test methods,
|
|
/// etc). This test type accepts a zip file containing the .xctestrun file and
|
|
/// the corresponding contents of the Build/Products directory that contains all
|
|
/// the binaries needed to run the tests.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosXcTest {
|
|
/// Output only. The bundle id for the application under test.
|
|
#[serde(rename="appBundleId")]
|
|
pub app_bundle_id: Option<String>,
|
|
/// An .xctestrun file that will override the .xctestrun file in the
|
|
/// tests zip. Because the .xctestrun file contains environment variables along
|
|
/// with test methods to run and/or ignore, this can be useful for sharding
|
|
/// tests. Default is taken from the tests zip.
|
|
pub xctestrun: Option<FileReference>,
|
|
/// Required. The .zip containing the .xctestrun file and the contents of the
|
|
/// DerivedData/Build/Products directory.
|
|
/// The .xctestrun file in this zip is ignored if the xctestrun field is
|
|
/// specified.
|
|
#[serde(rename="testsZip")]
|
|
pub tests_zip: Option<FileReference>,
|
|
/// The Xcode version that should be used for the test.
|
|
/// Use the TestEnvironmentDiscoveryService to get supported options.
|
|
/// Defaults to the latest Xcode version Firebase Test Lab supports.
|
|
#[serde(rename="xcodeVersion")]
|
|
pub xcode_version: Option<String>,
|
|
}
|
|
|
|
impl Part for IosXcTest {}
|
|
|
|
|
|
/// Represents a tool results history resource.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ToolResultsHistory {
|
|
/// Required. The cloud project that owns the tool results history.
|
|
#[serde(rename="projectId")]
|
|
pub project_id: Option<String>,
|
|
/// Required. A tool results history ID.
|
|
#[serde(rename="historyId")]
|
|
pub history_id: Option<String>,
|
|
}
|
|
|
|
impl Part for ToolResultsHistory {}
|
|
|
|
|
|
/// Locations where the results of running the test are stored.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ResultStorage {
|
|
/// The tool results history that contains the tool results execution that
|
|
/// results are written to.
|
|
///
|
|
/// If not provided, the service will choose an appropriate value.
|
|
#[serde(rename="toolResultsHistory")]
|
|
pub tool_results_history: Option<ToolResultsHistory>,
|
|
/// Required.
|
|
#[serde(rename="googleCloudStorage")]
|
|
pub google_cloud_storage: Option<GoogleCloudStorage>,
|
|
/// Output only. The tool results execution that results are written to.
|
|
#[serde(rename="toolResultsExecution")]
|
|
pub tool_results_execution: Option<ToolResultsExecution>,
|
|
/// Output only. URL to the results in the Firebase Web Console.
|
|
#[serde(rename="resultsUrl")]
|
|
pub results_url: Option<String>,
|
|
}
|
|
|
|
impl Part for ResultStorage {}
|
|
|
|
|
|
/// The matrix of environments in which the test is to be executed.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct EnvironmentMatrix {
|
|
/// A list of Android devices; the test will be run only on the specified
|
|
/// devices.
|
|
#[serde(rename="androidDeviceList")]
|
|
pub android_device_list: Option<AndroidDeviceList>,
|
|
/// A matrix of Android devices.
|
|
#[serde(rename="androidMatrix")]
|
|
pub android_matrix: Option<AndroidMatrix>,
|
|
/// A list of iOS devices.
|
|
#[serde(rename="iosDeviceList")]
|
|
pub ios_device_list: Option<IosDeviceList>,
|
|
}
|
|
|
|
impl Part for EnvironmentMatrix {}
|
|
|
|
|
|
/// A list of iOS device configurations in which the test is to be executed.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosDeviceList {
|
|
/// Required. A list of iOS devices.
|
|
#[serde(rename="iosDevices")]
|
|
pub ios_devices: Option<Vec<IosDevice>>,
|
|
}
|
|
|
|
impl Part for IosDeviceList {}
|
|
|
|
|
|
/// Key-value pair of detailed information about the client which invoked the
|
|
/// test. Examples: {'Version', '1.0'}, {'Release Track', 'BETA'}.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct ClientInfoDetail {
|
|
/// Required. The key of detailed client information.
|
|
pub key: Option<String>,
|
|
/// Required. The value of detailed client information.
|
|
pub value: Option<String>,
|
|
}
|
|
|
|
impl Part for ClientInfoDetail {}
|
|
|
|
|
|
/// TestMatrix captures all details about a test. It contains the environment
|
|
/// configuration, test specification, test executions and overall state and
|
|
/// outcome.
|
|
///
|
|
/// # Activities
|
|
///
|
|
/// This type is used in activities, which are methods you may call on this type or where this type is involved in.
|
|
/// The list links the activity name, along with information about where it is used (one of *request* and *response*).
|
|
///
|
|
/// * [test matrices create projects](struct.ProjectTestMatriceCreateCall.html) (request|response)
|
|
/// * [test matrices get projects](struct.ProjectTestMatriceGetCall.html) (response)
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestMatrix {
|
|
/// Information about the client which invoked the test.
|
|
#[serde(rename="clientInfo")]
|
|
pub client_info: Option<ClientInfo>,
|
|
/// The cloud project that owns the test matrix.
|
|
#[serde(rename="projectId")]
|
|
pub project_id: Option<String>,
|
|
/// Required. Where the results for the matrix are written.
|
|
#[serde(rename="resultStorage")]
|
|
pub result_storage: Option<ResultStorage>,
|
|
/// The number of times a TestExecution should be re-attempted if one or more
|
|
/// of its test cases fail for any reason.
|
|
/// The maximum number of reruns allowed is 10.
|
|
///
|
|
/// Default is 0, which implies no reruns.
|
|
#[serde(rename="flakyTestAttempts")]
|
|
pub flaky_test_attempts: Option<i32>,
|
|
/// Output only. Indicates the current progress of the test matrix.
|
|
pub state: Option<String>,
|
|
/// Output only. The list of test executions that the service creates for
|
|
/// this matrix.
|
|
#[serde(rename="testExecutions")]
|
|
pub test_executions: Option<Vec<TestExecution>>,
|
|
/// Required. How to run the test.
|
|
#[serde(rename="testSpecification")]
|
|
pub test_specification: Option<TestSpecification>,
|
|
/// Output only. Unique id set by the service.
|
|
#[serde(rename="testMatrixId")]
|
|
pub test_matrix_id: Option<String>,
|
|
/// Output only. The time this test matrix was initially created.
|
|
pub timestamp: Option<String>,
|
|
/// Output only. Describes why the matrix is considered invalid.
|
|
/// Only useful for matrices in the INVALID state.
|
|
#[serde(rename="invalidMatrixDetails")]
|
|
pub invalid_matrix_details: Option<String>,
|
|
/// Required. The devices the tests are being executed on.
|
|
#[serde(rename="environmentMatrix")]
|
|
pub environment_matrix: Option<EnvironmentMatrix>,
|
|
/// Output Only. The overall outcome of the test.
|
|
/// Only set when the test matrix state is FINISHED.
|
|
#[serde(rename="outcomeSummary")]
|
|
pub outcome_summary: Option<String>,
|
|
}
|
|
|
|
impl RequestValue for TestMatrix {}
|
|
impl ResponseResult for TestMatrix {}
|
|
|
|
|
|
/// A description of how to run the test.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestSpecification {
|
|
/// Test setup requirements for iOS.
|
|
#[serde(rename="iosTestSetup")]
|
|
pub ios_test_setup: Option<IosTestSetup>,
|
|
/// An iOS XCTest, via an .xctestrun file.
|
|
#[serde(rename="iosXcTest")]
|
|
pub ios_xc_test: Option<IosXcTest>,
|
|
/// An iOS application with a test loop.
|
|
#[serde(rename="iosTestLoop")]
|
|
pub ios_test_loop: Option<IosTestLoop>,
|
|
/// Max time a test execution is allowed to run before it is
|
|
/// automatically cancelled.
|
|
/// The default value is 5 min.
|
|
#[serde(rename="testTimeout")]
|
|
pub test_timeout: Option<String>,
|
|
/// Test setup requirements for Android e.g. files to install, bootstrap
|
|
/// scripts.
|
|
#[serde(rename="testSetup")]
|
|
pub test_setup: Option<TestSetup>,
|
|
/// Disables video recording. May reduce test latency.
|
|
#[serde(rename="disableVideoRecording")]
|
|
pub disable_video_recording: Option<bool>,
|
|
/// Disables performance metrics recording. May reduce test latency.
|
|
#[serde(rename="disablePerformanceMetrics")]
|
|
pub disable_performance_metrics: Option<bool>,
|
|
/// An Android Application with a Test Loop.
|
|
#[serde(rename="androidTestLoop")]
|
|
pub android_test_loop: Option<AndroidTestLoop>,
|
|
/// An Android robo test.
|
|
#[serde(rename="androidRoboTest")]
|
|
pub android_robo_test: Option<AndroidRoboTest>,
|
|
/// An Android instrumentation test.
|
|
#[serde(rename="androidInstrumentationTest")]
|
|
pub android_instrumentation_test: Option<AndroidInstrumentationTest>,
|
|
}
|
|
|
|
impl Part for TestSpecification {}
|
|
|
|
|
|
/// Message for specifying the start activities to crawl.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct RoboStartingIntent {
|
|
/// An intent that starts an activity with specific details.
|
|
#[serde(rename="startActivity")]
|
|
pub start_activity: Option<StartActivityIntent>,
|
|
/// Timeout in seconds for each intent.
|
|
pub timeout: Option<String>,
|
|
/// An intent that starts the main launcher activity.
|
|
#[serde(rename="launcherActivity")]
|
|
pub launcher_activity: Option<LauncherActivityIntent>,
|
|
}
|
|
|
|
impl Part for RoboStartingIntent {}
|
|
|
|
|
|
/// Data about the relative number of devices running a
|
|
/// given configuration of the Android platform.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Distribution {
|
|
/// Output only. The time this distribution was measured.
|
|
#[serde(rename="measurementTime")]
|
|
pub measurement_time: Option<String>,
|
|
/// Output only. The estimated fraction (0-1) of the total market with this
|
|
/// configuration.
|
|
#[serde(rename="marketShare")]
|
|
pub market_share: Option<f64>,
|
|
}
|
|
|
|
impl Part for Distribution {}
|
|
|
|
|
|
/// A version of the Android OS.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidVersion {
|
|
/// The date this Android version became available in the market.
|
|
#[serde(rename="releaseDate")]
|
|
pub release_date: Option<Date>,
|
|
/// A string representing this version of the Android OS.
|
|
/// Examples: "4.3", "4.4".
|
|
#[serde(rename="versionString")]
|
|
pub version_string: Option<String>,
|
|
/// Tags for this dimension.
|
|
/// Examples: "default", "preview", "deprecated".
|
|
pub tags: Option<Vec<String>>,
|
|
/// Market share for this version.
|
|
pub distribution: Option<Distribution>,
|
|
/// The API level for this Android version.
|
|
/// Examples: 18, 19.
|
|
#[serde(rename="apiLevel")]
|
|
pub api_level: Option<i32>,
|
|
/// The code name for this Android version.
|
|
/// Examples: "JellyBean", "KitKat".
|
|
#[serde(rename="codeName")]
|
|
pub code_name: Option<String>,
|
|
/// An opaque id for this Android version.
|
|
/// Use this id to invoke the TestExecutionService.
|
|
pub id: Option<String>,
|
|
}
|
|
|
|
impl Part for AndroidVersion {}
|
|
|
|
|
|
/// A single device file description.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct DeviceFile {
|
|
/// A reference to a regular file.
|
|
#[serde(rename="regularFile")]
|
|
pub regular_file: Option<RegularFile>,
|
|
/// A reference to an opaque binary blob file.
|
|
#[serde(rename="obbFile")]
|
|
pub obb_file: Option<ObbFile>,
|
|
}
|
|
|
|
impl Part for DeviceFile {}
|
|
|
|
|
|
/// An iOS version.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosVersion {
|
|
/// An integer representing the major iOS version.
|
|
/// Examples: "8", "9".
|
|
#[serde(rename="majorVersion")]
|
|
pub major_version: Option<i32>,
|
|
/// Tags for this dimension.
|
|
/// Examples: "default", "preview", "deprecated".
|
|
pub tags: Option<Vec<String>>,
|
|
/// An integer representing the minor iOS version.
|
|
/// Examples: "1", "2".
|
|
#[serde(rename="minorVersion")]
|
|
pub minor_version: Option<i32>,
|
|
/// An opaque id for this iOS version.
|
|
/// Use this id to invoke the TestExecutionService.
|
|
pub id: Option<String>,
|
|
/// The available Xcode versions for this version.
|
|
#[serde(rename="supportedXcodeVersionIds")]
|
|
pub supported_xcode_version_ids: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for IosVersion {}
|
|
|
|
|
|
/// A file or directory to install on the device before the test starts.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct RegularFile {
|
|
/// Required. The source file.
|
|
pub content: Option<FileReference>,
|
|
/// Required. Where to put the content on the device. Must be an absolute,
|
|
/// whitelisted path. If the file exists, it will be replaced.
|
|
/// The following device-side directories and any of their subdirectories are
|
|
/// whitelisted:
|
|
/// <p>${EXTERNAL_STORAGE}, or /sdcard</p>
|
|
/// <p>${ANDROID_DATA}/local/tmp, or /data/local/tmp</p>
|
|
/// <p>Specifying a path outside of these directory trees is invalid.
|
|
///
|
|
/// <p> The paths /sdcard and /data will be made available and treated as
|
|
/// implicit path substitutions. E.g. if /sdcard on a particular device does
|
|
/// not map to external storage, the system will replace it with the external
|
|
/// storage path prefix for that device and copy the file there.
|
|
///
|
|
/// <p> It is strongly advised to use the <a href=
|
|
/// "http://developer.android.com/reference/android/os/Environment.html">
|
|
/// Environment API</a> in app and test code to access files on the device in a
|
|
/// portable way.
|
|
#[serde(rename="devicePath")]
|
|
pub device_path: Option<String>,
|
|
}
|
|
|
|
impl Part for RegularFile {}
|
|
|
|
|
|
/// Uniformly shards test cases given a total number of shards.
|
|
///
|
|
/// For Instrumentation test, it will be translated to “-e numShard” “-e
|
|
/// shardIndex” AndroidJUnitRunner arguments. With uniform sharding enabled,
|
|
/// specifying these sharding arguments via environment_variables is invalid.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct UniformSharding {
|
|
/// Required. Total number of shards. The number must be >= 1 and <= 50.
|
|
#[serde(rename="numShards")]
|
|
pub num_shards: Option<i32>,
|
|
}
|
|
|
|
impl Part for UniformSharding {}
|
|
|
|
|
|
/// A location/region designation for language.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Locale {
|
|
/// A human-friendly string representing the region for this
|
|
/// locale. Example: "United States". Not present for every locale.
|
|
pub region: Option<String>,
|
|
/// The id for this locale.
|
|
/// Example: "en_US".
|
|
pub id: Option<String>,
|
|
/// A human-friendly name for this language/locale.
|
|
/// Example: "English".
|
|
pub name: Option<String>,
|
|
/// Tags for this dimension.
|
|
/// Example: "default".
|
|
pub tags: Option<Vec<String>>,
|
|
}
|
|
|
|
impl Part for Locale {}
|
|
|
|
|
|
/// Android configuration that can be selected at the time a test is run.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidRuntimeConfiguration {
|
|
/// The set of available orientations.
|
|
pub orientations: Option<Vec<Orientation>>,
|
|
/// The set of available locales.
|
|
pub locales: Option<Vec<Locale>>,
|
|
}
|
|
|
|
impl Part for AndroidRuntimeConfiguration {}
|
|
|
|
|
|
/// A description of a test environment.
|
|
///
|
|
/// # Activities
|
|
///
|
|
/// This type is used in activities, which are methods you may call on this type or where this type is involved in.
|
|
/// The list links the activity name, along with information about where it is used (one of *request* and *response*).
|
|
///
|
|
/// * [get test environment catalog](struct.TestEnvironmentCatalogGetCall.html) (response)
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct TestEnvironmentCatalog {
|
|
/// Supported iOS devices.
|
|
#[serde(rename="iosDeviceCatalog")]
|
|
pub ios_device_catalog: Option<IosDeviceCatalog>,
|
|
/// Supported Android devices.
|
|
#[serde(rename="androidDeviceCatalog")]
|
|
pub android_device_catalog: Option<AndroidDeviceCatalog>,
|
|
/// Supported network configurations.
|
|
#[serde(rename="networkConfigurationCatalog")]
|
|
pub network_configuration_catalog: Option<NetworkConfigurationCatalog>,
|
|
/// The software test environment provided by TestExecutionService.
|
|
#[serde(rename="softwareCatalog")]
|
|
pub software_catalog: Option<ProvidedSoftwareCatalog>,
|
|
}
|
|
|
|
impl ResponseResult for TestEnvironmentCatalog {}
|
|
|
|
|
|
/// A description of an Android device tests may be run on.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct AndroidModel {
|
|
/// Whether this device is a phone, tablet, wearable, etc.
|
|
#[serde(rename="formFactor")]
|
|
pub form_factor: Option<String>,
|
|
/// Screen size in the horizontal (X) dimension measured in pixels.
|
|
#[serde(rename="screenX")]
|
|
pub screen_x: Option<i32>,
|
|
/// The human-readable marketing name for this device model.
|
|
/// Examples: "Nexus 5", "Galaxy S5".
|
|
pub name: Option<String>,
|
|
/// Whether this device is virtual or physical.
|
|
pub form: Option<String>,
|
|
/// Tags for this dimension.
|
|
/// Examples: "default", "preview", "deprecated".
|
|
pub tags: Option<Vec<String>>,
|
|
/// True if and only if tests with this model are recorded by stitching
|
|
/// together screenshots. See use_low_spec_video_recording in device config.
|
|
#[serde(rename="lowFpsVideoRecording")]
|
|
pub low_fps_video_recording: Option<bool>,
|
|
/// The company that this device is branded with.
|
|
/// Example: "Google", "Samsung".
|
|
pub brand: Option<String>,
|
|
/// The unique opaque id for this model.
|
|
/// Use this for invoking the TestExecutionService.
|
|
pub id: Option<String>,
|
|
/// The set of Android versions this device supports.
|
|
#[serde(rename="supportedVersionIds")]
|
|
pub supported_version_ids: Option<Vec<String>>,
|
|
/// Screen density in DPI.
|
|
/// This corresponds to ro.sf.lcd_density
|
|
#[serde(rename="screenDensity")]
|
|
pub screen_density: Option<i32>,
|
|
/// Screen size in the vertical (Y) dimension measured in pixels.
|
|
#[serde(rename="screenY")]
|
|
pub screen_y: Option<i32>,
|
|
/// URL of a thumbnail image of the device.
|
|
#[serde(rename="thumbnailUrl")]
|
|
pub thumbnail_url: Option<String>,
|
|
/// The list of supported ABIs for this device.
|
|
/// This corresponds to either android.os.Build.SUPPORTED_ABIS (for API level
|
|
/// 21 and above) or android.os.Build.CPU_ABI/CPU_ABI2.
|
|
/// The most preferred ABI is the first element in the list.
|
|
///
|
|
/// Elements are optionally prefixed by "version_id:" (where version_id is
|
|
/// the id of an AndroidVersion), denoting an ABI that is supported only on
|
|
/// a particular version.
|
|
#[serde(rename="supportedAbis")]
|
|
pub supported_abis: Option<Vec<String>>,
|
|
/// The manufacturer of this device.
|
|
pub manufacturer: Option<String>,
|
|
/// The name of the industrial design.
|
|
/// This corresponds to android.os.Build.DEVICE.
|
|
pub codename: Option<String>,
|
|
}
|
|
|
|
impl Part for AndroidModel {}
|
|
|
|
|
|
/// An Android package file to install.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct Apk {
|
|
/// The java package for the APK to be installed.
|
|
/// Value is determined by examining the application's manifest.
|
|
#[serde(rename="packageName")]
|
|
pub package_name: Option<String>,
|
|
/// The path to an APK to be installed on the device before the test begins.
|
|
pub location: Option<FileReference>,
|
|
}
|
|
|
|
impl Part for Apk {}
|
|
|
|
|
|
/// The currently supported iOS devices.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct IosDeviceCatalog {
|
|
/// The set of supported iOS device models.
|
|
pub models: Option<Vec<IosModel>>,
|
|
/// The set of supported Xcode versions.
|
|
#[serde(rename="xcodeVersions")]
|
|
pub xcode_versions: Option<Vec<XcodeVersion>>,
|
|
/// The set of supported runtime configurations.
|
|
#[serde(rename="runtimeConfiguration")]
|
|
pub runtime_configuration: Option<IosRuntimeConfiguration>,
|
|
/// The set of supported iOS software versions.
|
|
pub versions: Option<Vec<IosVersion>>,
|
|
}
|
|
|
|
impl Part for IosDeviceCatalog {}
|
|
|
|
|
|
/// Specifies an intent that starts the main launcher activity.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct LauncherActivityIntent { _never_set: Option<bool> }
|
|
|
|
impl Part for LauncherActivityIntent {}
|
|
|
|
|
|
/// Enables automatic Google account login.
|
|
/// If set, the service automatically generates a Google test account and adds
|
|
/// it to the device, before executing the test. Note that test accounts might be
|
|
/// reused.
|
|
/// Many applications show their full set of functionalities when an account is
|
|
/// present on the device. Logging into the device with these generated accounts
|
|
/// allows testing more functionalities.
|
|
///
|
|
/// This type is not used in any activity, and only used as *part* of another schema.
|
|
///
|
|
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
|
|
pub struct GoogleAuto { _never_set: Option<bool> }
|
|
|
|
impl Part for GoogleAuto {}
|
|
|
|
|
|
|
|
// ###################
|
|
// MethodBuilders ###
|
|
// #################
|
|
|
|
/// A builder providing access to all methods supported on *testEnvironmentCatalog* resources.
|
|
/// It is not used directly, but through the `Testing` hub.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// extern crate hyper;
|
|
/// extern crate hyper_rustls;
|
|
/// extern crate yup_oauth2 as oauth2;
|
|
/// extern crate google_testing1 as testing1;
|
|
///
|
|
/// # #[test] fn egal() {
|
|
/// use std::default::Default;
|
|
/// use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// use testing1::Testing;
|
|
///
|
|
/// let secret: ApplicationSecret = Default::default();
|
|
/// let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// <MemoryStorage as Default>::default(), None);
|
|
/// let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
|
|
/// // like `get(...)`
|
|
/// // to build up your call.
|
|
/// let rb = hub.test_environment_catalog();
|
|
/// # }
|
|
/// ```
|
|
pub struct TestEnvironmentCatalogMethods<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
}
|
|
|
|
impl<'a, C, A> MethodsBuilder for TestEnvironmentCatalogMethods<'a, C, A> {}
|
|
|
|
impl<'a, C, A> TestEnvironmentCatalogMethods<'a, C, A> {
|
|
|
|
/// Create a builder to help you perform the following task:
|
|
///
|
|
/// Gets the catalog of supported test environments.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the environment type does not exist
|
|
/// - INTERNAL - if an internal error occurred
|
|
///
|
|
/// # Arguments
|
|
///
|
|
/// * `environmentType` - Required. The type of environment that should be listed.
|
|
pub fn get(&self, environment_type: &str) -> TestEnvironmentCatalogGetCall<'a, C, A> {
|
|
TestEnvironmentCatalogGetCall {
|
|
hub: self.hub,
|
|
_environment_type: environment_type.to_string(),
|
|
_project_id: Default::default(),
|
|
_delegate: Default::default(),
|
|
_scopes: Default::default(),
|
|
_additional_params: Default::default(),
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A builder providing access to all methods supported on *applicationDetailService* resources.
|
|
/// It is not used directly, but through the `Testing` hub.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// extern crate hyper;
|
|
/// extern crate hyper_rustls;
|
|
/// extern crate yup_oauth2 as oauth2;
|
|
/// extern crate google_testing1 as testing1;
|
|
///
|
|
/// # #[test] fn egal() {
|
|
/// use std::default::Default;
|
|
/// use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// use testing1::Testing;
|
|
///
|
|
/// let secret: ApplicationSecret = Default::default();
|
|
/// let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// <MemoryStorage as Default>::default(), None);
|
|
/// let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
|
|
/// // like `get_apk_details(...)`
|
|
/// // to build up your call.
|
|
/// let rb = hub.application_detail_service();
|
|
/// # }
|
|
/// ```
|
|
pub struct ApplicationDetailServiceMethods<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
}
|
|
|
|
impl<'a, C, A> MethodsBuilder for ApplicationDetailServiceMethods<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ApplicationDetailServiceMethods<'a, C, A> {
|
|
|
|
/// Create a builder to help you perform the following task:
|
|
///
|
|
/// Gets the details of an Android application APK.
|
|
///
|
|
/// # Arguments
|
|
///
|
|
/// * `request` - No description provided.
|
|
pub fn get_apk_details(&self, request: FileReference) -> ApplicationDetailServiceGetApkDetailCall<'a, C, A> {
|
|
ApplicationDetailServiceGetApkDetailCall {
|
|
hub: self.hub,
|
|
_request: request,
|
|
_delegate: Default::default(),
|
|
_scopes: Default::default(),
|
|
_additional_params: Default::default(),
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/// A builder providing access to all methods supported on *project* resources.
|
|
/// It is not used directly, but through the `Testing` hub.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// extern crate hyper;
|
|
/// extern crate hyper_rustls;
|
|
/// extern crate yup_oauth2 as oauth2;
|
|
/// extern crate google_testing1 as testing1;
|
|
///
|
|
/// # #[test] fn egal() {
|
|
/// use std::default::Default;
|
|
/// use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// use testing1::Testing;
|
|
///
|
|
/// let secret: ApplicationSecret = Default::default();
|
|
/// let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// <MemoryStorage as Default>::default(), None);
|
|
/// let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
|
|
/// // like `test_matrices_cancel(...)`, `test_matrices_create(...)` and `test_matrices_get(...)`
|
|
/// // to build up your call.
|
|
/// let rb = hub.projects();
|
|
/// # }
|
|
/// ```
|
|
pub struct ProjectMethods<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
}
|
|
|
|
impl<'a, C, A> MethodsBuilder for ProjectMethods<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ProjectMethods<'a, C, A> {
|
|
|
|
/// Create a builder to help you perform the following task:
|
|
///
|
|
/// Creates and runs a matrix of tests according to the given specifications.
|
|
/// Unsupported environments will be returned in the state UNSUPPORTED.
|
|
/// Matrices are limited to at most 200 supported executions.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// * PERMISSION_DENIED - if the user is not authorized to write to project
|
|
/// * INVALID_ARGUMENT - if the request is malformed or if the matrix expands
|
|
/// to more than 200 supported executions
|
|
///
|
|
/// # Arguments
|
|
///
|
|
/// * `request` - No description provided.
|
|
/// * `projectId` - The GCE project under which this job will run.
|
|
pub fn test_matrices_create(&self, request: TestMatrix, project_id: &str) -> ProjectTestMatriceCreateCall<'a, C, A> {
|
|
ProjectTestMatriceCreateCall {
|
|
hub: self.hub,
|
|
_request: request,
|
|
_project_id: project_id.to_string(),
|
|
_request_id: Default::default(),
|
|
_delegate: Default::default(),
|
|
_scopes: Default::default(),
|
|
_additional_params: Default::default(),
|
|
}
|
|
}
|
|
|
|
/// Create a builder to help you perform the following task:
|
|
///
|
|
/// Cancels unfinished test executions in a test matrix.
|
|
/// This call returns immediately and cancellation proceeds asychronously.
|
|
/// If the matrix is already final, this operation will have no effect.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - PERMISSION_DENIED - if the user is not authorized to read project
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the Test Matrix does not exist
|
|
///
|
|
/// # Arguments
|
|
///
|
|
/// * `projectId` - Cloud project that owns the test.
|
|
/// * `testMatrixId` - Test matrix that will be canceled.
|
|
pub fn test_matrices_cancel(&self, project_id: &str, test_matrix_id: &str) -> ProjectTestMatriceCancelCall<'a, C, A> {
|
|
ProjectTestMatriceCancelCall {
|
|
hub: self.hub,
|
|
_project_id: project_id.to_string(),
|
|
_test_matrix_id: test_matrix_id.to_string(),
|
|
_delegate: Default::default(),
|
|
_scopes: Default::default(),
|
|
_additional_params: Default::default(),
|
|
}
|
|
}
|
|
|
|
/// Create a builder to help you perform the following task:
|
|
///
|
|
/// Checks the status of a test matrix.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - PERMISSION_DENIED - if the user is not authorized to read project
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the Test Matrix does not exist
|
|
///
|
|
/// # Arguments
|
|
///
|
|
/// * `projectId` - Cloud project that owns the test matrix.
|
|
/// * `testMatrixId` - Unique test matrix id which was assigned by the service.
|
|
pub fn test_matrices_get(&self, project_id: &str, test_matrix_id: &str) -> ProjectTestMatriceGetCall<'a, C, A> {
|
|
ProjectTestMatriceGetCall {
|
|
hub: self.hub,
|
|
_project_id: project_id.to_string(),
|
|
_test_matrix_id: test_matrix_id.to_string(),
|
|
_delegate: Default::default(),
|
|
_scopes: Default::default(),
|
|
_additional_params: Default::default(),
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// ###################
|
|
// CallBuilders ###
|
|
// #################
|
|
|
|
/// Gets the catalog of supported test environments.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the environment type does not exist
|
|
/// - INTERNAL - if an internal error occurred
|
|
///
|
|
/// A builder for the *get* method supported by a *testEnvironmentCatalog* resource.
|
|
/// It is not used directly, but through a `TestEnvironmentCatalogMethods` instance.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource method builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// # extern crate hyper;
|
|
/// # extern crate hyper_rustls;
|
|
/// # extern crate yup_oauth2 as oauth2;
|
|
/// # extern crate google_testing1 as testing1;
|
|
/// # #[test] fn egal() {
|
|
/// # use std::default::Default;
|
|
/// # use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// # use testing1::Testing;
|
|
///
|
|
/// # let secret: ApplicationSecret = Default::default();
|
|
/// # let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// # hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// # <MemoryStorage as Default>::default(), None);
|
|
/// # let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.test_environment_catalog().get("environmentType")
|
|
/// .project_id("accusam")
|
|
/// .doit();
|
|
/// # }
|
|
/// ```
|
|
pub struct TestEnvironmentCatalogGetCall<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
_environment_type: String,
|
|
_project_id: Option<String>,
|
|
_delegate: Option<&'a mut dyn Delegate>,
|
|
_additional_params: HashMap<String, String>,
|
|
_scopes: BTreeMap<String, ()>
|
|
}
|
|
|
|
impl<'a, C, A> CallBuilder for TestEnvironmentCatalogGetCall<'a, C, A> {}
|
|
|
|
impl<'a, C, A> TestEnvironmentCatalogGetCall<'a, C, A> where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
|
|
/// Perform the operation you have build so far.
|
|
pub fn doit(mut self) -> Result<(hyper::client::Response, TestEnvironmentCatalog)> {
|
|
use std::io::{Read, Seek};
|
|
use hyper::header::{ContentType, ContentLength, Authorization, Bearer, UserAgent, Location};
|
|
let mut dd = DefaultDelegate;
|
|
let mut dlg: &mut dyn Delegate = match self._delegate {
|
|
Some(d) => d,
|
|
None => &mut dd
|
|
};
|
|
dlg.begin(MethodInfo { id: "testing.testEnvironmentCatalog.get",
|
|
http_method: hyper::method::Method::Get });
|
|
let mut params: Vec<(&str, String)> = Vec::with_capacity(4 + self._additional_params.len());
|
|
params.push(("environmentType", self._environment_type.to_string()));
|
|
if let Some(value) = self._project_id {
|
|
params.push(("projectId", value.to_string()));
|
|
}
|
|
for &field in ["alt", "environmentType", "projectId"].iter() {
|
|
if self._additional_params.contains_key(field) {
|
|
dlg.finished(false);
|
|
return Err(Error::FieldClash(field));
|
|
}
|
|
}
|
|
for (name, value) in self._additional_params.iter() {
|
|
params.push((&name, value.clone()));
|
|
}
|
|
|
|
params.push(("alt", "json".to_string()));
|
|
|
|
let mut url = self.hub._base_url.clone() + "v1/testEnvironmentCatalog/{environmentType}";
|
|
if self._scopes.len() == 0 {
|
|
self._scopes.insert(Scope::CloudPlatform.as_ref().to_string(), ());
|
|
}
|
|
|
|
for &(find_this, param_name) in [("{environmentType}", "environmentType")].iter() {
|
|
let mut replace_with: Option<&str> = None;
|
|
for &(name, ref value) in params.iter() {
|
|
if name == param_name {
|
|
replace_with = Some(value);
|
|
break;
|
|
}
|
|
}
|
|
url = url.replace(find_this, replace_with.expect("to find substitution value in params"));
|
|
}
|
|
{
|
|
let mut indices_for_removal: Vec<usize> = Vec::with_capacity(1);
|
|
for param_name in ["environmentType"].iter() {
|
|
if let Some(index) = params.iter().position(|t| &t.0 == param_name) {
|
|
indices_for_removal.push(index);
|
|
}
|
|
}
|
|
for &index in indices_for_removal.iter() {
|
|
params.remove(index);
|
|
}
|
|
}
|
|
|
|
let url = hyper::Url::parse_with_params(&url, params).unwrap();
|
|
|
|
|
|
|
|
loop {
|
|
let token = match self.hub.auth.borrow_mut().token(self._scopes.keys()) {
|
|
Ok(token) => token,
|
|
Err(err) => {
|
|
match dlg.token(&*err) {
|
|
Some(token) => token,
|
|
None => {
|
|
dlg.finished(false);
|
|
return Err(Error::MissingToken(err))
|
|
}
|
|
}
|
|
}
|
|
};
|
|
let auth_header = Authorization(Bearer { token: token.access_token });
|
|
let mut req_result = {
|
|
let mut client = &mut *self.hub.client.borrow_mut();
|
|
let mut req = client.borrow_mut().request(hyper::method::Method::Get, url.clone())
|
|
.header(UserAgent(self.hub._user_agent.clone()))
|
|
.header(auth_header.clone());
|
|
|
|
dlg.pre_request();
|
|
req.send()
|
|
};
|
|
|
|
match req_result {
|
|
Err(err) => {
|
|
if let oauth2::Retry::After(d) = dlg.http_error(&err) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return Err(Error::HttpError(err))
|
|
}
|
|
Ok(mut res) => {
|
|
if !res.status.is_success() {
|
|
let mut json_err = String::new();
|
|
res.read_to_string(&mut json_err).unwrap();
|
|
|
|
let json_server_error = json::from_str::<JsonServerError>(&json_err).ok();
|
|
let server_error = json::from_str::<ServerError>(&json_err)
|
|
.or_else(|_| json::from_str::<ErrorResponse>(&json_err).map(|r| r.error))
|
|
.ok();
|
|
|
|
if let oauth2::Retry::After(d) = dlg.http_failure(&res,
|
|
json_server_error,
|
|
server_error) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return match json::from_str::<ErrorResponse>(&json_err){
|
|
Err(_) => Err(Error::Failure(res)),
|
|
Ok(serr) => Err(Error::BadRequest(serr))
|
|
}
|
|
}
|
|
let result_value = {
|
|
let mut json_response = String::new();
|
|
res.read_to_string(&mut json_response).unwrap();
|
|
match json::from_str(&json_response) {
|
|
Ok(decoded) => (res, decoded),
|
|
Err(err) => {
|
|
dlg.response_json_decode_error(&json_response, &err);
|
|
return Err(Error::JsonDecodeError(json_response, err));
|
|
}
|
|
}
|
|
};
|
|
|
|
dlg.finished(true);
|
|
return Ok(result_value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// Required. The type of environment that should be listed.
|
|
///
|
|
/// Sets the *environment type* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn environment_type(mut self, new_value: &str) -> TestEnvironmentCatalogGetCall<'a, C, A> {
|
|
self._environment_type = new_value.to_string();
|
|
self
|
|
}
|
|
/// For authorization, the cloud project requesting the TestEnvironmentCatalog.
|
|
///
|
|
/// Sets the *project id* query property to the given value.
|
|
pub fn project_id(mut self, new_value: &str) -> TestEnvironmentCatalogGetCall<'a, C, A> {
|
|
self._project_id = Some(new_value.to_string());
|
|
self
|
|
}
|
|
/// The delegate implementation is consulted whenever there is an intermediate result, or if something goes wrong
|
|
/// while executing the actual API request.
|
|
///
|
|
/// It should be used to handle progress information, and to implement a certain level of resilience.
|
|
///
|
|
/// Sets the *delegate* property to the given value.
|
|
pub fn delegate(mut self, new_value: &'a mut dyn Delegate) -> TestEnvironmentCatalogGetCall<'a, C, A> {
|
|
self._delegate = Some(new_value);
|
|
self
|
|
}
|
|
|
|
/// Set any additional parameter of the query string used in the request.
|
|
/// It should be used to set parameters which are not yet available through their own
|
|
/// setters.
|
|
///
|
|
/// Please note that this method must not be used to set any of the known parameters
|
|
/// which have their own setter method. If done anyway, the request will fail.
|
|
///
|
|
/// # Additional Parameters
|
|
///
|
|
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
|
|
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
|
|
/// * *access_token* (query-string) - OAuth access token.
|
|
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
|
|
/// * *quotaUser* (query-string) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
|
|
/// * *callback* (query-string) - JSONP
|
|
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
|
|
/// * *key* (query-string) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
|
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
|
|
/// * *alt* (query-string) - Data format for response.
|
|
/// * *$.xgafv* (query-string) - V1 error format.
|
|
pub fn param<T>(mut self, name: T, value: T) -> TestEnvironmentCatalogGetCall<'a, C, A>
|
|
where T: AsRef<str> {
|
|
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
|
|
self
|
|
}
|
|
|
|
/// Identifies the authorization scope for the method you are building.
|
|
///
|
|
/// Use this method to actively specify which scope should be used, instead the default `Scope` variant
|
|
/// `Scope::CloudPlatform`.
|
|
///
|
|
/// The `scope` will be added to a set of scopes. This is important as one can maintain access
|
|
/// tokens for more than one scope.
|
|
/// If `None` is specified, then all scopes will be removed and no default scope will be used either.
|
|
/// In that case, you have to specify your API-key using the `key` parameter (see the `param()`
|
|
/// function for details).
|
|
///
|
|
/// Usually there is more than one suitable scope to authorize an operation, some of which may
|
|
/// encompass more rights than others. For example, for listing resources, a *read-only* scope will be
|
|
/// sufficient, a read-write scope will do as well.
|
|
pub fn add_scope<T, S>(mut self, scope: T) -> TestEnvironmentCatalogGetCall<'a, C, A>
|
|
where T: Into<Option<S>>,
|
|
S: AsRef<str> {
|
|
match scope.into() {
|
|
Some(scope) => self._scopes.insert(scope.as_ref().to_string(), ()),
|
|
None => None,
|
|
};
|
|
self
|
|
}
|
|
}
|
|
|
|
|
|
/// Gets the details of an Android application APK.
|
|
///
|
|
/// A builder for the *getApkDetails* method supported by a *applicationDetailService* resource.
|
|
/// It is not used directly, but through a `ApplicationDetailServiceMethods` instance.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource method builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// # extern crate hyper;
|
|
/// # extern crate hyper_rustls;
|
|
/// # extern crate yup_oauth2 as oauth2;
|
|
/// # extern crate google_testing1 as testing1;
|
|
/// use testing1::FileReference;
|
|
/// # #[test] fn egal() {
|
|
/// # use std::default::Default;
|
|
/// # use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// # use testing1::Testing;
|
|
///
|
|
/// # let secret: ApplicationSecret = Default::default();
|
|
/// # let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// # hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// # <MemoryStorage as Default>::default(), None);
|
|
/// # let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // As the method needs a request, you would usually fill it with the desired information
|
|
/// // into the respective structure. Some of the parts shown here might not be applicable !
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let mut req = FileReference::default();
|
|
///
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.application_detail_service().get_apk_details(req)
|
|
/// .doit();
|
|
/// # }
|
|
/// ```
|
|
pub struct ApplicationDetailServiceGetApkDetailCall<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
_request: FileReference,
|
|
_delegate: Option<&'a mut dyn Delegate>,
|
|
_additional_params: HashMap<String, String>,
|
|
_scopes: BTreeMap<String, ()>
|
|
}
|
|
|
|
impl<'a, C, A> CallBuilder for ApplicationDetailServiceGetApkDetailCall<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ApplicationDetailServiceGetApkDetailCall<'a, C, A> where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
|
|
/// Perform the operation you have build so far.
|
|
pub fn doit(mut self) -> Result<(hyper::client::Response, GetApkDetailsResponse)> {
|
|
use std::io::{Read, Seek};
|
|
use hyper::header::{ContentType, ContentLength, Authorization, Bearer, UserAgent, Location};
|
|
let mut dd = DefaultDelegate;
|
|
let mut dlg: &mut dyn Delegate = match self._delegate {
|
|
Some(d) => d,
|
|
None => &mut dd
|
|
};
|
|
dlg.begin(MethodInfo { id: "testing.applicationDetailService.getApkDetails",
|
|
http_method: hyper::method::Method::Post });
|
|
let mut params: Vec<(&str, String)> = Vec::with_capacity(3 + self._additional_params.len());
|
|
for &field in ["alt"].iter() {
|
|
if self._additional_params.contains_key(field) {
|
|
dlg.finished(false);
|
|
return Err(Error::FieldClash(field));
|
|
}
|
|
}
|
|
for (name, value) in self._additional_params.iter() {
|
|
params.push((&name, value.clone()));
|
|
}
|
|
|
|
params.push(("alt", "json".to_string()));
|
|
|
|
let mut url = self.hub._base_url.clone() + "v1/applicationDetailService/getApkDetails";
|
|
if self._scopes.len() == 0 {
|
|
self._scopes.insert(Scope::CloudPlatform.as_ref().to_string(), ());
|
|
}
|
|
|
|
|
|
let url = hyper::Url::parse_with_params(&url, params).unwrap();
|
|
|
|
let mut json_mime_type = mime::Mime(mime::TopLevel::Application, mime::SubLevel::Json, Default::default());
|
|
let mut request_value_reader =
|
|
{
|
|
let mut value = json::value::to_value(&self._request).expect("serde to work");
|
|
remove_json_null_values(&mut value);
|
|
let mut dst = io::Cursor::new(Vec::with_capacity(128));
|
|
json::to_writer(&mut dst, &value).unwrap();
|
|
dst
|
|
};
|
|
let request_size = request_value_reader.seek(io::SeekFrom::End(0)).unwrap();
|
|
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
|
|
|
|
|
|
loop {
|
|
let token = match self.hub.auth.borrow_mut().token(self._scopes.keys()) {
|
|
Ok(token) => token,
|
|
Err(err) => {
|
|
match dlg.token(&*err) {
|
|
Some(token) => token,
|
|
None => {
|
|
dlg.finished(false);
|
|
return Err(Error::MissingToken(err))
|
|
}
|
|
}
|
|
}
|
|
};
|
|
let auth_header = Authorization(Bearer { token: token.access_token });
|
|
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
|
|
let mut req_result = {
|
|
let mut client = &mut *self.hub.client.borrow_mut();
|
|
let mut req = client.borrow_mut().request(hyper::method::Method::Post, url.clone())
|
|
.header(UserAgent(self.hub._user_agent.clone()))
|
|
.header(auth_header.clone())
|
|
.header(ContentType(json_mime_type.clone()))
|
|
.header(ContentLength(request_size as u64))
|
|
.body(&mut request_value_reader);
|
|
|
|
dlg.pre_request();
|
|
req.send()
|
|
};
|
|
|
|
match req_result {
|
|
Err(err) => {
|
|
if let oauth2::Retry::After(d) = dlg.http_error(&err) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return Err(Error::HttpError(err))
|
|
}
|
|
Ok(mut res) => {
|
|
if !res.status.is_success() {
|
|
let mut json_err = String::new();
|
|
res.read_to_string(&mut json_err).unwrap();
|
|
|
|
let json_server_error = json::from_str::<JsonServerError>(&json_err).ok();
|
|
let server_error = json::from_str::<ServerError>(&json_err)
|
|
.or_else(|_| json::from_str::<ErrorResponse>(&json_err).map(|r| r.error))
|
|
.ok();
|
|
|
|
if let oauth2::Retry::After(d) = dlg.http_failure(&res,
|
|
json_server_error,
|
|
server_error) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return match json::from_str::<ErrorResponse>(&json_err){
|
|
Err(_) => Err(Error::Failure(res)),
|
|
Ok(serr) => Err(Error::BadRequest(serr))
|
|
}
|
|
}
|
|
let result_value = {
|
|
let mut json_response = String::new();
|
|
res.read_to_string(&mut json_response).unwrap();
|
|
match json::from_str(&json_response) {
|
|
Ok(decoded) => (res, decoded),
|
|
Err(err) => {
|
|
dlg.response_json_decode_error(&json_response, &err);
|
|
return Err(Error::JsonDecodeError(json_response, err));
|
|
}
|
|
}
|
|
};
|
|
|
|
dlg.finished(true);
|
|
return Ok(result_value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
///
|
|
/// Sets the *request* property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn request(mut self, new_value: FileReference) -> ApplicationDetailServiceGetApkDetailCall<'a, C, A> {
|
|
self._request = new_value;
|
|
self
|
|
}
|
|
/// The delegate implementation is consulted whenever there is an intermediate result, or if something goes wrong
|
|
/// while executing the actual API request.
|
|
///
|
|
/// It should be used to handle progress information, and to implement a certain level of resilience.
|
|
///
|
|
/// Sets the *delegate* property to the given value.
|
|
pub fn delegate(mut self, new_value: &'a mut dyn Delegate) -> ApplicationDetailServiceGetApkDetailCall<'a, C, A> {
|
|
self._delegate = Some(new_value);
|
|
self
|
|
}
|
|
|
|
/// Set any additional parameter of the query string used in the request.
|
|
/// It should be used to set parameters which are not yet available through their own
|
|
/// setters.
|
|
///
|
|
/// Please note that this method must not be used to set any of the known parameters
|
|
/// which have their own setter method. If done anyway, the request will fail.
|
|
///
|
|
/// # Additional Parameters
|
|
///
|
|
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
|
|
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
|
|
/// * *access_token* (query-string) - OAuth access token.
|
|
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
|
|
/// * *quotaUser* (query-string) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
|
|
/// * *callback* (query-string) - JSONP
|
|
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
|
|
/// * *key* (query-string) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
|
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
|
|
/// * *alt* (query-string) - Data format for response.
|
|
/// * *$.xgafv* (query-string) - V1 error format.
|
|
pub fn param<T>(mut self, name: T, value: T) -> ApplicationDetailServiceGetApkDetailCall<'a, C, A>
|
|
where T: AsRef<str> {
|
|
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
|
|
self
|
|
}
|
|
|
|
/// Identifies the authorization scope for the method you are building.
|
|
///
|
|
/// Use this method to actively specify which scope should be used, instead the default `Scope` variant
|
|
/// `Scope::CloudPlatform`.
|
|
///
|
|
/// The `scope` will be added to a set of scopes. This is important as one can maintain access
|
|
/// tokens for more than one scope.
|
|
/// If `None` is specified, then all scopes will be removed and no default scope will be used either.
|
|
/// In that case, you have to specify your API-key using the `key` parameter (see the `param()`
|
|
/// function for details).
|
|
///
|
|
/// Usually there is more than one suitable scope to authorize an operation, some of which may
|
|
/// encompass more rights than others. For example, for listing resources, a *read-only* scope will be
|
|
/// sufficient, a read-write scope will do as well.
|
|
pub fn add_scope<T, S>(mut self, scope: T) -> ApplicationDetailServiceGetApkDetailCall<'a, C, A>
|
|
where T: Into<Option<S>>,
|
|
S: AsRef<str> {
|
|
match scope.into() {
|
|
Some(scope) => self._scopes.insert(scope.as_ref().to_string(), ()),
|
|
None => None,
|
|
};
|
|
self
|
|
}
|
|
}
|
|
|
|
|
|
/// Creates and runs a matrix of tests according to the given specifications.
|
|
/// Unsupported environments will be returned in the state UNSUPPORTED.
|
|
/// Matrices are limited to at most 200 supported executions.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// * PERMISSION_DENIED - if the user is not authorized to write to project
|
|
/// * INVALID_ARGUMENT - if the request is malformed or if the matrix expands
|
|
/// to more than 200 supported executions
|
|
///
|
|
/// A builder for the *testMatrices.create* method supported by a *project* resource.
|
|
/// It is not used directly, but through a `ProjectMethods` instance.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource method builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// # extern crate hyper;
|
|
/// # extern crate hyper_rustls;
|
|
/// # extern crate yup_oauth2 as oauth2;
|
|
/// # extern crate google_testing1 as testing1;
|
|
/// use testing1::TestMatrix;
|
|
/// # #[test] fn egal() {
|
|
/// # use std::default::Default;
|
|
/// # use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// # use testing1::Testing;
|
|
///
|
|
/// # let secret: ApplicationSecret = Default::default();
|
|
/// # let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// # hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// # <MemoryStorage as Default>::default(), None);
|
|
/// # let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // As the method needs a request, you would usually fill it with the desired information
|
|
/// // into the respective structure. Some of the parts shown here might not be applicable !
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let mut req = TestMatrix::default();
|
|
///
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.projects().test_matrices_create(req, "projectId")
|
|
/// .request_id("justo")
|
|
/// .doit();
|
|
/// # }
|
|
/// ```
|
|
pub struct ProjectTestMatriceCreateCall<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
_request: TestMatrix,
|
|
_project_id: String,
|
|
_request_id: Option<String>,
|
|
_delegate: Option<&'a mut dyn Delegate>,
|
|
_additional_params: HashMap<String, String>,
|
|
_scopes: BTreeMap<String, ()>
|
|
}
|
|
|
|
impl<'a, C, A> CallBuilder for ProjectTestMatriceCreateCall<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ProjectTestMatriceCreateCall<'a, C, A> where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
|
|
/// Perform the operation you have build so far.
|
|
pub fn doit(mut self) -> Result<(hyper::client::Response, TestMatrix)> {
|
|
use std::io::{Read, Seek};
|
|
use hyper::header::{ContentType, ContentLength, Authorization, Bearer, UserAgent, Location};
|
|
let mut dd = DefaultDelegate;
|
|
let mut dlg: &mut dyn Delegate = match self._delegate {
|
|
Some(d) => d,
|
|
None => &mut dd
|
|
};
|
|
dlg.begin(MethodInfo { id: "testing.projects.testMatrices.create",
|
|
http_method: hyper::method::Method::Post });
|
|
let mut params: Vec<(&str, String)> = Vec::with_capacity(5 + self._additional_params.len());
|
|
params.push(("projectId", self._project_id.to_string()));
|
|
if let Some(value) = self._request_id {
|
|
params.push(("requestId", value.to_string()));
|
|
}
|
|
for &field in ["alt", "projectId", "requestId"].iter() {
|
|
if self._additional_params.contains_key(field) {
|
|
dlg.finished(false);
|
|
return Err(Error::FieldClash(field));
|
|
}
|
|
}
|
|
for (name, value) in self._additional_params.iter() {
|
|
params.push((&name, value.clone()));
|
|
}
|
|
|
|
params.push(("alt", "json".to_string()));
|
|
|
|
let mut url = self.hub._base_url.clone() + "v1/projects/{projectId}/testMatrices";
|
|
if self._scopes.len() == 0 {
|
|
self._scopes.insert(Scope::CloudPlatform.as_ref().to_string(), ());
|
|
}
|
|
|
|
for &(find_this, param_name) in [("{projectId}", "projectId")].iter() {
|
|
let mut replace_with: Option<&str> = None;
|
|
for &(name, ref value) in params.iter() {
|
|
if name == param_name {
|
|
replace_with = Some(value);
|
|
break;
|
|
}
|
|
}
|
|
url = url.replace(find_this, replace_with.expect("to find substitution value in params"));
|
|
}
|
|
{
|
|
let mut indices_for_removal: Vec<usize> = Vec::with_capacity(1);
|
|
for param_name in ["projectId"].iter() {
|
|
if let Some(index) = params.iter().position(|t| &t.0 == param_name) {
|
|
indices_for_removal.push(index);
|
|
}
|
|
}
|
|
for &index in indices_for_removal.iter() {
|
|
params.remove(index);
|
|
}
|
|
}
|
|
|
|
let url = hyper::Url::parse_with_params(&url, params).unwrap();
|
|
|
|
let mut json_mime_type = mime::Mime(mime::TopLevel::Application, mime::SubLevel::Json, Default::default());
|
|
let mut request_value_reader =
|
|
{
|
|
let mut value = json::value::to_value(&self._request).expect("serde to work");
|
|
remove_json_null_values(&mut value);
|
|
let mut dst = io::Cursor::new(Vec::with_capacity(128));
|
|
json::to_writer(&mut dst, &value).unwrap();
|
|
dst
|
|
};
|
|
let request_size = request_value_reader.seek(io::SeekFrom::End(0)).unwrap();
|
|
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
|
|
|
|
|
|
loop {
|
|
let token = match self.hub.auth.borrow_mut().token(self._scopes.keys()) {
|
|
Ok(token) => token,
|
|
Err(err) => {
|
|
match dlg.token(&*err) {
|
|
Some(token) => token,
|
|
None => {
|
|
dlg.finished(false);
|
|
return Err(Error::MissingToken(err))
|
|
}
|
|
}
|
|
}
|
|
};
|
|
let auth_header = Authorization(Bearer { token: token.access_token });
|
|
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
|
|
let mut req_result = {
|
|
let mut client = &mut *self.hub.client.borrow_mut();
|
|
let mut req = client.borrow_mut().request(hyper::method::Method::Post, url.clone())
|
|
.header(UserAgent(self.hub._user_agent.clone()))
|
|
.header(auth_header.clone())
|
|
.header(ContentType(json_mime_type.clone()))
|
|
.header(ContentLength(request_size as u64))
|
|
.body(&mut request_value_reader);
|
|
|
|
dlg.pre_request();
|
|
req.send()
|
|
};
|
|
|
|
match req_result {
|
|
Err(err) => {
|
|
if let oauth2::Retry::After(d) = dlg.http_error(&err) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return Err(Error::HttpError(err))
|
|
}
|
|
Ok(mut res) => {
|
|
if !res.status.is_success() {
|
|
let mut json_err = String::new();
|
|
res.read_to_string(&mut json_err).unwrap();
|
|
|
|
let json_server_error = json::from_str::<JsonServerError>(&json_err).ok();
|
|
let server_error = json::from_str::<ServerError>(&json_err)
|
|
.or_else(|_| json::from_str::<ErrorResponse>(&json_err).map(|r| r.error))
|
|
.ok();
|
|
|
|
if let oauth2::Retry::After(d) = dlg.http_failure(&res,
|
|
json_server_error,
|
|
server_error) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return match json::from_str::<ErrorResponse>(&json_err){
|
|
Err(_) => Err(Error::Failure(res)),
|
|
Ok(serr) => Err(Error::BadRequest(serr))
|
|
}
|
|
}
|
|
let result_value = {
|
|
let mut json_response = String::new();
|
|
res.read_to_string(&mut json_response).unwrap();
|
|
match json::from_str(&json_response) {
|
|
Ok(decoded) => (res, decoded),
|
|
Err(err) => {
|
|
dlg.response_json_decode_error(&json_response, &err);
|
|
return Err(Error::JsonDecodeError(json_response, err));
|
|
}
|
|
}
|
|
};
|
|
|
|
dlg.finished(true);
|
|
return Ok(result_value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
///
|
|
/// Sets the *request* property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn request(mut self, new_value: TestMatrix) -> ProjectTestMatriceCreateCall<'a, C, A> {
|
|
self._request = new_value;
|
|
self
|
|
}
|
|
/// The GCE project under which this job will run.
|
|
///
|
|
/// Sets the *project id* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn project_id(mut self, new_value: &str) -> ProjectTestMatriceCreateCall<'a, C, A> {
|
|
self._project_id = new_value.to_string();
|
|
self
|
|
}
|
|
/// A string id used to detect duplicated requests.
|
|
/// Ids are automatically scoped to a project, so
|
|
/// users should ensure the ID is unique per-project.
|
|
/// A UUID is recommended.
|
|
///
|
|
/// Optional, but strongly recommended.
|
|
///
|
|
/// Sets the *request id* query property to the given value.
|
|
pub fn request_id(mut self, new_value: &str) -> ProjectTestMatriceCreateCall<'a, C, A> {
|
|
self._request_id = Some(new_value.to_string());
|
|
self
|
|
}
|
|
/// The delegate implementation is consulted whenever there is an intermediate result, or if something goes wrong
|
|
/// while executing the actual API request.
|
|
///
|
|
/// It should be used to handle progress information, and to implement a certain level of resilience.
|
|
///
|
|
/// Sets the *delegate* property to the given value.
|
|
pub fn delegate(mut self, new_value: &'a mut dyn Delegate) -> ProjectTestMatriceCreateCall<'a, C, A> {
|
|
self._delegate = Some(new_value);
|
|
self
|
|
}
|
|
|
|
/// Set any additional parameter of the query string used in the request.
|
|
/// It should be used to set parameters which are not yet available through their own
|
|
/// setters.
|
|
///
|
|
/// Please note that this method must not be used to set any of the known parameters
|
|
/// which have their own setter method. If done anyway, the request will fail.
|
|
///
|
|
/// # Additional Parameters
|
|
///
|
|
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
|
|
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
|
|
/// * *access_token* (query-string) - OAuth access token.
|
|
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
|
|
/// * *quotaUser* (query-string) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
|
|
/// * *callback* (query-string) - JSONP
|
|
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
|
|
/// * *key* (query-string) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
|
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
|
|
/// * *alt* (query-string) - Data format for response.
|
|
/// * *$.xgafv* (query-string) - V1 error format.
|
|
pub fn param<T>(mut self, name: T, value: T) -> ProjectTestMatriceCreateCall<'a, C, A>
|
|
where T: AsRef<str> {
|
|
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
|
|
self
|
|
}
|
|
|
|
/// Identifies the authorization scope for the method you are building.
|
|
///
|
|
/// Use this method to actively specify which scope should be used, instead the default `Scope` variant
|
|
/// `Scope::CloudPlatform`.
|
|
///
|
|
/// The `scope` will be added to a set of scopes. This is important as one can maintain access
|
|
/// tokens for more than one scope.
|
|
/// If `None` is specified, then all scopes will be removed and no default scope will be used either.
|
|
/// In that case, you have to specify your API-key using the `key` parameter (see the `param()`
|
|
/// function for details).
|
|
///
|
|
/// Usually there is more than one suitable scope to authorize an operation, some of which may
|
|
/// encompass more rights than others. For example, for listing resources, a *read-only* scope will be
|
|
/// sufficient, a read-write scope will do as well.
|
|
pub fn add_scope<T, S>(mut self, scope: T) -> ProjectTestMatriceCreateCall<'a, C, A>
|
|
where T: Into<Option<S>>,
|
|
S: AsRef<str> {
|
|
match scope.into() {
|
|
Some(scope) => self._scopes.insert(scope.as_ref().to_string(), ()),
|
|
None => None,
|
|
};
|
|
self
|
|
}
|
|
}
|
|
|
|
|
|
/// Cancels unfinished test executions in a test matrix.
|
|
/// This call returns immediately and cancellation proceeds asychronously.
|
|
/// If the matrix is already final, this operation will have no effect.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - PERMISSION_DENIED - if the user is not authorized to read project
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the Test Matrix does not exist
|
|
///
|
|
/// A builder for the *testMatrices.cancel* method supported by a *project* resource.
|
|
/// It is not used directly, but through a `ProjectMethods` instance.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource method builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// # extern crate hyper;
|
|
/// # extern crate hyper_rustls;
|
|
/// # extern crate yup_oauth2 as oauth2;
|
|
/// # extern crate google_testing1 as testing1;
|
|
/// # #[test] fn egal() {
|
|
/// # use std::default::Default;
|
|
/// # use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// # use testing1::Testing;
|
|
///
|
|
/// # let secret: ApplicationSecret = Default::default();
|
|
/// # let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// # hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// # <MemoryStorage as Default>::default(), None);
|
|
/// # let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.projects().test_matrices_cancel("projectId", "testMatrixId")
|
|
/// .doit();
|
|
/// # }
|
|
/// ```
|
|
pub struct ProjectTestMatriceCancelCall<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
_project_id: String,
|
|
_test_matrix_id: String,
|
|
_delegate: Option<&'a mut dyn Delegate>,
|
|
_additional_params: HashMap<String, String>,
|
|
_scopes: BTreeMap<String, ()>
|
|
}
|
|
|
|
impl<'a, C, A> CallBuilder for ProjectTestMatriceCancelCall<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ProjectTestMatriceCancelCall<'a, C, A> where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
|
|
/// Perform the operation you have build so far.
|
|
pub fn doit(mut self) -> Result<(hyper::client::Response, CancelTestMatrixResponse)> {
|
|
use std::io::{Read, Seek};
|
|
use hyper::header::{ContentType, ContentLength, Authorization, Bearer, UserAgent, Location};
|
|
let mut dd = DefaultDelegate;
|
|
let mut dlg: &mut dyn Delegate = match self._delegate {
|
|
Some(d) => d,
|
|
None => &mut dd
|
|
};
|
|
dlg.begin(MethodInfo { id: "testing.projects.testMatrices.cancel",
|
|
http_method: hyper::method::Method::Post });
|
|
let mut params: Vec<(&str, String)> = Vec::with_capacity(4 + self._additional_params.len());
|
|
params.push(("projectId", self._project_id.to_string()));
|
|
params.push(("testMatrixId", self._test_matrix_id.to_string()));
|
|
for &field in ["alt", "projectId", "testMatrixId"].iter() {
|
|
if self._additional_params.contains_key(field) {
|
|
dlg.finished(false);
|
|
return Err(Error::FieldClash(field));
|
|
}
|
|
}
|
|
for (name, value) in self._additional_params.iter() {
|
|
params.push((&name, value.clone()));
|
|
}
|
|
|
|
params.push(("alt", "json".to_string()));
|
|
|
|
let mut url = self.hub._base_url.clone() + "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel";
|
|
if self._scopes.len() == 0 {
|
|
self._scopes.insert(Scope::CloudPlatform.as_ref().to_string(), ());
|
|
}
|
|
|
|
for &(find_this, param_name) in [("{projectId}", "projectId"), ("{testMatrixId}", "testMatrixId")].iter() {
|
|
let mut replace_with: Option<&str> = None;
|
|
for &(name, ref value) in params.iter() {
|
|
if name == param_name {
|
|
replace_with = Some(value);
|
|
break;
|
|
}
|
|
}
|
|
url = url.replace(find_this, replace_with.expect("to find substitution value in params"));
|
|
}
|
|
{
|
|
let mut indices_for_removal: Vec<usize> = Vec::with_capacity(2);
|
|
for param_name in ["testMatrixId", "projectId"].iter() {
|
|
if let Some(index) = params.iter().position(|t| &t.0 == param_name) {
|
|
indices_for_removal.push(index);
|
|
}
|
|
}
|
|
for &index in indices_for_removal.iter() {
|
|
params.remove(index);
|
|
}
|
|
}
|
|
|
|
let url = hyper::Url::parse_with_params(&url, params).unwrap();
|
|
|
|
|
|
|
|
loop {
|
|
let token = match self.hub.auth.borrow_mut().token(self._scopes.keys()) {
|
|
Ok(token) => token,
|
|
Err(err) => {
|
|
match dlg.token(&*err) {
|
|
Some(token) => token,
|
|
None => {
|
|
dlg.finished(false);
|
|
return Err(Error::MissingToken(err))
|
|
}
|
|
}
|
|
}
|
|
};
|
|
let auth_header = Authorization(Bearer { token: token.access_token });
|
|
let mut req_result = {
|
|
let mut client = &mut *self.hub.client.borrow_mut();
|
|
let mut req = client.borrow_mut().request(hyper::method::Method::Post, url.clone())
|
|
.header(UserAgent(self.hub._user_agent.clone()))
|
|
.header(auth_header.clone());
|
|
|
|
dlg.pre_request();
|
|
req.send()
|
|
};
|
|
|
|
match req_result {
|
|
Err(err) => {
|
|
if let oauth2::Retry::After(d) = dlg.http_error(&err) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return Err(Error::HttpError(err))
|
|
}
|
|
Ok(mut res) => {
|
|
if !res.status.is_success() {
|
|
let mut json_err = String::new();
|
|
res.read_to_string(&mut json_err).unwrap();
|
|
|
|
let json_server_error = json::from_str::<JsonServerError>(&json_err).ok();
|
|
let server_error = json::from_str::<ServerError>(&json_err)
|
|
.or_else(|_| json::from_str::<ErrorResponse>(&json_err).map(|r| r.error))
|
|
.ok();
|
|
|
|
if let oauth2::Retry::After(d) = dlg.http_failure(&res,
|
|
json_server_error,
|
|
server_error) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return match json::from_str::<ErrorResponse>(&json_err){
|
|
Err(_) => Err(Error::Failure(res)),
|
|
Ok(serr) => Err(Error::BadRequest(serr))
|
|
}
|
|
}
|
|
let result_value = {
|
|
let mut json_response = String::new();
|
|
res.read_to_string(&mut json_response).unwrap();
|
|
match json::from_str(&json_response) {
|
|
Ok(decoded) => (res, decoded),
|
|
Err(err) => {
|
|
dlg.response_json_decode_error(&json_response, &err);
|
|
return Err(Error::JsonDecodeError(json_response, err));
|
|
}
|
|
}
|
|
};
|
|
|
|
dlg.finished(true);
|
|
return Ok(result_value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// Cloud project that owns the test.
|
|
///
|
|
/// Sets the *project id* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn project_id(mut self, new_value: &str) -> ProjectTestMatriceCancelCall<'a, C, A> {
|
|
self._project_id = new_value.to_string();
|
|
self
|
|
}
|
|
/// Test matrix that will be canceled.
|
|
///
|
|
/// Sets the *test matrix id* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn test_matrix_id(mut self, new_value: &str) -> ProjectTestMatriceCancelCall<'a, C, A> {
|
|
self._test_matrix_id = new_value.to_string();
|
|
self
|
|
}
|
|
/// The delegate implementation is consulted whenever there is an intermediate result, or if something goes wrong
|
|
/// while executing the actual API request.
|
|
///
|
|
/// It should be used to handle progress information, and to implement a certain level of resilience.
|
|
///
|
|
/// Sets the *delegate* property to the given value.
|
|
pub fn delegate(mut self, new_value: &'a mut dyn Delegate) -> ProjectTestMatriceCancelCall<'a, C, A> {
|
|
self._delegate = Some(new_value);
|
|
self
|
|
}
|
|
|
|
/// Set any additional parameter of the query string used in the request.
|
|
/// It should be used to set parameters which are not yet available through their own
|
|
/// setters.
|
|
///
|
|
/// Please note that this method must not be used to set any of the known parameters
|
|
/// which have their own setter method. If done anyway, the request will fail.
|
|
///
|
|
/// # Additional Parameters
|
|
///
|
|
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
|
|
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
|
|
/// * *access_token* (query-string) - OAuth access token.
|
|
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
|
|
/// * *quotaUser* (query-string) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
|
|
/// * *callback* (query-string) - JSONP
|
|
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
|
|
/// * *key* (query-string) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
|
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
|
|
/// * *alt* (query-string) - Data format for response.
|
|
/// * *$.xgafv* (query-string) - V1 error format.
|
|
pub fn param<T>(mut self, name: T, value: T) -> ProjectTestMatriceCancelCall<'a, C, A>
|
|
where T: AsRef<str> {
|
|
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
|
|
self
|
|
}
|
|
|
|
/// Identifies the authorization scope for the method you are building.
|
|
///
|
|
/// Use this method to actively specify which scope should be used, instead the default `Scope` variant
|
|
/// `Scope::CloudPlatform`.
|
|
///
|
|
/// The `scope` will be added to a set of scopes. This is important as one can maintain access
|
|
/// tokens for more than one scope.
|
|
/// If `None` is specified, then all scopes will be removed and no default scope will be used either.
|
|
/// In that case, you have to specify your API-key using the `key` parameter (see the `param()`
|
|
/// function for details).
|
|
///
|
|
/// Usually there is more than one suitable scope to authorize an operation, some of which may
|
|
/// encompass more rights than others. For example, for listing resources, a *read-only* scope will be
|
|
/// sufficient, a read-write scope will do as well.
|
|
pub fn add_scope<T, S>(mut self, scope: T) -> ProjectTestMatriceCancelCall<'a, C, A>
|
|
where T: Into<Option<S>>,
|
|
S: AsRef<str> {
|
|
match scope.into() {
|
|
Some(scope) => self._scopes.insert(scope.as_ref().to_string(), ()),
|
|
None => None,
|
|
};
|
|
self
|
|
}
|
|
}
|
|
|
|
|
|
/// Checks the status of a test matrix.
|
|
///
|
|
/// May return any of the following canonical error codes:
|
|
///
|
|
/// - PERMISSION_DENIED - if the user is not authorized to read project
|
|
/// - INVALID_ARGUMENT - if the request is malformed
|
|
/// - NOT_FOUND - if the Test Matrix does not exist
|
|
///
|
|
/// A builder for the *testMatrices.get* method supported by a *project* resource.
|
|
/// It is not used directly, but through a `ProjectMethods` instance.
|
|
///
|
|
/// # Example
|
|
///
|
|
/// Instantiate a resource method builder
|
|
///
|
|
/// ```test_harness,no_run
|
|
/// # extern crate hyper;
|
|
/// # extern crate hyper_rustls;
|
|
/// # extern crate yup_oauth2 as oauth2;
|
|
/// # extern crate google_testing1 as testing1;
|
|
/// # #[test] fn egal() {
|
|
/// # use std::default::Default;
|
|
/// # use oauth2::{Authenticator, DefaultAuthenticatorDelegate, ApplicationSecret, MemoryStorage};
|
|
/// # use testing1::Testing;
|
|
///
|
|
/// # let secret: ApplicationSecret = Default::default();
|
|
/// # let auth = Authenticator::new(&secret, DefaultAuthenticatorDelegate,
|
|
/// # hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())),
|
|
/// # <MemoryStorage as Default>::default(), None);
|
|
/// # let mut hub = Testing::new(hyper::Client::with_connector(hyper::net::HttpsConnector::new(hyper_rustls::TlsClient::new())), auth);
|
|
/// // You can configure optional parameters by calling the respective setters at will, and
|
|
/// // execute the final call using `doit()`.
|
|
/// // Values shown here are possibly random and not representative !
|
|
/// let result = hub.projects().test_matrices_get("projectId", "testMatrixId")
|
|
/// .doit();
|
|
/// # }
|
|
/// ```
|
|
pub struct ProjectTestMatriceGetCall<'a, C, A>
|
|
where C: 'a, A: 'a {
|
|
|
|
hub: &'a Testing<C, A>,
|
|
_project_id: String,
|
|
_test_matrix_id: String,
|
|
_delegate: Option<&'a mut dyn Delegate>,
|
|
_additional_params: HashMap<String, String>,
|
|
_scopes: BTreeMap<String, ()>
|
|
}
|
|
|
|
impl<'a, C, A> CallBuilder for ProjectTestMatriceGetCall<'a, C, A> {}
|
|
|
|
impl<'a, C, A> ProjectTestMatriceGetCall<'a, C, A> where C: BorrowMut<hyper::Client>, A: oauth2::GetToken {
|
|
|
|
|
|
/// Perform the operation you have build so far.
|
|
pub fn doit(mut self) -> Result<(hyper::client::Response, TestMatrix)> {
|
|
use std::io::{Read, Seek};
|
|
use hyper::header::{ContentType, ContentLength, Authorization, Bearer, UserAgent, Location};
|
|
let mut dd = DefaultDelegate;
|
|
let mut dlg: &mut dyn Delegate = match self._delegate {
|
|
Some(d) => d,
|
|
None => &mut dd
|
|
};
|
|
dlg.begin(MethodInfo { id: "testing.projects.testMatrices.get",
|
|
http_method: hyper::method::Method::Get });
|
|
let mut params: Vec<(&str, String)> = Vec::with_capacity(4 + self._additional_params.len());
|
|
params.push(("projectId", self._project_id.to_string()));
|
|
params.push(("testMatrixId", self._test_matrix_id.to_string()));
|
|
for &field in ["alt", "projectId", "testMatrixId"].iter() {
|
|
if self._additional_params.contains_key(field) {
|
|
dlg.finished(false);
|
|
return Err(Error::FieldClash(field));
|
|
}
|
|
}
|
|
for (name, value) in self._additional_params.iter() {
|
|
params.push((&name, value.clone()));
|
|
}
|
|
|
|
params.push(("alt", "json".to_string()));
|
|
|
|
let mut url = self.hub._base_url.clone() + "v1/projects/{projectId}/testMatrices/{testMatrixId}";
|
|
if self._scopes.len() == 0 {
|
|
self._scopes.insert(Scope::CloudPlatform.as_ref().to_string(), ());
|
|
}
|
|
|
|
for &(find_this, param_name) in [("{projectId}", "projectId"), ("{testMatrixId}", "testMatrixId")].iter() {
|
|
let mut replace_with: Option<&str> = None;
|
|
for &(name, ref value) in params.iter() {
|
|
if name == param_name {
|
|
replace_with = Some(value);
|
|
break;
|
|
}
|
|
}
|
|
url = url.replace(find_this, replace_with.expect("to find substitution value in params"));
|
|
}
|
|
{
|
|
let mut indices_for_removal: Vec<usize> = Vec::with_capacity(2);
|
|
for param_name in ["testMatrixId", "projectId"].iter() {
|
|
if let Some(index) = params.iter().position(|t| &t.0 == param_name) {
|
|
indices_for_removal.push(index);
|
|
}
|
|
}
|
|
for &index in indices_for_removal.iter() {
|
|
params.remove(index);
|
|
}
|
|
}
|
|
|
|
let url = hyper::Url::parse_with_params(&url, params).unwrap();
|
|
|
|
|
|
|
|
loop {
|
|
let token = match self.hub.auth.borrow_mut().token(self._scopes.keys()) {
|
|
Ok(token) => token,
|
|
Err(err) => {
|
|
match dlg.token(&*err) {
|
|
Some(token) => token,
|
|
None => {
|
|
dlg.finished(false);
|
|
return Err(Error::MissingToken(err))
|
|
}
|
|
}
|
|
}
|
|
};
|
|
let auth_header = Authorization(Bearer { token: token.access_token });
|
|
let mut req_result = {
|
|
let mut client = &mut *self.hub.client.borrow_mut();
|
|
let mut req = client.borrow_mut().request(hyper::method::Method::Get, url.clone())
|
|
.header(UserAgent(self.hub._user_agent.clone()))
|
|
.header(auth_header.clone());
|
|
|
|
dlg.pre_request();
|
|
req.send()
|
|
};
|
|
|
|
match req_result {
|
|
Err(err) => {
|
|
if let oauth2::Retry::After(d) = dlg.http_error(&err) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return Err(Error::HttpError(err))
|
|
}
|
|
Ok(mut res) => {
|
|
if !res.status.is_success() {
|
|
let mut json_err = String::new();
|
|
res.read_to_string(&mut json_err).unwrap();
|
|
|
|
let json_server_error = json::from_str::<JsonServerError>(&json_err).ok();
|
|
let server_error = json::from_str::<ServerError>(&json_err)
|
|
.or_else(|_| json::from_str::<ErrorResponse>(&json_err).map(|r| r.error))
|
|
.ok();
|
|
|
|
if let oauth2::Retry::After(d) = dlg.http_failure(&res,
|
|
json_server_error,
|
|
server_error) {
|
|
sleep(d);
|
|
continue;
|
|
}
|
|
dlg.finished(false);
|
|
return match json::from_str::<ErrorResponse>(&json_err){
|
|
Err(_) => Err(Error::Failure(res)),
|
|
Ok(serr) => Err(Error::BadRequest(serr))
|
|
}
|
|
}
|
|
let result_value = {
|
|
let mut json_response = String::new();
|
|
res.read_to_string(&mut json_response).unwrap();
|
|
match json::from_str(&json_response) {
|
|
Ok(decoded) => (res, decoded),
|
|
Err(err) => {
|
|
dlg.response_json_decode_error(&json_response, &err);
|
|
return Err(Error::JsonDecodeError(json_response, err));
|
|
}
|
|
}
|
|
};
|
|
|
|
dlg.finished(true);
|
|
return Ok(result_value)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// Cloud project that owns the test matrix.
|
|
///
|
|
/// Sets the *project id* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn project_id(mut self, new_value: &str) -> ProjectTestMatriceGetCall<'a, C, A> {
|
|
self._project_id = new_value.to_string();
|
|
self
|
|
}
|
|
/// Unique test matrix id which was assigned by the service.
|
|
///
|
|
/// Sets the *test matrix id* path property to the given value.
|
|
///
|
|
/// Even though the property as already been set when instantiating this call,
|
|
/// we provide this method for API completeness.
|
|
pub fn test_matrix_id(mut self, new_value: &str) -> ProjectTestMatriceGetCall<'a, C, A> {
|
|
self._test_matrix_id = new_value.to_string();
|
|
self
|
|
}
|
|
/// The delegate implementation is consulted whenever there is an intermediate result, or if something goes wrong
|
|
/// while executing the actual API request.
|
|
///
|
|
/// It should be used to handle progress information, and to implement a certain level of resilience.
|
|
///
|
|
/// Sets the *delegate* property to the given value.
|
|
pub fn delegate(mut self, new_value: &'a mut dyn Delegate) -> ProjectTestMatriceGetCall<'a, C, A> {
|
|
self._delegate = Some(new_value);
|
|
self
|
|
}
|
|
|
|
/// Set any additional parameter of the query string used in the request.
|
|
/// It should be used to set parameters which are not yet available through their own
|
|
/// setters.
|
|
///
|
|
/// Please note that this method must not be used to set any of the known parameters
|
|
/// which have their own setter method. If done anyway, the request will fail.
|
|
///
|
|
/// # Additional Parameters
|
|
///
|
|
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
|
|
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
|
|
/// * *access_token* (query-string) - OAuth access token.
|
|
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
|
|
/// * *quotaUser* (query-string) - Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.
|
|
/// * *callback* (query-string) - JSONP
|
|
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
|
|
/// * *key* (query-string) - API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.
|
|
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
|
|
/// * *alt* (query-string) - Data format for response.
|
|
/// * *$.xgafv* (query-string) - V1 error format.
|
|
pub fn param<T>(mut self, name: T, value: T) -> ProjectTestMatriceGetCall<'a, C, A>
|
|
where T: AsRef<str> {
|
|
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
|
|
self
|
|
}
|
|
|
|
/// Identifies the authorization scope for the method you are building.
|
|
///
|
|
/// Use this method to actively specify which scope should be used, instead the default `Scope` variant
|
|
/// `Scope::CloudPlatform`.
|
|
///
|
|
/// The `scope` will be added to a set of scopes. This is important as one can maintain access
|
|
/// tokens for more than one scope.
|
|
/// If `None` is specified, then all scopes will be removed and no default scope will be used either.
|
|
/// In that case, you have to specify your API-key using the `key` parameter (see the `param()`
|
|
/// function for details).
|
|
///
|
|
/// Usually there is more than one suitable scope to authorize an operation, some of which may
|
|
/// encompass more rights than others. For example, for listing resources, a *read-only* scope will be
|
|
/// sufficient, a read-write scope will do as well.
|
|
pub fn add_scope<T, S>(mut self, scope: T) -> ProjectTestMatriceGetCall<'a, C, A>
|
|
where T: Into<Option<S>>,
|
|
S: AsRef<str> {
|
|
match scope.into() {
|
|
Some(scope) => self._scopes.insert(scope.as_ref().to_string(), ()),
|
|
None => None,
|
|
};
|
|
self
|
|
}
|
|
}
|
|
|
|
|