# frozen_string_literal: true # 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 # # https://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. # Auto-generated by gapic-generator-ruby. DO NOT EDIT! module Google module Cloud module Channel module V1 # Configuration for how a reseller will reprice a Customer. # @!attribute [r] name # @return [::String] # Output only. Resource name of the CustomerRepricingConfig. # Format: # accounts/\\{account_id}/customers/\\{customer_id}/customerRepricingConfigs/\\{id}. # @!attribute [rw] repricing_config # @return [::Google::Cloud::Channel::V1::RepricingConfig] # Required. The configuration for bill modifications made by a reseller before # sending it to customers. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. Timestamp of an update to the repricing rule. If `update_time` is after # {::Google::Cloud::Channel::V1::RepricingConfig#effective_invoice_month RepricingConfig.effective_invoice_month} then it indicates this was set # mid-month. class CustomerRepricingConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for how a distributor will rebill a channel partner # (also known as a distributor-authorized reseller). # @!attribute [r] name # @return [::String] # Output only. Resource name of the ChannelPartnerRepricingConfig. # Format: # accounts/\\{account_id}/channelPartnerLinks/\\{channel_partner_id}/channelPartnerRepricingConfigs/\\{id}. # @!attribute [rw] repricing_config # @return [::Google::Cloud::Channel::V1::RepricingConfig] # Required. The configuration for bill modifications made by a reseller before # sending it to ChannelPartner. # @!attribute [r] update_time # @return [::Google::Protobuf::Timestamp] # Output only. Timestamp of an update to the repricing rule. If `update_time` is after # {::Google::Cloud::Channel::V1::RepricingConfig#effective_invoice_month RepricingConfig.effective_invoice_month} then it indicates this was set # mid-month. class ChannelPartnerRepricingConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Configuration for repricing a Google bill over a period of time. # @!attribute [rw] entitlement_granularity # @return [::Google::Cloud::Channel::V1::RepricingConfig::EntitlementGranularity] # Applies the repricing configuration at the entitlement level. This is # the only supported value for CustomerRepricingConfig. # @!attribute [rw] channel_partner_granularity # @return [::Google::Cloud::Channel::V1::RepricingConfig::ChannelPartnerGranularity] # Applies the repricing configuration at the channel partner level. # This is the only supported value for ChannelPartnerRepricingConfig. # @!attribute [rw] effective_invoice_month # @return [::Google::Type::Date] # Required. The YearMonth when these adjustments activate. The Day field needs to be # "0" since we only accept YearMonth repricing boundaries. # @!attribute [rw] adjustment # @return [::Google::Cloud::Channel::V1::RepricingAdjustment] # Required. Information about the adjustment. # @!attribute [rw] rebilling_basis # @return [::Google::Cloud::Channel::V1::RebillingBasis] # Required. The {::Google::Cloud::Channel::V1::RebillingBasis RebillingBasis} to use for this bill. Specifies the relative cost # based on repricing costs you will apply. class RepricingConfig include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods # Applies the repricing configuration at the entitlement level. # @!attribute [rw] entitlement # @return [::String] # Resource name of the entitlement. # Format: # accounts/\\{account_id}/customers/\\{customer_id}/entitlements/\\{entitlement_id} class EntitlementGranularity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Applies the repricing configuration at the channel partner level. # The channel partner value is derived from the resource name. Takes an # empty json object. class ChannelPartnerGranularity include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end end # A type that represents the various adjustments you can apply to a bill. # @!attribute [rw] percentage_adjustment # @return [::Google::Cloud::Channel::V1::PercentageAdjustment] # Flat markup or markdown on an entire bill. class RepricingAdjustment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # An adjustment that applies a flat markup or markdown to an entire bill. # @!attribute [rw] percentage # @return [::Google::Type::Decimal] # The percentage of the bill to adjust. # For example: # Mark down by 1% => "-1.00" # Mark up by 1% => "1.00" # Pass-Through => "0.00" class PercentageAdjustment include ::Google::Protobuf::MessageExts extend ::Google::Protobuf::MessageExts::ClassMethods end # Specifies the different costs that the modified bill can be based on. module RebillingBasis # Not used. REBILLING_BASIS_UNSPECIFIED = 0 # Use the list cost, also known as the MSRP. COST_AT_LIST = 1 # Pass through all discounts except the Reseller Program Discount. If this is # the default cost base and no adjustments are specified, the output cost # will be exactly what the customer would see if they viewed the bill in the # Google Cloud Console. DIRECT_CUSTOMER_COST = 2 end end end end end