246 lines
8.7 KiB
Protocol Buffer
246 lines
8.7 KiB
Protocol Buffer
// Copyright 2020 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/offers.proto";
|
|
import "google/cloud/channel/v1/products.proto";
|
|
import "google/protobuf/timestamp.proto";
|
|
import "google/protobuf/wrappers.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 = "EntitlementsProto";
|
|
option java_package = "com.google.cloud.channel.v1";
|
|
|
|
// An entitlement is a representation of a customer's ability to use a service.
|
|
message Entitlement {
|
|
option (google.api.resource) = {
|
|
type: "cloudchannel.googleapis.com/Entitlement"
|
|
pattern: "accounts/{account}/customers/{customer}/entitlements/{entitlement}"
|
|
};
|
|
|
|
// Indicates the current provisioning state of the entitlement.
|
|
enum ProvisioningState {
|
|
// Default value. This state doesn't show unless an error occurs.
|
|
PROVISIONING_STATE_UNSPECIFIED = 0;
|
|
|
|
// The entitlement is currently active.
|
|
ACTIVE = 1;
|
|
|
|
// The entitlement is currently suspended.
|
|
SUSPENDED = 5;
|
|
}
|
|
|
|
// Suspension reason for an entitlement if [provisioning_state][google.cloud.channel.v1.Entitlement.provisioning_state] = SUSPENDED.
|
|
enum SuspensionReason {
|
|
// Default value. This state doesn't show unless an error occurs.
|
|
SUSPENSION_REASON_UNSPECIFIED = 0;
|
|
|
|
// Entitlement was manually suspended by the Reseller.
|
|
RESELLER_INITIATED = 1;
|
|
|
|
// Trial ended.
|
|
TRIAL_ENDED = 2;
|
|
|
|
// Entitlement renewal was canceled.
|
|
RENEWAL_WITH_TYPE_CANCEL = 3;
|
|
|
|
// Entitlement was automatically suspended on creation for pending ToS
|
|
// acceptance on customer.
|
|
PENDING_TOS_ACCEPTANCE = 4;
|
|
|
|
// Other reasons (internal reasons, abuse, etc.).
|
|
OTHER = 100;
|
|
}
|
|
|
|
// Output only. Resource name of an entitlement in the form:
|
|
// accounts/{account_id}/customers/{customer_id}/entitlements/{entitlement_id}.
|
|
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The time at which the entitlement is created.
|
|
google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The time at which the entitlement is updated.
|
|
google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Required. The offer resource name for which the entitlement is to be
|
|
// created. Takes the form: accounts/{account_id}/offers/{offer_id}.
|
|
string offer = 8 [
|
|
(google.api.field_behavior) = REQUIRED,
|
|
(google.api.resource_reference) = {
|
|
type: "cloudchannel.googleapis.com/Offer"
|
|
}
|
|
];
|
|
|
|
// Commitment settings for a commitment-based Offer.
|
|
// Required for commitment based offers.
|
|
CommitmentSettings commitment_settings = 12;
|
|
|
|
// Output only. Current provisioning state of the entitlement.
|
|
ProvisioningState provisioning_state = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Service provisioning details for the entitlement.
|
|
ProvisionedService provisioned_service = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Enumerable of all current suspension reasons for an entitlement.
|
|
repeated SuspensionReason suspension_reasons = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. This purchase order (PO) information is for resellers to use for their
|
|
// company tracking usage. If a purchaseOrderId value is given, it appears in
|
|
// the API responses and shows up in the invoice. The property accepts up to
|
|
// 80 plain text characters.
|
|
string purchase_order_id = 19 [(google.api.field_behavior) = OPTIONAL];
|
|
|
|
// Output only. Settings for trial offers.
|
|
TrialSettings trial_settings = 21 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Association information to other entitlements.
|
|
AssociationInfo association_info = 23;
|
|
|
|
// Extended entitlement parameters. When creating an entitlement, valid
|
|
// parameters' names and values are defined in the offer's parameter
|
|
// definitions.
|
|
repeated Parameter parameters = 26;
|
|
}
|
|
|
|
// Definition for extended entitlement parameters.
|
|
message Parameter {
|
|
// Name of the parameter.
|
|
string name = 1;
|
|
|
|
// Value of the parameter.
|
|
Value value = 2;
|
|
|
|
// Output only. Specifies whether this parameter is allowed to be changed. For example, for
|
|
// a Google Workspace Business Starter entitlement in commitment plan,
|
|
// num_units is editable when entitlement is active.
|
|
bool editable = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Association links that an entitlement has to other entitlements.
|
|
message AssociationInfo {
|
|
// The name of the base entitlement, for which this entitlement is an add-on.
|
|
string base_entitlement = 1 [(google.api.resource_reference) = {
|
|
type: "cloudchannel.googleapis.com/Entitlement"
|
|
}];
|
|
}
|
|
|
|
// Service provisioned for an entitlement.
|
|
message ProvisionedService {
|
|
// Output only. Provisioning ID of the entitlement. For Google Workspace, this would be the
|
|
// underlying Subscription ID.
|
|
string provisioning_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The product pertaining to the provisioning resource as specified in the
|
|
// Offer.
|
|
string product_id = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. The SKU pertaining to the provisioning resource as specified in the Offer.
|
|
string sku_id = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
}
|
|
|
|
// Commitment settings for commitment-based offers.
|
|
message CommitmentSettings {
|
|
// Output only. Commitment start timestamp.
|
|
google.protobuf.Timestamp start_time = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Output only. Commitment end timestamp.
|
|
google.protobuf.Timestamp end_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
|
|
|
|
// Optional. Renewal settings applicable for a commitment-based Offer.
|
|
RenewalSettings renewal_settings = 4 [(google.api.field_behavior) = OPTIONAL];
|
|
}
|
|
|
|
// Renewal settings for renewable Offers.
|
|
message RenewalSettings {
|
|
// If false, the plan will be completed at the end date.
|
|
bool enable_renewal = 1;
|
|
|
|
// If true and enable_renewal = true, the unit (for example seats or licenses)
|
|
// will be set to the number of active units at renewal time.
|
|
bool resize_unit_count = 2;
|
|
|
|
// Describes how a reseller will be billed.
|
|
PaymentPlan payment_plan = 5;
|
|
|
|
// Describes how frequently the reseller will be billed, such as
|
|
// once per month.
|
|
Period payment_cycle = 6;
|
|
}
|
|
|
|
// Settings for trial offers.
|
|
message TrialSettings {
|
|
// Determines if the entitlement is in a trial or not:
|
|
//
|
|
// * `true` - The entitlement is in trial.
|
|
// * `false` - The entitlement is not in trial.
|
|
bool trial = 1;
|
|
|
|
// Date when the trial ends. The value is in milliseconds
|
|
// using the UNIX Epoch format. See an example [Epoch
|
|
// converter](https://www.epochconverter.com).
|
|
google.protobuf.Timestamp end_time = 2;
|
|
}
|
|
|
|
// TransferableSku represents information a reseller needs to view existing
|
|
// provisioned services for a customer that they do not own.
|
|
// Read-only.
|
|
message TransferableSku {
|
|
// Whether a transferable SKU is commitment-based or not.
|
|
google.protobuf.BoolValue is_commitment = 6;
|
|
|
|
// Commitment end timestamp.
|
|
google.protobuf.Timestamp commitment_end_timestamp = 7;
|
|
|
|
// Describes the transfer eligibility of a SKU.
|
|
TransferEligibility transfer_eligibility = 9;
|
|
|
|
// The SKU pertaining to the provisioning resource as specified in the Offer.
|
|
Sku sku = 11;
|
|
}
|
|
|
|
// Specifies transfer eligibility of a SKU.
|
|
message TransferEligibility {
|
|
// Reason of ineligibility.
|
|
enum Reason {
|
|
// Reason is not available.
|
|
REASON_UNSPECIFIED = 0;
|
|
|
|
// Reseller needs to accept TOS before transferring the SKU.
|
|
PENDING_TOS_ACCEPTANCE = 1;
|
|
|
|
// Reseller not eligible to sell the SKU.
|
|
SKU_NOT_ELIGIBLE = 2;
|
|
|
|
// SKU subscription is suspended
|
|
SKU_SUSPENDED = 3;
|
|
}
|
|
|
|
// Whether reseller is eligible to transfer the SKU.
|
|
bool is_eligible = 1;
|
|
|
|
// Localized description if reseller is not eligible to transfer the SKU.
|
|
string description = 2;
|
|
|
|
// Specified the reason for ineligibility.
|
|
Reason ineligibility_reason = 3;
|
|
}
|