diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 7f3f5c8..d2d60a3 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.23.0" + ".": "0.24.0" } \ No newline at end of file diff --git a/.stats.yml b/.stats.yml index 63ca9a9..f033c1d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 41 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/surge/surge-b0be84bbd2acb3b1441eedd973161e22d633387c0919c52cbecdaf964c1e5980.yml -openapi_spec_hash: 402af89d33c0accd114958a9d4fb74d2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/surge/surge-ffd563fe3318efc4a305510ec4ae66fea4a32d96ed34abd985b44692edb3535e.yml +openapi_spec_hash: fd58e5b23f677b6de74244fcf1669d8d config_hash: 6cd48b2a1ecc5f0cf0903e70c0c6260e diff --git a/CHANGELOG.md b/CHANGELOG.md index bbcb96d..7c353af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.24.0 (2026-09-04) + +Full Changelog: [v0.23.0...v0.24.0](https://github.com/surgeapi/ruby-sdk/compare/v0.23.0...v0.24.0) + +### Features + +* **api:** add status to messages ([1a1b928](https://github.com/surgeapi/ruby-sdk/commit/1a1b9288784e37ae35e8c01f814eb39e952a24b0)) +* **api:** add toll free messaging capability to accounts ([87fff80](https://github.com/surgeapi/ruby-sdk/commit/87fff8049ea378688bd2ca8df6b4f5e9919ee832)) +* **api:** phone number imported webhook event ([358bf6d](https://github.com/surgeapi/ruby-sdk/commit/358bf6d5128520687260208216f8923a6c37db29)) + + +### Documentation + +* **api:** add note about links in messages for campaigns ([0b7c72d](https://github.com/surgeapi/ruby-sdk/commit/0b7c72ddf56ff3a92959ff50b484a55f62807e42)) +* **api:** add note about links in messages for campaigns (continued) ([0847773](https://github.com/surgeapi/ruby-sdk/commit/0847773d88887971ec454d1ff89ac3a979ed9e0d)) + ## 0.23.0 (2026-08-19) Full Changelog: [v0.22.0...v0.23.0](https://github.com/surgeapi/ruby-sdk/compare/v0.22.0...v0.23.0) diff --git a/Gemfile.lock b/Gemfile.lock index 3b6b266..82a14de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT PATH remote: . specs: - surge_api (0.23.0) + surge_api (0.24.0) cgi connection_pool standardwebhooks diff --git a/README.md b/README.md index 1a6d064..d1cdd11 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ To use this gem, install via Bundler by adding the following to your application ```ruby -gem "surge_api", "~> 0.23.0" +gem "surge_api", "~> 0.24.0" ``` diff --git a/lib/surge_api.rb b/lib/surge_api.rb index 4e984f9..f2b3267 100644 --- a/lib/surge_api.rb +++ b/lib/surge_api.rb @@ -102,6 +102,7 @@ require_relative "surge_api/models/organization" require_relative "surge_api/models/phone_number" require_relative "surge_api/models/phone_number_attached_to_campaign_webhook_event" +require_relative "surge_api/models/phone_number_imported_webhook_event" require_relative "surge_api/models/phone_number_list_available_numbers_params" require_relative "surge_api/models/phone_number_list_available_numbers_response" require_relative "surge_api/models/phone_number_list_params" diff --git a/lib/surge_api/models.rb b/lib/surge_api/models.rb index 5efd2a1..2385af1 100644 --- a/lib/surge_api/models.rb +++ b/lib/surge_api/models.rb @@ -130,6 +130,8 @@ module SurgeAPI PhoneNumberAttachedToCampaignWebhookEvent = SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent + PhoneNumberImportedWebhookEvent = SurgeAPI::Models::PhoneNumberImportedWebhookEvent + PhoneNumberListAvailableNumbersParams = SurgeAPI::Models::PhoneNumberListAvailableNumbersParams PhoneNumberListParams = SurgeAPI::Models::PhoneNumberListParams diff --git a/lib/surge_api/models/account_retrieve_status_params.rb b/lib/surge_api/models/account_retrieve_status_params.rb index ebbedcf..8a3d59d 100644 --- a/lib/surge_api/models/account_retrieve_status_params.rb +++ b/lib/surge_api/models/account_retrieve_status_params.rb @@ -31,6 +31,7 @@ module Capability extend SurgeAPI::Internal::Type::Enum LOCAL_MESSAGING = :local_messaging + TOLL_FREE_MESSAGING = :toll_free_messaging # @!method self.values # @return [Array] diff --git a/lib/surge_api/models/campaign.rb b/lib/surge_api/models/campaign.rb index 0cbe96f..a04def1 100644 --- a/lib/surge_api/models/campaign.rb +++ b/lib/surge_api/models/campaign.rb @@ -113,11 +113,10 @@ class Campaign < SurgeAPI::Internal::Type::BaseModel required :volume, enum: -> { SurgeAPI::Campaign::Volume } # @!attribute link_sample - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. # # @return [String, nil] optional :link_sample, String @@ -156,7 +155,7 @@ class Campaign < SurgeAPI::Internal::Type::BaseModel # # @param volume [Symbol, SurgeAPI::Models::Campaign::Volume] This will be one of the following: # - # @param link_sample [String] A sample link that might be sent by this campaign. If links from other domains a + # @param link_sample [String] A sample link that might be sent by this campaign. This is required when `includ # # @param terms_and_conditions_url [String] The URL of the terms and conditions presented to end users when they opt in to m @@ -180,6 +179,7 @@ module Status ACTIVE = :active CANCELED = :canceled + REJECTED = :rejected CREATED = :created DEACTIVATED = :deactivated IN_REVIEW = :in_review diff --git a/lib/surge_api/models/campaign_params.rb b/lib/surge_api/models/campaign_params.rb index 380a626..13a6b33 100644 --- a/lib/surge_api/models/campaign_params.rb +++ b/lib/surge_api/models/campaign_params.rb @@ -122,11 +122,10 @@ class StandardCampaignParams < SurgeAPI::Internal::Type::BaseModel -> { SurgeAPI::Internal::Type::ArrayOf[enum: SurgeAPI::CampaignParams::StandardCampaignParams::Include] } # @!attribute link_sample - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. # # @return [String, nil] optional :link_sample, String @@ -153,7 +152,7 @@ class StandardCampaignParams < SurgeAPI::Internal::Type::BaseModel # # @param includes [Array] A list of properties that this campaign should include. These properties can be # - # @param link_sample [String] A sample link that might be sent by this campaign. If links from other domains a + # @param link_sample [String] A sample link that might be sent by this campaign. This is required when `includ module UseCase extend SurgeAPI::Internal::Type::Enum diff --git a/lib/surge_api/models/message.rb b/lib/surge_api/models/message.rb index 06c67e3..379fe58 100644 --- a/lib/surge_api/models/message.rb +++ b/lib/surge_api/models/message.rb @@ -40,7 +40,13 @@ class Message < SurgeAPI::Internal::Type::BaseModel # @return [Hash{Symbol=>String}, nil] optional :metadata, SurgeAPI::Internal::Type::HashOf[String] - # @!method initialize(id: nil, attachments: nil, blast_id: nil, body: nil, conversation: nil, metadata: nil) + # @!attribute status + # The current status of the message. + # + # @return [Symbol, SurgeAPI::Models::Message::Status, nil] + optional :status, enum: -> { SurgeAPI::Message::Status } + + # @!method initialize(id: nil, attachments: nil, blast_id: nil, body: nil, conversation: nil, metadata: nil, status: nil) # Some parameter documentations has been truncated, see # {SurgeAPI::Models::Message} for more details. # @@ -57,6 +63,8 @@ class Message < SurgeAPI::Internal::Type::BaseModel # @param conversation [SurgeAPI::Models::Message::Conversation] A conversation with a Contact # # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object. + # + # @param status [Symbol, SurgeAPI::Models::Message::Status] The current status of the message. class Attachment < SurgeAPI::Internal::Type::BaseModel # @!attribute id @@ -185,6 +193,22 @@ module Type end end end + + # The current status of the message. + # + # @see SurgeAPI::Models::Message#status + module Status + extend SurgeAPI::Internal::Type::Enum + + PENDING = :pending + RECEIVED = :received + SENT = :sent + DELIVERED = :delivered + FAILED = :failed + + # @!method self.values + # @return [Array] + end end end end diff --git a/lib/surge_api/models/message_delivered_webhook_event.rb b/lib/surge_api/models/message_delivered_webhook_event.rb index 9080640..b0cab50 100644 --- a/lib/surge_api/models/message_delivered_webhook_event.rb +++ b/lib/surge_api/models/message_delivered_webhook_event.rb @@ -68,6 +68,12 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [Hash{Symbol=>String}] required :metadata, SurgeAPI::Internal::Type::HashOf[String] + # @!attribute status + # The message status represented by this event + # + # @return [Symbol, SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Status] + required :status, enum: -> { SurgeAPI::MessageDeliveredWebhookEvent::Data::Status } + # @!attribute attachments # Attachments included with the message # @@ -82,7 +88,7 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [String, nil] optional :blast_id, String - # @!method initialize(id:, body:, conversation:, delivered_at:, metadata:, attachments: nil, blast_id: nil) + # @!method initialize(id:, body:, conversation:, delivered_at:, metadata:, status:, attachments: nil, blast_id: nil) # Some parameter documentations has been truncated, see # {SurgeAPI::Models::MessageDeliveredWebhookEvent::Data} for more details. # @@ -98,6 +104,8 @@ class Data < SurgeAPI::Internal::Type::BaseModel # # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object. # + # @param status [Symbol, SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::Status] The message status represented by this event + # # @param attachments [Array] Attachments included with the message # # @param blast_id [String] The ID of the blast this message belongs to, if any. This can be used to attribu @@ -132,6 +140,18 @@ class Conversation < SurgeAPI::Internal::Type::BaseModel # @param phone_number [SurgeAPI::Models::PhoneNumber] A phone number that can be used to send and receive messages and calls end + # The message status represented by this event + # + # @see SurgeAPI::Models::MessageDeliveredWebhookEvent::Data#status + module Status + extend SurgeAPI::Internal::Type::Enum + + DELIVERED = :delivered + + # @!method self.values + # @return [Array] + end + class Attachment < SurgeAPI::Internal::Type::BaseModel # @!attribute id # The unique identifier for the attachment diff --git a/lib/surge_api/models/message_failed_webhook_event.rb b/lib/surge_api/models/message_failed_webhook_event.rb index fa728bb..a9a2f44 100644 --- a/lib/surge_api/models/message_failed_webhook_event.rb +++ b/lib/surge_api/models/message_failed_webhook_event.rb @@ -74,6 +74,12 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [Hash{Symbol=>String}] required :metadata, SurgeAPI::Internal::Type::HashOf[String] + # @!attribute status + # The message status represented by this event + # + # @return [Symbol, SurgeAPI::Models::MessageFailedWebhookEvent::Data::Status] + required :status, enum: -> { SurgeAPI::MessageFailedWebhookEvent::Data::Status } + # @!attribute attachments # Attachments included with the message # @@ -88,7 +94,7 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [String, nil] optional :blast_id, String - # @!method initialize(id:, body:, conversation:, failed_at:, failure_reason:, metadata:, attachments: nil, blast_id: nil) + # @!method initialize(id:, body:, conversation:, failed_at:, failure_reason:, metadata:, status:, attachments: nil, blast_id: nil) # Some parameter documentations has been truncated, see # {SurgeAPI::Models::MessageFailedWebhookEvent::Data} for more details. # @@ -106,6 +112,8 @@ class Data < SurgeAPI::Internal::Type::BaseModel # # @param metadata [Hash{Symbol=>String}] Set of key-value pairs that will be stored with the object. # + # @param status [Symbol, SurgeAPI::Models::MessageFailedWebhookEvent::Data::Status] The message status represented by this event + # # @param attachments [Array] Attachments included with the message # # @param blast_id [String] The ID of the blast this message belongs to, if any. This can be used to attribu @@ -140,6 +148,18 @@ class Conversation < SurgeAPI::Internal::Type::BaseModel # @param phone_number [SurgeAPI::Models::PhoneNumber] A phone number that can be used to send and receive messages and calls end + # The message status represented by this event + # + # @see SurgeAPI::Models::MessageFailedWebhookEvent::Data#status + module Status + extend SurgeAPI::Internal::Type::Enum + + FAILED = :failed + + # @!method self.values + # @return [Array] + end + class Attachment < SurgeAPI::Internal::Type::BaseModel # @!attribute id # The unique identifier for the attachment diff --git a/lib/surge_api/models/message_received_webhook_event.rb b/lib/surge_api/models/message_received_webhook_event.rb index 35e93c2..5e389b4 100644 --- a/lib/surge_api/models/message_received_webhook_event.rb +++ b/lib/surge_api/models/message_received_webhook_event.rb @@ -68,6 +68,12 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [Time] required :received_at, Time + # @!attribute status + # The message status represented by this event + # + # @return [Symbol, SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Status] + required :status, enum: -> { SurgeAPI::MessageReceivedWebhookEvent::Data::Status } + # @!attribute attachments # Attachments included with the message # @@ -82,7 +88,7 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [String, nil] optional :blast_id, String - # @!method initialize(id:, body:, conversation:, metadata:, received_at:, attachments: nil, blast_id: nil) + # @!method initialize(id:, body:, conversation:, metadata:, received_at:, status:, attachments: nil, blast_id: nil) # Some parameter documentations has been truncated, see # {SurgeAPI::Models::MessageReceivedWebhookEvent::Data} for more details. # @@ -98,6 +104,8 @@ class Data < SurgeAPI::Internal::Type::BaseModel # # @param received_at [Time] When the message was received # + # @param status [Symbol, SurgeAPI::Models::MessageReceivedWebhookEvent::Data::Status] The message status represented by this event + # # @param attachments [Array] Attachments included with the message # # @param blast_id [String] The ID of the blast this message belongs to, if any. This can be used to attribu @@ -132,6 +140,18 @@ class Conversation < SurgeAPI::Internal::Type::BaseModel # @param phone_number [SurgeAPI::Models::PhoneNumber] A phone number that can be used to send and receive messages and calls end + # The message status represented by this event + # + # @see SurgeAPI::Models::MessageReceivedWebhookEvent::Data#status + module Status + extend SurgeAPI::Internal::Type::Enum + + RECEIVED = :received + + # @!method self.values + # @return [Array] + end + class Attachment < SurgeAPI::Internal::Type::BaseModel # @!attribute id # The unique identifier for the attachment diff --git a/lib/surge_api/models/message_sent_webhook_event.rb b/lib/surge_api/models/message_sent_webhook_event.rb index 04e4148..8478713 100644 --- a/lib/surge_api/models/message_sent_webhook_event.rb +++ b/lib/surge_api/models/message_sent_webhook_event.rb @@ -68,6 +68,12 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [Time] required :sent_at, Time + # @!attribute status + # The message status represented by this event + # + # @return [Symbol, SurgeAPI::Models::MessageSentWebhookEvent::Data::Status] + required :status, enum: -> { SurgeAPI::MessageSentWebhookEvent::Data::Status } + # @!attribute attachments # Attachments included with the message # @@ -82,7 +88,7 @@ class Data < SurgeAPI::Internal::Type::BaseModel # @return [String, nil] optional :blast_id, String - # @!method initialize(id:, body:, conversation:, metadata:, sent_at:, attachments: nil, blast_id: nil) + # @!method initialize(id:, body:, conversation:, metadata:, sent_at:, status:, attachments: nil, blast_id: nil) # Some parameter documentations has been truncated, see # {SurgeAPI::Models::MessageSentWebhookEvent::Data} for more details. # @@ -98,6 +104,8 @@ class Data < SurgeAPI::Internal::Type::BaseModel # # @param sent_at [Time] When the message was sent # + # @param status [Symbol, SurgeAPI::Models::MessageSentWebhookEvent::Data::Status] The message status represented by this event + # # @param attachments [Array] Attachments included with the message # # @param blast_id [String] The ID of the blast this message belongs to, if any. This can be used to attribu @@ -132,6 +140,18 @@ class Conversation < SurgeAPI::Internal::Type::BaseModel # @param phone_number [SurgeAPI::Models::PhoneNumber] A phone number that can be used to send and receive messages and calls end + # The message status represented by this event + # + # @see SurgeAPI::Models::MessageSentWebhookEvent::Data#status + module Status + extend SurgeAPI::Internal::Type::Enum + + SENT = :sent + + # @!method self.values + # @return [Array] + end + class Attachment < SurgeAPI::Internal::Type::BaseModel # @!attribute id # The unique identifier for the attachment diff --git a/lib/surge_api/models/phone_number_imported_webhook_event.rb b/lib/surge_api/models/phone_number_imported_webhook_event.rb new file mode 100644 index 0000000..adcc060 --- /dev/null +++ b/lib/surge_api/models/phone_number_imported_webhook_event.rb @@ -0,0 +1,152 @@ +# frozen_string_literal: true + +module SurgeAPI + module Models + class PhoneNumberImportedWebhookEvent < SurgeAPI::Internal::Type::BaseModel + # @!attribute account_id + # The ID of the account in which this event occurred + # + # @return [String] + required :account_id, String + + # @!attribute data + # The data associated with the event + # + # @return [SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data] + required :data, -> { SurgeAPI::PhoneNumberImportedWebhookEvent::Data } + + # @!attribute timestamp + # The timestamp when this event occurred, in ISO8601 format + # + # @return [Time] + required :timestamp, Time + + # @!attribute type + # The type of the event. Always `phone_number.imported` for this event. + # + # @return [Symbol, :"phone_number.imported"] + required :type, const: :"phone_number.imported" + + # @!method initialize(account_id:, data:, timestamp:, type: :"phone_number.imported") + # @param account_id [String] The ID of the account in which this event occurred + # + # @param data [SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data] The data associated with the event + # + # @param timestamp [Time] The timestamp when this event occurred, in ISO8601 format + # + # @param type [Symbol, :"phone_number.imported"] The type of the event. Always `phone_number.imported` for this event. + + # @see SurgeAPI::Models::PhoneNumberImportedWebhookEvent#data + class Data < SurgeAPI::Internal::Type::BaseModel + # @!attribute id + # The unique identifier for the phone number + # + # @return [String] + required :id, String + + # @!attribute campaign + # Campaign attachment details for a domestic local phone number + # + # @return [SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign, nil] + required :campaign, -> { SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign }, nil?: true + + # @!attribute campaign_id + # @deprecated Use `campaign.id` instead. + # + # Deprecated. The unique identifier of the campaign this phone number is attached + # to + # + # @return [String, nil] + required :campaign_id, String, nil?: true + + # @!attribute name + # A human-readable name for the phone number + # + # @return [String, nil] + required :name, String, nil?: true + + # @!attribute number + # The phone number in E.164 format + # + # @return [String] + required :number, String + + # @!attribute type + # Whether the phone number is local, toll-free, or short code + # + # @return [Symbol, SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Type] + required :type, enum: -> { SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type } + + # @!method initialize(id:, campaign:, campaign_id:, name:, number:, type:) + # Some parameter documentations has been truncated, see + # {SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data} for more details. + # + # The data associated with the event + # + # @param id [String] The unique identifier for the phone number + # + # @param campaign [SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign, nil] Campaign attachment details for a domestic local phone number + # + # @param campaign_id [String, nil] Deprecated. The unique identifier of the campaign this phone number is attached + # + # @param name [String, nil] A human-readable name for the phone number + # + # @param number [String] The phone number in E.164 format + # + # @param type [Symbol, SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Type] Whether the phone number is local, toll-free, or short code + + # @see SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data#campaign + class Campaign < SurgeAPI::Internal::Type::BaseModel + # @!attribute id + # The unique identifier of the campaign this phone number is attached to + # + # @return [String] + required :id, String + + # @!attribute attachment_status + # The current campaign attachment status for this phone number. + # + # @return [Symbol, SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus] + required :attachment_status, + enum: -> { SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus } + + # @!method initialize(id:, attachment_status:) + # Campaign attachment details for a domestic local phone number + # + # @param id [String] The unique identifier of the campaign this phone number is attached to + # + # @param attachment_status [Symbol, SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus] The current campaign attachment status for this phone number. + + # The current campaign attachment status for this phone number. + # + # @see SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign#attachment_status + module AttachmentStatus + extend SurgeAPI::Internal::Type::Enum + + ATTACHED = :attached + ATTACHMENT_PENDING = :attachment_pending + DETACHED = :detached + DETACHMENT_PENDING = :detachment_pending + + # @!method self.values + # @return [Array] + end + end + + # Whether the phone number is local, toll-free, or short code + # + # @see SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data#type + module Type + extend SurgeAPI::Internal::Type::Enum + + LOCAL = :local + SHORT_CODE = :short_code + TOLL_FREE = :toll_free + + # @!method self.values + # @return [Array] + end + end + end + end +end diff --git a/lib/surge_api/models/unwrap_webhook_event.rb b/lib/surge_api/models/unwrap_webhook_event.rb index 2c90f85..6938245 100644 --- a/lib/surge_api/models/unwrap_webhook_event.rb +++ b/lib/surge_api/models/unwrap_webhook_event.rb @@ -29,12 +29,14 @@ module UnwrapWebhookEvent variant :"phone_number.attached_to_campaign", -> { SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent } + variant :"phone_number.imported", -> { SurgeAPI::PhoneNumberImportedWebhookEvent } + variant :"recording.completed", -> { SurgeAPI::RecordingCompletedWebhookEvent } variant :"voicemail.received", -> { SurgeAPI::VoicemailReceivedWebhookEvent } # @!method self.variants - # @return [Array(SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent)] + # @return [Array(SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::PhoneNumberImportedWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent)] end end end diff --git a/lib/surge_api/resources/webhooks.rb b/lib/surge_api/resources/webhooks.rb index 366b7e8..feea198 100644 --- a/lib/surge_api/resources/webhooks.rb +++ b/lib/surge_api/resources/webhooks.rb @@ -9,7 +9,7 @@ class Webhooks # # @param key [String, nil] The webhook signing key # - # @return [SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent] + # @return [SurgeAPI::Models::CallEndedWebhookEvent, SurgeAPI::Models::CampaignApprovedWebhookEvent, SurgeAPI::Models::ContactOptedInWebhookEvent, SurgeAPI::Models::ContactOptedOutWebhookEvent, SurgeAPI::Models::ConversationCreatedWebhookEvent, SurgeAPI::Models::LinkFollowedWebhookEvent, SurgeAPI::Models::MessageDeliveredWebhookEvent, SurgeAPI::Models::MessageFailedWebhookEvent, SurgeAPI::Models::MessageReceivedWebhookEvent, SurgeAPI::Models::MessageSentWebhookEvent, SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent, SurgeAPI::Models::PhoneNumberImportedWebhookEvent, SurgeAPI::Models::RecordingCompletedWebhookEvent, SurgeAPI::Models::VoicemailReceivedWebhookEvent] def unwrap(payload, headers:, key: @client.webhook_signing_secret) if key.nil? raise ArgumentError.new("Cannot verify a webhook without a key on either the client's webhook_signing_secret or passed in as an argument") diff --git a/lib/surge_api/version.rb b/lib/surge_api/version.rb index 3818200..21db852 100644 --- a/lib/surge_api/version.rb +++ b/lib/surge_api/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module SurgeAPI - VERSION = "0.23.0" + VERSION = "0.24.0" end diff --git a/rbi/surge_api/models.rbi b/rbi/surge_api/models.rbi index a3ed5f9..5613387 100644 --- a/rbi/surge_api/models.rbi +++ b/rbi/surge_api/models.rbi @@ -94,6 +94,9 @@ module SurgeAPI PhoneNumberAttachedToCampaignWebhookEvent = SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent + PhoneNumberImportedWebhookEvent = + SurgeAPI::Models::PhoneNumberImportedWebhookEvent + PhoneNumberListAvailableNumbersParams = SurgeAPI::Models::PhoneNumberListAvailableNumbersParams diff --git a/rbi/surge_api/models/account_retrieve_status_params.rbi b/rbi/surge_api/models/account_retrieve_status_params.rbi index bd02c10..83ad203 100644 --- a/rbi/surge_api/models/account_retrieve_status_params.rbi +++ b/rbi/surge_api/models/account_retrieve_status_params.rbi @@ -88,6 +88,11 @@ module SurgeAPI :local_messaging, SurgeAPI::AccountRetrieveStatusParams::Capability::TaggedSymbol ) + TOLL_FREE_MESSAGING = + T.let( + :toll_free_messaging, + SurgeAPI::AccountRetrieveStatusParams::Capability::TaggedSymbol + ) sig do override.returns( diff --git a/rbi/surge_api/models/campaign.rbi b/rbi/surge_api/models/campaign.rbi index e552c5d..c80df39 100644 --- a/rbi/surge_api/models/campaign.rbi +++ b/rbi/surge_api/models/campaign.rbi @@ -96,11 +96,10 @@ module SurgeAPI sig { returns(SurgeAPI::Campaign::Volume::TaggedSymbol) } attr_accessor :volume - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. sig { returns(T.nilable(String)) } attr_reader :link_sample @@ -207,11 +206,10 @@ module SurgeAPI # volume number upon receipt of the API request, and phone numbers will be # charged as high volume numbers going forward. volume:, - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. link_sample: nil, # The URL of the terms and conditions presented to end users when they opt in to # messaging. These terms and conditions may be shared among all of a platform's @@ -272,6 +270,7 @@ module SurgeAPI ACTIVE = T.let(:active, SurgeAPI::Campaign::Status::TaggedSymbol) CANCELED = T.let(:canceled, SurgeAPI::Campaign::Status::TaggedSymbol) + REJECTED = T.let(:rejected, SurgeAPI::Campaign::Status::TaggedSymbol) CREATED = T.let(:created, SurgeAPI::Campaign::Status::TaggedSymbol) DEACTIVATED = T.let(:deactivated, SurgeAPI::Campaign::Status::TaggedSymbol) diff --git a/rbi/surge_api/models/campaign_params.rbi b/rbi/surge_api/models/campaign_params.rbi index 1e600ae..62cff53 100644 --- a/rbi/surge_api/models/campaign_params.rbi +++ b/rbi/surge_api/models/campaign_params.rbi @@ -141,11 +141,10 @@ module SurgeAPI end attr_writer :includes - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. sig { returns(T.nilable(String)) } attr_reader :link_sample @@ -247,11 +246,10 @@ module SurgeAPI # - `direct_lending` - whether the campaign contains content related to direct # lending or other loan arrangements includes: nil, - # A sample link that might be sent by this campaign. If links from other domains - # are sent through this campaign, they are much more likely to be filtered by the - # carriers. If link shortening is enabled for the account, the link shortener URL - # will be used instead of what is provided. Reach out to support if you would like - # to disable automatic link shortening. + # A sample link that might be sent by this campaign. This is required when + # `includes` contains `links`. Provide the same URL or domain that the campaign + # will use in production. If links from other domains are sent through this + # campaign, they are much more likely to be filtered by the carriers. link_sample: nil ) end diff --git a/rbi/surge_api/models/message.rbi b/rbi/surge_api/models/message.rbi index 0808204..83c041d 100644 --- a/rbi/surge_api/models/message.rbi +++ b/rbi/surge_api/models/message.rbi @@ -46,6 +46,13 @@ module SurgeAPI sig { params(metadata: T::Hash[Symbol, String]).void } attr_writer :metadata + # The current status of the message. + sig { returns(T.nilable(SurgeAPI::Message::Status::TaggedSymbol)) } + attr_reader :status + + sig { params(status: SurgeAPI::Message::Status::OrSymbol).void } + attr_writer :status + # A Message is a communication sent to a Contact. sig do params( @@ -54,7 +61,8 @@ module SurgeAPI blast_id: T.nilable(String), body: T.nilable(String), conversation: SurgeAPI::Message::Conversation::OrHash, - metadata: T::Hash[Symbol, String] + metadata: T::Hash[Symbol, String], + status: SurgeAPI::Message::Status::OrSymbol ).returns(T.attached_class) end def self.new( @@ -69,7 +77,9 @@ module SurgeAPI # A conversation with a Contact conversation: nil, # Set of key-value pairs that will be stored with the object. - metadata: nil + metadata: nil, + # The current status of the message. + status: nil ) end @@ -81,7 +91,8 @@ module SurgeAPI blast_id: T.nilable(String), body: T.nilable(String), conversation: SurgeAPI::Message::Conversation, - metadata: T::Hash[Symbol, String] + metadata: T::Hash[Symbol, String], + status: SurgeAPI::Message::Status::TaggedSymbol } ) end @@ -342,6 +353,26 @@ module SurgeAPI end end end + + # The current status of the message. + module Status + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = T.type_alias { T.all(Symbol, SurgeAPI::Message::Status) } + OrSymbol = T.type_alias { T.any(Symbol, String) } + + PENDING = T.let(:pending, SurgeAPI::Message::Status::TaggedSymbol) + RECEIVED = T.let(:received, SurgeAPI::Message::Status::TaggedSymbol) + SENT = T.let(:sent, SurgeAPI::Message::Status::TaggedSymbol) + DELIVERED = T.let(:delivered, SurgeAPI::Message::Status::TaggedSymbol) + FAILED = T.let(:failed, SurgeAPI::Message::Status::TaggedSymbol) + + sig do + override.returns(T::Array[SurgeAPI::Message::Status::TaggedSymbol]) + end + def self.values + end + end end end end diff --git a/rbi/surge_api/models/message_delivered_webhook_event.rbi b/rbi/surge_api/models/message_delivered_webhook_event.rbi index 15cfc78..943c153 100644 --- a/rbi/surge_api/models/message_delivered_webhook_event.rbi +++ b/rbi/surge_api/models/message_delivered_webhook_event.rbi @@ -104,6 +104,14 @@ module SurgeAPI sig { returns(T::Hash[Symbol, String]) } attr_accessor :metadata + # The message status represented by this event + sig do + returns( + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status::TaggedSymbol + ) + end + attr_accessor :status + # Attachments included with the message sig do returns( @@ -141,6 +149,8 @@ module SurgeAPI SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation::OrHash, delivered_at: Time, metadata: T::Hash[Symbol, String], + status: + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status::OrSymbol, attachments: T::Array[ SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment::OrHash @@ -159,6 +169,8 @@ module SurgeAPI delivered_at:, # Set of key-value pairs that will be stored with the object. metadata:, + # The message status represented by this event + status:, # Attachments included with the message attachments: nil, # The ID of the blast this message belongs to, if any. This can be used to @@ -176,6 +188,8 @@ module SurgeAPI SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation, delivered_at: Time, metadata: T::Hash[Symbol, String], + status: + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status::TaggedSymbol, attachments: T::Array[ SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment @@ -245,6 +259,36 @@ module SurgeAPI end end + # The message status represented by this event + module Status + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + DELIVERED = + T.let( + :delivered, + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::MessageDeliveredWebhookEvent::Data::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + class Attachment < SurgeAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/surge_api/models/message_failed_webhook_event.rbi b/rbi/surge_api/models/message_failed_webhook_event.rbi index f1c5b63..e9cec00 100644 --- a/rbi/surge_api/models/message_failed_webhook_event.rbi +++ b/rbi/surge_api/models/message_failed_webhook_event.rbi @@ -106,6 +106,14 @@ module SurgeAPI sig { returns(T::Hash[Symbol, String]) } attr_accessor :metadata + # The message status represented by this event + sig do + returns( + SurgeAPI::MessageFailedWebhookEvent::Data::Status::TaggedSymbol + ) + end + attr_accessor :status + # Attachments included with the message sig do returns( @@ -144,6 +152,7 @@ module SurgeAPI failed_at: Time, failure_reason: String, metadata: T::Hash[Symbol, String], + status: SurgeAPI::MessageFailedWebhookEvent::Data::Status::OrSymbol, attachments: T::Array[ SurgeAPI::MessageFailedWebhookEvent::Data::Attachment::OrHash @@ -164,6 +173,8 @@ module SurgeAPI failure_reason:, # Set of key-value pairs that will be stored with the object. metadata:, + # The message status represented by this event + status:, # Attachments included with the message attachments: nil, # The ID of the blast this message belongs to, if any. This can be used to @@ -182,6 +193,8 @@ module SurgeAPI failed_at: Time, failure_reason: String, metadata: T::Hash[Symbol, String], + status: + SurgeAPI::MessageFailedWebhookEvent::Data::Status::TaggedSymbol, attachments: T::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment], blast_id: String @@ -249,6 +262,33 @@ module SurgeAPI end end + # The message status represented by this event + module Status + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, SurgeAPI::MessageFailedWebhookEvent::Data::Status) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + FAILED = + T.let( + :failed, + SurgeAPI::MessageFailedWebhookEvent::Data::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::MessageFailedWebhookEvent::Data::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + class Attachment < SurgeAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/surge_api/models/message_received_webhook_event.rbi b/rbi/surge_api/models/message_received_webhook_event.rbi index 26b6e92..bf834b5 100644 --- a/rbi/surge_api/models/message_received_webhook_event.rbi +++ b/rbi/surge_api/models/message_received_webhook_event.rbi @@ -104,6 +104,14 @@ module SurgeAPI sig { returns(Time) } attr_accessor :received_at + # The message status represented by this event + sig do + returns( + SurgeAPI::MessageReceivedWebhookEvent::Data::Status::TaggedSymbol + ) + end + attr_accessor :status + # Attachments included with the message sig do returns( @@ -141,6 +149,8 @@ module SurgeAPI SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation::OrHash, metadata: T::Hash[Symbol, String], received_at: Time, + status: + SurgeAPI::MessageReceivedWebhookEvent::Data::Status::OrSymbol, attachments: T::Array[ SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment::OrHash @@ -159,6 +169,8 @@ module SurgeAPI metadata:, # When the message was received received_at:, + # The message status represented by this event + status:, # Attachments included with the message attachments: nil, # The ID of the blast this message belongs to, if any. This can be used to @@ -176,6 +188,8 @@ module SurgeAPI SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation, metadata: T::Hash[Symbol, String], received_at: Time, + status: + SurgeAPI::MessageReceivedWebhookEvent::Data::Status::TaggedSymbol, attachments: T::Array[ SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment @@ -245,6 +259,33 @@ module SurgeAPI end end + # The message status represented by this event + module Status + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, SurgeAPI::MessageReceivedWebhookEvent::Data::Status) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + RECEIVED = + T.let( + :received, + SurgeAPI::MessageReceivedWebhookEvent::Data::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::MessageReceivedWebhookEvent::Data::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + class Attachment < SurgeAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/surge_api/models/message_sent_webhook_event.rbi b/rbi/surge_api/models/message_sent_webhook_event.rbi index 88fbd77..563095e 100644 --- a/rbi/surge_api/models/message_sent_webhook_event.rbi +++ b/rbi/surge_api/models/message_sent_webhook_event.rbi @@ -97,6 +97,12 @@ module SurgeAPI sig { returns(Time) } attr_accessor :sent_at + # The message status represented by this event + sig do + returns(SurgeAPI::MessageSentWebhookEvent::Data::Status::TaggedSymbol) + end + attr_accessor :status + # Attachments included with the message sig do returns( @@ -134,6 +140,7 @@ module SurgeAPI SurgeAPI::MessageSentWebhookEvent::Data::Conversation::OrHash, metadata: T::Hash[Symbol, String], sent_at: Time, + status: SurgeAPI::MessageSentWebhookEvent::Data::Status::OrSymbol, attachments: T::Array[ SurgeAPI::MessageSentWebhookEvent::Data::Attachment::OrHash @@ -152,6 +159,8 @@ module SurgeAPI metadata:, # When the message was sent sent_at:, + # The message status represented by this event + status:, # Attachments included with the message attachments: nil, # The ID of the blast this message belongs to, if any. This can be used to @@ -169,6 +178,8 @@ module SurgeAPI SurgeAPI::MessageSentWebhookEvent::Data::Conversation, metadata: T::Hash[Symbol, String], sent_at: Time, + status: + SurgeAPI::MessageSentWebhookEvent::Data::Status::TaggedSymbol, attachments: T::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment], blast_id: String @@ -236,6 +247,33 @@ module SurgeAPI end end + # The message status represented by this event + module Status + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all(Symbol, SurgeAPI::MessageSentWebhookEvent::Data::Status) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + SENT = + T.let( + :sent, + SurgeAPI::MessageSentWebhookEvent::Data::Status::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::MessageSentWebhookEvent::Data::Status::TaggedSymbol + ] + ) + end + def self.values + end + end + class Attachment < SurgeAPI::Internal::Type::BaseModel OrHash = T.type_alias do diff --git a/rbi/surge_api/models/phone_number_imported_webhook_event.rbi b/rbi/surge_api/models/phone_number_imported_webhook_event.rbi new file mode 100644 index 0000000..a795354 --- /dev/null +++ b/rbi/surge_api/models/phone_number_imported_webhook_event.rbi @@ -0,0 +1,310 @@ +# typed: strong + +module SurgeAPI + module Models + class PhoneNumberImportedWebhookEvent < SurgeAPI::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + SurgeAPI::PhoneNumberImportedWebhookEvent, + SurgeAPI::Internal::AnyHash + ) + end + + # The ID of the account in which this event occurred + sig { returns(String) } + attr_accessor :account_id + + # The data associated with the event + sig { returns(SurgeAPI::PhoneNumberImportedWebhookEvent::Data) } + attr_reader :data + + sig do + params( + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::OrHash + ).void + end + attr_writer :data + + # The timestamp when this event occurred, in ISO8601 format + sig { returns(Time) } + attr_accessor :timestamp + + # The type of the event. Always `phone_number.imported` for this event. + sig { returns(Symbol) } + attr_accessor :type + + sig do + params( + account_id: String, + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::OrHash, + timestamp: Time, + type: Symbol + ).returns(T.attached_class) + end + def self.new( + # The ID of the account in which this event occurred + account_id:, + # The data associated with the event + data:, + # The timestamp when this event occurred, in ISO8601 format + timestamp:, + # The type of the event. Always `phone_number.imported` for this event. + type: :"phone_number.imported" + ) + end + + sig do + override.returns( + { + account_id: String, + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data, + timestamp: Time, + type: Symbol + } + ) + end + def to_hash + end + + class Data < SurgeAPI::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data, + SurgeAPI::Internal::AnyHash + ) + end + + # The unique identifier for the phone number + sig { returns(String) } + attr_accessor :id + + # Campaign attachment details for a domestic local phone number + sig do + returns( + T.nilable(SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign) + ) + end + attr_reader :campaign + + sig do + params( + campaign: + T.nilable( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::OrHash + ) + ).void + end + attr_writer :campaign + + # Deprecated. The unique identifier of the campaign this phone number is attached + # to + sig { returns(T.nilable(String)) } + attr_accessor :campaign_id + + # A human-readable name for the phone number + sig { returns(T.nilable(String)) } + attr_accessor :name + + # The phone number in E.164 format + sig { returns(String) } + attr_accessor :number + + # Whether the phone number is local, toll-free, or short code + sig do + returns( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + ) + end + attr_accessor :type + + # The data associated with the event + sig do + params( + id: String, + campaign: + T.nilable( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::OrHash + ), + campaign_id: T.nilable(String), + name: T.nilable(String), + number: String, + type: + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # The unique identifier for the phone number + id:, + # Campaign attachment details for a domestic local phone number + campaign:, + # Deprecated. The unique identifier of the campaign this phone number is attached + # to + campaign_id:, + # A human-readable name for the phone number + name:, + # The phone number in E.164 format + number:, + # Whether the phone number is local, toll-free, or short code + type: + ) + end + + sig do + override.returns( + { + id: String, + campaign: + T.nilable( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign + ), + campaign_id: T.nilable(String), + name: T.nilable(String), + number: String, + type: + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + } + ) + end + def to_hash + end + + class Campaign < SurgeAPI::Internal::Type::BaseModel + OrHash = + T.type_alias do + T.any( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign, + SurgeAPI::Internal::AnyHash + ) + end + + # The unique identifier of the campaign this phone number is attached to + sig { returns(String) } + attr_accessor :id + + # The current campaign attachment status for this phone number. + sig do + returns( + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ) + end + attr_accessor :attachment_status + + # Campaign attachment details for a domestic local phone number + sig do + params( + id: String, + attachment_status: + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::OrSymbol + ).returns(T.attached_class) + end + def self.new( + # The unique identifier of the campaign this phone number is attached to + id:, + # The current campaign attachment status for this phone number. + attachment_status: + ) + end + + sig do + override.returns( + { + id: String, + attachment_status: + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + } + ) + end + def to_hash + end + + # The current campaign attachment status for this phone number. + module AttachmentStatus + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + ATTACHED = + T.let( + :attached, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ) + ATTACHMENT_PENDING = + T.let( + :attachment_pending, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ) + DETACHED = + T.let( + :detached, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ) + DETACHMENT_PENDING = + T.let( + :detachment_pending, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign::AttachmentStatus::TaggedSymbol + ] + ) + end + def self.values + end + end + end + + # Whether the phone number is local, toll-free, or short code + module Type + extend SurgeAPI::Internal::Type::Enum + + TaggedSymbol = + T.type_alias do + T.all( + Symbol, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type + ) + end + OrSymbol = T.type_alias { T.any(Symbol, String) } + + LOCAL = + T.let( + :local, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + ) + SHORT_CODE = + T.let( + :short_code, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + ) + TOLL_FREE = + T.let( + :toll_free, + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + ) + + sig do + override.returns( + T::Array[ + SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Type::TaggedSymbol + ] + ) + end + def self.values + end + end + end + end + end +end diff --git a/rbi/surge_api/models/unwrap_webhook_event.rbi b/rbi/surge_api/models/unwrap_webhook_event.rbi index c305bb7..1bab691 100644 --- a/rbi/surge_api/models/unwrap_webhook_event.rbi +++ b/rbi/surge_api/models/unwrap_webhook_event.rbi @@ -19,6 +19,7 @@ module SurgeAPI SurgeAPI::MessageReceivedWebhookEvent, SurgeAPI::MessageSentWebhookEvent, SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent, + SurgeAPI::PhoneNumberImportedWebhookEvent, SurgeAPI::RecordingCompletedWebhookEvent, SurgeAPI::VoicemailReceivedWebhookEvent ) diff --git a/rbi/surge_api/resources/webhooks.rbi b/rbi/surge_api/resources/webhooks.rbi index 8efa2f7..2c9188f 100644 --- a/rbi/surge_api/resources/webhooks.rbi +++ b/rbi/surge_api/resources/webhooks.rbi @@ -21,6 +21,7 @@ module SurgeAPI SurgeAPI::MessageReceivedWebhookEvent, SurgeAPI::MessageSentWebhookEvent, SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent, + SurgeAPI::PhoneNumberImportedWebhookEvent, SurgeAPI::RecordingCompletedWebhookEvent, SurgeAPI::VoicemailReceivedWebhookEvent ) diff --git a/sig/surge_api/models.rbs b/sig/surge_api/models.rbs index 13ee616..78bdc20 100644 --- a/sig/surge_api/models.rbs +++ b/sig/surge_api/models.rbs @@ -89,6 +89,8 @@ module SurgeAPI class PhoneNumberAttachedToCampaignWebhookEvent = SurgeAPI::Models::PhoneNumberAttachedToCampaignWebhookEvent + class PhoneNumberImportedWebhookEvent = SurgeAPI::Models::PhoneNumberImportedWebhookEvent + class PhoneNumberListAvailableNumbersParams = SurgeAPI::Models::PhoneNumberListAvailableNumbersParams class PhoneNumberListParams = SurgeAPI::Models::PhoneNumberListParams diff --git a/sig/surge_api/models/account_retrieve_status_params.rbs b/sig/surge_api/models/account_retrieve_status_params.rbs index 38f347c..6840c71 100644 --- a/sig/surge_api/models/account_retrieve_status_params.rbs +++ b/sig/surge_api/models/account_retrieve_status_params.rbs @@ -31,12 +31,13 @@ module SurgeAPI request_options: SurgeAPI::RequestOptions } - type capability = :local_messaging + type capability = :local_messaging | :toll_free_messaging module Capability extend SurgeAPI::Internal::Type::Enum LOCAL_MESSAGING: :local_messaging + TOLL_FREE_MESSAGING: :toll_free_messaging def self?.values: -> ::Array[SurgeAPI::Models::AccountRetrieveStatusParams::capability] end diff --git a/sig/surge_api/models/campaign.rbs b/sig/surge_api/models/campaign.rbs index 3620761..958cda3 100644 --- a/sig/surge_api/models/campaign.rbs +++ b/sig/surge_api/models/campaign.rbs @@ -83,13 +83,15 @@ module SurgeAPI def self?.values: -> ::Array[SurgeAPI::Models::Campaign::include_] end - type status = :active | :canceled | :created | :deactivated | :in_review + type status = + :active | :canceled | :rejected | :created | :deactivated | :in_review module Status extend SurgeAPI::Internal::Type::Enum ACTIVE: :active CANCELED: :canceled + REJECTED: :rejected CREATED: :created DEACTIVATED: :deactivated IN_REVIEW: :in_review diff --git a/sig/surge_api/models/message.rbs b/sig/surge_api/models/message.rbs index ca5372f..4a11db9 100644 --- a/sig/surge_api/models/message.rbs +++ b/sig/surge_api/models/message.rbs @@ -7,7 +7,8 @@ module SurgeAPI blast_id: String?, body: String?, conversation: SurgeAPI::Message::Conversation, - metadata: ::Hash[Symbol, String] + metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::Message::status } class Message < SurgeAPI::Internal::Type::BaseModel @@ -35,13 +36,20 @@ module SurgeAPI def metadata=: (::Hash[Symbol, String]) -> ::Hash[Symbol, String] + attr_reader status: SurgeAPI::Models::Message::status? + + def status=: ( + SurgeAPI::Models::Message::status + ) -> SurgeAPI::Models::Message::status + def initialize: ( ?id: String, ?attachments: ::Array[SurgeAPI::Message::Attachment], ?blast_id: String?, ?body: String?, ?conversation: SurgeAPI::Message::Conversation, - ?metadata: ::Hash[Symbol, String] + ?metadata: ::Hash[Symbol, String], + ?status: SurgeAPI::Models::Message::status ) -> void def to_hash: -> { @@ -50,7 +58,8 @@ module SurgeAPI blast_id: String?, body: String?, conversation: SurgeAPI::Message::Conversation, - metadata: ::Hash[Symbol, String] + metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::Message::status } type attachment = @@ -177,6 +186,20 @@ module SurgeAPI end end end + + type status = :pending | :received | :sent | :delivered | :failed + + module Status + extend SurgeAPI::Internal::Type::Enum + + PENDING: :pending + RECEIVED: :received + SENT: :sent + DELIVERED: :delivered + FAILED: :failed + + def self?.values: -> ::Array[SurgeAPI::Models::Message::status] + end end end end diff --git a/sig/surge_api/models/message_delivered_webhook_event.rbs b/sig/surge_api/models/message_delivered_webhook_event.rbs index 491a9d2..232fc97 100644 --- a/sig/surge_api/models/message_delivered_webhook_event.rbs +++ b/sig/surge_api/models/message_delivered_webhook_event.rbs @@ -38,6 +38,7 @@ module SurgeAPI conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation, delivered_at: Time, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment], blast_id: String } @@ -53,6 +54,8 @@ module SurgeAPI attr_accessor metadata: ::Hash[Symbol, String] + attr_accessor status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status + attr_reader attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment]? def attachments=: ( @@ -69,6 +72,7 @@ module SurgeAPI conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation, delivered_at: Time, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status, ?attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment], ?blast_id: String ) -> void @@ -79,6 +83,7 @@ module SurgeAPI conversation: SurgeAPI::MessageDeliveredWebhookEvent::Data::Conversation, delivered_at: Time, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageDeliveredWebhookEvent::Data::Attachment], blast_id: String } @@ -110,6 +115,16 @@ module SurgeAPI } end + type status = :delivered + + module Status + extend SurgeAPI::Internal::Type::Enum + + DELIVERED: :delivered + + def self?.values: -> ::Array[SurgeAPI::Models::MessageDeliveredWebhookEvent::Data::status] + end + type attachment = { id: String, diff --git a/sig/surge_api/models/message_failed_webhook_event.rbs b/sig/surge_api/models/message_failed_webhook_event.rbs index ba4482b..a18101c 100644 --- a/sig/surge_api/models/message_failed_webhook_event.rbs +++ b/sig/surge_api/models/message_failed_webhook_event.rbs @@ -39,6 +39,7 @@ module SurgeAPI failed_at: Time, failure_reason: String, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment], blast_id: String } @@ -56,6 +57,8 @@ module SurgeAPI attr_accessor metadata: ::Hash[Symbol, String] + attr_accessor status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status + attr_reader attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment]? def attachments=: ( @@ -73,6 +76,7 @@ module SurgeAPI failed_at: Time, failure_reason: String, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status, ?attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment], ?blast_id: String ) -> void @@ -84,6 +88,7 @@ module SurgeAPI failed_at: Time, failure_reason: String, metadata: ::Hash[Symbol, String], + status: SurgeAPI::Models::MessageFailedWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageFailedWebhookEvent::Data::Attachment], blast_id: String } @@ -115,6 +120,16 @@ module SurgeAPI } end + type status = :failed + + module Status + extend SurgeAPI::Internal::Type::Enum + + FAILED: :failed + + def self?.values: -> ::Array[SurgeAPI::Models::MessageFailedWebhookEvent::Data::status] + end + type attachment = { id: String, diff --git a/sig/surge_api/models/message_received_webhook_event.rbs b/sig/surge_api/models/message_received_webhook_event.rbs index 1473146..ae54fd3 100644 --- a/sig/surge_api/models/message_received_webhook_event.rbs +++ b/sig/surge_api/models/message_received_webhook_event.rbs @@ -38,6 +38,7 @@ module SurgeAPI conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], received_at: Time, + status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment], blast_id: String } @@ -53,6 +54,8 @@ module SurgeAPI attr_accessor received_at: Time + attr_accessor status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status + attr_reader attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment]? def attachments=: ( @@ -69,6 +72,7 @@ module SurgeAPI conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], received_at: Time, + status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status, ?attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment], ?blast_id: String ) -> void @@ -79,6 +83,7 @@ module SurgeAPI conversation: SurgeAPI::MessageReceivedWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], received_at: Time, + status: SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageReceivedWebhookEvent::Data::Attachment], blast_id: String } @@ -110,6 +115,16 @@ module SurgeAPI } end + type status = :received + + module Status + extend SurgeAPI::Internal::Type::Enum + + RECEIVED: :received + + def self?.values: -> ::Array[SurgeAPI::Models::MessageReceivedWebhookEvent::Data::status] + end + type attachment = { id: String, diff --git a/sig/surge_api/models/message_sent_webhook_event.rbs b/sig/surge_api/models/message_sent_webhook_event.rbs index 39e9f7a..4673348 100644 --- a/sig/surge_api/models/message_sent_webhook_event.rbs +++ b/sig/surge_api/models/message_sent_webhook_event.rbs @@ -38,6 +38,7 @@ module SurgeAPI conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], sent_at: Time, + status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment], blast_id: String } @@ -53,6 +54,8 @@ module SurgeAPI attr_accessor sent_at: Time + attr_accessor status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status + attr_reader attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment]? def attachments=: ( @@ -69,6 +72,7 @@ module SurgeAPI conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], sent_at: Time, + status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status, ?attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment], ?blast_id: String ) -> void @@ -79,6 +83,7 @@ module SurgeAPI conversation: SurgeAPI::MessageSentWebhookEvent::Data::Conversation, metadata: ::Hash[Symbol, String], sent_at: Time, + status: SurgeAPI::Models::MessageSentWebhookEvent::Data::status, attachments: ::Array[SurgeAPI::MessageSentWebhookEvent::Data::Attachment], blast_id: String } @@ -110,6 +115,16 @@ module SurgeAPI } end + type status = :sent + + module Status + extend SurgeAPI::Internal::Type::Enum + + SENT: :sent + + def self?.values: -> ::Array[SurgeAPI::Models::MessageSentWebhookEvent::Data::status] + end + type attachment = { id: String, diff --git a/sig/surge_api/models/phone_number_imported_webhook_event.rbs b/sig/surge_api/models/phone_number_imported_webhook_event.rbs new file mode 100644 index 0000000..d9f39af --- /dev/null +++ b/sig/surge_api/models/phone_number_imported_webhook_event.rbs @@ -0,0 +1,125 @@ +module SurgeAPI + module Models + type phone_number_imported_webhook_event = + { + account_id: String, + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data, + timestamp: Time, + type: :"phone_number.imported" + } + + class PhoneNumberImportedWebhookEvent < SurgeAPI::Internal::Type::BaseModel + attr_accessor account_id: String + + attr_accessor data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data + + attr_accessor timestamp: Time + + attr_accessor type: :"phone_number.imported" + + def initialize: ( + account_id: String, + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data, + timestamp: Time, + ?type: :"phone_number.imported" + ) -> void + + def to_hash: -> { + account_id: String, + data: SurgeAPI::PhoneNumberImportedWebhookEvent::Data, + timestamp: Time, + type: :"phone_number.imported" + } + + type data = + { + id: String, + campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?, + campaign_id: String?, + name: String?, + number: String, + type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_ + } + + class Data < SurgeAPI::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign? + + attr_accessor campaign_id: String? + + attr_accessor name: String? + + attr_accessor number: String + + attr_accessor type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_ + + def initialize: ( + id: String, + campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?, + campaign_id: String?, + name: String?, + number: String, + type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_ + ) -> void + + def to_hash: -> { + id: String, + campaign: SurgeAPI::PhoneNumberImportedWebhookEvent::Data::Campaign?, + campaign_id: String?, + name: String?, + number: String, + type: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_ + } + + type campaign = + { + id: String, + attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status + } + + class Campaign < SurgeAPI::Internal::Type::BaseModel + attr_accessor id: String + + attr_accessor attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status + + def initialize: ( + id: String, + attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status + ) -> void + + def to_hash: -> { + id: String, + attachment_status: SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status + } + + type attachment_status = + :attached | :attachment_pending | :detached | :detachment_pending + + module AttachmentStatus + extend SurgeAPI::Internal::Type::Enum + + ATTACHED: :attached + ATTACHMENT_PENDING: :attachment_pending + DETACHED: :detached + DETACHMENT_PENDING: :detachment_pending + + def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::Campaign::attachment_status] + end + end + + type type_ = :local | :short_code | :toll_free + + module Type + extend SurgeAPI::Internal::Type::Enum + + LOCAL: :local + SHORT_CODE: :short_code + TOLL_FREE: :toll_free + + def self?.values: -> ::Array[SurgeAPI::Models::PhoneNumberImportedWebhookEvent::Data::type_] + end + end + end + end +end diff --git a/sig/surge_api/models/unwrap_webhook_event.rbs b/sig/surge_api/models/unwrap_webhook_event.rbs index 90bbbb8..e3488c7 100644 --- a/sig/surge_api/models/unwrap_webhook_event.rbs +++ b/sig/surge_api/models/unwrap_webhook_event.rbs @@ -12,6 +12,7 @@ module SurgeAPI | SurgeAPI::MessageReceivedWebhookEvent | SurgeAPI::MessageSentWebhookEvent | SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent + | SurgeAPI::PhoneNumberImportedWebhookEvent | SurgeAPI::RecordingCompletedWebhookEvent | SurgeAPI::VoicemailReceivedWebhookEvent diff --git a/sig/surge_api/resources/webhooks.rbs b/sig/surge_api/resources/webhooks.rbs index 2d103e6..ea42129 100644 --- a/sig/surge_api/resources/webhooks.rbs +++ b/sig/surge_api/resources/webhooks.rbs @@ -16,6 +16,7 @@ module SurgeAPI | SurgeAPI::MessageReceivedWebhookEvent | SurgeAPI::MessageSentWebhookEvent | SurgeAPI::PhoneNumberAttachedToCampaignWebhookEvent + | SurgeAPI::PhoneNumberImportedWebhookEvent | SurgeAPI::RecordingCompletedWebhookEvent | SurgeAPI::VoicemailReceivedWebhookEvent) diff --git a/test/surge_api/resources/messages_test.rb b/test/surge_api/resources/messages_test.rb index f6cb474..82b931f 100644 --- a/test/surge_api/resources/messages_test.rb +++ b/test/surge_api/resources/messages_test.rb @@ -23,7 +23,8 @@ def test_create_required_params blast_id: String | nil, body: String | nil, conversation: SurgeAPI::Message::Conversation | nil, - metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil + metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil, + status: SurgeAPI::Message::Status | nil } end end @@ -44,7 +45,8 @@ def test_retrieve blast_id: String | nil, body: String | nil, conversation: SurgeAPI::Message::Conversation | nil, - metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil + metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil, + status: SurgeAPI::Message::Status | nil } end end @@ -72,7 +74,8 @@ def test_list blast_id: String | nil, body: String | nil, conversation: SurgeAPI::Message::Conversation | nil, - metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil + metadata: ^(SurgeAPI::Internal::Type::HashOf[String]) | nil, + status: SurgeAPI::Message::Status | nil } end end