Class: Zavudev::Resources::Number10dlc::Campaigns

Inherits:
Object
  • Object
show all
Defined in:
lib/zavudev/resources/number_10dlc/campaigns.rb,
lib/zavudev/resources/number_10dlc/campaigns/phone_numbers.rb

Defined Under Namespace

Classes: PhoneNumbers

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(client:) ⇒ Campaigns

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 Campaigns.

Parameters:



218
219
220
221
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 218

def initialize(client:)
  @client = client
  @phone_numbers = Zavudev::Resources::Number10dlc::Campaigns::PhoneNumbers.new(client: client)
end

Instance Attribute Details

#phone_numbersZavudev::Resources::Number10dlc::Campaigns::PhoneNumbers (readonly)



8
9
10
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 8

def phone_numbers
  @phone_numbers
end

Instance Method Details

#create(affiliate_marketing:, age_gated:, brand_id:, description:, direct_lending:, embedded_link:, embedded_phone:, name:, number_pooling:, sample_messages:, subscriber_help:, subscriber_opt_in:, subscriber_opt_out:, use_case:, help_message: nil, message_flow: nil, opt_in_keywords: nil, opt_out_keywords: nil, sub_use_cases: nil, request_options: {}) ⇒ Zavudev::Models::Number10dlc::CampaignCreateResponse

Create a 10DLC campaign under an existing brand. The campaign starts in draft status. Submit it for carrier review using the submit endpoint.

Parameters:

  • affiliate_marketing (Boolean)
  • age_gated (Boolean)
  • brand_id (String)

    ID of the brand to create this campaign under.

  • description (String)
  • direct_lending (Boolean)
  • embedded_link (Boolean)
  • embedded_phone (Boolean)
  • name (String)
  • number_pooling (Boolean)
  • sample_messages (Array<String>)
  • subscriber_help (Boolean)
  • subscriber_opt_in (Boolean)
  • subscriber_opt_out (Boolean)
  • use_case (String)

    Campaign use case (e.g., ACCOUNT_NOTIFICATION, MARKETING, 2FA).

  • help_message (String)
  • message_flow (String)
  • opt_in_keywords (Array<String>)
  • opt_out_keywords (Array<String>)
  • sub_use_cases (Array<String>)
  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



58
59
60
61
62
63
64
65
66
67
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 58

def create(params)
  parsed, options = Zavudev::Number10dlc::CampaignCreateParams.dump_request(params)
  @client.request(
    method: :post,
    path: "v1/10dlc/campaigns",
    body: parsed,
    model: Zavudev::Models::Number10dlc::CampaignCreateResponse,
    options: options
  )
end

#delete(campaign_id, request_options: {}) ⇒ nil

Delete 10DLC campaign

Parameters:

Returns:

  • (nil)

See Also:



164
165
166
167
168
169
170
171
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 164

def delete(campaign_id, params = {})
  @client.request(
    method: :delete,
    path: ["v1/10dlc/campaigns/%1$s", campaign_id],
    model: NilClass,
    options: params[:request_options]
  )
end

#list(brand_id: nil, cursor: nil, limit: nil, request_options: {}) ⇒ Zavudev::Internal::Cursor<Zavudev::Models::Number10dlc::TenDlcCampaign>

List 10DLC campaign registrations for this project.

Parameters:

  • brand_id (String)

    Filter campaigns by brand ID.

  • cursor (String)
  • limit (Integer)
  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 140

def list(params = {})
  parsed, options = Zavudev::Number10dlc::CampaignListParams.dump_request(params)
  query = Zavudev::Internal::Util.encode_query_params(parsed)
  @client.request(
    method: :get,
    path: "v1/10dlc/campaigns",
    query: query.transform_keys(brand_id: "brandId"),
    page: Zavudev::Internal::Cursor,
    model: Zavudev::Number10dlc::TenDlcCampaign,
    options: options
  )
end

#retrieve(campaign_id, request_options: {}) ⇒ Zavudev::Models::Number10dlc::CampaignRetrieveResponse

Get 10DLC campaign

Parameters:

Returns:

See Also:



80
81
82
83
84
85
86
87
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 80

def retrieve(campaign_id, params = {})
  @client.request(
    method: :get,
    path: ["v1/10dlc/campaigns/%1$s", campaign_id],
    model: Zavudev::Models::Number10dlc::CampaignRetrieveResponse,
    options: params[:request_options]
  )
end

#submit(campaign_id, request_options: {}) ⇒ Zavudev::Models::Number10dlc::CampaignSubmitResponse

Submit a draft campaign for carrier review. The campaign must be in draft status and its brand must be verified.

Parameters:

Returns:

See Also:



185
186
187
188
189
190
191
192
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 185

def submit(campaign_id, params = {})
  @client.request(
    method: :post,
    path: ["v1/10dlc/campaigns/%1$s/submit", campaign_id],
    model: Zavudev::Models::Number10dlc::CampaignSubmitResponse,
    options: params[:request_options]
  )
end

#sync_status(campaign_id, request_options: {}) ⇒ Zavudev::Models::Number10dlc::CampaignSyncStatusResponse

Sync the campaign status with the registration provider. Use this to check for approval updates after submission.

Parameters:

Returns:

See Also:



206
207
208
209
210
211
212
213
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 206

def sync_status(campaign_id, params = {})
  @client.request(
    method: :post,
    path: ["v1/10dlc/campaigns/%1$s/sync", campaign_id],
    model: Zavudev::Models::Number10dlc::CampaignSyncStatusResponse,
    options: params[:request_options]
  )
end

#update(campaign_id, description: nil, help_message: nil, message_flow: nil, name: nil, opt_in_keywords: nil, opt_out_keywords: nil, sample_messages: nil, request_options: {}) ⇒ Zavudev::Models::Number10dlc::CampaignUpdateResponse

Update a 10DLC campaign in draft status. Cannot update after submission.

Parameters:

  • campaign_id (String)

    10DLC campaign ID.

  • description (String)
  • help_message (String)
  • message_flow (String)
  • name (String)
  • opt_in_keywords (Array<String>)
  • opt_out_keywords (Array<String>)
  • sample_messages (Array<String>)
  • request_options (Zavudev::RequestOptions, Hash{Symbol=>Object}, nil)

Returns:

See Also:



114
115
116
117
118
119
120
121
122
123
# File 'lib/zavudev/resources/number_10dlc/campaigns.rb', line 114

def update(campaign_id, params = {})
  parsed, options = Zavudev::Number10dlc::CampaignUpdateParams.dump_request(params)
  @client.request(
    method: :patch,
    path: ["v1/10dlc/campaigns/%1$s", campaign_id],
    body: parsed,
    model: Zavudev::Models::Number10dlc::CampaignUpdateResponse,
    options: options
  )
end