grpc 第三方依赖 就是grpc的 third_party 文件夹
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

327 lines
9.0 KiB

// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.channel.v1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/channel/v1/common.proto";
import "google/cloud/channel/v1/products.proto";
import "google/protobuf/timestamp.proto";
import "google/type/money.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/channel/v1;channel";
option java_multiple_files = true;
option java_outer_classname = "OffersProto";
option java_package = "com.google.cloud.channel.v1";
// Constraints type for Promotional offers.
enum PromotionalOrderType {
// Not used.
PROMOTIONAL_TYPE_UNSPECIFIED = 0;
// Order used for new customers, trial conversions and upgrades.
NEW_UPGRADE = 1;
// All orders for transferring an existing customer.
TRANSFER = 2;
// Orders for modifying an existing customer's promotion on the same SKU.
PROMOTION_SWITCH = 3;
}
// Describes how the reseller will be billed.
enum PaymentPlan {
// Not used.
PAYMENT_PLAN_UNSPECIFIED = 0;
// Commitment.
COMMITMENT = 1;
// No commitment.
FLEXIBLE = 2;
// Free.
FREE = 3;
// Trial.
TRIAL = 4;
// Price and ordering not available through API.
OFFLINE = 5;
}
// Specifies when the payment needs to happen.
enum PaymentType {
// Not used.
PAYMENT_TYPE_UNSPECIFIED = 0;
// Prepay. Amount has to be paid before service is rendered.
PREPAY = 1;
// Postpay. Reseller is charged at the end of the Payment cycle.
POSTPAY = 2;
}
// Represents the type for a monetizable resource(any entity on which billing
// happens). For example, this could be MINUTES for Google Voice and GB for
// Google Drive. One SKU can map to multiple monetizable resources.
enum ResourceType {
// Not used.
RESOURCE_TYPE_UNSPECIFIED = 0;
// Seat.
SEAT = 1;
// Monthly active user.
MAU = 2;
// GB (used for storage SKUs).
GB = 3;
// Active licensed users(for Voice SKUs).
LICENSED_USER = 4;
// Voice usage.
MINUTES = 5;
// For IaaS SKUs like Google Cloud Platform, monetization is based on usage
// accrued on your billing account irrespective of the type of monetizable
// resource. This enum represents an aggregated resource/container for all
// usage SKUs on a billing account. Currently, only applicable to Google Cloud
// Platform.
IAAS_USAGE = 6;
// For Google Cloud Platform subscriptions like Anthos or SAP.
SUBSCRIPTION = 7;
}
// Period Type.
enum PeriodType {
// Not used.
PERIOD_TYPE_UNSPECIFIED = 0;
// Day.
DAY = 1;
// Month.
MONTH = 2;
// Year.
YEAR = 3;
}
// Represents an offer made to resellers for purchase.
// An offer is associated with a [Sku][google.cloud.channel.v1.Sku], has a plan for payment, a price, and
// defines the constraints for buying.
message Offer {
option (google.api.resource) = {
type: "cloudchannel.googleapis.com/Offer"
pattern: "accounts/{account}/offers/{offer}"
};
// Resource Name of the Offer.
// Format: accounts/{account_id}/offers/{offer_id}
string name = 1;
// Marketing information for the Offer.
MarketingInfo marketing_info = 2;
// SKU the offer is associated with.
Sku sku = 3;
// Describes the payment plan for the Offer.
Plan plan = 4;
// Constraints on transacting the Offer.
Constraints constraints = 5;
// Price for each monetizable resource type.
repeated PriceByResource price_by_resources = 6;
// Start of the Offer validity time.
google.protobuf.Timestamp start_time = 7;
// Output only. End of the Offer validity time.
google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Parameters required to use current Offer to purchase.
repeated ParameterDefinition parameter_definitions = 9;
}
// Parameter's definition. Specifies what parameter is required to use the
// current Offer to purchase.
message ParameterDefinition {
// Data type of the parameter.
enum ParameterType {
// Not used.
PARAMETER_TYPE_UNSPECIFIED = 0;
// Int64 type.
INT64 = 1;
// String type.
STRING = 2;
// Double type.
DOUBLE = 3;
}
// Name of the parameter.
string name = 1;
// Data type of the parameter. Minimal value, Maximum value and allowed values
// will use specified data type here.
ParameterType parameter_type = 2;
// Minimal value of the parameter, if applicable. Inclusive. For example,
// minimal commitment when purchasing Anthos is 0.01.
// Applicable to INT64 and DOUBLE parameter types.
Value min_value = 3;
// Maximum value of the parameter, if applicable. Inclusive. For example,
// maximum seats when purchasing Google Workspace Business Standard.
// Applicable to INT64 and DOUBLE parameter types.
Value max_value = 4;
// If not empty, parameter values must be drawn from this list.
// For example, [us-west1, us-west2, ...]
// Applicable to STRING parameter type.
repeated Value allowed_values = 5;
// If set to true, parameter is optional to purchase this Offer.
bool optional = 6;
}
// Represents the constraints for buying the Offer.
message Constraints {
// Represents constraints required to purchase the Offer for a customer.
CustomerConstraints customer_constraints = 1;
}
// Represents constraints required to purchase the Offer for a customer.
message CustomerConstraints {
// Allowed geographical regions of the customer.
repeated string allowed_regions = 1;
// Allowed Customer Type.
repeated CloudIdentityInfo.CustomerType allowed_customer_types = 2;
// Allowed Promotional Order Type. Present for Promotional offers.
repeated PromotionalOrderType promotional_order_types = 3;
}
// The payment plan for the Offer. Describes how to make a payment.
message Plan {
// Describes how a reseller will be billed.
PaymentPlan payment_plan = 1;
// Specifies when the payment needs to happen.
PaymentType payment_type = 2;
// Describes how frequently the reseller will be billed, such as
// once per month.
Period payment_cycle = 3;
// Present for Offers with a trial period.
// For trial-only Offers, a paid service needs to start before the trial
// period ends for continued service.
// For Regular Offers with a trial period, the regular pricing goes into
// effect when trial period ends, or if paid service is started before the end
// of the trial period.
Period trial_period = 4;
// Reseller Billing account to charge after an offer transaction.
// Only present for Google Cloud Platform offers.
string billing_account = 5;
}
// Represents price by resource type.
message PriceByResource {
// Resource Type. Example: SEAT
ResourceType resource_type = 1;
// Price of the Offer. Present if there are no price phases.
Price price = 2;
// Specifies the price by time range.
repeated PricePhase price_phases = 3;
}
// Represents the price of the Offer.
message Price {
// Base price.
google.type.Money base_price = 1;
// Discount percentage, represented as decimal.
// For example, a 20% discount will be represent as 0.2.
double discount = 2;
// Effective Price after applying the discounts.
google.type.Money effective_price = 3;
// Link to external price list, such as link to Google Voice rate card.
string external_price_uri = 4;
}
// Specifies the price by the duration of months.
// For example, a 20% discount for the first six months, then a 10% discount
// starting on the seventh month.
message PricePhase {
// Defines the phase period type.
PeriodType period_type = 1;
// Defines first period for the phase.
int32 first_period = 2;
// Defines first period for the phase.
int32 last_period = 3;
// Price of the phase. Present if there are no price tiers.
Price price = 4;
// Price by the resource tiers.
repeated PriceTier price_tiers = 5;
}
// Defines price at resource tier level.
// For example, an offer with following definition :
//
// * Tier 1: Provide 25% discount for all seats between 1 and 25.
// * Tier 2: Provide 10% discount for all seats between 26 and 100.
// * Tier 3: Provide flat 15% discount for all seats above 100.
//
// Each of these tiers is represented as a PriceTier.
message PriceTier {
// First resource for which the tier price applies.
int32 first_resource = 1;
// Last resource for which the tier price applies.
int32 last_resource = 2;
// Price of the tier.
Price price = 3;
}
// Represents period in days/months/years.
message Period {
// Total duration of Period Type defined.
int32 duration = 1;
// Period Type.
PeriodType period_type = 2;
}