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.
242 lines
8.7 KiB
242 lines
8.7 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/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 { |
|
// 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; |
|
|
|
// Optional. The customer to transfer has an entitlement with the populated legacy SKU. |
|
Sku legacy_sku = 12 [(google.api.field_behavior) = OPTIONAL]; |
|
} |
|
|
|
// 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; |
|
}
|
|
|