#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EduData {
#[prost(enumeration = "edu_data::InstituteType", tag = "1")]
pub institute_type: i32,
#[prost(enumeration = "edu_data::InstituteSize", tag = "2")]
pub institute_size: i32,
#[prost(string, tag = "3")]
pub website: ::prost::alloc::string::String,
}
pub mod edu_data {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InstituteType {
Unspecified = 0,
K12 = 1,
University = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum InstituteSize {
Unspecified = 0,
Size1100 = 1,
Size101500 = 2,
Size5011000 = 3,
Size10012000 = 4,
Size20015000 = 5,
Size500110000 = 6,
Size10001OrMore = 7,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CloudIdentityInfo {
#[prost(enumeration = "cloud_identity_info::CustomerType", tag = "1")]
pub customer_type: i32,
#[prost(string, tag = "9")]
pub primary_domain: ::prost::alloc::string::String,
#[prost(bool, tag = "4")]
pub is_domain_verified: bool,
#[prost(string, tag = "6")]
pub alternate_email: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub phone_number: ::prost::alloc::string::String,
#[prost(string, tag = "8")]
pub language_code: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub admin_console_uri: ::prost::alloc::string::String,
#[prost(message, optional, tag = "22")]
pub edu_data: ::core::option::Option<EduData>,
}
pub mod cloud_identity_info {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CustomerType {
Unspecified = 0,
Domain = 1,
Team = 2,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Value {
#[prost(oneof = "value::Kind", tags = "1, 2, 3, 4, 5")]
pub kind: ::core::option::Option<value::Kind>,
}
pub mod value {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Kind {
#[prost(int64, tag = "1")]
Int64Value(i64),
#[prost(string, tag = "2")]
StringValue(::prost::alloc::string::String),
#[prost(double, tag = "3")]
DoubleValue(f64),
#[prost(message, tag = "4")]
ProtoValue(::prost_types::Any),
#[prost(bool, tag = "5")]
BoolValue(bool),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AdminUser {
#[prost(string, tag = "1")]
pub email: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub given_name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub family_name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelPartnerLink {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub reseller_cloud_identity_id: ::prost::alloc::string::String,
#[prost(enumeration = "ChannelPartnerLinkState", tag = "3")]
pub link_state: i32,
#[prost(string, tag = "4")]
pub invite_link_uri: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "7")]
pub public_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "8")]
pub channel_partner_cloud_identity_info: ::core::option::Option<CloudIdentityInfo>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ChannelPartnerLinkView {
Unspecified = 0,
Basic = 1,
Full = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ChannelPartnerLinkState {
Unspecified = 0,
Invited = 1,
Active = 2,
Revoked = 3,
Suspended = 4,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Customer {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub org_display_name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub org_postal_address: ::core::option::Option<super::super::super::r#type::PostalAddress>,
#[prost(message, optional, tag = "4")]
pub primary_contact_info: ::core::option::Option<ContactInfo>,
#[prost(string, tag = "5")]
pub alternate_email: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub domain: ::prost::alloc::string::String,
#[prost(message, optional, tag = "7")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "8")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "9")]
pub cloud_identity_id: ::prost::alloc::string::String,
#[prost(string, tag = "10")]
pub language_code: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub cloud_identity_info: ::core::option::Option<CloudIdentityInfo>,
#[prost(string, tag = "13")]
pub channel_partner_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContactInfo {
#[prost(string, tag = "1")]
pub first_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub last_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub email: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub phone: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Product {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub marketing_info: ::core::option::Option<MarketingInfo>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Sku {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub marketing_info: ::core::option::Option<MarketingInfo>,
#[prost(message, optional, tag = "3")]
pub product: ::core::option::Option<Product>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarketingInfo {
#[prost(string, tag = "1")]
pub display_name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(message, optional, tag = "3")]
pub default_logo: ::core::option::Option<Media>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Media {
#[prost(string, tag = "1")]
pub title: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub content: ::prost::alloc::string::String,
#[prost(enumeration = "MediaType", tag = "3")]
pub r#type: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MediaType {
Unspecified = 0,
Image = 1,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Offer {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub marketing_info: ::core::option::Option<MarketingInfo>,
#[prost(message, optional, tag = "3")]
pub sku: ::core::option::Option<Sku>,
#[prost(message, optional, tag = "4")]
pub plan: ::core::option::Option<Plan>,
#[prost(message, optional, tag = "5")]
pub constraints: ::core::option::Option<Constraints>,
#[prost(message, repeated, tag = "6")]
pub price_by_resources: ::prost::alloc::vec::Vec<PriceByResource>,
#[prost(message, optional, tag = "7")]
pub start_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "8")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, repeated, tag = "9")]
pub parameter_definitions: ::prost::alloc::vec::Vec<ParameterDefinition>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParameterDefinition {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "parameter_definition::ParameterType", tag = "2")]
pub parameter_type: i32,
#[prost(message, optional, tag = "3")]
pub min_value: ::core::option::Option<Value>,
#[prost(message, optional, tag = "4")]
pub max_value: ::core::option::Option<Value>,
#[prost(message, repeated, tag = "5")]
pub allowed_values: ::prost::alloc::vec::Vec<Value>,
#[prost(bool, tag = "6")]
pub optional: bool,
}
pub mod parameter_definition {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ParameterType {
Unspecified = 0,
Int64 = 1,
String = 2,
Double = 3,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Constraints {
#[prost(message, optional, tag = "1")]
pub customer_constraints: ::core::option::Option<CustomerConstraints>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomerConstraints {
#[prost(string, repeated, tag = "1")]
pub allowed_regions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(enumeration = "cloud_identity_info::CustomerType", repeated, tag = "2")]
pub allowed_customer_types: ::prost::alloc::vec::Vec<i32>,
#[prost(enumeration = "PromotionalOrderType", repeated, tag = "3")]
pub promotional_order_types: ::prost::alloc::vec::Vec<i32>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Plan {
#[prost(enumeration = "PaymentPlan", tag = "1")]
pub payment_plan: i32,
#[prost(enumeration = "PaymentType", tag = "2")]
pub payment_type: i32,
#[prost(message, optional, tag = "3")]
pub payment_cycle: ::core::option::Option<Period>,
#[prost(message, optional, tag = "4")]
pub trial_period: ::core::option::Option<Period>,
#[prost(string, tag = "5")]
pub billing_account: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PriceByResource {
#[prost(enumeration = "ResourceType", tag = "1")]
pub resource_type: i32,
#[prost(message, optional, tag = "2")]
pub price: ::core::option::Option<Price>,
#[prost(message, repeated, tag = "3")]
pub price_phases: ::prost::alloc::vec::Vec<PricePhase>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Price {
#[prost(message, optional, tag = "1")]
pub base_price: ::core::option::Option<super::super::super::r#type::Money>,
#[prost(double, tag = "2")]
pub discount: f64,
#[prost(message, optional, tag = "3")]
pub effective_price: ::core::option::Option<super::super::super::r#type::Money>,
#[prost(string, tag = "4")]
pub external_price_uri: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PricePhase {
#[prost(enumeration = "PeriodType", tag = "1")]
pub period_type: i32,
#[prost(int32, tag = "2")]
pub first_period: i32,
#[prost(int32, tag = "3")]
pub last_period: i32,
#[prost(message, optional, tag = "4")]
pub price: ::core::option::Option<Price>,
#[prost(message, repeated, tag = "5")]
pub price_tiers: ::prost::alloc::vec::Vec<PriceTier>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PriceTier {
#[prost(int32, tag = "1")]
pub first_resource: i32,
#[prost(int32, tag = "2")]
pub last_resource: i32,
#[prost(message, optional, tag = "3")]
pub price: ::core::option::Option<Price>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Period {
#[prost(int32, tag = "1")]
pub duration: i32,
#[prost(enumeration = "PeriodType", tag = "2")]
pub period_type: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PromotionalOrderType {
PromotionalTypeUnspecified = 0,
NewUpgrade = 1,
Transfer = 2,
PromotionSwitch = 3,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PaymentPlan {
Unspecified = 0,
Commitment = 1,
Flexible = 2,
Free = 3,
Trial = 4,
Offline = 5,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PaymentType {
Unspecified = 0,
Prepay = 1,
Postpay = 2,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ResourceType {
Unspecified = 0,
Seat = 1,
Mau = 2,
Gb = 3,
LicensedUser = 4,
Minutes = 5,
IaasUsage = 6,
Subscription = 7,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum PeriodType {
Unspecified = 0,
Day = 1,
Month = 2,
Year = 3,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Entitlement {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "5")]
pub create_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "6")]
pub update_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(string, tag = "8")]
pub offer: ::prost::alloc::string::String,
#[prost(message, optional, tag = "12")]
pub commitment_settings: ::core::option::Option<CommitmentSettings>,
#[prost(enumeration = "entitlement::ProvisioningState", tag = "13")]
pub provisioning_state: i32,
#[prost(message, optional, tag = "16")]
pub provisioned_service: ::core::option::Option<ProvisionedService>,
#[prost(enumeration = "entitlement::SuspensionReason", repeated, packed = "false", tag = "18")]
pub suspension_reasons: ::prost::alloc::vec::Vec<i32>,
#[prost(string, tag = "19")]
pub purchase_order_id: ::prost::alloc::string::String,
#[prost(message, optional, tag = "21")]
pub trial_settings: ::core::option::Option<TrialSettings>,
#[prost(message, optional, tag = "23")]
pub association_info: ::core::option::Option<AssociationInfo>,
#[prost(message, repeated, tag = "26")]
pub parameters: ::prost::alloc::vec::Vec<Parameter>,
}
pub mod entitlement {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ProvisioningState {
Unspecified = 0,
Active = 1,
Suspended = 5,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum SuspensionReason {
Unspecified = 0,
ResellerInitiated = 1,
TrialEnded = 2,
RenewalWithTypeCancel = 3,
PendingTosAcceptance = 4,
Other = 100,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Parameter {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub value: ::core::option::Option<Value>,
#[prost(bool, tag = "3")]
pub editable: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AssociationInfo {
#[prost(string, tag = "1")]
pub base_entitlement: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProvisionedService {
#[prost(string, tag = "1")]
pub provisioning_id: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub product_id: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub sku_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CommitmentSettings {
#[prost(message, optional, tag = "1")]
pub start_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "2")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
#[prost(message, optional, tag = "4")]
pub renewal_settings: ::core::option::Option<RenewalSettings>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RenewalSettings {
#[prost(bool, tag = "1")]
pub enable_renewal: bool,
#[prost(bool, tag = "2")]
pub resize_unit_count: bool,
#[prost(enumeration = "PaymentPlan", tag = "5")]
pub payment_plan: i32,
#[prost(message, optional, tag = "6")]
pub payment_cycle: ::core::option::Option<Period>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrialSettings {
#[prost(bool, tag = "1")]
pub trial: bool,
#[prost(message, optional, tag = "2")]
pub end_time: ::core::option::Option<::prost_types::Timestamp>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferableSku {
#[prost(message, optional, tag = "9")]
pub transfer_eligibility: ::core::option::Option<TransferEligibility>,
#[prost(message, optional, tag = "11")]
pub sku: ::core::option::Option<Sku>,
#[prost(message, optional, tag = "12")]
pub legacy_sku: ::core::option::Option<Sku>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferEligibility {
#[prost(bool, tag = "1")]
pub is_eligible: bool,
#[prost(string, tag = "2")]
pub description: ::prost::alloc::string::String,
#[prost(enumeration = "transfer_eligibility::Reason", tag = "3")]
pub ineligibility_reason: i32,
}
pub mod transfer_eligibility {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Reason {
Unspecified = 0,
PendingTosAcceptance = 1,
SkuNotEligible = 2,
SkuSuspended = 3,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct OperationMetadata {
#[prost(enumeration = "operation_metadata::OperationType", tag = "1")]
pub operation_type: i32,
}
pub mod operation_metadata {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum OperationType {
Unspecified = 0,
CreateEntitlement = 1,
ChangeRenewalSettings = 3,
StartPaidService = 5,
ActivateEntitlement = 7,
SuspendEntitlement = 8,
CancelEntitlement = 9,
TransferEntitlements = 10,
TransferEntitlementsToGoogle = 11,
ChangeOffer = 14,
ChangeParameters = 15,
ProvisionCloudIdentity = 16,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CheckCloudIdentityAccountsExistRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub domain: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CloudIdentityCustomerAccount {
#[prost(bool, tag = "1")]
pub existing: bool,
#[prost(bool, tag = "2")]
pub owned: bool,
#[prost(string, tag = "3")]
pub customer_name: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub customer_cloud_identity_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CheckCloudIdentityAccountsExistResponse {
#[prost(message, repeated, tag = "1")]
pub cloud_identity_accounts: ::prost::alloc::vec::Vec<CloudIdentityCustomerAccount>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCustomersRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCustomersResponse {
#[prost(message, repeated, tag = "1")]
pub customers: ::prost::alloc::vec::Vec<Customer>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCustomerRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateCustomerRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub customer: ::core::option::Option<Customer>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateCustomerRequest {
#[prost(message, optional, tag = "2")]
pub customer: ::core::option::Option<Customer>,
#[prost(message, optional, tag = "3")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteCustomerRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ImportCustomerRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub auth_token: ::prost::alloc::string::String,
#[prost(bool, tag = "5")]
pub overwrite_if_exists: bool,
#[prost(string, tag = "6")]
pub channel_partner_id: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub customer: ::prost::alloc::string::String,
#[prost(oneof = "import_customer_request::CustomerIdentity", tags = "2, 3")]
pub customer_identity: ::core::option::Option<import_customer_request::CustomerIdentity>,
}
pub mod import_customer_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum CustomerIdentity {
#[prost(string, tag = "2")]
Domain(::prost::alloc::string::String),
#[prost(string, tag = "3")]
CloudIdentityId(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ProvisionCloudIdentityRequest {
#[prost(string, tag = "1")]
pub customer: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub cloud_identity_info: ::core::option::Option<CloudIdentityInfo>,
#[prost(message, optional, tag = "3")]
pub user: ::core::option::Option<AdminUser>,
#[prost(bool, tag = "4")]
pub validate_only: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntitlementsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListEntitlementsResponse {
#[prost(message, repeated, tag = "1")]
pub entitlements: ::prost::alloc::vec::Vec<Entitlement>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTransferableSkusRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub auth_token: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub language_code: ::prost::alloc::string::String,
#[prost(oneof = "list_transferable_skus_request::TransferredCustomerIdentity", tags = "4, 7")]
pub transferred_customer_identity:
::core::option::Option<list_transferable_skus_request::TransferredCustomerIdentity>,
}
pub mod list_transferable_skus_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TransferredCustomerIdentity {
#[prost(string, tag = "4")]
CloudIdentityId(::prost::alloc::string::String),
#[prost(string, tag = "7")]
CustomerName(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTransferableSkusResponse {
#[prost(message, repeated, tag = "1")]
pub transferable_skus: ::prost::alloc::vec::Vec<TransferableSku>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTransferableOffersRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub sku: ::prost::alloc::string::String,
#[prost(string, tag = "7")]
pub language_code: ::prost::alloc::string::String,
#[prost(
oneof = "list_transferable_offers_request::TransferredCustomerIdentity",
tags = "4, 5"
)]
pub transferred_customer_identity:
::core::option::Option<list_transferable_offers_request::TransferredCustomerIdentity>,
}
pub mod list_transferable_offers_request {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TransferredCustomerIdentity {
#[prost(string, tag = "4")]
CloudIdentityId(::prost::alloc::string::String),
#[prost(string, tag = "5")]
CustomerName(::prost::alloc::string::String),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListTransferableOffersResponse {
#[prost(message, repeated, tag = "1")]
pub transferable_offers: ::prost::alloc::vec::Vec<TransferableOffer>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferableOffer {
#[prost(message, optional, tag = "1")]
pub offer: ::core::option::Option<Offer>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEntitlementRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListChannelPartnerLinksRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(enumeration = "ChannelPartnerLinkView", tag = "4")]
pub view: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListChannelPartnerLinksResponse {
#[prost(message, repeated, tag = "1")]
pub channel_partner_links: ::prost::alloc::vec::Vec<ChannelPartnerLink>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetChannelPartnerLinkRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(enumeration = "ChannelPartnerLinkView", tag = "2")]
pub view: i32,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateChannelPartnerLinkRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub channel_partner_link: ::core::option::Option<ChannelPartnerLink>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateChannelPartnerLinkRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub channel_partner_link: ::core::option::Option<ChannelPartnerLink>,
#[prost(message, optional, tag = "3")]
pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEntitlementRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, optional, tag = "2")]
pub entitlement: ::core::option::Option<Entitlement>,
#[prost(string, tag = "5")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferEntitlementsRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub entitlements: ::prost::alloc::vec::Vec<Entitlement>,
#[prost(string, tag = "4")]
pub auth_token: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferEntitlementsResponse {
#[prost(message, repeated, tag = "1")]
pub entitlements: ::prost::alloc::vec::Vec<Entitlement>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TransferEntitlementsToGoogleRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub entitlements: ::prost::alloc::vec::Vec<Entitlement>,
#[prost(string, tag = "3")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeParametersRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "2")]
pub parameters: ::prost::alloc::vec::Vec<Parameter>,
#[prost(string, tag = "4")]
pub request_id: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub purchase_order_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeRenewalSettingsRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub renewal_settings: ::core::option::Option<RenewalSettings>,
#[prost(string, tag = "5")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeOfferRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub offer: ::prost::alloc::string::String,
#[prost(message, repeated, tag = "3")]
pub parameters: ::prost::alloc::vec::Vec<Parameter>,
#[prost(string, tag = "5")]
pub purchase_order_id: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StartPaidServiceRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CancelEntitlementRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SuspendEntitlementRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ActivateEntitlementRequest {
#[prost(string, tag = "1")]
pub name: ::prost::alloc::string::String,
#[prost(string, tag = "3")]
pub request_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LookupOfferRequest {
#[prost(string, tag = "1")]
pub entitlement: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListProductsRequest {
#[prost(string, tag = "1")]
pub account: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub language_code: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListProductsResponse {
#[prost(message, repeated, tag = "1")]
pub products: ::prost::alloc::vec::Vec<Product>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSkusRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub account: ::prost::alloc::string::String,
#[prost(int32, tag = "3")]
pub page_size: i32,
#[prost(string, tag = "4")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub language_code: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSkusResponse {
#[prost(message, repeated, tag = "1")]
pub skus: ::prost::alloc::vec::Vec<Sku>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListOffersRequest {
#[prost(string, tag = "1")]
pub parent: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "4")]
pub filter: ::prost::alloc::string::String,
#[prost(string, tag = "5")]
pub language_code: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListOffersResponse {
#[prost(message, repeated, tag = "1")]
pub offers: ::prost::alloc::vec::Vec<Offer>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPurchasableSkusRequest {
#[prost(string, tag = "1")]
pub customer: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub page_size: i32,
#[prost(string, tag = "5")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub language_code: ::prost::alloc::string::String,
#[prost(oneof = "list_purchasable_skus_request::PurchaseOption", tags = "2, 3")]
pub purchase_option: ::core::option::Option<list_purchasable_skus_request::PurchaseOption>,
}
pub mod list_purchasable_skus_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEntitlementPurchase {
#[prost(string, tag = "1")]
pub product: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeOfferPurchase {
#[prost(string, tag = "1")]
pub entitlement: ::prost::alloc::string::String,
#[prost(enumeration = "change_offer_purchase::ChangeType", tag = "2")]
pub change_type: i32,
}
pub mod change_offer_purchase {
#[derive(
Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration,
)]
#[repr(i32)]
pub enum ChangeType {
Unspecified = 0,
Upgrade = 1,
Downgrade = 2,
}
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum PurchaseOption {
#[prost(message, tag = "2")]
CreateEntitlementPurchase(CreateEntitlementPurchase),
#[prost(message, tag = "3")]
ChangeOfferPurchase(ChangeOfferPurchase),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPurchasableSkusResponse {
#[prost(message, repeated, tag = "1")]
pub purchasable_skus: ::prost::alloc::vec::Vec<PurchasableSku>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PurchasableSku {
#[prost(message, optional, tag = "1")]
pub sku: ::core::option::Option<Sku>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPurchasableOffersRequest {
#[prost(string, tag = "1")]
pub customer: ::prost::alloc::string::String,
#[prost(int32, tag = "4")]
pub page_size: i32,
#[prost(string, tag = "5")]
pub page_token: ::prost::alloc::string::String,
#[prost(string, tag = "6")]
pub language_code: ::prost::alloc::string::String,
#[prost(oneof = "list_purchasable_offers_request::PurchaseOption", tags = "2, 3")]
pub purchase_option: ::core::option::Option<list_purchasable_offers_request::PurchaseOption>,
}
pub mod list_purchasable_offers_request {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateEntitlementPurchase {
#[prost(string, tag = "1")]
pub sku: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChangeOfferPurchase {
#[prost(string, tag = "1")]
pub entitlement: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub new_sku: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum PurchaseOption {
#[prost(message, tag = "2")]
CreateEntitlementPurchase(CreateEntitlementPurchase),
#[prost(message, tag = "3")]
ChangeOfferPurchase(ChangeOfferPurchase),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListPurchasableOffersResponse {
#[prost(message, repeated, tag = "1")]
pub purchasable_offers: ::prost::alloc::vec::Vec<PurchasableOffer>,
#[prost(string, tag = "2")]
pub next_page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PurchasableOffer {
#[prost(message, optional, tag = "1")]
pub offer: ::core::option::Option<Offer>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegisterSubscriberRequest {
#[prost(string, tag = "1")]
pub account: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub service_account: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RegisterSubscriberResponse {
#[prost(string, tag = "1")]
pub topic: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnregisterSubscriberRequest {
#[prost(string, tag = "1")]
pub account: ::prost::alloc::string::String,
#[prost(string, tag = "2")]
pub service_account: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnregisterSubscriberResponse {
#[prost(string, tag = "1")]
pub topic: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSubscribersRequest {
#[prost(string, tag = "1")]
pub account: ::prost::alloc::string::String,
#[prost(int32, tag = "2")]
pub page_size: i32,
#[prost(string, tag = "3")]
pub page_token: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListSubscribersResponse {
#[prost(string, tag = "1")]
pub topic: ::prost::alloc::string::String,
#[prost(string, repeated, tag = "2")]
pub service_accounts: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(string, tag = "3")]
pub next_page_token: ::prost::alloc::string::String,
}
#[doc = r" Generated client implementations."]
pub mod cloud_channel_service_client {
#![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
use tonic::codegen::*;
#[doc = " CloudChannelService lets Google cloud resellers and distributors manage"]
#[doc = " their customers, channel partners, entitlements, and reports."]
#[doc = ""]
#[doc = " Using this service:"]
#[doc = " 1. Resellers and distributors can manage a customer entity."]
#[doc = " 2. Distributors can register an authorized reseller in their channel and"]
#[doc = " provide them with delegated admin access."]
#[doc = " 3. Resellers and distributors can manage customer entitlements."]
#[doc = ""]
#[doc = " CloudChannelService exposes the following resources:"]
#[doc = " - [Customer][google.cloud.channel.v1.Customer]s: An entity—usually an enterprise—managed by a reseller or"]
#[doc = " distributor."]
#[doc = ""]
#[doc = " - [Entitlement][google.cloud.channel.v1.Entitlement]s: An entity that provides a customer with the means to use"]
#[doc = " a service. Entitlements are created or updated as a result of a successful"]
#[doc = " fulfillment."]
#[doc = ""]
#[doc = " - [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s: An entity that identifies links between"]
#[doc = " distributors and their indirect resellers in a channel."]
#[derive(Debug, Clone)]
pub struct CloudChannelServiceClient<T> {
inner: tonic::client::Grpc<T>,
}
impl<T> CloudChannelServiceClient<T>
where
T: tonic::client::GrpcService<tonic::body::BoxBody>,
T::ResponseBody: Body + Send + 'static,
T::Error: Into<StdError>,
<T::ResponseBody as Body>::Error: Into<StdError> + Send,
{
pub fn new(inner: T) -> Self {
let inner = tonic::client::Grpc::new(inner);
Self { inner }
}
pub fn with_interceptor<F>(
inner: T,
interceptor: F,
) -> CloudChannelServiceClient<InterceptedService<T, F>>
where
F: tonic::service::Interceptor,
T: tonic::codegen::Service<
http::Request<tonic::body::BoxBody>,
Response = http::Response<
<T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
>,
>,
<T as tonic::codegen::Service<http::Request<tonic::body::BoxBody>>>::Error:
Into<StdError> + Send + Sync,
{
CloudChannelServiceClient::new(InterceptedService::new(inner, interceptor))
}
#[doc = r" Compress requests with `gzip`."]
#[doc = r""]
#[doc = r" This requires the server to support it otherwise it might respond with an"]
#[doc = r" error."]
pub fn send_gzip(mut self) -> Self {
self.inner = self.inner.send_gzip();
self
}
#[doc = r" Enable decompressing responses with `gzip`."]
pub fn accept_gzip(mut self) -> Self {
self.inner = self.inner.accept_gzip();
self
}
#[doc = " List [Customer][google.cloud.channel.v1.Customer]s."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " List of [Customer][google.cloud.channel.v1.Customer]s, or an empty list if there are no customers."]
pub async fn list_customers(
&mut self,
request: impl tonic::IntoRequest<super::ListCustomersRequest>,
) -> Result<tonic::Response<super::ListCustomersResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListCustomers",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the requested [Customer][google.cloud.channel.v1.Customer] resource."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The customer resource doesn't exist. Usually the result of an"]
#[doc = " invalid name parameter."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The [Customer][google.cloud.channel.v1.Customer] resource."]
pub async fn get_customer(
&mut self,
request: impl tonic::IntoRequest<super::GetCustomerRequest>,
) -> Result<tonic::Response<super::Customer>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/GetCustomer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Confirms the existence of Cloud Identity accounts based on the domain and"]
#[doc = " if the Cloud Identity accounts are owned by the reseller."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * INVALID_VALUE: Invalid domain value in the request."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " A list of [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources for the domain (may be"]
#[doc = " empty)"]
#[doc = ""]
#[doc = " Note: in the v1alpha1 version of the API, a NOT_FOUND error returns if"]
#[doc = " no [CloudIdentityCustomerAccount][google.cloud.channel.v1.CloudIdentityCustomerAccount] resources match the domain."]
pub async fn check_cloud_identity_accounts_exist(
&mut self,
request: impl tonic::IntoRequest<super::CheckCloudIdentityAccountsExistRequest>,
) -> Result<tonic::Response<super::CheckCloudIdentityAccountsExistResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/CheckCloudIdentityAccountsExist",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a new [Customer][google.cloud.channel.v1.Customer] resource under the reseller or distributor"]
#[doc = " account."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT:"]
#[doc = " * Required request parameters are missing or invalid."]
#[doc = " * Domain field value doesn't match the primary email domain."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The newly created [Customer][google.cloud.channel.v1.Customer] resource."]
pub async fn create_customer(
&mut self,
request: impl tonic::IntoRequest<super::CreateCustomerRequest>,
) -> Result<tonic::Response<super::Customer>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/CreateCustomer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates an existing [Customer][google.cloud.channel.v1.Customer] resource for the reseller or"]
#[doc = " distributor."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name in the request."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The updated [Customer][google.cloud.channel.v1.Customer] resource."]
pub async fn update_customer(
&mut self,
request: impl tonic::IntoRequest<super::UpdateCustomerRequest>,
) -> Result<tonic::Response<super::Customer>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/UpdateCustomer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Deletes the given [Customer][google.cloud.channel.v1.Customer] permanently."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The account making the request does not own"]
#[doc = " this customer."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * FAILED_PRECONDITION: The customer has existing entitlements."]
#[doc = " * NOT_FOUND: No [Customer][google.cloud.channel.v1.Customer] resource found for the name in the request."]
pub async fn delete_customer(
&mut self,
request: impl tonic::IntoRequest<super::DeleteCustomerRequest>,
) -> Result<tonic::Response<()>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/DeleteCustomer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Imports a [Customer][google.cloud.channel.v1.Customer] from the Cloud Identity associated with the provided"]
#[doc = " Cloud Identity ID or domain before a TransferEntitlements call. If a"]
#[doc = " linked Customer already exists and overwrite_if_exists is true, it will"]
#[doc = " update that Customer's data."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * NOT_FOUND: Cloud Identity doesn't exist or was deleted."]
#[doc = " * INVALID_ARGUMENT: Required parameters are missing, or the auth_token is"]
#[doc = " expired or invalid."]
#[doc = " * ALREADY_EXISTS: A customer already exists and has conflicting critical"]
#[doc = " fields. Requires an overwrite."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The [Customer][google.cloud.channel.v1.Customer]."]
pub async fn import_customer(
&mut self,
request: impl tonic::IntoRequest<super::ImportCustomerRequest>,
) -> Result<tonic::Response<super::Customer>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ImportCustomer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates a Cloud Identity for the given customer using the customer's"]
#[doc = " information, or the information provided here."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The customer was not found."]
#[doc = " * ALREADY_EXISTS: The customer's primary email already exists. Retry"]
#[doc = " after changing the customer's primary contact email."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata contains an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn provision_cloud_identity(
&mut self,
request: impl tonic::IntoRequest<super::ProvisionCloudIdentityRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ProvisionCloudIdentity",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a customer."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " A list of the customer's [Entitlement][google.cloud.channel.v1.Entitlement]s."]
pub async fn list_entitlements(
&mut self,
request: impl tonic::IntoRequest<super::ListEntitlementsRequest>,
) -> Result<tonic::Response<super::ListEntitlementsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListEntitlements",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " List [TransferableSku][google.cloud.channel.v1.TransferableSku]s of a customer based on the Cloud Identity ID or"]
#[doc = " Customer Name in the request."]
#[doc = ""]
#[doc = " Use this method to list the entitlements information of an"]
#[doc = " unowned customer. You should provide the customer's"]
#[doc = " Cloud Identity ID or Customer Name."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED:"]
#[doc = " * The customer doesn't belong to the reseller and has no auth token."]
#[doc = " * The supplied auth token is invalid."]
#[doc = " * The reseller account making the request is different"]
#[doc = " from the reseller account in the query."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " A list of the customer's [TransferableSku][google.cloud.channel.v1.TransferableSku]."]
pub async fn list_transferable_skus(
&mut self,
request: impl tonic::IntoRequest<super::ListTransferableSkusRequest>,
) -> Result<tonic::Response<super::ListTransferableSkusResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListTransferableSkus",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " List [TransferableOffer][google.cloud.channel.v1.TransferableOffer]s of a customer based on Cloud Identity ID or"]
#[doc = " Customer Name in the request."]
#[doc = ""]
#[doc = " Use this method when a reseller gets the entitlement information of an"]
#[doc = " unowned customer. The reseller should provide the customer's"]
#[doc = " Cloud Identity ID or Customer Name."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED:"]
#[doc = " * The customer doesn't belong to the reseller and has no auth token."]
#[doc = " * The supplied auth token is invalid."]
#[doc = " * The reseller account making the request is different"]
#[doc = " from the reseller account in the query."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " List of [TransferableOffer][google.cloud.channel.v1.TransferableOffer] for the given customer and SKU."]
pub async fn list_transferable_offers(
&mut self,
request: impl tonic::IntoRequest<super::ListTransferableOffersRequest>,
) -> Result<tonic::Response<super::ListTransferableOffersResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListTransferableOffers",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the requested [Entitlement][google.cloud.channel.v1.Entitlement] resource."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The customer entitlement was not found."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The requested [Entitlement][google.cloud.channel.v1.Entitlement] resource."]
pub async fn get_entitlement(
&mut self,
request: impl tonic::IntoRequest<super::GetEntitlementRequest>,
) -> Result<tonic::Response<super::Entitlement>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/GetEntitlement",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Creates an entitlement for a customer."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT:"]
#[doc = " * Required request parameters are missing or invalid."]
#[doc = " * There is already a customer entitlement for a SKU from the same"]
#[doc = " product family."]
#[doc = " * INVALID_VALUE: Make sure the OfferId is valid. If it is, contact"]
#[doc = " Google Channel support for further troubleshooting."]
#[doc = " * NOT_FOUND: The customer or offer resource was not found."]
#[doc = " * ALREADY_EXISTS:"]
#[doc = " * The SKU was already purchased for the customer."]
#[doc = " * The customer's primary email already exists. Retry"]
#[doc = " after changing the customer's primary contact email."]
#[doc = " * CONDITION_NOT_MET or FAILED_PRECONDITION:"]
#[doc = " * The domain required for purchasing a SKU has not been verified."]
#[doc = " * A pre-requisite SKU required to purchase an Add-On SKU is missing."]
#[doc = " For example, Google Workspace Business Starter is required to purchase"]
#[doc = " Vault or Drive."]
#[doc = " * (Developer accounts only) Reseller and resold domain must meet the"]
#[doc = " following naming requirements:"]
#[doc = " * Domain names must start with goog-test."]
#[doc = " * Domain names must include the reseller domain."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn create_entitlement(
&mut self,
request: impl tonic::IntoRequest<super::CreateEntitlementRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/CreateEntitlement",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Change parameters of the entitlement."]
#[doc = ""]
#[doc = " An entitlement update is a long-running operation and it updates the"]
#[doc = " entitlement as a result of fulfillment."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " For example, the number of seats being changed is greater than the allowed"]
#[doc = " number of max seats, or decreasing seats for a commitment based plan."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn change_parameters(
&mut self,
request: impl tonic::IntoRequest<super::ChangeParametersRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ChangeParameters",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates the renewal settings for an existing customer entitlement."]
#[doc = ""]
#[doc = " An entitlement update is a long-running operation and it updates the"]
#[doc = " entitlement as a result of fulfillment."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * NOT_COMMITMENT_PLAN: Renewal Settings are only applicable for a"]
#[doc = " commitment plan. Can't enable or disable renewals for non-commitment plans."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn change_renewal_settings(
&mut self,
request: impl tonic::IntoRequest<super::ChangeRenewalSettingsRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ChangeRenewalSettings",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates the Offer for an existing customer entitlement."]
#[doc = ""]
#[doc = " An entitlement update is a long-running operation and it updates the"]
#[doc = " entitlement as a result of fulfillment."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Offer or Entitlement resource not found."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn change_offer(
&mut self,
request: impl tonic::IntoRequest<super::ChangeOfferRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ChangeOffer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Starts paid service for a trial entitlement."]
#[doc = ""]
#[doc = " Starts paid service for a trial entitlement immediately. This method is"]
#[doc = " only applicable if a plan is set up for a trial entitlement but has some"]
#[doc = " trial days remaining."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * FAILED_PRECONDITION/NOT_IN_TRIAL: This method only works for"]
#[doc = " entitlement on trial plans."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn start_paid_service(
&mut self,
request: impl tonic::IntoRequest<super::StartPaidServiceRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/StartPaidService",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Suspends a previously fulfilled entitlement."]
#[doc = ""]
#[doc = " An entitlement suspension is a long-running operation."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * NOT_ACTIVE: Entitlement is not active."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn suspend_entitlement(
&mut self,
request: impl tonic::IntoRequest<super::SuspendEntitlementRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/SuspendEntitlement",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Cancels a previously fulfilled entitlement."]
#[doc = ""]
#[doc = " An entitlement cancellation is a long-running operation."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * FAILED_PRECONDITION: There are Google Cloud projects linked to the"]
#[doc = " Google Cloud entitlement's Cloud Billing subaccount."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * DELETION_TYPE_NOT_ALLOWED: Cancel is only allowed for Google Workspace"]
#[doc = " add-ons, or entitlements for Google Cloud's development platform."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The response will contain"]
#[doc = " google.protobuf.Empty on success. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn cancel_entitlement(
&mut self,
request: impl tonic::IntoRequest<super::CancelEntitlementRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/CancelEntitlement",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Activates a previously suspended entitlement. Entitlements suspended for"]
#[doc = " pending ToS acceptance can't be activated using this method."]
#[doc = ""]
#[doc = " An entitlement activation is a long-running operation and it updates"]
#[doc = " the state of the customer entitlement."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement resource not found."]
#[doc = " * SUSPENSION_NOT_RESELLER_INITIATED: Can only activate reseller-initiated"]
#[doc = " suspensions and entitlements that have accepted the TOS."]
#[doc = " * NOT_SUSPENDED: Can only activate suspended entitlements not in an ACTIVE"]
#[doc = " state."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn activate_entitlement(
&mut self,
request: impl tonic::IntoRequest<super::ActivateEntitlementRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ActivateEntitlement",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Transfers customer entitlements to new reseller."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The customer or offer resource was not found."]
#[doc = " * ALREADY_EXISTS: The SKU was already transferred for the customer."]
#[doc = " * CONDITION_NOT_MET or FAILED_PRECONDITION:"]
#[doc = " * The SKU requires domain verification to transfer, but the domain is"]
#[doc = " not verified."]
#[doc = " * An Add-On SKU (example, Vault or Drive) is missing the"]
#[doc = " pre-requisite SKU (example, G Suite Basic)."]
#[doc = " * (Developer accounts only) Reseller and resold domain must meet the"]
#[doc = " following naming requirements:"]
#[doc = " * Domain names must start with goog-test."]
#[doc = " * Domain names must include the reseller domain."]
#[doc = " * Specify all transferring entitlements."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn transfer_entitlements(
&mut self,
request: impl tonic::IntoRequest<super::TransferEntitlementsRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/TransferEntitlements",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Transfers customer entitlements from their current reseller to Google."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The customer or offer resource was not found."]
#[doc = " * ALREADY_EXISTS: The SKU was already transferred for the customer."]
#[doc = " * CONDITION_NOT_MET or FAILED_PRECONDITION:"]
#[doc = " * The SKU requires domain verification to transfer, but the domain is"]
#[doc = " not verified."]
#[doc = " * An Add-On SKU (example, Vault or Drive) is missing the"]
#[doc = " pre-requisite SKU (example, G Suite Basic)."]
#[doc = " * (Developer accounts only) Reseller and resold domain must meet the"]
#[doc = " following naming requirements:"]
#[doc = " * Domain names must start with goog-test."]
#[doc = " * Domain names must include the reseller domain."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The ID of a long-running operation."]
#[doc = ""]
#[doc = " To get the results of the operation, call the GetOperation method of"]
#[doc = " CloudChannelOperationsService. The response will contain"]
#[doc = " google.protobuf.Empty on success. The Operation metadata will contain an"]
#[doc = " instance of [OperationMetadata][google.cloud.channel.v1.OperationMetadata]."]
pub async fn transfer_entitlements_to_google(
&mut self,
request: impl tonic::IntoRequest<super::TransferEntitlementsToGoogleRequest>,
) -> Result<
tonic::Response<super::super::super::super::longrunning::Operation>,
tonic::Status,
> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/TransferEntitlementsToGoogle",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s belonging to a distributor."]
#[doc = " You must be a distributor to call this method."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The list of the distributor account's [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resources."]
pub async fn list_channel_partner_links(
&mut self,
request: impl tonic::IntoRequest<super::ListChannelPartnerLinksRequest>,
) -> Result<tonic::Response<super::ListChannelPartnerLinksResponse>, tonic::Status>
{
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListChannelPartnerLinks",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the requested [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource."]
#[doc = " You must be a distributor to call this method."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: ChannelPartnerLink resource not found because of an"]
#[doc = " invalid channel partner link name."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource."]
pub async fn get_channel_partner_link(
&mut self,
request: impl tonic::IntoRequest<super::GetChannelPartnerLinkRequest>,
) -> Result<tonic::Response<super::ChannelPartnerLink>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/GetChannelPartnerLink",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Initiates a channel partner link between a distributor and a reseller, or"]
#[doc = " between resellers in an n-tier reseller channel."]
#[doc = " Invited partners need to follow the invite_link_uri provided in the"]
#[doc = " response to accept. After accepting the invitation, a link is set up"]
#[doc = " between the two parties."]
#[doc = " You must be a distributor to call this method."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * ALREADY_EXISTS: The ChannelPartnerLink sent in the request already"]
#[doc = " exists."]
#[doc = " * NOT_FOUND: No Cloud Identity customer exists for provided domain."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The new [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource."]
pub async fn create_channel_partner_link(
&mut self,
request: impl tonic::IntoRequest<super::CreateChannelPartnerLinkRequest>,
) -> Result<tonic::Response<super::ChannelPartnerLink>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/CreateChannelPartnerLink",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Updates a channel partner link. Distributors call this method to change a"]
#[doc = " link's status. For example, to suspend a partner link."]
#[doc = " You must be a distributor to call this method."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request is different"]
#[doc = " from the reseller account in the API request."]
#[doc = " * INVALID_ARGUMENT:"]
#[doc = " * Required request parameters are missing or invalid."]
#[doc = " * Link state cannot change from invited to active or suspended."]
#[doc = " * Cannot send reseller_cloud_identity_id, invite_url, or name in update"]
#[doc = " mask."]
#[doc = " * NOT_FOUND: ChannelPartnerLink resource not found."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The updated [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink] resource."]
pub async fn update_channel_partner_link(
&mut self,
request: impl tonic::IntoRequest<super::UpdateChannelPartnerLinkRequest>,
) -> Result<tonic::Response<super::ChannelPartnerLink>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/UpdateChannelPartnerLink",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Returns the requested [Offer][google.cloud.channel.v1.Offer] resource."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The entitlement doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: Entitlement or offer was not found."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The [Offer][google.cloud.channel.v1.Offer] resource."]
pub async fn lookup_offer(
&mut self,
request: impl tonic::IntoRequest<super::LookupOfferRequest>,
) -> Result<tonic::Response<super::Offer>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/LookupOffer",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the Products the reseller is authorized to sell."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
pub async fn list_products(
&mut self,
request: impl tonic::IntoRequest<super::ListProductsRequest>,
) -> Result<tonic::Response<super::ListProductsResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListProducts",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the SKUs for a product the reseller is authorized to sell."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
pub async fn list_skus(
&mut self,
request: impl tonic::IntoRequest<super::ListSkusRequest>,
) -> Result<tonic::Response<super::ListSkusResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListSkus",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the Offers the reseller can sell."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
pub async fn list_offers(
&mut self,
request: impl tonic::IntoRequest<super::ListOffersRequest>,
) -> Result<tonic::Response<super::ListOffersResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListOffers",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the following:"]
#[doc = ""]
#[doc = " * SKUs that you can purchase for a customer"]
#[doc = " * SKUs that you can upgrade or downgrade for an entitlement."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
pub async fn list_purchasable_skus(
&mut self,
request: impl tonic::IntoRequest<super::ListPurchasableSkusRequest>,
) -> Result<tonic::Response<super::ListPurchasableSkusResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListPurchasableSkus",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists the following:"]
#[doc = ""]
#[doc = " * Offers that you can purchase for a customer."]
#[doc = " * Offers that you can change for an entitlement."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The customer doesn't belong to the reseller"]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
pub async fn list_purchasable_offers(
&mut self,
request: impl tonic::IntoRequest<super::ListPurchasableOffersRequest>,
) -> Result<tonic::Response<super::ListPurchasableOffersResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListPurchasableOffers",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Registers a service account with subscriber privileges on the Cloud Pub/Sub"]
#[doc = " topic for this Channel Services account. After you create a"]
#[doc = " subscriber, you get the events through [SubscriberEvent][google.cloud.channel.v1.SubscriberEvent]"]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request and the"]
#[doc = " provided reseller account are different, or the impersonated user"]
#[doc = " is not a super admin."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The topic name with the registered service email address."]
pub async fn register_subscriber(
&mut self,
request: impl tonic::IntoRequest<super::RegisterSubscriberRequest>,
) -> Result<tonic::Response<super::RegisterSubscriberResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/RegisterSubscriber",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Unregisters a service account with subscriber privileges on the Cloud"]
#[doc = " Pub/Sub topic created for this Channel Services account. If there are no"]
#[doc = " service accounts left with subscriber privileges, this deletes the topic."]
#[doc = " You can call ListSubscribers to check for these accounts."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request and the"]
#[doc = " provided reseller account are different, or the impersonated user"]
#[doc = " is not a super admin."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The topic resource doesn't exist."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " The topic name that unregistered the service email address."]
#[doc = " Returns a success response if the service email address wasn't registered"]
#[doc = " with the topic."]
pub async fn unregister_subscriber(
&mut self,
request: impl tonic::IntoRequest<super::UnregisterSubscriberRequest>,
) -> Result<tonic::Response<super::UnregisterSubscriberResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/UnregisterSubscriber",
);
self.inner.unary(request.into_request(), path, codec).await
}
#[doc = " Lists service accounts with subscriber privileges on the Cloud Pub/Sub"]
#[doc = " topic created for this Channel Services account."]
#[doc = ""]
#[doc = " Possible error codes:"]
#[doc = ""]
#[doc = " * PERMISSION_DENIED: The reseller account making the request and the"]
#[doc = " provided reseller account are different, or the impersonated user"]
#[doc = " is not a super admin."]
#[doc = " * INVALID_ARGUMENT: Required request parameters are missing or invalid."]
#[doc = " * NOT_FOUND: The topic resource doesn't exist."]
#[doc = " * INTERNAL: Any non-user error related to a technical issue in the"]
#[doc = " backend. Contact Cloud Channel support."]
#[doc = " * UNKNOWN: Any non-user error related to a technical issue in the backend."]
#[doc = " Contact Cloud Channel support."]
#[doc = ""]
#[doc = " Return value:"]
#[doc = " A list of service email addresses."]
pub async fn list_subscribers(
&mut self,
request: impl tonic::IntoRequest<super::ListSubscribersRequest>,
) -> Result<tonic::Response<super::ListSubscribersResponse>, tonic::Status> {
self.inner.ready().await.map_err(|e| {
tonic::Status::new(
tonic::Code::Unknown,
format!("Service was not ready: {}", e.into()),
)
})?;
let codec = tonic::codec::ProstCodec::default();
let path = http::uri::PathAndQuery::from_static(
"/google.cloud.channel.v1.CloudChannelService/ListSubscribers",
);
self.inner.unary(request.into_request(), path, codec).await
}
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CustomerEvent {
#[prost(string, tag = "1")]
pub customer: ::prost::alloc::string::String,
#[prost(enumeration = "customer_event::Type", tag = "2")]
pub event_type: i32,
}
pub mod customer_event {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
Unspecified = 0,
PrimaryDomainChanged = 1,
PrimaryDomainVerified = 2,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct EntitlementEvent {
#[prost(string, tag = "1")]
pub entitlement: ::prost::alloc::string::String,
#[prost(enumeration = "entitlement_event::Type", tag = "2")]
pub event_type: i32,
}
pub mod entitlement_event {
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum Type {
Unspecified = 0,
Created = 1,
PricePlanSwitched = 3,
CommitmentChanged = 4,
Renewed = 5,
Suspended = 6,
Activated = 7,
Cancelled = 8,
SkuChanged = 9,
RenewalSettingChanged = 10,
PaidServiceStarted = 11,
LicenseAssignmentChanged = 12,
LicenseCapChanged = 13,
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SubscriberEvent {
#[prost(oneof = "subscriber_event::Event", tags = "1, 2")]
pub event: ::core::option::Option<subscriber_event::Event>,
}
pub mod subscriber_event {
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum Event {
#[prost(message, tag = "1")]
CustomerEvent(super::CustomerEvent),
#[prost(message, tag = "2")]
EntitlementEvent(super::EntitlementEvent),
}
}