#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommitRolloverBalanceRequest {
#[prost(uint64, tag = "1")]
pub previous_contract_id: u64,
#[prost(uint64, tag = "2")]
pub contract_id: u64,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CommitRolloverBalanceResponse {}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GrantSource {
Unspecified = 0,
TrialProduct = 1,
TrialSubscription = 2,
TrialPlan = 3,
TrialEnterprise = 4,
Promo = 5,
Recurring = 6,
Gift = 7,
}
impl GrantSource {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "GRANT_SOURCE_UNSPECIFIED",
Self::TrialProduct => "GRANT_SOURCE_TRIAL_PRODUCT",
Self::TrialSubscription => "GRANT_SOURCE_TRIAL_SUBSCRIPTION",
Self::TrialPlan => "GRANT_SOURCE_TRIAL_PLAN",
Self::TrialEnterprise => "GRANT_SOURCE_TRIAL_ENTERPRISE",
Self::Promo => "GRANT_SOURCE_PROMO",
Self::Recurring => "GRANT_SOURCE_RECURRING",
Self::Gift => "GRANT_SOURCE_GIFT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"GRANT_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
"GRANT_SOURCE_TRIAL_PRODUCT" => Some(Self::TrialProduct),
"GRANT_SOURCE_TRIAL_SUBSCRIPTION" => Some(Self::TrialSubscription),
"GRANT_SOURCE_TRIAL_PLAN" => Some(Self::TrialPlan),
"GRANT_SOURCE_TRIAL_ENTERPRISE" => Some(Self::TrialEnterprise),
"GRANT_SOURCE_PROMO" => Some(Self::Promo),
"GRANT_SOURCE_RECURRING" => Some(Self::Recurring),
"GRANT_SOURCE_GIFT" => Some(Self::Gift),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Grant {
#[prost(uint64, tag = "1")]
pub id: u64,
#[prost(uint64, tag = "2")]
pub organization_id: u64,
#[prost(enumeration = "GrantType", tag = "3")]
pub r#type: i32,
#[prost(string, repeated, tag = "4")]
pub line_item_uids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, tag = "5")]
pub amount: i64,
#[prost(message, optional, tag = "6")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "7")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(enumeration = "GrantStatus", tag = "8")]
pub status: i32,
#[prost(enumeration = "GrantSource", tag = "9")]
pub source: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GrantType {
Unspecified = 0,
Units = 1,
Cents = 2,
}
impl GrantType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "GRANT_TYPE_UNSPECIFIED",
Self::Units => "GRANT_TYPE_UNITS",
Self::Cents => "GRANT_TYPE_CENTS",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"GRANT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"GRANT_TYPE_UNITS" => Some(Self::Units),
"GRANT_TYPE_CENTS" => Some(Self::Cents),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum GrantStatus {
Unspecified = 0,
Active = 1,
Inactive = 2,
Expired = 3,
}
impl GrantStatus {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "GRANT_STATUS_UNSPECIFIED",
Self::Active => "GRANT_STATUS_ACTIVE",
Self::Inactive => "GRANT_STATUS_INACTIVE",
Self::Expired => "GRANT_STATUS_EXPIRED",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"GRANT_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
"GRANT_STATUS_ACTIVE" => Some(Self::Active),
"GRANT_STATUS_INACTIVE" => Some(Self::Inactive),
"GRANT_STATUS_EXPIRED" => Some(Self::Expired),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateGrantRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(string, optional, tag = "2")]
pub line_item_uid: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "3")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "4")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(enumeration = "GrantType", tag = "5")]
pub r#type: i32,
#[prost(enumeration = "GrantSource", tag = "6")]
pub source: i32,
#[prost(int64, tag = "7")]
pub amount: i64,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateGrantResponse {
#[prost(bool, tag = "1")]
pub created: bool,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreditSourceConfig {
#[prost(enumeration = "CreditSource", tag = "1")]
pub source: i32,
#[prost(string, optional, tag = "2")]
pub source_id: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RecurringCredit {
#[prost(string, optional, tag = "1")]
pub line_item_uid: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "RecurringCreditType", tag = "2")]
pub r#type: i32,
#[prost(uint64, tag = "3")]
pub amount: u64,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum RecurringCreditType {
Unspecified = 0,
Units = 1,
Cents = 2,
DiscountPercent = 3,
}
impl RecurringCreditType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "RECURRING_CREDIT_TYPE_UNSPECIFIED",
Self::Units => "RECURRING_CREDIT_TYPE_UNITS",
Self::Cents => "RECURRING_CREDIT_TYPE_CENTS",
Self::DiscountPercent => "RECURRING_CREDIT_TYPE_DISCOUNT_PERCENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"RECURRING_CREDIT_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"RECURRING_CREDIT_TYPE_UNITS" => Some(Self::Units),
"RECURRING_CREDIT_TYPE_CENTS" => Some(Self::Cents),
"RECURRING_CREDIT_TYPE_DISCOUNT_PERCENT" => Some(Self::DiscountPercent),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum CreditSource {
Unspecified = 0,
PromoCode = 1,
Admin = 2,
}
impl CreditSource {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "CREDIT_SOURCE_UNSPECIFIED",
Self::PromoCode => "CREDIT_SOURCE_PROMO_CODE",
Self::Admin => "CREDIT_SOURCE_ADMIN",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"CREDIT_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
"CREDIT_SOURCE_PROMO_CODE" => Some(Self::PromoCode),
"CREDIT_SOURCE_ADMIN" => Some(Self::Admin),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateRecurringCreditRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(string, optional, tag = "2")]
pub line_item_uid: ::core::option::Option<::prost::alloc::string::String>,
#[prost(enumeration = "RecurringCreditType", tag = "3")]
pub r#type: i32,
#[prost(uint64, tag = "4")]
pub amount: u64,
#[prost(uint64, tag = "5")]
pub number_of_periods: u64,
#[prost(uint64, tag = "6")]
pub contract_id: u64,
#[prost(message, optional, tag = "7")]
pub source_config: ::core::option::Option<CreditSourceConfig>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct CreateRecurringCreditResponse {}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UnitGrant {
#[prost(string, tag = "1")]
pub line_item_uid: ::prost::alloc::string::String,
#[prost(oneof = "unit_grant::Amount", tags = "2, 3")]
pub amount: ::core::option::Option<unit_grant::Amount>,
}
pub mod unit_grant {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Amount {
#[prost(bool, tag = "2")]
IsUnlimited(bool),
#[prost(uint64, tag = "3")]
Units(u64),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct MonetaryGrant {
#[prost(uint64, tag = "1")]
pub amount: u64,
#[prost(enumeration = "MonetaryType", tag = "2")]
pub r#type: i32,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ActiveGrant {
#[prost(message, optional, tag = "3")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "4")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(oneof = "active_grant::Kind", tags = "1, 2")]
pub kind: ::core::option::Option<active_grant::Kind>,
}
pub mod active_grant {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Kind {
#[prost(message, tag = "1")]
Unit(super::UnitGrant),
#[prost(message, tag = "2")]
Monetary(super::MonetaryGrant),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetActiveGrantsRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(message, optional, tag = "3")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "4")]
pub end_date: ::core::option::Option<super::super::super::Date>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetActiveGrantsResponse {
#[prost(message, repeated, tag = "1")]
pub grants: ::prost::alloc::vec::Vec<ActiveGrant>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum MonetaryType {
Unspecified = 0,
Cents = 1,
Percent = 2,
}
impl MonetaryType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "MONETARY_TYPE_UNSPECIFIED",
Self::Cents => "MONETARY_TYPE_CENTS",
Self::Percent => "MONETARY_TYPE_PERCENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MONETARY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"MONETARY_TYPE_CENTS" => Some(Self::Cents),
"MONETARY_TYPE_PERCENT" => Some(Self::Percent),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct TrialConfig {
#[prost(string, tag = "1")]
pub line_item_uid: ::prost::alloc::string::String,
#[prost(oneof = "trial_config::Amount", tags = "2, 3")]
pub amount: ::core::option::Option<trial_config::Amount>,
}
pub mod trial_config {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Amount {
#[prost(uint64, tag = "2")]
Total(u64),
#[prost(bool, tag = "3")]
IsUnlimited(bool),
}
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Trial {
#[prost(message, repeated, tag = "1")]
pub config: ::prost::alloc::vec::Vec<TrialConfig>,
#[prost(message, optional, tag = "2")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "3")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(string, optional, tag = "4")]
pub package_uid: ::core::option::Option<::prost::alloc::string::String>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetActiveTrialsRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(message, optional, tag = "3")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "4")]
pub end_date: ::core::option::Option<super::super::super::Date>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetActiveTrialsResponse {
#[prost(message, repeated, tag = "1")]
pub trials: ::prost::alloc::vec::Vec<Trial>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetContractBalanceRequest {
#[prost(uint64, tag = "1")]
pub contract_id: u64,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetContractBalanceResponse {
#[prost(uint64, tag = "1")]
pub balance_cents: u64,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EffectiveGrant {
#[prost(uint64, tag = "1")]
pub grant_id: u64,
#[prost(enumeration = "GrantType", tag = "2")]
pub r#type: i32,
#[prost(string, repeated, tag = "3")]
pub line_item_uids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
#[prost(int64, tag = "4")]
pub effective_amount: i64,
#[prost(message, optional, tag = "5")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "6")]
pub end_date: ::core::option::Option<super::super::super::Date>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetEffectiveGrantsRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(string, optional, tag = "2")]
pub line_item_uid: ::core::option::Option<::prost::alloc::string::String>,
#[prost(message, optional, tag = "3")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "4")]
pub end_date: ::core::option::Option<super::super::super::Date>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetEffectiveGrantsResponse {
#[prost(message, repeated, tag = "1")]
pub effective_grants: ::prost::alloc::vec::Vec<EffectiveGrant>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EffectiveMonetaryGrant {
#[prost(uint64, tag = "1")]
pub amount: u64,
#[prost(enumeration = "EffectiveMonetaryType", tag = "2")]
pub r#type: i32,
#[prost(enumeration = "EffectiveMonetarySource", tag = "3")]
pub source: i32,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetMonetaryGrantsRequest {
#[prost(uint64, tag = "1")]
pub contract_id: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetMonetaryGrantsResponse {
#[prost(message, repeated, tag = "1")]
pub monetary_grants: ::prost::alloc::vec::Vec<EffectiveMonetaryGrant>,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EffectiveMonetaryType {
Unspecified = 0,
Cents = 1,
Percent = 2,
}
impl EffectiveMonetaryType {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "EFFECTIVE_MONETARY_TYPE_UNSPECIFIED",
Self::Cents => "EFFECTIVE_MONETARY_TYPE_CENTS",
Self::Percent => "EFFECTIVE_MONETARY_TYPE_PERCENT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EFFECTIVE_MONETARY_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"EFFECTIVE_MONETARY_TYPE_CENTS" => Some(Self::Cents),
"EFFECTIVE_MONETARY_TYPE_PERCENT" => Some(Self::Percent),
_ => None,
}
}
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum EffectiveMonetarySource {
Unspecified = 0,
Balance = 1,
RecurringCredit = 2,
}
impl EffectiveMonetarySource {
pub fn as_str_name(&self) -> &'static str {
match self {
Self::Unspecified => "EFFECTIVE_MONETARY_SOURCE_UNSPECIFIED",
Self::Balance => "EFFECTIVE_MONETARY_SOURCE_BALANCE",
Self::RecurringCredit => "EFFECTIVE_MONETARY_SOURCE_RECURRING_CREDIT",
}
}
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"EFFECTIVE_MONETARY_SOURCE_UNSPECIFIED" => Some(Self::Unspecified),
"EFFECTIVE_MONETARY_SOURCE_BALANCE" => Some(Self::Balance),
"EFFECTIVE_MONETARY_SOURCE_RECURRING_CREDIT" => Some(Self::RecurringCredit),
_ => None,
}
}
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetRecurringCreditsRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(uint64, tag = "2")]
pub contract_id: u64,
#[prost(uint64, repeated, tag = "3")]
pub contract_ids: ::prost::alloc::vec::Vec<u64>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRecurringCreditsResponse {
#[prost(message, repeated, tag = "1")]
pub recurring_credits: ::prost::alloc::vec::Vec<RecurringCredit>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetUnassignedBalancesRequest {}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetUnassignedBalancesResponse {
#[prost(uint64, repeated, tag = "1")]
pub previous_contract_ids: ::prost::alloc::vec::Vec<u64>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct EffectiveUnitGrant {
#[prost(string, tag = "1")]
pub line_item_uid: ::prost::alloc::string::String,
#[prost(message, optional, tag = "4")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "5")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(oneof = "effective_unit_grant::Amount", tags = "2, 3")]
pub amount: ::core::option::Option<effective_unit_grant::Amount>,
}
pub mod effective_unit_grant {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Amount {
#[prost(bool, tag = "2")]
IsUnlimited(bool),
#[prost(uint64, tag = "3")]
Units(u64),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct GetUnitGrantsRequest {
#[prost(uint64, tag = "1")]
pub contract_id: u64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetUnitGrantsResponse {
#[prost(message, repeated, tag = "1")]
pub grants: ::prost::alloc::vec::Vec<EffectiveUnitGrant>,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StageRolloverBalanceRequest {
#[prost(uint64, tag = "1")]
pub contract_id: u64,
#[prost(uint64, tag = "2")]
pub amount_used_cents: u64,
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StageRolloverBalanceResponse {}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StartTrialRequest {
#[prost(uint64, tag = "1")]
pub organization_id: u64,
#[prost(message, optional, tag = "4")]
pub start_date: ::core::option::Option<super::super::super::Date>,
#[prost(message, optional, tag = "5")]
pub end_date: ::core::option::Option<super::super::super::Date>,
#[prost(oneof = "start_trial_request::Scope", tags = "2, 3")]
pub scope: ::core::option::Option<start_trial_request::Scope>,
}
pub mod start_trial_request {
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum Scope {
#[prost(string, tag = "2")]
LineItemUid(::prost::alloc::string::String),
#[prost(string, tag = "3")]
PackageUid(::prost::alloc::string::String),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StartTrialResponse {}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpsertContractBalanceRequest {
#[prost(uint64, tag = "1")]
pub contract_id: u64,
#[prost(int64, tag = "2")]
pub amount_cents: i64,
#[prost(oneof = "upsert_contract_balance_request::PreviousContract", tags = "3, 4")]
pub previous_contract: ::core::option::Option<
upsert_contract_balance_request::PreviousContract,
>,
}
pub mod upsert_contract_balance_request {
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
pub enum PreviousContract {
#[prost(uint64, tag = "3")]
PreviousContractId(u64),
#[prost(bool, tag = "4")]
PreviousContractDoesNotExist(bool),
}
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct UpsertContractBalanceResponse {
#[prost(uint64, tag = "1")]
pub new_balance_cents: u64,
}