Class: Stigg::Resources::V1::Subscriptions

Inherits:
Object
  • Object
show all
Defined in:
lib/stigg/resources/v1/subscriptions.rb,
lib/stigg/resources/v1/subscriptions/usage.rb,
lib/stigg/resources/v1/subscriptions/invoice.rb,
lib/stigg/resources/v1/subscriptions/future_update.rb

Defined Under Namespace

Classes: FutureUpdate, Invoice, Usage

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Subscriptions

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns a new instance of Subscriptions.

Parameters:



406
407
408
409
410
411
# File 'lib/stigg/resources/v1/subscriptions.rb', line 406

def initialize(client:)
  @client = client
  @future_update = Stigg::Resources::V1::Subscriptions::FutureUpdate.new(client: client)
  @usage = Stigg::Resources::V1::Subscriptions::Usage.new(client: client)
  @invoice = Stigg::Resources::V1::Subscriptions::Invoice.new(client: client)
end

Instance Attribute Details

#future_updateStigg::Resources::V1::Subscriptions::FutureUpdate (readonly)

Operations related to subscriptions



9
10
11
# File 'lib/stigg/resources/v1/subscriptions.rb', line 9

def future_update
  @future_update
end

#invoiceStigg::Resources::V1::Subscriptions::Invoice (readonly)

Operations related to subscriptions



17
18
19
# File 'lib/stigg/resources/v1/subscriptions.rb', line 17

def invoice
  @invoice
end

#usageStigg::Resources::V1::Subscriptions::Usage (readonly)

Operations related to subscriptions



13
14
15
# File 'lib/stigg/resources/v1/subscriptions.rb', line 13

def usage
  @usage
end

Instance Method Details

#cancel(id, cancellation_action: nil, cancellation_time: nil, end_date: nil, prorate: nil, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Cancels an active subscription, either immediately or at a specified time such as end of billing period.

Parameters:

Returns:

See Also:



163
164
165
166
167
168
169
170
171
172
# File 'lib/stigg/resources/v1/subscriptions.rb', line 163

def cancel(id, params = {})
  parsed, options = Stigg::V1::SubscriptionCancelParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/cancel", id],
    body: parsed,
    model: Stigg::V1::Subscription,
    options: options
  )
end

#delegate(id, target_customer_id:, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Some parameter documentations has been truncated, see Models::V1::SubscriptionDelegateParams for more details.

Delegates the payment responsibility of a subscription to a different customer. The delegated customer will be billed for this subscription.

Parameters:

  • id (String)

    The unique identifier of the entity

  • target_customer_id (String)

    The unique identifier of the customer who will assume payment responsibility for

  • request_options (Stigg::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



191
192
193
194
195
196
197
198
199
200
# File 'lib/stigg/resources/v1/subscriptions.rb', line 191

def delegate(id, params)
  parsed, options = Stigg::V1::SubscriptionDelegateParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/delegate", id],
    body: parsed,
    model: Stigg::V1::Subscription,
    options: options
  )
end

#import(subscriptions:, integration_id: nil, request_options: {}) ⇒ Stigg::Models::V1::SubscriptionImportResponse

Imports multiple subscriptions in bulk. Used for migrating subscription data from external systems.

Parameters:

Returns:

See Also:



216
217
218
219
220
221
222
223
224
225
# File 'lib/stigg/resources/v1/subscriptions.rb', line 216

def import(params)
  parsed, options = Stigg::V1::SubscriptionImportParams.dump_request(params)
  @client.request(
    method: :post,
    path: "api/v1/subscriptions/import",
    body: parsed,
    model: Stigg::Models::V1::SubscriptionImportResponse,
    options: options
  )
end

#list(after: nil, before: nil, created_at: nil, customer_id: nil, limit: nil, plan_id: nil, pricing_type: nil, resource_id: nil, status: nil, request_options: {}) ⇒ Stigg::Internal::MyCursorIDPage<Stigg::Models::V1::SubscriptionListResponse>

Some parameter documentations has been truncated, see Models::V1::SubscriptionListParams for more details.

Retrieves a paginated list of subscriptions, with optional filters for customer, status, and plan.

Parameters:

  • after (String)

    Return items that come after this cursor

  • before (String)

    Return items that come before this cursor

  • created_at (Stigg::Models::V1::SubscriptionListParams::CreatedAt)

    Filter by creation date using range operators: gt, gte, lt, lte

  • customer_id (String)

    Filter by customer ID

  • limit (Integer)

    Maximum number of items to return

  • plan_id (String)

    Filter by plan ID

  • pricing_type (String)

    Filter by pricing type. Supports comma-separated values for multiple types

  • resource_id (String)

    Filter by resource ID

  • status (String)

    Filter by subscription status. Supports comma-separated values for multiple stat

  • request_options (Stigg::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/stigg/resources/v1/subscriptions.rb', line 124

def list(params = {})
  parsed, options = Stigg::V1::SubscriptionListParams.dump_request(params)
  query = Stigg::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "api/v1/subscriptions",
    query: query.transform_keys(
      created_at: "createdAt",
      customer_id: "customerId",
      plan_id: "planId",
      pricing_type: "pricingType",
      resource_id: "resourceId"
    ),
    page: Stigg::Internal::MyCursorIDPage,
    model: Stigg::Models::V1::SubscriptionListResponse,
    options: options
  )
