Class: MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data

Inherits:
Internal::Type::BaseModel show all
Defined in:
lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb

Defined Under Namespace

Modules: BillingProvider, DeliveryMethod, TaxProvider

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Internal::Type::BaseModel

==, #==, #[], coerce, #deconstruct_keys, #deep_to_h, dump, fields, hash, #hash, inherited, inspect, #inspect, known_fields, optional, recursively_to_h, required, #to_h, #to_json, #to_s, to_sorbet_type, #to_yaml

Methods included from Internal::Type::Converter

#coerce, coerce, #dump, dump, inspect, #inspect, meta_info, new_coerce_state, type_info

Methods included from Internal::Util::SorbetRuntimeSupport

#const_missing, #define_sorbet_constant!, #sorbet_constant_defined?, #to_sorbet_type, to_sorbet_type

Constructor Details

#initialize(billing_provider: , customer_id: , configuration: nil, delivery_method: nil, delivery_method_id: nil, tax_provider: nil) ⇒ Object

Some parameter documentations has been truncated, see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data for more details.

Parameters:



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 21

class Data < MetronomeSDK::Internal::Type::BaseModel
  # @!attribute billing_provider
  #   The billing provider set for this configuration.
  #
  #   @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider]
  required :billing_provider,
           enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider }

  # @!attribute customer_id
  #
  #   @return [String]
  required :customer_id, String

  # @!attribute configuration
  #   Configuration for the billing provider. The structure of this object is specific
  #   to the billing provider and delivery method combination. Defaults to an empty
  #   object, however, for most billing provider + delivery method combinations, it
  #   will not be a valid configuration. For AWS marketplace configurations, the
  #   aws_is_subscription_product flag can be used to indicate a product with
  #   usage-based pricing. More information can be found
  #   [here](https://docs.metronome.com/invoice-customers/solutions/marketplaces/invoice-aws/#provision-aws-marketplace-customers-in-metronome).
  #
  #   @return [Hash{Symbol=>Object}, nil]
  optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]

  # @!attribute delivery_method
  #   The method to use for delivering invoices to this customer. If not provided, the
  #   `delivery_method_id` must be provided.
  #
  #   @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod, nil]
  optional :delivery_method,
           enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod }

  # @!attribute delivery_method_id
  #   ID of the delivery method to use for this customer. If not provided, the
  #   `delivery_method` must be provided.
  #
  #   @return [String, nil]
  optional :delivery_method_id, String

  # @!attribute tax_provider
  #   Specifies which tax provider Metronome should use for tax calculation when
  #   billing through Stripe. This is only supported for Stripe billing provider
  #   configurations with auto_charge_payment_intent or manual_charge_payment_intent
  #   collection methods.
  #
  #   @return [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider, nil]
  optional :tax_provider,
           enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider }

  # @!method initialize(billing_provider:, customer_id:, configuration: nil, delivery_method: nil, delivery_method_id: nil, tax_provider: nil)
  #   Some parameter documentations has been truncated, see
  #   {MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data} for
  #   more details.
  #
  #   @param billing_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider] The billing provider set for this configuration.
  #
  #   @param customer_id [String]
  #
  #   @param configuration [Hash{Symbol=>Object}] Configuration for the billing provider. The structure of this object is specific
  #
  #   @param delivery_method [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod] The method to use for delivering invoices to this customer. If not provided, the
  #
  #   @param delivery_method_id [String] ID of the delivery method to use for this customer. If not provided, the `delive
  #
  #   @param tax_provider [Symbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider] Specifies which tax provider Metronome should use for tax calculation when billi

  # The billing provider set for this configuration.
  #
  # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#billing_provider
  module BillingProvider
    extend MetronomeSDK::Internal::Type::Enum

    AWS_MARKETPLACE = :aws_marketplace
    STRIPE = :stripe
    NETSUITE = :netsuite
    CUSTOM = :custom
    AZURE_MARKETPLACE = :azure_marketplace
    QUICKBOOKS_ONLINE = :quickbooks_online
    WORKDAY = :workday
    GCP_MARKETPLACE = :gcp_marketplace
    METRONOME = :metronome

    # @!method self.values
    #   @return [Array<Symbol>]
  end

  # The method to use for delivering invoices to this customer. If not provided, the
  # `delivery_method_id` must be provided.
  #
  # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#delivery_method
  module DeliveryMethod
    extend MetronomeSDK::Internal::Type::Enum

    DIRECT_TO_BILLING_PROVIDER = :direct_to_billing_provider
    AWS_SQS = :aws_sqs
    TACKLE = :tackle
    AWS_SNS = :aws_sns

    # @!method self.values
    #   @return [Array<Symbol>]
  end

  # Specifies which tax provider Metronome should use for tax calculation when
  # billing through Stripe. This is only supported for Stripe billing provider
  # configurations with auto_charge_payment_intent or manual_charge_payment_intent
  # collection methods.
  #
  # @see MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data#tax_provider
  module TaxProvider
    extend MetronomeSDK::Internal::Type::Enum

    ANROK = :anrok
    AVALARA = :avalara
    STRIPE = :stripe

    # @!method self.values
    #   @return [Array<Symbol>]
  end
end

Instance Attribute Details

#billing_providerSymbol, MetronomeSDK::Models::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider

The billing provider set for this configuration.



26
27
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 26

required :billing_provider,
enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::BillingProvider }

#configurationHash{Symbol=>Object}?

Configuration for the billing provider. The structure of this object is specific to the billing provider and delivery method combination. Defaults to an empty object, however, for most billing provider + delivery method combinations, it will not be a valid configuration. For AWS marketplace configurations, the aws_is_subscription_product flag can be used to indicate a product with usage-based pricing. More information can be found [here](docs.metronome.com/invoice-customers/solutions/marketplaces/invoice-aws/#provision-aws-marketplace-customers-in-metronome).

Returns:

  • (Hash{Symbol=>Object}, nil)


44
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 44

optional :configuration, MetronomeSDK::Internal::Type::HashOf[MetronomeSDK::Internal::Type::Unknown]

#customer_idString

Returns:

  • (String)


32
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 32

required :customer_id, String

#delivery_methodSymbol, ...

The method to use for delivering invoices to this customer. If not provided, the ‘delivery_method_id` must be provided.



51
52
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 51

optional :delivery_method,
enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::DeliveryMethod }

#delivery_method_idString?

ID of the delivery method to use for this customer. If not provided, the ‘delivery_method` must be provided.

Returns:

  • (String, nil)


59
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 59

optional :delivery_method_id, String

#tax_providerSymbol, ...

Specifies which tax provider Metronome should use for tax calculation when billing through Stripe. This is only supported for Stripe billing provider configurations with auto_charge_payment_intent or manual_charge_payment_intent collection methods.



68
69
# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 68

optional :tax_provider,
enum: -> { MetronomeSDK::V1::CustomerSetBillingConfigurationsParams::Data::TaxProvider }

Class Method Details

.valuesArray<Symbol>

Returns:

  • (Array<Symbol>)


# File 'lib/metronome_sdk/models/v1/customer_set_billing_configurations_params.rb', line 104