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:



511
512
513
514
515
516
# File 'lib/stigg/resources/v1/subscriptions.rb', line 511

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, x_account_id: nil, x_environment_id: nil, request_options: {}) ⇒ Stigg::Models::V1::Subscription

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

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

Parameters:

  • id (String)

    Path param: The unique identifier of the entity

  • cancellation_action (Symbol, Stigg::Models::V1::SubscriptionCancelParams::CancellationAction)

    Body param: Action on cancellation (downgrade or revoke)

  • cancellation_time (Symbol, Stigg::Models::V1::SubscriptionCancelParams::CancellationTime)

    Body param: When to cancel (immediate, period end, or date)

  • end_date (Time)

    Body param: Subscription end date

  • prorate (Boolean)

    Body param: If set, enables or disables prorating of credits on subscription can

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



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

def cancel(id, params = {})
  parsed, options = Stigg::V1::SubscriptionCancelParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/cancel", id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Stigg::V1::Subscription,
    options: options
  )
end

#delegate(id, target_customer_id:, x_account_id: nil, x_environment_id: nil, 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)

    Path param: The unique identifier of the entity

  • target_customer_id (String)

    Body param: The unique identifier of the customer who will assume payment respon

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



247
248
249
250
251
252
253
254
255
256
257
258
# File 'lib/stigg/resources/v1/subscriptions.rb', line 247

def delegate(id, params)
  parsed, options = Stigg::V1::SubscriptionDelegateParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/delegate", id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Stigg::V1::Subscription,
    options: options
  )
end

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

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

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

Parameters:

  • subscriptions (Array<Stigg::Models::V1::SubscriptionImportParams::Subscription>)

    Body param: List of subscription objects to import

  • integration_id (String, nil)

    Body param: Integration ID to use for importing subscriptions

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



281
282
283
284
285
286
287
288
289
290
291
292
# File 'lib/stigg/resources/v1/subscriptions.rb', line 281

def import(params)
  parsed, options = Stigg::V1::SubscriptionImportParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: "api/v1/subscriptions/import",
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    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, x_account_id: nil, x_environment_id: 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)

    Query param: Return items that come after this cursor

  • before (String)

    Query param: Return items that come before this cursor

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

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

  • customer_id (String)

    Query param: Filter by customer ID

  • limit (Integer)

    Query param: Maximum number of items to return

  • plan_id (String)

    Query param: Filter by plan ID

  • pricing_type (Array<Symbol, Stigg::Models::V1::SubscriptionListParams::PricingType>)

    Query param: Filter by pricing type. Supports comma-separated values for multipl

  • resource_id (String)

    Query param: Filter by resource ID

  • status (Array<Symbol, Stigg::Models::V1::SubscriptionListParams::Status>)

    Query param: Filter by subscription status. Supports comma-separated values for

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/stigg/resources/v1/subscriptions.rb', line 151

def list(params = {})
  query_params =
    [
      :after,
      :before,
      :created_at,
      :customer_id,
      :limit,
      :plan_id,
      :pricing_type,
      :resource_id,
      :status
    ]
  parsed, options = Stigg::V1::SubscriptionListParams.dump_request(params)
  query = Stigg::Internal::Util.encode_query_params(parsed.slice(*query_params))
  @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"
    ),
    headers: parsed.except(*query_params).transform_keys(
      x_account_id: "x-account-id",
      x_environment_id: "x-environment-id"
    ),
    page: Stigg::Internal::MyCursorIDPage,
    model: Stigg::Models::V1::SubscriptionListResponse,
    options: options
  )
end

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

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

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

Parameters:

  • id (String)

    Path param: The unique identifier of the entity

  • subscription_migration_time (Symbol, Stigg::Models::V1::SubscriptionMigrateParams::SubscriptionMigrationTime)

    Body param: When to migrate (immediate or period end)

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



315
316
317
318
319
320
321
322
323
324
325
326
# File 'lib/stigg/resources/v1/subscriptions.rb', line 315

def migrate(id, params = {})
  parsed, options = Stigg::V1::SubscriptionMigrateParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/migrate", id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    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, x_account_id: nil, x_environment_id: nil, request_options: {}) ⇒ Stigg::Models::V1::SubscriptionPreviewResponse

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

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

Parameters:

Returns:

See Also:



377
378
379
380
381
382
383
384
385
386
387
388
# File 'lib/stigg/resources/v1/subscriptions.rb', line 377

def preview(params)
  parsed, options = Stigg::V1::SubscriptionPreviewParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: "api/v1/subscriptions/preview",
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    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, cancellation_date: 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, x_account_id: nil, x_environment_id: nil, request_options: {}) ⇒ Stigg::Models::V1::SubscriptionProvisionResponse

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

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:



461
462
463
464
465
466
467
468
469
470
471
472
# File 'lib/stigg/resources/v1/subscriptions.rb', line 461

def provision(params)
  parsed, options = Stigg::V1::SubscriptionProvisionParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: "api/v1/subscriptions",
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Stigg::Models::V1::SubscriptionProvisionResponse,
    options: options
  )
end

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

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

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

  • x_account_id (String)

    Account ID — optional when authenticating with a user JWT (Bearer token); falls

  • x_environment_id (String)

    Environment ID — required when authenticating with a user JWT (Bearer token) on

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

Returns:

See Also:



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/stigg/resources/v1/subscriptions.rb', line 38

def retrieve(id, params = {})
  parsed, options = Stigg::V1::SubscriptionRetrieveParams.dump_request(params)
  @client.request(
    method: :get,
    path: ["api/v1/subscriptions/%1$s", id],
    headers: parsed.transform_keys(
      x_account_id: "x-account-id",
      x_environment_id: "x-environment-id"
    ),
    model: Stigg::V1::Subscription,
    options: options
  )
end

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

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

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)

    Path param: The unique identifier of the entity

  • destination_resource_id (String)

    Body param: Resource ID to transfer the subscription to

  • x_account_id (String)

    Header param: Account ID — optional when authenticating with a user JWT (Bearer

  • x_environment_id (String)

    Header param: Environment ID — required when authenticating with a user JWT (Bea

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

Returns:

See Also:



495
496
497
498
499
500
501
502
503
504
505
506
# File 'lib/stigg/resources/v1/subscriptions.rb', line 495

def transfer(id, params)
  parsed, options = Stigg::V1::SubscriptionTransferParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :post,
    path: ["api/v1/subscriptions/%1$s/transfer", id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    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, cancellation_date: nil, charges: nil, entitlements: nil, metadata: nil, minimum_spend: nil, price_overrides: nil, promotion_code: nil, schedule_strategy: nil, trial_end_date: nil, x_account_id: nil, x_environment_id: nil, request_options: {}) ⇒ Stigg::Models::V1::Subscription

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

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

Parameters:

Returns:

See Also:



103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/stigg/resources/v1/subscriptions.rb', line 103

def update(id, params = {})
  parsed, options = Stigg::V1::SubscriptionUpdateParams.dump_request(params)
  header_params = {x_account_id: "x-account-id", x_environment_id: "x-environment-id"}
  @client.request(
    method: :patch,
    path: ["api/v1/subscriptions/%1$s", id],
    headers: parsed.slice(*header_params.keys).transform_keys(header_params),
    body: parsed.except(*header_params.keys),
    model: Stigg::V1::Subscription,
    options: options
  )
end