summaryrefslogtreecommitdiff
path: root/third_party/googleapis/google/cloud/channel/v1/entitlements.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/channel/v1/entitlements.proto')
-rw-r--r--third_party/googleapis/google/cloud/channel/v1/entitlements.proto250
1 files changed, 250 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/channel/v1/entitlements.proto b/third_party/googleapis/google/cloud/channel/v1/entitlements.proto
new file mode 100644
index 0000000..35da239
--- /dev/null
+++ b/third_party/googleapis/google/cloud/channel/v1/entitlements.proto
@@ -0,0 +1,250 @@
+// Copyright 2022 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";
+
+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 {
+ // Not used.
+ 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 {
+ // Not used.
+ 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. This is only supported for Google Workspace
+ // entitlements.
+ 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
+ // parameter names and values are defined in the
+ // [Offer.parameter_definitions][google.cloud.channel.v1.Offer.parameter_definitions].
+ //
+ // The response may include the following output-only Parameters:
+ //
+ // - assigned_units: The number of licenses assigned to users.
+ //
+ // - max_units: The maximum assignable units for a flexible offer.
+ //
+ // - num_units: The total commitment for commitment-based offers.
+ 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 is the
+ // underlying Subscription ID. For Google Cloud Platform, this is the
+ // Billing Account ID of the billing subaccount."
+ 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 {
+ // Not used.
+ 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;
+}