end

#migrate(id, subscription_migration_time: nil, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Migrates a subscription to the latest published version of its plan or add-ons. Handles prorated charges or credits automatically.

Parameters:

Returns:

See Also:



241
242
243
244
245
246
247
248
249
250
# File 'lib/stigg/resources/v1/subscriptions.rb', line 241

def migrate(id, params = {})
  parsed, options = Stigg::V1::SubscriptionMigrateParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/migrate", id],
    body: parsed,
    model: Stigg::V1::Subscription,
    options: options
  )
end

#preview(customer_id:, plan_id:, addons: nil, applied_coupon: nil, billable_features: nil, billing_country_code: nil, billing_cycle_anchor: nil, billing_information: nil, billing_period: nil, charges: nil, paying_customer_id: nil, resource_id: nil, schedule_strategy: nil, start_date: nil, trial_override_configuration: nil, unit_quantity: nil, request_options: {}) ⇒ Stigg::Models::V1::SubscriptionPreviewResponse

Previews the pricing impact of creating or updating a subscription without making changes. Returns estimated costs, taxes, and proration details.

Parameters:

Returns:

See Also:



294
295
296
297
298
299
300
301
302
303
# File 'lib/stigg/resources/v1/subscriptions.rb', line 294

def preview(params)
  parsed, options = Stigg::V1::SubscriptionPreviewParams.dump_request(params)
  @client.request(
    method: :post,
    path: "api/v1/subscriptions/preview",
    body: parsed,
    model: Stigg::Models::V1::SubscriptionPreviewResponse,
    options: options
  )
end

#provision(customer_id:, plan_id:, id: nil, addons: nil, applied_coupon: nil, await_payment_confirmation: nil, billing_country_code: nil, billing_cycle_anchor: nil, billing_id: nil, billing_information: nil, billing_period: nil, budget: nil, charges: nil, checkout_options: nil, entitlements: nil, metadata: nil, minimum_spend: nil, paying_customer_id: nil, payment_collection_method: nil, price_overrides: nil, resource_id: nil, salesforce_id: nil, schedule_strategy: nil, start_date: nil, trial_override_configuration: nil, unit_quantity: nil, request_options: {}) ⇒ Stigg::Models::V1::SubscriptionProvisionResponse

Creates a new subscription for an existing customer. When payment is required and no payment method exists, returns a checkout URL.

Parameters:

Returns:

See Also:



367
368
369
370
371
372
373
374
375
376
# File 'lib/stigg/resources/v1/subscriptions.rb', line 367

def provision(params)
  parsed, options = Stigg::V1::SubscriptionProvisionParams.dump_request(params)
  @client.request(
    method: :post,
    path: "api/v1/subscriptions",
    body: parsed,
    model: Stigg::Models::V1::SubscriptionProvisionResponse,
    options: options
  )
end

#retrieve(id, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Retrieves a subscription by its unique identifier, including plan details, billing period, status, and add-ons.

Parameters:

  • id (String)

    The unique identifier of the entity

  • request_options (Stigg::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



31
32
33
34
35
36
37
38
# File 'lib/stigg/resources/v1/subscriptions.rb', line 31

def retrieve(id, params = {})
  @client.request(
    method: :get,
    path: ["api/v1/subscriptions/%1$s", id],
    model: Stigg::V1::Subscription,
    options: params[:request_options]
  )
end

#transfer(id, destination_resource_id:, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Transfers a subscription to a different resource ID. Used for multi-resource products where subscriptions apply to specific entities like websites or apps.

Parameters:

  • id (String)

    The unique identifier of the entity

  • destination_resource_id (String)

    Resource ID to transfer the subscription to

  • request_options (Stigg::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



392
393
394
395
396
397
398
399
400
401
# File 'lib/stigg/resources/v1/subscriptions.rb', line 392

def transfer(id, params)
  parsed, options = Stigg::V1::SubscriptionTransferParams.dump_request(params)
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/transfer", id],
    body: parsed,
    model: Stigg::V1::Subscription,
    options: options
  )
end

#update(id, addons: nil, applied_coupon: nil, await_payment_confirmation: nil, billing_cycle_anchor: nil, billing_information: nil, billing_period: nil, budget: nil, charges: nil, entitlements: nil, metadata: nil, minimum_spend: nil, price_overrides: nil, promotion_code: nil, schedule_strategy: nil, trial_end_date: nil, request_options: {}) ⇒ Stigg::Models::V1::Subscription

Updates an active subscription’s properties including billing period, add-ons, unit quantities, and discounts.

Parameters:

Returns:

See Also:



82
83
84
85
86
87
88
89
90
91
# File 'lib/stigg/resources/v1/subscriptions.rb', line 82

def update(id, params = {})
  parsed, options = Stigg::V1::SubscriptionUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["api/v1/subscriptions/%1$s", id],
    body: parsed,
    model: Stigg::V1::Subscription,
    options: options
  )
end