Files
google-apis-rs/gen/partners2/src/api.rs
Sebastian Thiel 783e9188a6 regen all APIs
2023-01-25 14:56:25 +01:00

8081 lines
337 KiB
Rust

use std::collections::HashMap;
use std::cell::RefCell;
use std::default::Default;
use std::collections::BTreeSet;
use std::error::Error as StdError;
use serde_json as json;
use std::io;
use std::fs;
use std::mem;
use hyper::client::connect;
use tokio::io::{AsyncRead, AsyncWrite};
use tokio::time::sleep;
use tower_service;
use serde::{Serialize, Deserialize};
use crate::{client, client::GetToken, client::serde_with};
// ##############
// UTILITIES ###
// ############
// ########
// HUB ###
// ######
/// Central instance to access all Partners related resource activities
///
/// # Examples
///
/// Instantiate a new hub
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
/// use partners2::api::CompanyRelation;
/// use partners2::{Result, Error};
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// // Get an ApplicationSecret instance by some means. It contains the `client_id` and
/// // `client_secret`, among other things.
/// let secret: oauth2::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 = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = CompanyRelation::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.users().create_company_relation(req, "userId")
/// .request_metadata_user_overrides_user_id("dolor")
/// .request_metadata_user_overrides_ip_address("ea")
/// .request_metadata_traffic_source_traffic_sub_id("ipsum")
/// .request_metadata_traffic_source_traffic_source_id("invidunt")
/// .request_metadata_partners_session_id("amet")
/// .request_metadata_locale("duo")
/// .add_request_metadata_experiment_ids("ipsum")
/// .doit().await;
///
/// 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::Io(_)
/// |Error::MissingAPIKey
/// |Error::MissingToken(_)
/// |Error::Cancelled
/// |Error::UploadSizeLimitExceeded(_, _)
/// |Error::Failure(_)
/// |Error::BadRequest(_)
/// |Error::FieldClash(_)
/// |Error::JsonDecodeError(_, _) => println!("{}", e),
/// },
/// Ok(res) => println!("Success: {:?}", res),
/// }
/// # }
/// ```
#[derive(Clone)]
pub struct Partners<S> {
pub client: hyper::Client<S, hyper::body::Body>,
pub auth: Box<dyn client::GetToken>,
_user_agent: String,
_base_url: String,
_root_url: String,
}
impl<'a, S> client::Hub for Partners<S> {}
impl<'a, S> Partners<S> {
pub fn new<A: 'static + client::GetToken>(client: hyper::Client<S, hyper::body::Body>, auth: A) -> Partners<S> {
Partners {
client,
auth: Box::new(auth),
_user_agent: "google-api-rust-client/5.0.2-beta-1".to_string(),
_base_url: "https://partners.googleapis.com/".to_string(),
_root_url: "https://partners.googleapis.com/".to_string(),
}
}
pub fn analytics(&'a self) -> AnalyticMethods<'a, S> {
AnalyticMethods { hub: &self }
}
pub fn client_messages(&'a self) -> ClientMessageMethods<'a, S> {
ClientMessageMethods { hub: &self }
}
pub fn companies(&'a self) -> CompanyMethods<'a, S> {
CompanyMethods { hub: &self }
}
pub fn leads(&'a self) -> LeadMethods<'a, S> {
LeadMethods { hub: &self }
}
pub fn methods(&'a self) -> MethodMethods<'a, S> {
MethodMethods { hub: &self }
}
pub fn offers(&'a self) -> OfferMethods<'a, S> {
OfferMethods { hub: &self }
}
pub fn user_events(&'a self) -> UserEventMethods<'a, S> {
UserEventMethods { hub: &self }
}
pub fn user_states(&'a self) -> UserStateMethods<'a, S> {
UserStateMethods { hub: &self }
}
pub fn users(&'a self) -> UserMethods<'a, S> {
UserMethods { hub: &self }
}
/// Set the user-agent header field to use in all requests to the server.
/// It defaults to `google-api-rust-client/5.0.2-beta-1`.
///
/// 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://partners.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://partners.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 ###
// ##########
/// A generic empty message that you can re-use to avoid defining duplicated
/// empty messages in your APIs. A typical example is to use it as the request
/// or the response type of an API method. For instance:
///
/// ````text
/// service Foo {
/// rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
/// }
/// ````
///
/// The JSON representation for `Empty` is empty JSON object `{}`.
///
/// # 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*).
///
/// * [delete company relation users](UserDeleteCompanyRelationCall) (response)
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Empty { _never_set: Option<bool> }
impl client::ResponseResult for Empty {}
/// Source of traffic for the current request.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct TrafficSource {
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
#[serde(rename="trafficSourceId")]
pub traffic_source_id: Option<String>,
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
#[serde(rename="trafficSubId")]
pub traffic_sub_id: Option<String>,
}
impl client::Part for TrafficSource {}
/// Common data that is in each API request.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct RequestMetadata {
/// Locale to use for the current request.
pub locale: Option<String>,
/// Values to use instead of the user's respective defaults for the current
/// request. These are only honored by whitelisted products.
#[serde(rename="userOverrides")]
pub user_overrides: Option<UserOverrides>,
/// Google Partners session ID.
#[serde(rename="partnersSessionId")]
pub partners_session_id: Option<String>,
/// Experiment IDs the current request belongs to.
#[serde(rename="experimentIds")]
pub experiment_ids: Option<Vec<String>>,
/// Source of traffic for the current request.
#[serde(rename="trafficSource")]
pub traffic_source: Option<TrafficSource>,
}
impl client::Part for RequestMetadata {}
/// Request message for CreateLead.
///
/// # 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*).
///
/// * [leads create companies](CompanyLeadCreateCall) (request)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CreateLeadRequest {
/// Current request metadata.
#[serde(rename="requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
/// The lead resource. The `LeadType` must not be `LEAD_TYPE_UNSPECIFIED`
/// and either `email` or `phone_number` must be provided.
pub lead: Option<Lead>,
/// <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info.
#[serde(rename="recaptchaChallenge")]
pub recaptcha_challenge: Option<RecaptchaChallenge>,
}
impl client::RequestValue for CreateLeadRequest {}
/// Key value data pair for an event.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct EventData {
/// Data type.
pub key: Option<String>,
/// Data values.
pub values: Option<Vec<String>>,
}
impl client::Part for EventData {}
/// A user's information on a specific exam.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ExamStatus {
/// Whether this exam is in the state of warning.
pub warning: Option<bool>,
/// Date this exam is due to expire.
pub expiration: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// The date the user last passed this exam.
#[serde(rename="lastPassed")]
pub last_passed: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// The type of the exam.
#[serde(rename="examType")]
pub exam_type: Option<String>,
/// Whether this exam has been passed and not expired.
pub passed: Option<bool>,
/// The date the user last taken this exam.
pub taken: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
}
impl client::Part for ExamStatus {}
/// Response for ListOffer.
///
/// # 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*).
///
/// * [list offers](OfferListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListOffersResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// Reason why no Offers are available.
#[serde(rename="noOfferReason")]
pub no_offer_reason: Option<String>,
/// Available Offers to be distributed.
#[serde(rename="availableOffers")]
pub available_offers: Option<Vec<AvailableOffer>>,
}
impl client::ResponseResult for ListOffersResponse {}
/// Offer info by country.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CountryOfferInfo {
/// Country code for which offer codes may be requested.
#[serde(rename="offerCountryCode")]
pub offer_country_code: Option<String>,
/// (localized) Spend X amount for that country's offer.
#[serde(rename="spendXAmount")]
pub spend_x_amount: Option<String>,
/// Type of offer country is eligible for.
#[serde(rename="offerType")]
pub offer_type: Option<String>,
/// (localized) Get Y amount for that country's offer.
#[serde(rename="getYAmount")]
pub get_y_amount: Option<String>,
}
impl client::Part for CountryOfferInfo {}
/// Response message for
/// ListCompanies.
///
/// # 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*).
///
/// * [list companies](CompanyListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListCompaniesResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// The list of companies.
pub companies: Option<Vec<Company>>,
/// A token to retrieve next page of results.
/// Pass this value in the `ListCompaniesRequest.page_token` field in the
/// subsequent call to
/// ListCompanies to retrieve the
/// next page of results.
#[serde(rename="nextPageToken")]
pub next_page_token: Option<String>,
}
impl client::ResponseResult for ListCompaniesResponse {}
/// Customers qualified for an offer.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct OfferCustomer {
/// URL to the customer's AdWords page.
#[serde(rename="adwordsUrl")]
pub adwords_url: Option<String>,
/// Type of the offer
#[serde(rename="offerType")]
pub offer_type: Option<String>,
/// External CID for the customer.
#[serde(rename="externalCid")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub external_cid: Option<i64>,
/// Country code of the customer.
#[serde(rename="countryCode")]
pub country_code: Option<String>,
/// Time the customer was created.
#[serde(rename="creationTime")]
pub creation_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Days the customer is still eligible.
#[serde(rename="eligibilityDaysLeft")]
pub eligibility_days_left: Option<i32>,
/// Formatted Get Y amount with currency code.
#[serde(rename="getYAmount")]
pub get_y_amount: Option<String>,
/// Name of the customer.
pub name: Option<String>,
/// Formatted Spend X amount with currency code.
#[serde(rename="spendXAmount")]
pub spend_x_amount: Option<String>,
}
impl client::Part for OfferCustomer {}
/// Google Partners certification status.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CertificationStatus {
/// The type of the certification.
#[serde(rename="type")]
pub type_: Option<String>,
/// Number of people who are certified,
#[serde(rename="userCount")]
pub user_count: Option<i32>,
/// Whether certification is passing.
#[serde(rename="isCertified")]
pub is_certified: Option<bool>,
/// List of certification exam statuses.
#[serde(rename="examStatuses")]
pub exam_statuses: Option<Vec<CertificationExamStatus>>,
}
impl client::Part for CertificationStatus {}
/// The localized company information.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LocalizedCompanyInfo {
/// Language code of the localized company info, as defined by
/// <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
/// (IETF BCP 47, "Tags for Identifying Languages").
#[serde(rename="languageCode")]
pub language_code: Option<String>,
/// List of country codes for the localized company info.
#[serde(rename="countryCodes")]
pub country_codes: Option<Vec<String>>,
/// Localized brief description that the company uses to advertise themselves.
pub overview: Option<String>,
/// Localized display name.
#[serde(rename="displayName")]
pub display_name: Option<String>,
}
impl client::Part for LocalizedCompanyInfo {}
/// Response message for
/// LogUserEvent.
///
/// # 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*).
///
/// * [log user events](UserEventLogCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LogUserEventResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl client::ResponseResult for LogUserEventResponse {}
/// Response for ListOfferHistory.
///
/// # 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*).
///
/// * [history list offers](OfferHistoryListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListOffersHistoryResponse {
/// True if the user has the option to show entire company history.
#[serde(rename="canShowEntireCompany")]
pub can_show_entire_company: Option<bool>,
/// Number of results across all pages.
#[serde(rename="totalResults")]
pub total_results: Option<i32>,
/// True if this response is showing entire company history.
#[serde(rename="showingEntireCompany")]
pub showing_entire_company: Option<bool>,
/// Historical offers meeting request.
pub offers: Option<Vec<HistoricalOffer>>,
/// Supply this token in a ListOffersHistoryRequest to retrieve the next page.
#[serde(rename="nextPageToken")]
pub next_page_token: Option<String>,
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl client::ResponseResult for ListOffersHistoryResponse {}
/// Response message for
/// LogClientMessage.
///
/// # 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*).
///
/// * [log client messages](ClientMessageLogCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LogMessageResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl client::ResponseResult for LogMessageResponse {}
/// Agency specialization status
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct SpecializationStatus {
/// The specialization this status is for.
#[serde(rename="badgeSpecialization")]
pub badge_specialization: Option<String>,
/// State of agency specialization.
#[serde(rename="badgeSpecializationState")]
pub badge_specialization_state: Option<String>,
}
impl client::Part for SpecializationStatus {}
/// A user's information on a specific certification.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Certification {
/// The date the user last achieved certification.
#[serde(rename="lastAchieved")]
pub last_achieved: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Whether this certification has been achieved.
pub achieved: Option<bool>,
/// Date this certification is due to expire.
pub expiration: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Whether this certification is in the state of warning.
pub warning: Option<bool>,
/// The type of certification, the area of expertise.
#[serde(rename="certificationType")]
pub certification_type: Option<String>,
}
impl client::Part for Certification {}
/// A resource representing a user of the Partners platform.
///
/// # 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*).
///
/// * [update profile users](UserUpdateProfileCall) (none)
/// * [create company relation users](UserCreateCompanyRelationCall) (none)
/// * [delete company relation users](UserDeleteCompanyRelationCall) (none)
/// * [get users](UserGetCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct User {
/// The profile information of a Partners user, contains all the directly
/// editable user information.
pub profile: Option<UserProfile>,
/// This is the list of AdWords Manager Accounts the user has edit access to.
/// If the user has edit access to multiple accounts, the user can choose the
/// preferred account and we use this when a personal account is needed. Can
/// be empty meaning the user has access to no accounts.
/// @OutputOnly
#[serde(rename="availableAdwordsManagerAccounts")]
pub available_adwords_manager_accounts: Option<Vec<AdWordsManagerAccountInfo>>,
/// The internal user ID.
/// Only available for a whitelisted set of api clients.
#[serde(rename="internalId")]
pub internal_id: Option<String>,
/// The list of exams the user ever taken. For each type of exam, only one
/// entry is listed.
#[serde(rename="examStatus")]
pub exam_status: Option<Vec<ExamStatus>>,
/// The ID of the user.
pub id: Option<String>,
/// Information about a user's external public profile outside Google Partners.
#[serde(rename="publicProfile")]
pub public_profile: Option<PublicProfile>,
/// The email address used by the user used for company verification.
/// @OutputOnly
#[serde(rename="companyVerificationEmail")]
pub company_verification_email: Option<String>,
/// The company that the user is associated with.
/// If not present, the user is not associated with any company.
pub company: Option<CompanyRelation>,
/// The most recent time the user interacted with the Partners site.
/// @OutputOnly
#[serde(rename="lastAccessTime")]
pub last_access_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// The list of emails the user has access to/can select as primary.
/// @OutputOnly
#[serde(rename="primaryEmails")]
pub primary_emails: Option<Vec<String>>,
/// The list of achieved certifications. These are calculated based on exam
/// results and other requirements.
/// @OutputOnly
#[serde(rename="certificationStatus")]
pub certification_status: Option<Vec<Certification>>,
/// Whether or not the user has opted to share their Academy for Ads info with
/// Google Partners.
#[serde(rename="afaInfoShared")]
pub afa_info_shared: Option<bool>,
}
impl client::Resource for User {}
impl client::ResponseResult for User {}
/// Response message for
/// ListAnalytics.
///
/// # 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*).
///
/// * [list analytics](AnalyticListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListAnalyticsResponse {
/// A token to retrieve next page of results.
/// Pass this value in the `ListAnalyticsRequest.page_token` field in the
/// subsequent call to
/// ListAnalytics to retrieve the
/// next page of results.
#[serde(rename="nextPageToken")]
pub next_page_token: Option<String>,
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// Aggregated information across the response's
/// analytics.
#[serde(rename="analyticsSummary")]
pub analytics_summary: Option<AnalyticsSummary>,
/// The list of analytics.
/// Sorted in ascending order of
/// Analytics.event_date.
pub analytics: Option<Vec<Analytics>>,
}
impl client::ResponseResult for ListAnalyticsResponse {}
/// Response message for ListLeads.
///
/// # 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*).
///
/// * [list leads](LeadListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListLeadsResponse {
/// A token to retrieve next page of results.
/// Pass this value in the `ListLeadsRequest.page_token` field in the
/// subsequent call to
/// ListLeads to retrieve the
/// next page of results.
#[serde(rename="nextPageToken")]
pub next_page_token: Option<String>,
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// The total count of leads for the given company.
#[serde(rename="totalSize")]
pub total_size: Option<i32>,
/// The list of leads.
pub leads: Option<Vec<Lead>>,
}
impl client::ResponseResult for ListLeadsResponse {}
/// A company resource in the Google Partners API. Once certified, it qualifies
/// for being searched by advertisers.
///
/// # 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*).
///
/// * [update companies](MethodUpdateCompanyCall) (request|response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Company {
/// The public viewability status of the company's profile.
#[serde(rename="profileStatus")]
pub profile_status: Option<String>,
/// The primary language code of the company, as defined by
/// <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
/// (IETF BCP 47, "Tags for Identifying Languages").
#[serde(rename="primaryLanguageCode")]
pub primary_language_code: Option<String>,
/// The list of all company locations.
/// If set, must include the
/// primary_location
/// in the list.
pub locations: Option<Vec<Location>>,
/// The minimum monthly budget that the company accepts for partner business,
/// converted to the requested currency code.
#[serde(rename="convertedMinMonthlyBudget")]
pub converted_min_monthly_budget: Option<Money>,
/// Industries the company can help with.
pub industries: Option<Vec<String>>,
/// URL of the company's website.
#[serde(rename="websiteUrl")]
pub website_url: Option<String>,
/// URL of the company's additional websites used to verify the dynamic badges.
/// These are stored as full URLs as entered by the user, but only the TLD will
/// be used for the actual verification.
#[serde(rename="additionalWebsites")]
pub additional_websites: Option<Vec<String>>,
/// The Primary AdWords Manager Account id.
#[serde(rename="primaryAdwordsManagerAccountId")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub primary_adwords_manager_account_id: Option<i64>,
/// Whether the company's badge authority is in AWN
#[serde(rename="badgeAuthorityInAwn")]
pub badge_authority_in_awn: Option<bool>,
/// The name of the company.
pub name: Option<String>,
/// The list of localized info for the company.
#[serde(rename="localizedInfos")]
pub localized_infos: Option<Vec<LocalizedCompanyInfo>>,
/// The list of Google Partners certification statuses for the company.
#[serde(rename="certificationStatuses")]
pub certification_statuses: Option<Vec<CertificationStatus>>,
/// The ID of the company.
pub id: Option<String>,
/// Basic information from the company's public profile.
#[serde(rename="publicProfile")]
pub public_profile: Option<PublicProfile>,
/// The unconverted minimum monthly budget that the company accepts for partner
/// business.
#[serde(rename="originalMinMonthlyBudget")]
pub original_min_monthly_budget: Option<Money>,
/// Services the company can help with.
pub services: Option<Vec<String>>,
/// The primary location of the company.
#[serde(rename="primaryLocation")]
pub primary_location: Option<Location>,
/// Information related to the ranking of the company within the list of
/// companies.
pub ranks: Option<Vec<Rank>>,
/// The list of Google Partners specialization statuses for the company.
#[serde(rename="specializationStatus")]
pub specialization_status: Option<Vec<SpecializationStatus>>,
/// Partner badge tier
#[serde(rename="badgeTier")]
pub badge_tier: Option<String>,
/// Email domains that allow users with a matching email address to get
/// auto-approved for associating with this company.
#[serde(rename="autoApprovalEmailDomains")]
pub auto_approval_email_domains: Option<Vec<String>>,
/// Company type labels listed on the company's profile.
#[serde(rename="companyTypes")]
pub company_types: Option<Vec<String>>,
}
impl client::RequestValue for Company {}
impl client::ResponseResult for Company {}
/// Response message for CreateLead.
///
/// # 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*).
///
/// * [leads create companies](CompanyLeadCreateCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CreateLeadResponse {
/// Lead that was created depending on the outcome of
/// <a href="https://www.google.com/recaptcha/">reCaptcha</a> validation.
pub lead: Option<Lead>,
/// The outcome of <a href="https://www.google.com/recaptcha/">reCaptcha</a>
/// validation.
#[serde(rename="recaptchaStatus")]
pub recaptcha_status: Option<String>,
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl client::ResponseResult for CreateLeadResponse {}
/// Response message for GetCompany.
///
/// # 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 companies](CompanyGetCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct GetCompanyResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// The company.
pub company: Option<Company>,
}
impl client::ResponseResult for GetCompanyResponse {}
/// A location with address and geographic coordinates. May optionally contain a
/// detailed (multi-field) version of the address.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Location {
/// Top-level administrative subdivision of this country.
#[serde(rename="administrativeArea")]
pub administrative_area: Option<String>,
/// Generally refers to the city/town portion of an address.
pub locality: Option<String>,
/// The latitude and longitude of the location, in degrees.
#[serde(rename="latLng")]
pub lat_lng: Option<LatLng>,
/// CLDR (Common Locale Data Repository) region code .
#[serde(rename="regionCode")]
pub region_code: Option<String>,
/// Dependent locality or sublocality. Used for UK dependent localities, or
/// neighborhoods or boroughs in other locations.
#[serde(rename="dependentLocality")]
pub dependent_locality: Option<String>,
/// The single string version of the address.
pub address: Option<String>,
/// Values are frequently alphanumeric.
#[serde(rename="postalCode")]
pub postal_code: Option<String>,
/// Use of this code is very country-specific, but will refer to a secondary
/// classification code for sorting mail.
#[serde(rename="sortingCode")]
pub sorting_code: Option<String>,
/// Language code of the address. Should be in BCP 47 format.
#[serde(rename="languageCode")]
pub language_code: Option<String>,
/// The following address lines represent the most specific part of any
/// address.
#[serde(rename="addressLine")]
pub address_line: Option<Vec<String>>,
}
impl client::Part for Location {}
/// Status for a Google Partners certification exam.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CertificationExamStatus {
/// The number of people who have passed the certification exam.
#[serde(rename="numberUsersPass")]
pub number_users_pass: Option<i32>,
/// The type of certification exam.
#[serde(rename="type")]
pub type_: Option<String>,
}
impl client::Part for CertificationExamStatus {}
/// A set of opt-ins for a user.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct OptIns {
/// An opt-in about receiving email from Partners marketing teams. Includes
/// member-only events and special promotional offers for Google products.
#[serde(rename="marketComm")]
pub market_comm: Option<bool>,
/// An opt-in about receiving email regarding new features and products.
#[serde(rename="specialOffers")]
pub special_offers: Option<bool>,
/// An opt-in about receiving email with customized AdWords campaign management
/// tips.
#[serde(rename="performanceSuggestions")]
pub performance_suggestions: Option<bool>,
/// An opt-in to receive special promotional gifts and material in the mail.
#[serde(rename="physicalMail")]
pub physical_mail: Option<bool>,
/// An opt-in to allow recieivng phone calls about their Partners account.
#[serde(rename="phoneContact")]
pub phone_contact: Option<bool>,
}
impl client::Part for OptIns {}
/// Information related to ranking of results.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Rank {
/// The numerical value of the rank.
pub value: Option<f64>,
/// The type of rank.
#[serde(rename="type")]
pub type_: Option<String>,
}
impl client::Part for Rank {}
/// Response message for
/// GetPartnersStatus.
///
/// # 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 partnersstatus](MethodGetPartnersstatuCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct GetPartnersStatusResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
}
impl client::ResponseResult for GetPartnersStatusResponse {}
/// The profile information of a Partners user.
///
/// # 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*).
///
/// * [update profile users](UserUpdateProfileCall) (request|response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct UserProfile {
/// A list of ids representing which channels the user selected they were in.
pub channels: Option<Vec<String>>,
/// Whether the user's public profile is visible to anyone with the URL.
#[serde(rename="profilePublic")]
pub profile_public: Option<bool>,
/// A list of ids represnting which job categories the user selected.
#[serde(rename="jobFunctions")]
pub job_functions: Option<Vec<String>>,
/// The user's given name.
#[serde(rename="givenName")]
pub given_name: Option<String>,
/// The user's mailing address, contains multiple fields.
pub address: Option<Location>,
/// A list of ids representing which industries the user selected.
pub industries: Option<Vec<String>>,
/// The list of opt-ins for the user, related to communication preferences.
#[serde(rename="emailOptIns")]
pub email_opt_ins: Option<OptIns>,
/// The user's family name.
#[serde(rename="familyName")]
pub family_name: Option<String>,
/// The list of languages this user understands.
pub languages: Option<Vec<String>>,
/// A list of ids representing which markets the user was interested in.
pub markets: Option<Vec<String>>,
/// Whether or not to migrate the user's exam data to Academy for Ads.
#[serde(rename="migrateToAfa")]
pub migrate_to_afa: Option<bool>,
/// If the user has edit access to multiple accounts, the user can choose the
/// preferred account and it is used when a personal account is needed. Can
/// be empty.
#[serde(rename="adwordsManagerAccount")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub adwords_manager_account: Option<i64>,
/// The user's phone number.
#[serde(rename="phoneNumber")]
pub phone_number: Option<String>,
/// The user's primary country, an ISO 2-character code.
#[serde(rename="primaryCountryCode")]
pub primary_country_code: Option<String>,
/// The email address the user has selected on the Partners site as primary.
#[serde(rename="emailAddress")]
pub email_address: Option<String>,
}
impl client::RequestValue for UserProfile {}
impl client::ResponseResult for UserProfile {}
/// Historical information about a Google Partners Offer.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct HistoricalOffer {
/// Time offer was first created.
#[serde(rename="creationTime")]
pub creation_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Status of the offer.
pub status: Option<String>,
/// Email address for client.
#[serde(rename="clientEmail")]
pub client_email: Option<String>,
/// ID of client.
#[serde(rename="clientId")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub client_id: Option<i64>,
/// Name of the client.
#[serde(rename="clientName")]
pub client_name: Option<String>,
/// Time last action was taken.
#[serde(rename="lastModifiedTime")]
pub last_modified_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Client's AdWords page URL.
#[serde(rename="adwordsUrl")]
pub adwords_url: Option<String>,
/// Type of offer.
#[serde(rename="offerType")]
pub offer_type: Option<String>,
/// Name (First + Last) of the partners user to whom the incentive is allocated.
#[serde(rename="senderName")]
pub sender_name: Option<String>,
/// Country Code for the offer country.
#[serde(rename="offerCountryCode")]
pub offer_country_code: Option<String>,
/// Time this offer expires.
#[serde(rename="expirationTime")]
pub expiration_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Offer code.
#[serde(rename="offerCode")]
pub offer_code: Option<String>,
}
impl client::Part for HistoricalOffer {}
/// Request message for
/// LogUserEvent.
///
/// # 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*).
///
/// * [log user events](UserEventLogCall) (request)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LogUserEventRequest {
/// The URL where the event occurred.
pub url: Option<String>,
/// Current request metadata.
#[serde(rename="requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
/// List of event data for the event.
#[serde(rename="eventDatas")]
pub event_datas: Option<Vec<EventData>>,
/// The scope of the event.
#[serde(rename="eventScope")]
pub event_scope: Option<String>,
/// The category the action belongs to.
#[serde(rename="eventCategory")]
pub event_category: Option<String>,
/// Advertiser lead information.
pub lead: Option<Lead>,
/// The action that occurred.
#[serde(rename="eventAction")]
pub event_action: Option<String>,
}
impl client::RequestValue for LogUserEventRequest {}
/// Values to use instead of the user's respective defaults. These are only
/// honored by whitelisted products.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct UserOverrides {
/// IP address to use instead of the user's geo-located IP address.
#[serde(rename="ipAddress")]
pub ip_address: Option<String>,
/// Logged-in user ID to impersonate instead of the user's ID.
#[serde(rename="userId")]
pub user_id: Option<String>,
}
impl client::Part for UserOverrides {}
/// Details of the analytics events for a `Company` within a single day.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct AnalyticsDataPoint {
/// Location information of where these events occurred.
#[serde(rename="eventLocations")]
pub event_locations: Option<Vec<LatLng>>,
/// Number of times the type of event occurred.
/// Meaning depends on context (e.g. profile views, contacts, etc.).
#[serde(rename="eventCount")]
pub event_count: Option<i32>,
}
impl client::Part for AnalyticsDataPoint {}
/// Analytics data for a `Company` within a single day.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Analytics {
/// Date on which these events occurred.
#[serde(rename="eventDate")]
pub event_date: Option<Date>,
/// Instances of users viewing the `Company` profile
/// on the specified date.
#[serde(rename="profileViews")]
pub profile_views: Option<AnalyticsDataPoint>,
/// Instances of users seeing the `Company` in Google Partners Search results
/// on the specified date.
#[serde(rename="searchViews")]
pub search_views: Option<AnalyticsDataPoint>,
/// Instances of users contacting the `Company`
/// on the specified date.
pub contacts: Option<AnalyticsDataPoint>,
}
impl client::Part for Analytics {}
/// Information about a particular AdWords Manager Account.
/// Read more at https://support.google.com/adwords/answer/6139186
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct AdWordsManagerAccountInfo {
/// The AdWords Manager Account id.
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub id: Option<i64>,
/// Name of the customer this account represents.
#[serde(rename="customerName")]
pub customer_name: Option<String>,
}
impl client::Part for AdWordsManagerAccountInfo {}
/// Basic information from a public profile.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct PublicProfile {
/// The URL to the main profile image of the public profile.
#[serde(rename="profileImage")]
pub profile_image: Option<String>,
/// The display name of the public profile.
#[serde(rename="displayName")]
pub display_name: Option<String>,
/// The URL to the main display image of the public profile. Being deprecated.
#[serde(rename="displayImageUrl")]
pub display_image_url: Option<String>,
/// The ID which can be used to retrieve more details about the public profile.
pub id: Option<String>,
/// The URL of the public profile.
pub url: Option<String>,
}
impl client::Part for PublicProfile {}
/// Common data that is in each API response.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ResponseMetadata {
/// Debug information about this request.
#[serde(rename="debugInfo")]
pub debug_info: Option<DebugInfo>,
}
impl client::Part for ResponseMetadata {}
/// <a href="https://www.google.com/recaptcha/">reCaptcha</a> challenge info.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct RecaptchaChallenge {
/// The ID of the reCaptcha challenge.
pub id: Option<String>,
/// The response to the reCaptcha challenge.
pub response: Option<String>,
}
impl client::Part for RecaptchaChallenge {}
/// Available Offers to be distributed.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct AvailableOffer {
/// Level of this offer.
#[serde(rename="offerLevel")]
pub offer_level: Option<String>,
/// Name of the offer.
pub name: Option<String>,
/// ID of this offer.
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub id: Option<i64>,
/// Whether or not the list of qualified customers is definitely complete.
#[serde(rename="qualifiedCustomersComplete")]
pub qualified_customers_complete: Option<bool>,
/// Offer info by country.
#[serde(rename="countryOfferInfos")]
pub country_offer_infos: Option<Vec<CountryOfferInfo>>,
/// Type of offer.
#[serde(rename="offerType")]
pub offer_type: Option<String>,
/// The maximum age of an account [in days] to be eligible.
#[serde(rename="maxAccountAge")]
pub max_account_age: Option<i32>,
/// Customers who qualify for this offer.
#[serde(rename="qualifiedCustomer")]
pub qualified_customer: Option<Vec<OfferCustomer>>,
/// Terms of the offer.
pub terms: Option<String>,
/// Should special text be shown on the offers page.
#[serde(rename="showSpecialOfferCopy")]
pub show_special_offer_copy: Option<bool>,
/// The number of codes for this offer that are available for distribution.
pub available: Option<i32>,
/// Description of the offer.
pub description: Option<String>,
}
impl client::Part for AvailableOffer {}
/// An object representing a latitude/longitude pair. This is expressed as a pair
/// of doubles representing degrees latitude and degrees longitude. Unless
/// specified otherwise, this must conform to the
/// <a href="http://www.unoosa.org/pdf/icg/2012/template/WGS_84.pdf">WGS84
/// standard</a>. Values must be within normalized ranges.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LatLng {
/// The latitude in degrees. It must be in the range [-90.0, +90.0].
pub latitude: Option<f64>,
/// The longitude in degrees. It must be in the range [-180.0, +180.0].
pub longitude: Option<f64>,
}
impl client::Part for LatLng {}
/// Represents an amount of money with its currency type.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Money {
/// The 3-letter currency code defined in ISO 4217.
#[serde(rename="currencyCode")]
pub currency_code: Option<String>,
/// Number of nano (10^-9) units of the amount.
/// The value must be between -999,999,999 and +999,999,999 inclusive.
/// If `units` is positive, `nanos` must be positive or zero.
/// If `units` is zero, `nanos` can be positive, zero, or negative.
/// If `units` is negative, `nanos` must be negative or zero.
/// For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
pub nanos: Option<i32>,
/// The whole units of the amount.
/// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub units: Option<i64>,
}
impl client::Part for Money {}
/// Analytics aggregated data for a `Company` for a given date range.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct AnalyticsSummary {
/// Aggregated number of profile views for the `Company` for given date range.
#[serde(rename="profileViewsCount")]
pub profile_views_count: Option<i32>,
/// Aggregated number of times users saw the `Company`
/// in Google Partners Search results for given date range.
#[serde(rename="searchViewsCount")]
pub search_views_count: Option<i32>,
/// Aggregated number of times users contacted the `Company`
/// for given date range.
#[serde(rename="contactsCount")]
pub contacts_count: Option<i32>,
}
impl client::Part for AnalyticsSummary {}
/// Request message for
/// LogClientMessage.
///
/// # 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*).
///
/// * [log client messages](ClientMessageLogCall) (request)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct LogMessageRequest {
/// Map of client info, such as URL, browser navigator, browser platform, etc.
#[serde(rename="clientInfo")]
pub client_info: Option<HashMap<String, String>>,
/// Current request metadata.
#[serde(rename="requestMetadata")]
pub request_metadata: Option<RequestMetadata>,
/// Message level of client message.
pub level: Option<String>,
/// Details about the client message.
pub details: Option<String>,
}
impl client::RequestValue for LogMessageRequest {}
/// A lead resource that represents an advertiser contact for a `Company`. These
/// are usually generated via Google Partner Search (the advertiser portal).
///
/// # 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*).
///
/// * [list leads](LeadListCall) (none)
/// * [update leads](MethodUpdateLeadCall) (request|response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Lead {
/// The minimum monthly budget lead source is willing to spend.
#[serde(rename="minMonthlyBudget")]
pub min_monthly_budget: Option<Money>,
/// First name of lead source.
#[serde(rename="givenName")]
pub given_name: Option<String>,
/// Language code of the lead's language preference, as defined by
/// <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
/// (IETF BCP 47, "Tags for Identifying Languages").
#[serde(rename="languageCode")]
pub language_code: Option<String>,
/// Website URL of lead source.
#[serde(rename="websiteUrl")]
pub website_url: Option<String>,
/// The lead's state in relation to the company.
pub state: Option<String>,
/// List of reasons for using Google Partner Search and creating a lead.
#[serde(rename="gpsMotivations")]
pub gps_motivations: Option<Vec<String>>,
/// Email address of lead source.
pub email: Option<String>,
/// Last name of lead source.
#[serde(rename="familyName")]
pub family_name: Option<String>,
/// ID of the lead.
pub id: Option<String>,
/// Comments lead source gave.
pub comments: Option<String>,
/// Phone number of lead source.
#[serde(rename="phoneNumber")]
pub phone_number: Option<String>,
/// The AdWords Customer ID of the lead.
#[serde(rename="adwordsCustomerId")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub adwords_customer_id: Option<i64>,
/// Timestamp of when this lead was created.
#[serde(rename="createTime")]
pub create_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// Whether or not the lead signed up for marketing emails
#[serde(rename="marketingOptIn")]
pub marketing_opt_in: Option<bool>,
/// Type of lead.
#[serde(rename="type")]
pub type_: Option<String>,
}
impl client::RequestValue for Lead {}
impl client::Resource for Lead {}
impl client::ResponseResult for Lead {}
/// Debug information about this request.
///
/// This type is not used in any activity, and only used as *part* of another schema.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct DebugInfo {
/// Info about the server that serviced this request.
#[serde(rename="serverInfo")]
pub server_info: Option<String>,
/// Server-side debug stack trace.
#[serde(rename="serverTraceInfo")]
pub server_trace_info: Option<String>,
/// URL of the service that handled this request.
#[serde(rename="serviceUrl")]
pub service_url: Option<String>,
}
impl client::Part for DebugInfo {}
/// Response message for
/// ListUserStates.
///
/// # 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*).
///
/// * [list user states](UserStateListCall) (response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct ListUserStatesResponse {
/// Current response metadata.
#[serde(rename="responseMetadata")]
pub response_metadata: Option<ResponseMetadata>,
/// User's states.
#[serde(rename="userStates")]
pub user_states: Option<Vec<String>>,
}
impl client::ResponseResult for ListUserStatesResponse {}
/// A CompanyRelation resource representing information about a user's
/// affiliation and standing with a company in Partners.
///
/// # 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*).
///
/// * [create company relation users](UserCreateCompanyRelationCall) (request|response)
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct CompanyRelation {
/// Indicates if the user is an admin for this company.
#[serde(rename="companyAdmin")]
pub company_admin: Option<bool>,
/// The primary address for this company.
pub address: Option<String>,
/// The flag that indicates if the company is pending verification.
#[serde(rename="isPending")]
pub is_pending: Option<bool>,
/// The timestamp of when affiliation was requested.
/// @OutputOnly
#[serde(rename="creationTime")]
pub creation_time: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
/// The primary location of the company.
#[serde(rename="primaryAddress")]
pub primary_address: Option<Location>,
/// The state of relationship, in terms of approvals.
pub state: Option<String>,
/// The name (in the company's primary language) for the company.
pub name: Option<String>,
/// The AdWords manager account # associated this company.
#[serde(rename="managerAccount")]
#[serde_as(as = "Option<::client::serde_with::DisplayFromStr>")]
pub manager_account: Option<i64>,
/// The segment the company is classified as.
pub segment: Option<Vec<String>>,
/// The internal company ID.
/// Only available for a whitelisted set of api clients.
#[serde(rename="internalCompanyId")]
pub internal_company_id: Option<String>,
/// Whether the company is a Partner.
#[serde(rename="badgeTier")]
pub badge_tier: Option<String>,
/// The list of Google Partners specialization statuses for the company.
#[serde(rename="specializationStatus")]
pub specialization_status: Option<Vec<SpecializationStatus>>,
/// The phone number for the company's primary address.
#[serde(rename="phoneNumber")]
pub phone_number: Option<String>,
/// The website URL for this company.
pub website: Option<String>,
/// The primary country code of the company.
#[serde(rename="primaryCountryCode")]
pub primary_country_code: Option<String>,
/// The ID of the company. There may be no id if this is a
/// pending company.5
#[serde(rename="companyId")]
pub company_id: Option<String>,
/// The primary language code of the company.
#[serde(rename="primaryLanguageCode")]
pub primary_language_code: Option<String>,
/// A URL to a profile photo, e.g. a G+ profile photo.
#[serde(rename="logoUrl")]
pub logo_url: Option<String>,
/// The timestamp when the user was approved.
/// @OutputOnly
#[serde(rename="resolvedTimestamp")]
pub resolved_timestamp: Option<client::chrono::DateTime<client::chrono::offset::Utc>>,
}
impl client::RequestValue for CompanyRelation {}
impl client::ResponseResult for CompanyRelation {}
/// 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.
///
#[serde_with::serde_as(crate = "::client::serde_with")]
#[derive(Default, Clone, Debug, Serialize, Deserialize)]
pub struct Date {
/// Year of date. Must be from 1 to 9999, or 0 if specifying a date without
/// a year.
pub year: 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>,
/// Month of year. Must be from 1 to 12, or 0 if specifying a year without a
/// month and day.
pub month: Option<i32>,
}
impl client::Part for Date {}
// ###################
// MethodBuilders ###
// #################
/// A builder providing access to all methods supported on *userEvent* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `log(...)`
/// // to build up your call.
/// let rb = hub.user_events();
/// # }
/// ```
pub struct UserEventMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for UserEventMethods<'a, S> {}
impl<'a, S> UserEventMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Logs a user event.
///
/// # Arguments
///
/// * `request` - No description provided.
pub fn log(&self, request: LogUserEventRequest) -> UserEventLogCall<'a, S> {
UserEventLogCall {
hub: self.hub,
_request: request,
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *clientMessage* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `log(...)`
/// // to build up your call.
/// let rb = hub.client_messages();
/// # }
/// ```
pub struct ClientMessageMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for ClientMessageMethods<'a, S> {}
impl<'a, S> ClientMessageMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Logs a generic message from the client, such as
/// `Failed to render component`, `Profile page is running slow`,
/// `More than 500 users have accessed this result.`, etc.
///
/// # Arguments
///
/// * `request` - No description provided.
pub fn log(&self, request: LogMessageRequest) -> ClientMessageLogCall<'a, S> {
ClientMessageLogCall {
hub: self.hub,
_request: request,
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *lead* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `list(...)`
/// // to build up your call.
/// let rb = hub.leads();
/// # }
/// ```
pub struct LeadMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for LeadMethods<'a, S> {}
impl<'a, S> LeadMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Lists advertiser leads for a user's associated company.
/// Should only be called within the context of an authorized logged in user.
pub fn list(&self) -> LeadListCall<'a, S> {
LeadListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *offer* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `history_list(...)` and `list(...)`
/// // to build up your call.
/// let rb = hub.offers();
/// # }
/// ```
pub struct OfferMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for OfferMethods<'a, S> {}
impl<'a, S> OfferMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Lists the Historical Offers for the current user (or user's entire company)
pub fn history_list(&self) -> OfferHistoryListCall<'a, S> {
OfferHistoryListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_entire_company: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Lists the Offers available for the current user
pub fn list(&self) -> OfferListCall<'a, S> {
OfferListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *analytic* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `list(...)`
/// // to build up your call.
/// let rb = hub.analytics();
/// # }
/// ```
pub struct AnalyticMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for AnalyticMethods<'a, S> {}
impl<'a, S> AnalyticMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Lists analytics data for a user's associated company.
/// Should only be called within the context of an authorized logged in user.
pub fn list(&self) -> AnalyticListCall<'a, S> {
AnalyticListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *userState* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `list(...)`
/// // to build up your call.
/// let rb = hub.user_states();
/// # }
/// ```
pub struct UserStateMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for UserStateMethods<'a, S> {}
impl<'a, S> UserStateMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Lists states for current user.
pub fn list(&self) -> UserStateListCall<'a, S> {
UserStateListCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all free methods, which are not associated with a particular resource.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `get_partnersstatus(...)`, `update_companies(...)` and `update_leads(...)`
/// // to build up your call.
/// let rb = hub.methods();
/// # }
/// ```
pub struct MethodMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for MethodMethods<'a, S> {}
impl<'a, S> MethodMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Updates the specified lead.
///
/// # Arguments
///
/// * `request` - No description provided.
pub fn update_leads(&self, request: Lead) -> MethodUpdateLeadCall<'a, S> {
MethodUpdateLeadCall {
hub: self.hub,
_request: request,
_update_mask: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Update company.
/// Should only be called within the context of an authorized logged in user.
///
/// # Arguments
///
/// * `request` - No description provided.
pub fn update_companies(&self, request: Company) -> MethodUpdateCompanyCall<'a, S> {
MethodUpdateCompanyCall {
hub: self.hub,
_request: request,
_update_mask: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Gets Partners Status of the logged in user's agency.
/// Should only be called if the logged in user is the admin of the agency.
pub fn get_partnersstatus(&self) -> MethodGetPartnersstatuCall<'a, S> {
MethodGetPartnersstatuCall {
hub: self.hub,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *company* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `get(...)`, `leads_create(...)` and `list(...)`
/// // to build up your call.
/// let rb = hub.companies();
/// # }
/// ```
pub struct CompanyMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for CompanyMethods<'a, S> {}
impl<'a, S> CompanyMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Creates an advertiser lead for the given company ID.
///
/// # Arguments
///
/// * `request` - No description provided.
/// * `companyId` - The ID of the company to contact.
pub fn leads_create(&self, request: CreateLeadRequest, company_id: &str) -> CompanyLeadCreateCall<'a, S> {
CompanyLeadCreateCall {
hub: self.hub,
_request: request,
_company_id: company_id.to_string(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Gets a company.
///
/// # Arguments
///
/// * `companyId` - The ID of the company to retrieve.
pub fn get(&self, company_id: &str) -> CompanyGetCall<'a, S> {
CompanyGetCall {
hub: self.hub,
_company_id: company_id.to_string(),
_view: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_order_by: Default::default(),
_currency_code: Default::default(),
_address: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Lists companies.
pub fn list(&self) -> CompanyListCall<'a, S> {
CompanyListCall {
hub: self.hub,
_website_url: Default::default(),
_view: Default::default(),
_specializations: Default::default(),
_services: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_page_token: Default::default(),
_page_size: Default::default(),
_order_by: Default::default(),
_min_monthly_budget_units: Default::default(),
_min_monthly_budget_nanos: Default::default(),
_min_monthly_budget_currency_code: Default::default(),
_max_monthly_budget_units: Default::default(),
_max_monthly_budget_nanos: Default::default(),
_max_monthly_budget_currency_code: Default::default(),
_language_codes: Default::default(),
_industries: Default::default(),
_gps_motivations: Default::default(),
_company_name: Default::default(),
_address: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
/// A builder providing access to all methods supported on *user* resources.
/// It is not used directly, but through the [`Partners`] hub.
///
/// # Example
///
/// Instantiate a resource builder
///
/// ```test_harness,no_run
/// extern crate hyper;
/// extern crate hyper_rustls;
/// extern crate google_partners2 as partners2;
///
/// # async fn dox() {
/// use std::default::Default;
/// use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// let secret: oauth2::ApplicationSecret = Default::default();
/// let auth = oauth2::InstalledFlowAuthenticator::builder(
/// secret,
/// oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// ).build().await.unwrap();
/// let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), auth);
/// // Usually you wouldn't bind this to a variable, but keep calling *CallBuilders*
/// // like `create_company_relation(...)`, `delete_company_relation(...)`, `get(...)` and `update_profile(...)`
/// // to build up your call.
/// let rb = hub.users();
/// # }
/// ```
pub struct UserMethods<'a, S>
where S: 'a {
hub: &'a Partners<S>,
}
impl<'a, S> client::MethodsBuilder for UserMethods<'a, S> {}
impl<'a, S> UserMethods<'a, S> {
/// Create a builder to help you perform the following task:
///
/// Updates a user's profile. A user can only update their own profile and
/// should only be called within the context of a logged in user.
///
/// # Arguments
///
/// * `request` - No description provided.
pub fn update_profile(&self, request: UserProfile) -> UserUpdateProfileCall<'a, S> {
UserUpdateProfileCall {
hub: self.hub,
_request: request,
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Creates a user's company relation. Affiliates the user to a company.
///
/// # Arguments
///
/// * `request` - No description provided.
/// * `userId` - The ID of the user. Can be set to <code>me</code> to mean
/// the currently authenticated user.
pub fn create_company_relation(&self, request: CompanyRelation, user_id: &str) -> UserCreateCompanyRelationCall<'a, S> {
UserCreateCompanyRelationCall {
hub: self.hub,
_request: request,
_user_id: user_id.to_string(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Deletes a user's company relation. Unaffiliaites the user from a company.
///
/// # Arguments
///
/// * `userId` - The ID of the user. Can be set to <code>me</code> to mean
/// the currently authenticated user.
pub fn delete_company_relation(&self, user_id: &str) -> UserDeleteCompanyRelationCall<'a, S> {
UserDeleteCompanyRelationCall {
hub: self.hub,
_user_id: user_id.to_string(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
/// Create a builder to help you perform the following task:
///
/// Gets a user.
///
/// # Arguments
///
/// * `userId` - Identifier of the user. Can be set to <code>me</code> to mean the currently
/// authenticated user.
pub fn get(&self, user_id: &str) -> UserGetCall<'a, S> {
UserGetCall {
hub: self.hub,
_user_id: user_id.to_string(),
_user_view: Default::default(),
_request_metadata_user_overrides_user_id: Default::default(),
_request_metadata_user_overrides_ip_address: Default::default(),
_request_metadata_traffic_source_traffic_sub_id: Default::default(),
_request_metadata_traffic_source_traffic_source_id: Default::default(),
_request_metadata_partners_session_id: Default::default(),
_request_metadata_locale: Default::default(),
_request_metadata_experiment_ids: Default::default(),
_delegate: Default::default(),
_additional_params: Default::default(),
}
}
}
// ###################
// CallBuilders ###
// #################
/// Logs a user event.
///
/// A builder for the *log* method supported by a *userEvent* resource.
/// It is not used directly, but through a [`UserEventMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::LogUserEventRequest;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = LogUserEventRequest::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.user_events().log(req)
/// .doit().await;
/// # }
/// ```
pub struct UserEventLogCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: LogUserEventRequest,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserEventLogCall<'a, S> {}
impl<'a, S> UserEventLogCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, LogUserEventResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.userEvents.log",
http_method: hyper::Method::POST });
for &field in ["alt"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(3 + self._additional_params.len());
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/userEvents:log";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: LogUserEventRequest) -> UserEventLogCall<'a, S> {
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.
///
/// ````text
/// 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 client::Delegate) -> UserEventLogCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserEventLogCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Logs a generic message from the client, such as
/// `Failed to render component`, `Profile page is running slow`,
/// `More than 500 users have accessed this result.`, etc.
///
/// A builder for the *log* method supported by a *clientMessage* resource.
/// It is not used directly, but through a [`ClientMessageMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::LogMessageRequest;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = LogMessageRequest::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.client_messages().log(req)
/// .doit().await;
/// # }
/// ```
pub struct ClientMessageLogCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: LogMessageRequest,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for ClientMessageLogCall<'a, S> {}
impl<'a, S> ClientMessageLogCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, LogMessageResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.clientMessages.log",
http_method: hyper::Method::POST });
for &field in ["alt"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(3 + self._additional_params.len());
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/clientMessages:log";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: LogMessageRequest) -> ClientMessageLogCall<'a, S> {
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.
///
/// ````text
/// 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 client::Delegate) -> ClientMessageLogCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> ClientMessageLogCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists advertiser leads for a user's associated company.
/// Should only be called within the context of an authorized logged in user.
///
/// A builder for the *list* method supported by a *lead* resource.
/// It is not used directly, but through a [`LeadMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.leads().list()
/// .request_metadata_user_overrides_user_id("sed")
/// .request_metadata_user_overrides_ip_address("ut")
/// .request_metadata_traffic_source_traffic_sub_id("gubergren")
/// .request_metadata_traffic_source_traffic_source_id("rebum.")
/// .request_metadata_partners_session_id("est")
/// .request_metadata_locale("ipsum")
/// .add_request_metadata_experiment_ids("ipsum")
/// .page_token("est")
/// .page_size(-62)
/// .order_by("ea")
/// .doit().await;
/// # }
/// ```
pub struct LeadListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for LeadListCall<'a, S> {}
impl<'a, S> LeadListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListLeadsResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.leads.list",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds", "pageToken", "pageSize", "orderBy"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(12 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._request_metadata_experiment_ids.push(new_value.to_string());
self
}
/// A token identifying a page of results that the server returns.
/// Typically, this is the value of `ListLeadsResponse.next_page_token`
/// returned from the previous call to
/// ListLeads.
///
/// Sets the *page token* query property to the given value.
pub fn page_token(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._page_token = Some(new_value.to_string());
self
}
/// Requested page size. Server may return fewer leads than requested.
/// If unspecified, server picks an appropriate default.
///
/// Sets the *page size* query property to the given value.
pub fn page_size(mut self, new_value: i32) -> LeadListCall<'a, S> {
self._page_size = Some(new_value);
self
}
/// How to order Leads. Currently, only `create_time`
/// and `create_time desc` are supported
///
/// Sets the *order by* query property to the given value.
pub fn order_by(mut self, new_value: &str) -> LeadListCall<'a, S> {
self._order_by = 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.
///
/// ````text
/// 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 client::Delegate) -> LeadListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> LeadListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists the Historical Offers for the current user (or user's entire company)
///
/// A builder for the *history.list* method supported by a *offer* resource.
/// It is not used directly, but through a [`OfferMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.offers().history_list()
/// .request_metadata_user_overrides_user_id("dolor")
/// .request_metadata_user_overrides_ip_address("Lorem")
/// .request_metadata_traffic_source_traffic_sub_id("eos")
/// .request_metadata_traffic_source_traffic_source_id("labore")
/// .request_metadata_partners_session_id("sed")
/// .request_metadata_locale("duo")
/// .add_request_metadata_experiment_ids("sed")
/// .page_token("no")
/// .page_size(-15)
/// .order_by("kasd")
/// .entire_company(true)
/// .doit().await;
/// # }
/// ```
pub struct OfferHistoryListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_entire_company: Option<bool>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for OfferHistoryListCall<'a, S> {}
impl<'a, S> OfferHistoryListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListOffersHistoryResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.offers.history.list",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds", "pageToken", "pageSize", "orderBy", "entireCompany"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(13 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._entire_company.as_ref() {
params.push("entireCompany", value.to_string());
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/offers/history";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._request_metadata_experiment_ids.push(new_value.to_string());
self
}
/// Token to retrieve a specific page.
///
/// Sets the *page token* query property to the given value.
pub fn page_token(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._page_token = Some(new_value.to_string());
self
}
/// Maximum number of rows to return per page.
///
/// Sets the *page size* query property to the given value.
pub fn page_size(mut self, new_value: i32) -> OfferHistoryListCall<'a, S> {
self._page_size = Some(new_value);
self
}
/// Comma-separated list of fields to order by, e.g.: "foo,bar,baz".
/// Use "foo desc" to sort descending.
/// List of valid field names is: name, offer_code, expiration_time, status,
/// last_modified_time, sender_name, creation_time, country_code,
/// offer_type.
///
/// Sets the *order by* query property to the given value.
pub fn order_by(mut self, new_value: &str) -> OfferHistoryListCall<'a, S> {
self._order_by = Some(new_value.to_string());
self
}
/// if true, show history for the entire company. Requires user to be admin.
///
/// Sets the *entire company* query property to the given value.
pub fn entire_company(mut self, new_value: bool) -> OfferHistoryListCall<'a, S> {
self._entire_company = Some(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.
///
/// ````text
/// 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 client::Delegate) -> OfferHistoryListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> OfferHistoryListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists the Offers available for the current user
///
/// A builder for the *list* method supported by a *offer* resource.
/// It is not used directly, but through a [`OfferMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.offers().list()
/// .request_metadata_user_overrides_user_id("et")
/// .request_metadata_user_overrides_ip_address("et")
/// .request_metadata_traffic_source_traffic_sub_id("vero")
/// .request_metadata_traffic_source_traffic_source_id("erat")
/// .request_metadata_partners_session_id("sed")
/// .request_metadata_locale("duo")
/// .add_request_metadata_experiment_ids("dolore")
/// .doit().await;
/// # }
/// ```
pub struct OfferListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for OfferListCall<'a, S> {}
impl<'a, S> OfferListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListOffersResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.offers.list",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/offers";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> OfferListCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> OfferListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> OfferListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists analytics data for a user's associated company.
/// Should only be called within the context of an authorized logged in user.
///
/// A builder for the *list* method supported by a *analytic* resource.
/// It is not used directly, but through a [`AnalyticMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.analytics().list()
/// .request_metadata_user_overrides_user_id("et")
/// .request_metadata_user_overrides_ip_address("voluptua.")
/// .request_metadata_traffic_source_traffic_sub_id("amet.")
/// .request_metadata_traffic_source_traffic_source_id("consetetur")
/// .request_metadata_partners_session_id("diam")
/// .request_metadata_locale("dolor")
/// .add_request_metadata_experiment_ids("et")
/// .page_token("et")
/// .page_size(-95)
/// .doit().await;
/// # }
/// ```
pub struct AnalyticListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for AnalyticListCall<'a, S> {}
impl<'a, S> AnalyticListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListAnalyticsResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.analytics.list",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds", "pageToken", "pageSize"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/analytics";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._request_metadata_experiment_ids.push(new_value.to_string());
self
}
/// A token identifying a page of results that the server returns.
/// Typically, this is the value of `ListAnalyticsResponse.next_page_token`
/// returned from the previous call to
/// ListAnalytics.
/// Will be a date string in `YYYY-MM-DD` format representing the end date
/// of the date range of results to return.
/// If unspecified or set to "", default value is the current date.
///
/// Sets the *page token* query property to the given value.
pub fn page_token(mut self, new_value: &str) -> AnalyticListCall<'a, S> {
self._page_token = Some(new_value.to_string());
self
}
/// Requested page size. Server may return fewer analytics than requested.
/// If unspecified or set to 0, default value is 30.
/// Specifies the number of days in the date range when querying analytics.
/// The `page_token` represents the end date of the date range
/// and the start date is calculated using the `page_size` as the number
/// of days BEFORE the end date.
/// Must be a non-negative integer.
///
/// Sets the *page size* query property to the given value.
pub fn page_size(mut self, new_value: i32) -> AnalyticListCall<'a, S> {
self._page_size = Some(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.
///
/// ````text
/// 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 client::Delegate) -> AnalyticListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> AnalyticListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists states for current user.
///
/// A builder for the *list* method supported by a *userState* resource.
/// It is not used directly, but through a [`UserStateMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.user_states().list()
/// .request_metadata_user_overrides_user_id("Stet")
/// .request_metadata_user_overrides_ip_address("dolor")
/// .request_metadata_traffic_source_traffic_sub_id("duo")
/// .request_metadata_traffic_source_traffic_source_id("vero")
/// .request_metadata_partners_session_id("vero")
/// .request_metadata_locale("invidunt")
/// .add_request_metadata_experiment_ids("Stet")
/// .doit().await;
/// # }
/// ```
pub struct UserStateListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserStateListCall<'a, S> {}
impl<'a, S> UserStateListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListUserStatesResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.userStates.list",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/userStates";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserStateListCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> UserStateListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserStateListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Updates the specified lead.
///
/// A builder for the *updateLeads* method.
/// It is not used directly, but through a [`MethodMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::Lead;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = Lead::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.methods().update_leads(req)
/// .update_mask(&Default::default())
/// .request_metadata_user_overrides_user_id("vero")
/// .request_metadata_user_overrides_ip_address("elitr")
/// .request_metadata_traffic_source_traffic_sub_id("Lorem")
/// .request_metadata_traffic_source_traffic_source_id("diam")
/// .request_metadata_partners_session_id("no")
/// .request_metadata_locale("ipsum")
/// .add_request_metadata_experiment_ids("accusam")
/// .doit().await;
/// # }
/// ```
pub struct MethodUpdateLeadCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: Lead,
_update_mask: Option<client::FieldMask>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for MethodUpdateLeadCall<'a, S> {}
impl<'a, S> MethodUpdateLeadCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, Lead)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.updateLeads",
http_method: hyper::Method::PATCH });
for &field in ["alt", "updateMask", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._update_mask.as_ref() {
params.push("updateMask", value.to_string());
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: Lead) -> MethodUpdateLeadCall<'a, S> {
self._request = new_value;
self
}
/// Standard field mask for the set of fields to be updated.
/// Required with at least 1 value in FieldMask's paths.
/// Only `state` and `adwords_customer_id` are currently supported.
///
/// Sets the *update mask* query property to the given value.
pub fn update_mask(mut self, new_value: client::FieldMask) -> MethodUpdateLeadCall<'a, S> {
self._update_mask = Some(new_value);
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> MethodUpdateLeadCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> MethodUpdateLeadCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> MethodUpdateLeadCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Update company.
/// Should only be called within the context of an authorized logged in user.
///
/// A builder for the *updateCompanies* method.
/// It is not used directly, but through a [`MethodMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::Company;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = Company::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.methods().update_companies(req)
/// .update_mask(&Default::default())
/// .request_metadata_user_overrides_user_id("takimata")
/// .request_metadata_user_overrides_ip_address("consetetur")
/// .request_metadata_traffic_source_traffic_sub_id("voluptua.")
/// .request_metadata_traffic_source_traffic_source_id("et")
/// .request_metadata_partners_session_id("erat")
/// .request_metadata_locale("consetetur")
/// .add_request_metadata_experiment_ids("amet.")
/// .doit().await;
/// # }
/// ```
pub struct MethodUpdateCompanyCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: Company,
_update_mask: Option<client::FieldMask>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for MethodUpdateCompanyCall<'a, S> {}
impl<'a, S> MethodUpdateCompanyCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, Company)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.updateCompanies",
http_method: hyper::Method::PATCH });
for &field in ["alt", "updateMask", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
if let Some(value) = self._update_mask.as_ref() {
params.push("updateMask", value.to_string());
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: Company) -> MethodUpdateCompanyCall<'a, S> {
self._request = new_value;
self
}
/// Standard field mask for the set of fields to be updated.
/// Required with at least 1 value in FieldMask's paths.
///
/// Sets the *update mask* query property to the given value.
pub fn update_mask(mut self, new_value: client::FieldMask) -> MethodUpdateCompanyCall<'a, S> {
self._update_mask = Some(new_value);
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> MethodUpdateCompanyCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> MethodUpdateCompanyCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> MethodUpdateCompanyCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Gets Partners Status of the logged in user's agency.
/// Should only be called if the logged in user is the admin of the agency.
///
/// A builder for the *getPartnersstatus* method.
/// It is not used directly, but through a [`MethodMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.methods().get_partnersstatus()
/// .request_metadata_user_overrides_user_id("sed")
/// .request_metadata_user_overrides_ip_address("takimata")
/// .request_metadata_traffic_source_traffic_sub_id("dolores")
/// .request_metadata_traffic_source_traffic_source_id("gubergren")
/// .request_metadata_partners_session_id("et")
/// .request_metadata_locale("accusam")
/// .add_request_metadata_experiment_ids("voluptua.")
/// .doit().await;
/// # }
/// ```
pub struct MethodGetPartnersstatuCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for MethodGetPartnersstatuCall<'a, S> {}
impl<'a, S> MethodGetPartnersstatuCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, GetPartnersStatusResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.getPartnersstatus",
http_method: hyper::Method::GET });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(9 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/partnersstatus";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> MethodGetPartnersstatuCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> MethodGetPartnersstatuCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> MethodGetPartnersstatuCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Creates an advertiser lead for the given company ID.
///
/// A builder for the *leads.create* method supported by a *company* resource.
/// It is not used directly, but through a [`CompanyMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::CreateLeadRequest;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = CreateLeadRequest::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.companies().leads_create(req, "companyId")
/// .doit().await;
/// # }
/// ```
pub struct CompanyLeadCreateCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: CreateLeadRequest,
_company_id: String,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for CompanyLeadCreateCall<'a, S> {}
impl<'a, S> CompanyLeadCreateCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, CreateLeadResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.companies.leads.create",
http_method: hyper::Method::POST });
for &field in ["alt", "companyId"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(4 + self._additional_params.len());
params.push("companyId", self._company_id);
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies/{companyId}/leads";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
for &(find_this, param_name) in [("{companyId}", "companyId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["companyId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::POST)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: CreateLeadRequest) -> CompanyLeadCreateCall<'a, S> {
self._request = new_value;
self
}
/// The ID of the company to contact.
///
/// Sets the *company 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 company_id(mut self, new_value: &str) -> CompanyLeadCreateCall<'a, S> {
self._company_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.
///
/// ````text
/// 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 client::Delegate) -> CompanyLeadCreateCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> CompanyLeadCreateCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Gets a company.
///
/// A builder for the *get* method supported by a *company* resource.
/// It is not used directly, but through a [`CompanyMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.companies().get("companyId")
/// .view("dolore")
/// .request_metadata_user_overrides_user_id("voluptua.")
/// .request_metadata_user_overrides_ip_address("amet.")
/// .request_metadata_traffic_source_traffic_sub_id("ea")
/// .request_metadata_traffic_source_traffic_source_id("sadipscing")
/// .request_metadata_partners_session_id("Lorem")
/// .request_metadata_locale("invidunt")
/// .add_request_metadata_experiment_ids("no")
/// .order_by("est")
/// .currency_code("At")
/// .address("sed")
/// .doit().await;
/// # }
/// ```
pub struct CompanyGetCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_company_id: String,
_view: Option<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_order_by: Option<String>,
_currency_code: Option<String>,
_address: Option<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for CompanyGetCall<'a, S> {}
impl<'a, S> CompanyGetCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, GetCompanyResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.companies.get",
http_method: hyper::Method::GET });
for &field in ["alt", "companyId", "view", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds", "orderBy", "currencyCode", "address"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(14 + self._additional_params.len());
params.push("companyId", self._company_id);
if let Some(value) = self._view.as_ref() {
params.push("view", value);
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._currency_code.as_ref() {
params.push("currencyCode", value);
}
if let Some(value) = self._address.as_ref() {
params.push("address", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies/{companyId}";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
for &(find_this, param_name) in [("{companyId}", "companyId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["companyId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// The ID of the company to retrieve.
///
/// Sets the *company 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 company_id(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._company_id = new_value.to_string();
self
}
/// The view of `Company` resource to be returned. This must not be
/// `COMPANY_VIEW_UNSPECIFIED`.
///
/// Sets the *view* query property to the given value.
pub fn view(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._view = Some(new_value.to_string());
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._request_metadata_experiment_ids.push(new_value.to_string());
self
}
/// How to order addresses within the returned company. Currently, only
/// `address` and `address desc` is supported which will sorted by closest to
/// farthest in distance from given address and farthest to closest distance
/// from given address respectively.
///
/// Sets the *order by* query property to the given value.
pub fn order_by(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._order_by = Some(new_value.to_string());
self
}
/// If the company's budget is in a different currency code than this one, then
/// the converted budget is converted to this currency code.
///
/// Sets the *currency code* query property to the given value.
pub fn currency_code(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._currency_code = Some(new_value.to_string());
self
}
/// The address to use for sorting the company's addresses by proximity.
/// If not given, the geo-located address of the request is used.
/// Used when order_by is set.
///
/// Sets the *address* query property to the given value.
pub fn address(mut self, new_value: &str) -> CompanyGetCall<'a, S> {
self._address = 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.
///
/// ````text
/// 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 client::Delegate) -> CompanyGetCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> CompanyGetCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Lists companies.
///
/// A builder for the *list* method supported by a *company* resource.
/// It is not used directly, but through a [`CompanyMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.companies().list()
/// .website_url("sit")
/// .view("et")
/// .add_specializations("tempor")
/// .add_services("aliquyam")
/// .request_metadata_user_overrides_user_id("ipsum")
/// .request_metadata_user_overrides_ip_address("et")
/// .request_metadata_traffic_source_traffic_sub_id("sanctus")
/// .request_metadata_traffic_source_traffic_source_id("Lorem")
/// .request_metadata_partners_session_id("est")
/// .request_metadata_locale("sed")
/// .add_request_metadata_experiment_ids("diam")
/// .page_token("dolores")
/// .page_size(-69)
/// .order_by("et")
/// .min_monthly_budget_units(-93)
/// .min_monthly_budget_nanos(-11)
/// .min_monthly_budget_currency_code("et")
/// .max_monthly_budget_units(-94)
/// .max_monthly_budget_nanos(-80)
/// .max_monthly_budget_currency_code("no")
/// .add_language_codes("nonumy")
/// .add_industries("At")
/// .add_gps_motivations("sadipscing")
/// .company_name("aliquyam")
/// .address("dolores")
/// .doit().await;
/// # }
/// ```
pub struct CompanyListCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_website_url: Option<String>,
_view: Option<String>,
_specializations: Vec<String>,
_services: Vec<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_page_token: Option<String>,
_page_size: Option<i32>,
_order_by: Option<String>,
_min_monthly_budget_units: Option<i64>,
_min_monthly_budget_nanos: Option<i32>,
_min_monthly_budget_currency_code: Option<String>,
_max_monthly_budget_units: Option<i64>,
_max_monthly_budget_nanos: Option<i32>,
_max_monthly_budget_currency_code: Option<String>,
_language_codes: Vec<String>,
_industries: Vec<String>,
_gps_motivations: Vec<String>,
_company_name: Option<String>,
_address: Option<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for CompanyListCall<'a, S> {}
impl<'a, S> CompanyListCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, ListCompaniesResponse)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.companies.list",
http_method: hyper::Method::GET });
for &field in ["alt", "websiteUrl", "view", "specializations", "services", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds", "pageToken", "pageSize", "orderBy", "minMonthlyBudget.units", "minMonthlyBudget.nanos", "minMonthlyBudget.currencyCode", "maxMonthlyBudget.units", "maxMonthlyBudget.nanos", "maxMonthlyBudget.currencyCode", "languageCodes", "industries", "gpsMotivations", "companyName", "address"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(27 + self._additional_params.len());
if let Some(value) = self._website_url.as_ref() {
params.push("websiteUrl", value);
}
if let Some(value) = self._view.as_ref() {
params.push("view", value);
}
if self._specializations.len() > 0 {
for f in self._specializations.iter() {
params.push("specializations", f);
}
}
if self._services.len() > 0 {
for f in self._services.iter() {
params.push("services", f);
}
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
if let Some(value) = self._page_token.as_ref() {
params.push("pageToken", value);
}
if let Some(value) = self._page_size.as_ref() {
params.push("pageSize", value.to_string());
}
if let Some(value) = self._order_by.as_ref() {
params.push("orderBy", value);
}
if let Some(value) = self._min_monthly_budget_units.as_ref() {
params.push("minMonthlyBudget.units", value.to_string());
}
if let Some(value) = self._min_monthly_budget_nanos.as_ref() {
params.push("minMonthlyBudget.nanos", value.to_string());
}
if let Some(value) = self._min_monthly_budget_currency_code.as_ref() {
params.push("minMonthlyBudget.currencyCode", value);
}
if let Some(value) = self._max_monthly_budget_units.as_ref() {
params.push("maxMonthlyBudget.units", value.to_string());
}
if let Some(value) = self._max_monthly_budget_nanos.as_ref() {
params.push("maxMonthlyBudget.nanos", value.to_string());
}
if let Some(value) = self._max_monthly_budget_currency_code.as_ref() {
params.push("maxMonthlyBudget.currencyCode", value);
}
if self._language_codes.len() > 0 {
for f in self._language_codes.iter() {
params.push("languageCodes", f);
}
}
if self._industries.len() > 0 {
for f in self._industries.iter() {
params.push("industries", f);
}
}
if self._gps_motivations.len() > 0 {
for f in self._gps_motivations.iter() {
params.push("gpsMotivations", f);
}
}
if let Some(value) = self._company_name.as_ref() {
params.push("companyName", value);
}
if let Some(value) = self._address.as_ref() {
params.push("address", value);
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/companies";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Website URL that will help to find a better matched company.
/// .
///
/// Sets the *website url* query property to the given value.
pub fn website_url(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._website_url = Some(new_value.to_string());
self
}
/// The view of the `Company` resource to be returned. This must not be
/// `COMPANY_VIEW_UNSPECIFIED`.
///
/// Sets the *view* query property to the given value.
pub fn view(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._view = Some(new_value.to_string());
self
}
/// List of specializations that the returned agencies should provide. If this
/// is not empty, any returned agency must have at least one of these
/// specializations, or one of the services in the "services" field.
///
/// Append the given value to the *specializations* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_specializations(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._specializations.push(new_value.to_string());
self
}
/// List of services that the returned agencies should provide. If this is
/// not empty, any returned agency must have at least one of these services,
/// or one of the specializations in the "specializations" field.
///
/// Append the given value to the *services* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_services(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._services.push(new_value.to_string());
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._request_metadata_experiment_ids.push(new_value.to_string());
self
}
/// A token identifying a page of results that the server returns.
/// Typically, this is the value of `ListCompaniesResponse.next_page_token`
/// returned from the previous call to
/// ListCompanies.
///
/// Sets the *page token* query property to the given value.
pub fn page_token(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._page_token = Some(new_value.to_string());
self
}
/// Requested page size. Server may return fewer companies than requested.
/// If unspecified, server picks an appropriate default.
///
/// Sets the *page size* query property to the given value.
pub fn page_size(mut self, new_value: i32) -> CompanyListCall<'a, S> {
self._page_size = Some(new_value);
self
}
/// How to order addresses within the returned companies. Currently, only
/// `address` and `address desc` is supported which will sorted by closest to
/// farthest in distance from given address and farthest to closest distance
/// from given address respectively.
///
/// Sets the *order by* query property to the given value.
pub fn order_by(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._order_by = Some(new_value.to_string());
self
}
/// The whole units of the amount.
/// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
///
/// Sets the *min monthly budget.units* query property to the given value.
pub fn min_monthly_budget_units(mut self, new_value: i64) -> CompanyListCall<'a, S> {
self._min_monthly_budget_units = Some(new_value);
self
}
/// Number of nano (10^-9) units of the amount.
/// The value must be between -999,999,999 and +999,999,999 inclusive.
/// If `units` is positive, `nanos` must be positive or zero.
/// If `units` is zero, `nanos` can be positive, zero, or negative.
/// If `units` is negative, `nanos` must be negative or zero.
/// For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
///
/// Sets the *min monthly budget.nanos* query property to the given value.
pub fn min_monthly_budget_nanos(mut self, new_value: i32) -> CompanyListCall<'a, S> {
self._min_monthly_budget_nanos = Some(new_value);
self
}
/// The 3-letter currency code defined in ISO 4217.
///
/// Sets the *min monthly budget.currency code* query property to the given value.
pub fn min_monthly_budget_currency_code(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._min_monthly_budget_currency_code = Some(new_value.to_string());
self
}
/// The whole units of the amount.
/// For example if `currencyCode` is `"USD"`, then 1 unit is one US dollar.
///
/// Sets the *max monthly budget.units* query property to the given value.
pub fn max_monthly_budget_units(mut self, new_value: i64) -> CompanyListCall<'a, S> {
self._max_monthly_budget_units = Some(new_value);
self
}
/// Number of nano (10^-9) units of the amount.
/// The value must be between -999,999,999 and +999,999,999 inclusive.
/// If `units` is positive, `nanos` must be positive or zero.
/// If `units` is zero, `nanos` can be positive, zero, or negative.
/// If `units` is negative, `nanos` must be negative or zero.
/// For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.
///
/// Sets the *max monthly budget.nanos* query property to the given value.
pub fn max_monthly_budget_nanos(mut self, new_value: i32) -> CompanyListCall<'a, S> {
self._max_monthly_budget_nanos = Some(new_value);
self
}
/// The 3-letter currency code defined in ISO 4217.
///
/// Sets the *max monthly budget.currency code* query property to the given value.
pub fn max_monthly_budget_currency_code(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._max_monthly_budget_currency_code = Some(new_value.to_string());
self
}
/// List of language codes that company can support. Only primary language
/// subtags are accepted as defined by
/// <a href="https://tools.ietf.org/html/bcp47">BCP 47</a>
/// (IETF BCP 47, "Tags for Identifying Languages").
///
/// Append the given value to the *language codes* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_language_codes(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._language_codes.push(new_value.to_string());
self
}
/// List of industries the company can help with.
///
/// Append the given value to the *industries* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_industries(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._industries.push(new_value.to_string());
self
}
/// List of reasons for using Google Partner Search to get companies.
///
/// Append the given value to the *gps motivations* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_gps_motivations(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._gps_motivations.push(new_value.to_string());
self
}
/// Company name to search for.
///
/// Sets the *company name* query property to the given value.
pub fn company_name(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._company_name = Some(new_value.to_string());
self
}
/// The address to use when searching for companies.
/// If not given, the geo-located address of the request is used.
///
/// Sets the *address* query property to the given value.
pub fn address(mut self, new_value: &str) -> CompanyListCall<'a, S> {
self._address = 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.
///
/// ````text
/// 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 client::Delegate) -> CompanyListCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> CompanyListCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Updates a user's profile. A user can only update their own profile and
/// should only be called within the context of a logged in user.
///
/// A builder for the *updateProfile* method supported by a *user* resource.
/// It is not used directly, but through a [`UserMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::UserProfile;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = UserProfile::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.users().update_profile(req)
/// .request_metadata_user_overrides_user_id("sadipscing")
/// .request_metadata_user_overrides_ip_address("erat")
/// .request_metadata_traffic_source_traffic_sub_id("aliquyam")
/// .request_metadata_traffic_source_traffic_source_id("amet")
/// .request_metadata_partners_session_id("est")
/// .request_metadata_locale("et")
/// .add_request_metadata_experiment_ids("sea")
/// .doit().await;
/// # }
/// ```
pub struct UserUpdateProfileCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: UserProfile,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserUpdateProfileCall<'a, S> {}
impl<'a, S> UserUpdateProfileCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, UserProfile)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.users.updateProfile",
http_method: hyper::Method::PATCH });
for &field in ["alt", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(10 + self._additional_params.len());
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/profile";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PATCH)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: UserProfile) -> UserUpdateProfileCall<'a, S> {
self._request = new_value;
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserUpdateProfileCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> UserUpdateProfileCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserUpdateProfileCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Creates a user's company relation. Affiliates the user to a company.
///
/// A builder for the *createCompanyRelation* method supported by a *user* resource.
/// It is not used directly, but through a [`UserMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// use partners2::api::CompanyRelation;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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 = CompanyRelation::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.users().create_company_relation(req, "userId")
/// .request_metadata_user_overrides_user_id("consetetur")
/// .request_metadata_user_overrides_ip_address("Stet")
/// .request_metadata_traffic_source_traffic_sub_id("est")
/// .request_metadata_traffic_source_traffic_source_id("aliquyam")
/// .request_metadata_partners_session_id("elitr")
/// .request_metadata_locale("duo")
/// .add_request_metadata_experiment_ids("diam")
/// .doit().await;
/// # }
/// ```
pub struct UserCreateCompanyRelationCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_request: CompanyRelation,
_user_id: String,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserCreateCompanyRelationCall<'a, S> {}
impl<'a, S> UserCreateCompanyRelationCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, CompanyRelation)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.users.createCompanyRelation",
http_method: hyper::Method::PUT });
for &field in ["alt", "userId", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}/companyRelation";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
let mut json_mime_type = mime::APPLICATION_JSON;
let mut request_value_reader =
{
let mut value = json::value::to_value(&self._request).expect("serde to work");
client::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 {
request_value_reader.seek(io::SeekFrom::Start(0)).unwrap();
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::PUT)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.header(CONTENT_TYPE, json_mime_type.to_string())
.header(CONTENT_LENGTH, request_size as u64)
.body(hyper::body::Body::from(request_value_reader.get_ref().clone()));
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, 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: CompanyRelation) -> UserCreateCompanyRelationCall<'a, S> {
self._request = new_value;
self
}
/// The ID of the user. Can be set to <code>me</code> to mean
/// the currently authenticated user.
///
/// Sets the *user 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 user_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._user_id = new_value.to_string();
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserCreateCompanyRelationCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> UserCreateCompanyRelationCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserCreateCompanyRelationCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Deletes a user's company relation. Unaffiliaites the user from a company.
///
/// A builder for the *deleteCompanyRelation* method supported by a *user* resource.
/// It is not used directly, but through a [`UserMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.users().delete_company_relation("userId")
/// .request_metadata_user_overrides_user_id("sit")
/// .request_metadata_user_overrides_ip_address("sed")
/// .request_metadata_traffic_source_traffic_sub_id("eos")
/// .request_metadata_traffic_source_traffic_source_id("Lorem")
/// .request_metadata_partners_session_id("ea")
/// .request_metadata_locale("Stet")
/// .add_request_metadata_experiment_ids("dolores")
/// .doit().await;
/// # }
/// ```
pub struct UserDeleteCompanyRelationCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_user_id: String,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserDeleteCompanyRelationCall<'a, S> {}
impl<'a, S> UserDeleteCompanyRelationCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, Empty)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.users.deleteCompanyRelation",
http_method: hyper::Method::DELETE });
for &field in ["alt", "userId", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(10 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}/companyRelation";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::DELETE)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// The ID of the user. Can be set to <code>me</code> to mean
/// the currently authenticated user.
///
/// Sets the *user 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 user_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._user_id = new_value.to_string();
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserDeleteCompanyRelationCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> UserDeleteCompanyRelationCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserDeleteCompanyRelationCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}
/// Gets a user.
///
/// A builder for the *get* method supported by a *user* resource.
/// It is not used directly, but through a [`UserMethods`] instance.
///
/// # Example
///
/// Instantiate a resource method builder
///
/// ```test_harness,no_run
/// # extern crate hyper;
/// # extern crate hyper_rustls;
/// # extern crate google_partners2 as partners2;
/// # async fn dox() {
/// # use std::default::Default;
/// # use partners2::{Partners, oauth2, hyper, hyper_rustls, chrono, FieldMask};
///
/// # let secret: oauth2::ApplicationSecret = Default::default();
/// # let auth = oauth2::InstalledFlowAuthenticator::builder(
/// # secret,
/// # oauth2::InstalledFlowReturnMethod::HTTPRedirect,
/// # ).build().await.unwrap();
/// # let mut hub = Partners::new(hyper::Client::builder().build(hyper_rustls::HttpsConnectorBuilder::new().with_native_roots().https_or_http().enable_http1().enable_http2().build()), 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.users().get("userId")
/// .user_view("et")
/// .request_metadata_user_overrides_user_id("sea")
/// .request_metadata_user_overrides_ip_address("et")
/// .request_metadata_traffic_source_traffic_sub_id("At")
/// .request_metadata_traffic_source_traffic_source_id("dolore")
/// .request_metadata_partners_session_id("eirmod")
/// .request_metadata_locale("Lorem")
/// .add_request_metadata_experiment_ids("accusam")
/// .doit().await;
/// # }
/// ```
pub struct UserGetCall<'a, S>
where S: 'a {
hub: &'a Partners<S>,
_user_id: String,
_user_view: Option<String>,
_request_metadata_user_overrides_user_id: Option<String>,
_request_metadata_user_overrides_ip_address: Option<String>,
_request_metadata_traffic_source_traffic_sub_id: Option<String>,
_request_metadata_traffic_source_traffic_source_id: Option<String>,
_request_metadata_partners_session_id: Option<String>,
_request_metadata_locale: Option<String>,
_request_metadata_experiment_ids: Vec<String>,
_delegate: Option<&'a mut dyn client::Delegate>,
_additional_params: HashMap<String, String>,
}
impl<'a, S> client::CallBuilder for UserGetCall<'a, S> {}
impl<'a, S> UserGetCall<'a, S>
where
S: tower_service::Service<http::Uri> + Clone + Send + Sync + 'static,
S::Response: hyper::client::connect::Connection + AsyncRead + AsyncWrite + Send + Unpin + 'static,
S::Future: Send + Unpin + 'static,
S::Error: Into<Box<dyn StdError + Send + Sync>>,
{
/// Perform the operation you have build so far.
pub async fn doit(mut self) -> client::Result<(hyper::Response<hyper::body::Body>, User)> {
use std::io::{Read, Seek};
use hyper::header::{CONTENT_TYPE, CONTENT_LENGTH, AUTHORIZATION, USER_AGENT, LOCATION};
use client::{ToParts, url::Params};
use std::borrow::Cow;
let mut dd = client::DefaultDelegate;
let mut dlg: &mut dyn client::Delegate = self._delegate.unwrap_or(&mut dd);
dlg.begin(client::MethodInfo { id: "partners.users.get",
http_method: hyper::Method::GET });
for &field in ["alt", "userId", "userView", "requestMetadata.userOverrides.userId", "requestMetadata.userOverrides.ipAddress", "requestMetadata.trafficSource.trafficSubId", "requestMetadata.trafficSource.trafficSourceId", "requestMetadata.partnersSessionId", "requestMetadata.locale", "requestMetadata.experimentIds"].iter() {
if self._additional_params.contains_key(field) {
dlg.finished(false);
return Err(client::Error::FieldClash(field));
}
}
let mut params = Params::with_capacity(11 + self._additional_params.len());
params.push("userId", self._user_id);
if let Some(value) = self._user_view.as_ref() {
params.push("userView", value);
}
if let Some(value) = self._request_metadata_user_overrides_user_id.as_ref() {
params.push("requestMetadata.userOverrides.userId", value);
}
if let Some(value) = self._request_metadata_user_overrides_ip_address.as_ref() {
params.push("requestMetadata.userOverrides.ipAddress", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_sub_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSubId", value);
}
if let Some(value) = self._request_metadata_traffic_source_traffic_source_id.as_ref() {
params.push("requestMetadata.trafficSource.trafficSourceId", value);
}
if let Some(value) = self._request_metadata_partners_session_id.as_ref() {
params.push("requestMetadata.partnersSessionId", value);
}
if let Some(value) = self._request_metadata_locale.as_ref() {
params.push("requestMetadata.locale", value);
}
if self._request_metadata_experiment_ids.len() > 0 {
for f in self._request_metadata_experiment_ids.iter() {
params.push("requestMetadata.experimentIds", f);
}
}
params.extend(self._additional_params.iter());
params.push("alt", "json");
let mut url = self.hub._base_url.clone() + "v2/users/{userId}";
match dlg.api_key() {
Some(value) => params.push("key", value),
None => {
dlg.finished(false);
return Err(client::Error::MissingAPIKey)
}
}
for &(find_this, param_name) in [("{userId}", "userId")].iter() {
url = params.uri_replacement(url, param_name, find_this, false);
}
{
let to_remove = ["userId"];
params.remove_params(&to_remove);
}
let url = params.parse_with_url(&url);
loop {
let mut req_result = {
let client = &self.hub.client;
dlg.pre_request();
let mut req_builder = hyper::Request::builder()
.method(hyper::Method::GET)
.uri(url.as_str())
.header(USER_AGENT, self.hub._user_agent.clone());
let request = req_builder
.body(hyper::body::Body::empty());
client.request(request.unwrap()).await
};
match req_result {
Err(err) => {
if let client::Retry::After(d) = dlg.http_error(&err) {
sleep(d).await;
continue;
}
dlg.finished(false);
return Err(client::Error::HttpError(err))
}
Ok(mut res) => {
if !res.status().is_success() {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
let (parts, _) = res.into_parts();
let body = hyper::Body::from(res_body_string.clone());
let restored_response = hyper::Response::from_parts(parts, body);
let server_response = json::from_str::<serde_json::Value>(&res_body_string).ok();
if let client::Retry::After(d) = dlg.http_failure(&restored_response, server_response.clone()) {
sleep(d).await;
continue;
}
dlg.finished(false);
return match server_response {
Some(error_value) => Err(client::Error::BadRequest(error_value)),
None => Err(client::Error::Failure(restored_response)),
}
}
let result_value = {
let res_body_string = client::get_body_as_string(res.body_mut()).await;
match json::from_str(&res_body_string) {
Ok(decoded) => (res, decoded),
Err(err) => {
dlg.response_json_decode_error(&res_body_string, &err);
return Err(client::Error::JsonDecodeError(res_body_string, err));
}
}
};
dlg.finished(true);
return Ok(result_value)
}
}
}
}
/// Identifier of the user. Can be set to <code>me</code> to mean the currently
/// authenticated user.
///
/// Sets the *user 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 user_id(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._user_id = new_value.to_string();
self
}
/// Specifies what parts of the user information to return.
///
/// Sets the *user view* query property to the given value.
pub fn user_view(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._user_view = Some(new_value.to_string());
self
}
/// Logged-in user ID to impersonate instead of the user's ID.
///
/// Sets the *request metadata.user overrides.user id* query property to the given value.
pub fn request_metadata_user_overrides_user_id(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_user_overrides_user_id = Some(new_value.to_string());
self
}
/// IP address to use instead of the user's geo-located IP address.
///
/// Sets the *request metadata.user overrides.ip address* query property to the given value.
pub fn request_metadata_user_overrides_ip_address(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_user_overrides_ip_address = Some(new_value.to_string());
self
}
/// Second level identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic sub id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_sub_id(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_traffic_source_traffic_sub_id = Some(new_value.to_string());
self
}
/// Identifier to indicate where the traffic comes from.
/// An identifier has multiple letters created by a team which redirected the
/// traffic to us.
///
/// Sets the *request metadata.traffic source.traffic source id* query property to the given value.
pub fn request_metadata_traffic_source_traffic_source_id(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_traffic_source_traffic_source_id = Some(new_value.to_string());
self
}
/// Google Partners session ID.
///
/// Sets the *request metadata.partners session id* query property to the given value.
pub fn request_metadata_partners_session_id(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_partners_session_id = Some(new_value.to_string());
self
}
/// Locale to use for the current request.
///
/// Sets the *request metadata.locale* query property to the given value.
pub fn request_metadata_locale(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_locale = Some(new_value.to_string());
self
}
/// Experiment IDs the current request belongs to.
///
/// Append the given value to the *request metadata.experiment ids* query property.
/// Each appended value will retain its original ordering and be '/'-separated in the URL's parameters.
pub fn add_request_metadata_experiment_ids(mut self, new_value: &str) -> UserGetCall<'a, S> {
self._request_metadata_experiment_ids.push(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.
///
/// ````text
/// 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 client::Delegate) -> UserGetCall<'a, S> {
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
///
/// * *alt* (query-string) - Data format for response.
/// * *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.
/// * *access_token* (query-string) - OAuth access token.
/// * *upload_protocol* (query-string) - Upload protocol for media (e.g. "raw", "multipart").
/// * *prettyPrint* (query-boolean) - Returns response with indentations and line breaks.
/// * *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.
/// * *uploadType* (query-string) - Legacy upload protocol for media (e.g. "media", "multipart").
/// * *fields* (query-string) - Selector specifying which fields to include in a partial response.
/// * *$.xgafv* (query-string) - V1 error format.
/// * *oauth_token* (query-string) - OAuth 2.0 token for the current user.
/// * *callback* (query-string) - JSONP
pub fn param<T>(mut self, name: T, value: T) -> UserGetCall<'a, S>
where T: AsRef<str> {
self._additional_params.insert(name.as_ref().to_string(), value.as_ref().to_string());
self
}
}