rcs 2.0.16.pre.rc.2 → 2.0.16.pre.rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.fern/metadata.json +4 -3
- data/.rubocop.yml +1 -5
- data/lib/pinnacle/client.rb +1 -1
- data/lib/pinnacle/messages/client.rb +5 -0
- data/lib/pinnacle/messages/simulate/client.rb +50 -0
- data/lib/pinnacle/types/agent_summary_carrier_launches.rb +7 -1
- data/lib/pinnacle/types/campaign_status_event.rb +21 -0
- data/lib/pinnacle/types/campaign_status_event_agent.rb +11 -0
- data/lib/pinnacle/types/campaign_status_event_brand.rb +11 -0
- data/lib/pinnacle/types/campaign_status_event_campaign.rb +11 -0
- data/lib/pinnacle/types/campaign_status_event_campaign_type.rb +13 -0
- data/lib/pinnacle/types/campaign_status_event_carrier_launches.rb +13 -0
- data/lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb +16 -0
- data/lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb +15 -0
- data/lib/pinnacle/types/carrier_launches.rb +5 -5
- data/lib/pinnacle/types/carrier_launches_carriers.rb +16 -0
- data/lib/pinnacle/types/carrier_launches_verification.rb +15 -0
- data/lib/pinnacle/types/simulate_message_input.rb +12 -0
- data/lib/pinnacle/types/simulate_user_button.rb +12 -0
- data/lib/pinnacle/types/simulate_user_message.rb +12 -0
- data/lib/pinnacle/types/simulate_user_params.rb +13 -0
- data/lib/pinnacle/types/simulate_user_response.rb +10 -0
- data/lib/pinnacle/types/user_button_press.rb +19 -0
- data/lib/pinnacle/types/user_button_press_call.rb +12 -0
- data/lib/pinnacle/types/user_button_press_open_url.rb +12 -0
- data/lib/pinnacle/types/user_button_press_request_user_location.rb +12 -0
- data/lib/pinnacle/types/user_button_press_request_user_location_location.rb +13 -0
- data/lib/pinnacle/types/user_button_press_schedule_event.rb +15 -0
- data/lib/pinnacle/types/user_button_press_send_location.rb +13 -0
- data/lib/pinnacle/types/user_button_press_send_location_lat_long.rb +11 -0
- data/lib/pinnacle/types/user_button_press_trigger.rb +12 -0
- data/lib/pinnacle/types/verification_status.rb +13 -0
- data/lib/pinnacle/types/webhook_event_enum.rb +1 -0
- data/lib/pinnacle/version.rb +1 -1
- data/lib/pinnacle/wrapper/messages/client.rb +3 -1
- data/lib/pinnacle.rb +27 -1
- data/reference.md +70 -1
- metadata +28 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3fd2da2e009d5d8ecd9a2232a8e7aa0b62505b6ab7cab02c16c3a0ad8b12e0f8
|
|
4
|
+
data.tar.gz: aed5b2fe008ef29a4dbe2bd925c92df56447fb9f5e9f0520eb17d9f3e324b185
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 498522f2c8408612371282cac32d1102f504d8914da3a8b973b085c7a60aff0f791eb4660b0928002de7fbf1df1f23a66d84c6398b3a8ad0ae811d5ba261d05e
|
|
7
|
+
data.tar.gz: 2525115821fc93acbcd78049df778f41eda272607d6d069f9190f71c51189296e6aabd9103bc29799c6035f765b9a3e3d75fc32ec273307ec17c3cf141042966
|
data/.fern/metadata.json
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
"generatorConfig": {
|
|
6
6
|
"clientModuleName": "PinnacleBaseClient",
|
|
7
7
|
"flattenModuleStructure": true,
|
|
8
|
-
"useProvidedDefaults": true
|
|
8
|
+
"useProvidedDefaults": true,
|
|
9
|
+
"rubocopVariableNumberStyle": "snake_case"
|
|
9
10
|
},
|
|
10
|
-
"originGitCommit": "
|
|
11
|
-
"sdkVersion": "2.0.16.pre.rc.
|
|
11
|
+
"originGitCommit": "c9cb7751b3bf27100ed65b2122d4bc8b326d34ee",
|
|
12
|
+
"sdkVersion": "2.0.16.pre.rc.3"
|
|
12
13
|
}
|
data/.rubocop.yml
CHANGED
|
@@ -45,11 +45,7 @@ Layout/LineLength:
|
|
|
45
45
|
Enabled: false
|
|
46
46
|
|
|
47
47
|
Naming/VariableNumber:
|
|
48
|
-
|
|
49
|
-
# (snake_case) in generated type classes while shipping a template that
|
|
50
|
-
# enforces `normalcase`. The two are inconsistent, so disable the cop
|
|
51
|
-
# until the generator resolves it upstream.
|
|
52
|
-
Enabled: false
|
|
48
|
+
EnforcedStyle: snake_case
|
|
53
49
|
|
|
54
50
|
Style/Documentation:
|
|
55
51
|
Enabled: false
|
data/lib/pinnacle/client.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Pinnacle
|
|
|
10
10
|
@raw_client = Pinnacle::Internal::Http::RawClient.new(
|
|
11
11
|
base_url: base_url || Pinnacle::Environment::DEFAULT,
|
|
12
12
|
headers: {
|
|
13
|
-
"User-Agent" => "rcs/2.0.16.pre.rc.
|
|
13
|
+
"User-Agent" => "rcs/2.0.16.pre.rc.3",
|
|
14
14
|
"X-Fern-Language" => "Ruby",
|
|
15
15
|
"PINNACLE-API-KEY" => api_key.to_s
|
|
16
16
|
}
|
|
@@ -146,6 +146,11 @@ module Pinnacle
|
|
|
146
146
|
def blasts
|
|
147
147
|
@blasts ||= Pinnacle::Messages::Blasts::Client.new(client: @client)
|
|
148
148
|
end
|
|
149
|
+
|
|
150
|
+
# @return [Pinnacle::Simulate::Client]
|
|
151
|
+
def simulate
|
|
152
|
+
@simulate ||= Pinnacle::Messages::Simulate::Client.new(client: @client)
|
|
153
|
+
end
|
|
149
154
|
end
|
|
150
155
|
end
|
|
151
156
|
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Messages
|
|
5
|
+
module Simulate
|
|
6
|
+
class Client
|
|
7
|
+
# @param client [Pinnacle::Internal::Http::RawClient]
|
|
8
|
+
#
|
|
9
|
+
# @return [void]
|
|
10
|
+
def initialize(client:)
|
|
11
|
+
@client = client
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Simulate inbound messages and button presses from a user.
|
|
15
|
+
#
|
|
16
|
+
# @param request_options [Hash]
|
|
17
|
+
# @param params [Pinnacle::Types::SimulateUserParams]
|
|
18
|
+
# @option request_options [String] :base_url
|
|
19
|
+
# @option request_options [Hash{String => Object}] :additional_headers
|
|
20
|
+
# @option request_options [Hash{String => Object}] :additional_query_parameters
|
|
21
|
+
# @option request_options [Hash{String => Object}] :additional_body_parameters
|
|
22
|
+
# @option request_options [Integer] :timeout_in_seconds
|
|
23
|
+
#
|
|
24
|
+
# @return [Pinnacle::Types::SimulateUserResponse]
|
|
25
|
+
def user(request_options: {}, **params)
|
|
26
|
+
params = Pinnacle::Internal::Types::Utils.normalize_keys(params)
|
|
27
|
+
request = Pinnacle::Internal::JSON::Request.new(
|
|
28
|
+
base_url: request_options[:base_url],
|
|
29
|
+
method: "POST",
|
|
30
|
+
path: "messages/simulate/user",
|
|
31
|
+
body: Pinnacle::Types::SimulateUserParams.new(params).to_h,
|
|
32
|
+
request_options: request_options
|
|
33
|
+
)
|
|
34
|
+
begin
|
|
35
|
+
response = @client.send(request)
|
|
36
|
+
rescue Net::HTTPRequestTimeout
|
|
37
|
+
raise Pinnacle::Errors::TimeoutError
|
|
38
|
+
end
|
|
39
|
+
code = response.code.to_i
|
|
40
|
+
if code.between?(200, 299)
|
|
41
|
+
Pinnacle::Types::SimulateUserResponse.load(response.body)
|
|
42
|
+
else
|
|
43
|
+
error_class = Pinnacle::Errors::ResponseError.subclass_for_code(code)
|
|
44
|
+
raise error_class.new(response.body, code: code)
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
@@ -2,12 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
module Pinnacle
|
|
4
4
|
module Types
|
|
5
|
-
#
|
|
5
|
+
# Raw per-carrier launch + verification state for the agent. Each
|
|
6
|
+
# value is tri-state — `null` means "no launch requested" or "not
|
|
7
|
+
# sent yet"; `false` means "pending" / "sent"; `true` means
|
|
8
|
+
# "launched" / "verified". Use the [GET /rcs/{agentId}](/api-reference/rcs-agents/get)
|
|
9
|
+
# endpoint for the resolved enum representation.
|
|
6
10
|
class AgentSummaryCarrierLaunches < Internal::Types::Model
|
|
7
11
|
field :att, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "ATT"
|
|
8
12
|
field :others, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "OTHERS"
|
|
9
13
|
field :tmobile, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "TMOBILE"
|
|
10
14
|
field :verizon, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "VERIZON"
|
|
15
|
+
field :aegis, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "AEGIS"
|
|
16
|
+
field :google, -> { Internal::Types::Boolean }, optional: true, nullable: false, api_name: "GOOGLE"
|
|
11
17
|
end
|
|
12
18
|
end
|
|
13
19
|
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Webhook body delivered to subscribers of `CAMPAIGN.STATUS` whenever
|
|
6
|
+
# an RCS campaign's per-carrier launch status or verification status
|
|
7
|
+
# (AEGIS / Google) changes. `CAMPAIGN.STATUS` is only supported for
|
|
8
|
+
# RCS agent senders — the attach call rejects phone-number senders
|
|
9
|
+
# with `400 Bad Request`. Verify the `PINNACLE-SIGNING-SECRET` header
|
|
10
|
+
# matches the signing secret of the webhook this event was delivered
|
|
11
|
+
# to before trusting the payload.
|
|
12
|
+
class CampaignStatusEvent < Internal::Types::Model
|
|
13
|
+
field :type, -> { String }, optional: false, nullable: false
|
|
14
|
+
field :agent, -> { Pinnacle::Types::CampaignStatusEventAgent }, optional: false, nullable: false
|
|
15
|
+
field :campaign, -> { Pinnacle::Types::CampaignStatusEventCampaign }, optional: false, nullable: false
|
|
16
|
+
field :brand, -> { Pinnacle::Types::CampaignStatusEventBrand }, optional: false, nullable: false
|
|
17
|
+
field :carrier_launches, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunches }, optional: false, nullable: false, api_name: "carrierLaunches"
|
|
18
|
+
field :updated_at, -> { String }, optional: false, nullable: false, api_name: "updatedAt"
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# The RCS agent the campaign-status update is for.
|
|
6
|
+
class CampaignStatusEventAgent < Internal::Types::Model
|
|
7
|
+
field :id, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :name, -> { String }, optional: false, nullable: true
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Reference to the brand owning the agent's connected campaign.
|
|
6
|
+
class CampaignStatusEventBrand < Internal::Types::Model
|
|
7
|
+
field :public_id, -> { String }, optional: false, nullable: true, api_name: "publicId"
|
|
8
|
+
field :name, -> { String }, optional: false, nullable: true
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Reference to the connected campaign.
|
|
6
|
+
class CampaignStatusEventCampaign < Internal::Types::Model
|
|
7
|
+
field :public_id, -> { String }, optional: false, nullable: true, api_name: "publicId"
|
|
8
|
+
field :type, -> { Pinnacle::Types::CampaignStatusEventCampaignType }, optional: false, nullable: false
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Resolved per-key launch status for the campaign's agent. Carrier
|
|
6
|
+
# statuses live under `carriers` and verifier statuses under
|
|
7
|
+
# `verification`.
|
|
8
|
+
class CampaignStatusEventCarrierLaunches < Internal::Types::Model
|
|
9
|
+
field :carriers, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunchesCarriers }, optional: false, nullable: false
|
|
10
|
+
field :verification, -> { Pinnacle::Types::CampaignStatusEventCarrierLaunchesVerification }, optional: false, nullable: false
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Per-carrier launch status. Each carrier moves through
|
|
6
|
+
# `NOT_LAUNCHED` → `PENDING` → `LAUNCHED` as Pinnacle submits the
|
|
7
|
+
# agent for review and the carrier accepts it. The agent is only
|
|
8
|
+
# deliverable on a carrier once that carrier reports `LAUNCHED`.
|
|
9
|
+
class CampaignStatusEventCarrierLaunchesCarriers < Internal::Types::Model
|
|
10
|
+
field :att, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "ATT"
|
|
11
|
+
field :tmobile, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "TMOBILE"
|
|
12
|
+
field :verizon, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "VERIZON"
|
|
13
|
+
field :others, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "OTHERS"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# External verifier status. AEGIS (the U.S. carrier vetting
|
|
6
|
+
# authority used by AT&T, T-Mobile, and Verizon) and Google each
|
|
7
|
+
# send a verification email to the brand's contact address. Each
|
|
8
|
+
# verifier moves through `NOT_SENT` → `SENT` → `VERIFIED` once
|
|
9
|
+
# the brand replies and the verifier confirms ownership.
|
|
10
|
+
class CampaignStatusEventCarrierLaunchesVerification < Internal::Types::Model
|
|
11
|
+
field :aegis, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "AEGIS"
|
|
12
|
+
field :google, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "GOOGLE"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
module Pinnacle
|
|
4
4
|
module Types
|
|
5
|
-
# Per-carrier launch status.
|
|
5
|
+
# Per-carrier launch status grouped by category. `carriers` covers
|
|
6
|
+
# AT&T / T-Mobile / Verizon / other carriers; `verification` covers
|
|
7
|
+
# the AEGIS and Google verification flows.
|
|
6
8
|
class CarrierLaunches < Internal::Types::Model
|
|
7
|
-
field :
|
|
8
|
-
field :
|
|
9
|
-
field :verizon, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "VERIZON"
|
|
10
|
-
field :others, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "OTHERS"
|
|
9
|
+
field :carriers, -> { Pinnacle::Types::CarrierLaunchesCarriers }, optional: false, nullable: false
|
|
10
|
+
field :verification, -> { Pinnacle::Types::CarrierLaunchesVerification }, optional: false, nullable: false
|
|
11
11
|
end
|
|
12
12
|
end
|
|
13
13
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Per-carrier launch status. Each carrier moves through
|
|
6
|
+
# `NOT_LAUNCHED` → `PENDING` → `LAUNCHED` as Pinnacle submits the
|
|
7
|
+
# agent for review and the carrier accepts it. The agent is only
|
|
8
|
+
# deliverable on a carrier once that carrier reports `LAUNCHED`.
|
|
9
|
+
class CarrierLaunchesCarriers < Internal::Types::Model
|
|
10
|
+
field :att, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "ATT"
|
|
11
|
+
field :tmobile, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "TMOBILE"
|
|
12
|
+
field :verizon, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "VERIZON"
|
|
13
|
+
field :others, -> { Pinnacle::Types::CarrierLaunchStatus }, optional: false, nullable: false, api_name: "OTHERS"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# External verifier status. AEGIS (the U.S. carrier vetting
|
|
6
|
+
# authority used by AT&T, T-Mobile, and Verizon) and Google each
|
|
7
|
+
# send a verification email to the brand's contact address. Each
|
|
8
|
+
# verifier moves through `NOT_SENT` → `SENT` → `VERIFIED` once
|
|
9
|
+
# the brand replies and the verifier confirms ownership.
|
|
10
|
+
class CarrierLaunchesVerification < Internal::Types::Model
|
|
11
|
+
field :aegis, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "AEGIS"
|
|
12
|
+
field :google, -> { Pinnacle::Types::VerificationStatus }, optional: false, nullable: false, api_name: "GOOGLE"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# User message payload. At least one of `text` or `mediaUrls` must be non-empty.
|
|
6
|
+
# Send only `text` to simulate an inbound SMS; include `mediaUrls` to simulate an inbound MMS.
|
|
7
|
+
class SimulateMessageInput < Internal::Types::Model
|
|
8
|
+
field :text, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :media_urls, -> { Internal::Types::Array[String] }, optional: true, nullable: false, api_name: "mediaUrls"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulate a button press from a user.
|
|
6
|
+
class SimulateUserButton < Internal::Types::Model
|
|
7
|
+
field :from, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :to, -> { String }, optional: false, nullable: false
|
|
9
|
+
field :button, -> { Pinnacle::Types::UserButtonPress }, optional: false, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulate an inbound message from a user.
|
|
6
|
+
class SimulateUserMessage < Internal::Types::Model
|
|
7
|
+
field :from, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :to, -> { String }, optional: false, nullable: false
|
|
9
|
+
field :message, -> { Pinnacle::Types::SimulateMessageInput }, optional: false, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Request body for simulating an inbound event from a user.
|
|
6
|
+
class SimulateUserParams < Internal::Types::Model
|
|
7
|
+
extend Pinnacle::Internal::Types::Union
|
|
8
|
+
|
|
9
|
+
member -> { Pinnacle::Types::SimulateUserMessage }
|
|
10
|
+
member -> { Pinnacle::Types::SimulateUserButton }
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Discriminated union of button presses that can be simulated for a user.
|
|
6
|
+
class UserButtonPress < Internal::Types::Model
|
|
7
|
+
extend Pinnacle::Internal::Types::Union
|
|
8
|
+
|
|
9
|
+
discriminant :type
|
|
10
|
+
|
|
11
|
+
member -> { Pinnacle::Types::UserButtonPressTrigger }, key: "TRIGGER"
|
|
12
|
+
member -> { Pinnacle::Types::UserButtonPressOpenUrl }, key: "OPEN_URL"
|
|
13
|
+
member -> { Pinnacle::Types::UserButtonPressCall }, key: "CALL"
|
|
14
|
+
member -> { Pinnacle::Types::UserButtonPressScheduleEvent }, key: "SCHEDULE_EVENT"
|
|
15
|
+
member -> { Pinnacle::Types::UserButtonPressSendLocation }, key: "SEND_LOCATION"
|
|
16
|
+
member -> { Pinnacle::Types::UserButtonPressRequestUserLocation }, key: "REQUEST_USER_LOCATION"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses a `call` button.
|
|
6
|
+
class UserButtonPressCall < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :payload, -> { String }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses an `openUrl` button.
|
|
6
|
+
class UserButtonPressOpenUrl < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :payload, -> { String }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses a `requestUserLocation` button.
|
|
6
|
+
class UserButtonPressRequestUserLocation < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :location, -> { Pinnacle::Types::UserButtonPressRequestUserLocationLocation }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Location the simulated user responded with.
|
|
6
|
+
class UserButtonPressRequestUserLocationLocation < Internal::Types::Model
|
|
7
|
+
field :text, -> { String }, optional: true, nullable: false
|
|
8
|
+
field :latitude, -> { Integer }, optional: true, nullable: false
|
|
9
|
+
field :longitude, -> { Integer }, optional: true, nullable: false
|
|
10
|
+
field :address, -> { String }, optional: true, nullable: false
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses a `scheduleEvent` button.
|
|
6
|
+
class UserButtonPressScheduleEvent < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :event_start_time, -> { String }, optional: true, nullable: false, api_name: "eventStartTime"
|
|
10
|
+
field :event_end_time, -> { String }, optional: true, nullable: false, api_name: "eventEndTime"
|
|
11
|
+
field :event_title, -> { String }, optional: true, nullable: false, api_name: "eventTitle"
|
|
12
|
+
field :event_description, -> { String }, optional: true, nullable: false, api_name: "eventDescription"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses a `sendLocation` button.
|
|
6
|
+
class UserButtonPressSendLocation < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :name, -> { String }, optional: true, nullable: false
|
|
10
|
+
field :lat_long, -> { Pinnacle::Types::UserButtonPressSendLocationLatLong }, optional: true, nullable: false, api_name: "latLong"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Shared coordinates.
|
|
6
|
+
class UserButtonPressSendLocationLatLong < Internal::Types::Model
|
|
7
|
+
field :lat, -> { Integer }, optional: true, nullable: false
|
|
8
|
+
field :lng, -> { Integer }, optional: true, nullable: false
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pinnacle
|
|
4
|
+
module Types
|
|
5
|
+
# Simulates when a user presses a `trigger` button.
|
|
6
|
+
class UserButtonPressTrigger < Internal::Types::Model
|
|
7
|
+
field :title, -> { String }, optional: false, nullable: false
|
|
8
|
+
field :metadata, -> { String }, optional: true, nullable: false
|
|
9
|
+
field :payload, -> { String }, optional: true, nullable: false
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
data/lib/pinnacle/version.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Pinnacle
|
|
|
19
19
|
# @param request [Hash] Request with :headers and :body keys
|
|
20
20
|
# @param secret [String, nil] Webhook secret (falls back to PINNACLE_SIGNING_SECRET env var)
|
|
21
21
|
#
|
|
22
|
-
# @return [Pinnacle::Types::MessageEvent, Pinnacle::Types::UserEvent, Pinnacle::Types::FormSubmissionEvent]
|
|
22
|
+
# @return [Pinnacle::Types::MessageEvent, Pinnacle::Types::UserEvent, Pinnacle::Types::FormSubmissionEvent, Pinnacle::Types::CampaignStatusEvent]
|
|
23
23
|
# @raise [Pinnacle::Errors::UnauthorizedError] If webhook signature is invalid or missing
|
|
24
24
|
# @raise [Pinnacle::Errors::ClientError] If request body cannot be parsed
|
|
25
25
|
def process(request, secret: nil)
|
|
@@ -60,6 +60,8 @@ module Pinnacle
|
|
|
60
60
|
Pinnacle::Types::UserEvent.coerce(parsed)
|
|
61
61
|
when "FORM.SUBMISSION"
|
|
62
62
|
Pinnacle::Types::FormSubmissionEvent.coerce(parsed)
|
|
63
|
+
when "CAMPAIGN.STATUS"
|
|
64
|
+
Pinnacle::Types::CampaignStatusEvent.coerce(parsed)
|
|
63
65
|
else
|
|
64
66
|
Pinnacle::Types::MessageEvent.coerce(parsed)
|
|
65
67
|
end
|
data/lib/pinnacle.rb
CHANGED
|
@@ -375,6 +375,20 @@ require_relative "pinnacle/types/list_scheduled_messages_response"
|
|
|
375
375
|
require_relative "pinnacle/types/blast_summary_type"
|
|
376
376
|
require_relative "pinnacle/types/blast_summary"
|
|
377
377
|
require_relative "pinnacle/types/list_blasts_response"
|
|
378
|
+
require_relative "pinnacle/types/simulate_message_input"
|
|
379
|
+
require_relative "pinnacle/types/simulate_user_message"
|
|
380
|
+
require_relative "pinnacle/types/user_button_press_trigger"
|
|
381
|
+
require_relative "pinnacle/types/user_button_press_open_url"
|
|
382
|
+
require_relative "pinnacle/types/user_button_press_call"
|
|
383
|
+
require_relative "pinnacle/types/user_button_press_schedule_event"
|
|
384
|
+
require_relative "pinnacle/types/user_button_press_send_location_lat_long"
|
|
385
|
+
require_relative "pinnacle/types/user_button_press_send_location"
|
|
386
|
+
require_relative "pinnacle/types/user_button_press_request_user_location_location"
|
|
387
|
+
require_relative "pinnacle/types/user_button_press_request_user_location"
|
|
388
|
+
require_relative "pinnacle/types/user_button_press"
|
|
389
|
+
require_relative "pinnacle/types/simulate_user_button"
|
|
390
|
+
require_relative "pinnacle/types/simulate_user_params"
|
|
391
|
+
require_relative "pinnacle/types/simulate_user_response"
|
|
378
392
|
require_relative "pinnacle/types/phone_feature_enum"
|
|
379
393
|
require_relative "pinnacle/types/phone_enum"
|
|
380
394
|
require_relative "pinnacle/types/phone_number_cost"
|
|
@@ -394,6 +408,9 @@ require_relative "pinnacle/types/detached_phone_number_result"
|
|
|
394
408
|
require_relative "pinnacle/types/owned_phone_number"
|
|
395
409
|
require_relative "pinnacle/types/list_phone_numbers_response"
|
|
396
410
|
require_relative "pinnacle/types/carrier_launch_status"
|
|
411
|
+
require_relative "pinnacle/types/verification_status"
|
|
412
|
+
require_relative "pinnacle/types/carrier_launches_carriers"
|
|
413
|
+
require_relative "pinnacle/types/carrier_launches_verification"
|
|
397
414
|
require_relative "pinnacle/types/carrier_launches"
|
|
398
415
|
require_relative "pinnacle/types/rcs_agent_details_phones_item"
|
|
399
416
|
require_relative "pinnacle/types/rcs_agent_details_emails_item"
|
|
@@ -503,6 +520,14 @@ require_relative "pinnacle/types/message_event_fallback_message"
|
|
|
503
520
|
require_relative "pinnacle/types/message_event"
|
|
504
521
|
require_relative "pinnacle/types/user_event_conversation"
|
|
505
522
|
require_relative "pinnacle/types/user_event"
|
|
523
|
+
require_relative "pinnacle/types/campaign_status_event_agent"
|
|
524
|
+
require_relative "pinnacle/types/campaign_status_event_campaign_type"
|
|
525
|
+
require_relative "pinnacle/types/campaign_status_event_campaign"
|
|
526
|
+
require_relative "pinnacle/types/campaign_status_event_brand"
|
|
527
|
+
require_relative "pinnacle/types/campaign_status_event_carrier_launches_carriers"
|
|
528
|
+
require_relative "pinnacle/types/campaign_status_event_carrier_launches_verification"
|
|
529
|
+
require_relative "pinnacle/types/campaign_status_event_carrier_launches"
|
|
530
|
+
require_relative "pinnacle/types/campaign_status_event"
|
|
506
531
|
require_relative "pinnacle/types/form_submission_event_conversation"
|
|
507
532
|
require_relative "pinnacle/types/form_submission_event_form"
|
|
508
533
|
require_relative "pinnacle/types/form_submission_answer"
|
|
@@ -550,10 +575,10 @@ require_relative "pinnacle/webhooks/types/detach_webhook_params"
|
|
|
550
575
|
require_relative "pinnacle/forms/client"
|
|
551
576
|
require_relative "pinnacle/forms/types/update_form_params"
|
|
552
577
|
require_relative "pinnacle/forms/types/list_forms_params"
|
|
578
|
+
require_relative "pinnacle/campaigns/client"
|
|
553
579
|
require_relative "pinnacle/audiences/contacts/client"
|
|
554
580
|
require_relative "pinnacle/audiences/contacts/types/remove_contacts_params"
|
|
555
581
|
require_relative "pinnacle/audiences/contacts/types/add_contacts_params"
|
|
556
|
-
require_relative "pinnacle/campaigns/client"
|
|
557
582
|
require_relative "pinnacle/campaigns/dlc/client"
|
|
558
583
|
require_relative "pinnacle/campaigns/dlc/types/upsert_dlc_campaign_params"
|
|
559
584
|
require_relative "pinnacle/campaigns/dlc/types/list_dlc_campaigns_params"
|
|
@@ -580,6 +605,7 @@ require_relative "pinnacle/messages/schedules/client"
|
|
|
580
605
|
require_relative "pinnacle/messages/schedules/types/list_scheduled_messages_params"
|
|
581
606
|
require_relative "pinnacle/messages/blasts/client"
|
|
582
607
|
require_relative "pinnacle/messages/blasts/types/list_blasts_params"
|
|
608
|
+
require_relative "pinnacle/messages/simulate/client"
|
|
583
609
|
require_relative "pinnacle/phone_numbers/campaign/client"
|
|
584
610
|
require_relative "pinnacle/phone_numbers/campaign/types/attach_campaign_params"
|
|
585
611
|
require_relative "pinnacle/phone_numbers/campaign/types/detach_campaign_params"
|
data/reference.md
CHANGED
|
@@ -2855,7 +2855,7 @@ Supplying `headers` alongside `webhookId` **overwrites** the stored headers on t
|
|
|
2855
2855
|
|
|
2856
2856
|
Event type filter for the subscription. Set to `null` to receive all events. <br>
|
|
2857
2857
|
|
|
2858
|
-
`USER.TYPING`
|
|
2858
|
+
`USER.TYPING` and `CAMPAIGN.STATUS` are only supported for RCS agent senders, not phone numbers — attempting to attach either of these events to a phone number returns `400 Bad Request`.
|
|
2859
2859
|
|
|
2860
2860
|
</dd>
|
|
2861
2861
|
</dl>
|
|
@@ -6421,6 +6421,75 @@ client.messages.blasts.list
|
|
|
6421
6421
|
</dl>
|
|
6422
6422
|
|
|
6423
6423
|
|
|
6424
|
+
</dd>
|
|
6425
|
+
</dl>
|
|
6426
|
+
</details>
|
|
6427
|
+
|
|
6428
|
+
## Messages Simulate
|
|
6429
|
+
<details><summary><code>client.messages.simulate.<a href="/lib/pinnacle/messages/simulate/client.rb">user</a>(request) -> Pinnacle::Types::SimulateUserResponse</code></summary>
|
|
6430
|
+
<dl>
|
|
6431
|
+
<dd>
|
|
6432
|
+
|
|
6433
|
+
#### 📝 Description
|
|
6434
|
+
|
|
6435
|
+
<dl>
|
|
6436
|
+
<dd>
|
|
6437
|
+
|
|
6438
|
+
<dl>
|
|
6439
|
+
<dd>
|
|
6440
|
+
|
|
6441
|
+
Simulate inbound messages and button presses from a user.
|
|
6442
|
+
</dd>
|
|
6443
|
+
</dl>
|
|
6444
|
+
</dd>
|
|
6445
|
+
</dl>
|
|
6446
|
+
|
|
6447
|
+
#### 🔌 Usage
|
|
6448
|
+
|
|
6449
|
+
<dl>
|
|
6450
|
+
<dd>
|
|
6451
|
+
|
|
6452
|
+
<dl>
|
|
6453
|
+
<dd>
|
|
6454
|
+
|
|
6455
|
+
```ruby
|
|
6456
|
+
client.messages.simulate.user(
|
|
6457
|
+
from: "+14155551234",
|
|
6458
|
+
to: "+14155555678",
|
|
6459
|
+
message: {
|
|
6460
|
+
text: "Hello from the test user!"
|
|
6461
|
+
}
|
|
6462
|
+
)
|
|
6463
|
+
```
|
|
6464
|
+
</dd>
|
|
6465
|
+
</dl>
|
|
6466
|
+
</dd>
|
|
6467
|
+
</dl>
|
|
6468
|
+
|
|
6469
|
+
#### ⚙️ Parameters
|
|
6470
|
+
|
|
6471
|
+
<dl>
|
|
6472
|
+
<dd>
|
|
6473
|
+
|
|
6474
|
+
<dl>
|
|
6475
|
+
<dd>
|
|
6476
|
+
|
|
6477
|
+
**request:** `Pinnacle::Types::SimulateUserParams`
|
|
6478
|
+
|
|
6479
|
+
</dd>
|
|
6480
|
+
</dl>
|
|
6481
|
+
|
|
6482
|
+
<dl>
|
|
6483
|
+
<dd>
|
|
6484
|
+
|
|
6485
|
+
**request_options:** `Pinnacle::Messages::Simulate::RequestOptions`
|
|
6486
|
+
|
|
6487
|
+
</dd>
|
|
6488
|
+
</dl>
|
|
6489
|
+
</dd>
|
|
6490
|
+
</dl>
|
|
6491
|
+
|
|
6492
|
+
|
|
6424
6493
|
</dd>
|
|
6425
6494
|
</dl>
|
|
6426
6495
|
</details>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rcs
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.16.pre.rc.
|
|
4
|
+
version: 2.0.16.pre.rc.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pinnacle
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: The Pinnacle Ruby library provides convenient access to the Pinnacle
|
|
14
14
|
API from Ruby.
|
|
@@ -165,6 +165,7 @@ files:
|
|
|
165
165
|
- lib/pinnacle/messages/schedules/types/list_scheduled_messages_params.rb
|
|
166
166
|
- lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_schedule_type.rb
|
|
167
167
|
- lib/pinnacle/messages/schedules/types/list_scheduled_messages_request_status.rb
|
|
168
|
+
- lib/pinnacle/messages/simulate/client.rb
|
|
168
169
|
- lib/pinnacle/messages/sms/client.rb
|
|
169
170
|
- lib/pinnacle/messages/sms/types/send_sms_options.rb
|
|
170
171
|
- lib/pinnacle/messages/sms/types/sms.rb
|
|
@@ -278,11 +279,21 @@ files:
|
|
|
278
279
|
- lib/pinnacle/types/buy_response_capabilities.rb
|
|
279
280
|
- lib/pinnacle/types/campaign_enum.rb
|
|
280
281
|
- lib/pinnacle/types/campaign_query.rb
|
|
282
|
+
- lib/pinnacle/types/campaign_status_event.rb
|
|
283
|
+
- lib/pinnacle/types/campaign_status_event_agent.rb
|
|
284
|
+
- lib/pinnacle/types/campaign_status_event_brand.rb
|
|
285
|
+
- lib/pinnacle/types/campaign_status_event_campaign.rb
|
|
286
|
+
- lib/pinnacle/types/campaign_status_event_campaign_type.rb
|
|
287
|
+
- lib/pinnacle/types/campaign_status_event_carrier_launches.rb
|
|
288
|
+
- lib/pinnacle/types/campaign_status_event_carrier_launches_carriers.rb
|
|
289
|
+
- lib/pinnacle/types/campaign_status_event_carrier_launches_verification.rb
|
|
281
290
|
- lib/pinnacle/types/campaign_submission_result.rb
|
|
282
291
|
- lib/pinnacle/types/campaign_validation_response_errors_item.rb
|
|
283
292
|
- lib/pinnacle/types/campaign_validation_result.rb
|
|
284
293
|
- lib/pinnacle/types/carrier_launch_status.rb
|
|
285
294
|
- lib/pinnacle/types/carrier_launches.rb
|
|
295
|
+
- lib/pinnacle/types/carrier_launches_carriers.rb
|
|
296
|
+
- lib/pinnacle/types/carrier_launches_verification.rb
|
|
286
297
|
- lib/pinnacle/types/checkbox_field.rb
|
|
287
298
|
- lib/pinnacle/types/color_field.rb
|
|
288
299
|
- lib/pinnacle/types/company_entity_type_enum.rb
|
|
@@ -550,6 +561,11 @@ files:
|
|
|
550
561
|
- lib/pinnacle/types/sent_sms_details.rb
|
|
551
562
|
- lib/pinnacle/types/shortened_url.rb
|
|
552
563
|
- lib/pinnacle/types/shortened_url_with_click_data.rb
|
|
564
|
+
- lib/pinnacle/types/simulate_message_input.rb
|
|
565
|
+
- lib/pinnacle/types/simulate_user_button.rb
|
|
566
|
+
- lib/pinnacle/types/simulate_user_message.rb
|
|
567
|
+
- lib/pinnacle/types/simulate_user_params.rb
|
|
568
|
+
- lib/pinnacle/types/simulate_user_response.rb
|
|
553
569
|
- lib/pinnacle/types/sms_content.rb
|
|
554
570
|
- lib/pinnacle/types/sms_validation_response_segments.rb
|
|
555
571
|
- lib/pinnacle/types/sms_validation_response_segments_gsm_7.rb
|
|
@@ -589,6 +605,15 @@ files:
|
|
|
589
605
|
- lib/pinnacle/types/updated_contact_id.rb
|
|
590
606
|
- lib/pinnacle/types/upload_results.rb
|
|
591
607
|
- lib/pinnacle/types/url_field.rb
|
|
608
|
+
- lib/pinnacle/types/user_button_press.rb
|
|
609
|
+
- lib/pinnacle/types/user_button_press_call.rb
|
|
610
|
+
- lib/pinnacle/types/user_button_press_open_url.rb
|
|
611
|
+
- lib/pinnacle/types/user_button_press_request_user_location.rb
|
|
612
|
+
- lib/pinnacle/types/user_button_press_request_user_location_location.rb
|
|
613
|
+
- lib/pinnacle/types/user_button_press_schedule_event.rb
|
|
614
|
+
- lib/pinnacle/types/user_button_press_send_location.rb
|
|
615
|
+
- lib/pinnacle/types/user_button_press_send_location_lat_long.rb
|
|
616
|
+
- lib/pinnacle/types/user_button_press_trigger.rb
|
|
592
617
|
- lib/pinnacle/types/user_event.rb
|
|
593
618
|
- lib/pinnacle/types/user_event_conversation.rb
|
|
594
619
|
- lib/pinnacle/types/v_card_address_schema_type_item.rb
|
|
@@ -609,6 +634,7 @@ files:
|
|
|
609
634
|
- lib/pinnacle/types/vcard_email.rb
|
|
610
635
|
- lib/pinnacle/types/vcard_phone.rb
|
|
611
636
|
- lib/pinnacle/types/vcard_resource.rb
|
|
637
|
+
- lib/pinnacle/types/verification_status.rb
|
|
612
638
|
- lib/pinnacle/types/vetting_feedback.rb
|
|
613
639
|
- lib/pinnacle/types/vetting_history.rb
|
|
614
640
|
- lib/pinnacle/types/vetting_history_vetting_status.rb
|