late-sdk 0.0.78 → 0.0.79
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/README.md +28 -1
- data/docs/BulkCreateContacts200Response.md +26 -0
- data/docs/CommentAutomationsApi.md +28 -24
- data/docs/ContactsApi.md +42 -36
- data/docs/CreateCommentAutomation200Response.md +20 -0
- data/docs/CreateCommentAutomation200ResponseAutomation.md +38 -0
- data/docs/CreateCommentAutomation200ResponseAutomationStats.md +22 -0
- data/docs/CreateContact200Response.md +24 -0
- data/docs/CreateContact200ResponseChannel.md +24 -0
- data/docs/CreateContact200ResponseContact.md +36 -0
- data/docs/CreateCustomField200Response.md +20 -0
- data/docs/CustomFieldsApi.md +21 -18
- data/docs/GetBroadcast200ResponseBroadcast.md +1 -1
- data/docs/GetCommentAutomation200Response.md +22 -0
- data/docs/GetCommentAutomation200ResponseAutomation.md +46 -0
- data/docs/GetCommentAutomation200ResponseLogsInner.md +32 -0
- data/docs/GetContact200Response.md +22 -0
- data/docs/GetContact200ResponseChannelsInner.md +32 -0
- data/docs/GetContact200ResponseContact.md +42 -0
- data/docs/GetContactChannels200Response.md +20 -0
- data/docs/GetContactChannels200ResponseChannelsInner.md +34 -0
- data/docs/ListCommentAutomationLogs200Response.md +22 -0
- data/docs/ListContacts200Response.md +24 -0
- data/docs/ListContacts200ResponseContactsInner.md +52 -0
- data/docs/{GetBroadcast200ResponseBroadcastSegmentFilters.md → ListContacts200ResponseFilters.md} +2 -2
- data/docs/ListCustomFields200Response.md +20 -0
- data/docs/ListCustomFields200ResponseFieldsInner.md +28 -0
- data/docs/UpdateCommentAutomation200Response.md +20 -0
- data/docs/UpdateCommentAutomation200ResponseAutomation.md +32 -0
- data/docs/UpdateContact200Response.md +20 -0
- data/docs/UpdateContact200ResponseContact.md +36 -0
- data/docs/UpdateCustomField200Response.md +20 -0
- data/docs/UpdateCustomField200ResponseField.md +26 -0
- data/lib/late-sdk/api/comment_automations_api.rb +20 -20
- data/lib/late-sdk/api/contacts_api.rb +30 -30
- data/lib/late-sdk/api/custom_fields_api.rb +15 -15
- data/lib/late-sdk/models/bulk_create_contacts200_response.rb +185 -0
- data/lib/late-sdk/models/create_comment_automation200_response.rb +156 -0
- data/lib/late-sdk/models/create_comment_automation200_response_automation.rb +273 -0
- data/lib/late-sdk/models/create_comment_automation200_response_automation_stats.rb +165 -0
- data/lib/late-sdk/models/create_contact200_response.rb +174 -0
- data/lib/late-sdk/models/create_contact200_response_channel.rb +175 -0
- data/lib/late-sdk/models/create_contact200_response_contact.rb +230 -0
- data/lib/late-sdk/models/create_custom_field200_response.rb +156 -0
- data/lib/late-sdk/models/get_broadcast200_response_broadcast.rb +1 -1
- data/lib/late-sdk/models/get_comment_automation200_response.rb +167 -0
- data/lib/late-sdk/models/get_comment_automation200_response_automation.rb +309 -0
- data/lib/late-sdk/models/get_comment_automation200_response_logs_inner.rb +244 -0
- data/lib/late-sdk/models/get_contact200_response.rb +167 -0
- data/lib/late-sdk/models/get_contact200_response_channels_inner.rb +210 -0
- data/lib/late-sdk/models/get_contact200_response_contact.rb +259 -0
- data/lib/late-sdk/models/get_contact_channels200_response.rb +158 -0
- data/lib/late-sdk/models/get_contact_channels200_response_channels_inner.rb +219 -0
- data/lib/late-sdk/models/list_comment_automation_logs200_response.rb +167 -0
- data/lib/late-sdk/models/list_contacts200_response.rb +176 -0
- data/lib/late-sdk/models/list_contacts200_response_contacts_inner.rb +302 -0
- data/lib/late-sdk/models/{get_broadcast200_response_broadcast_segment_filters.rb → list_contacts200_response_filters.rb} +3 -3
- data/lib/late-sdk/models/list_custom_fields200_response.rb +158 -0
- data/lib/late-sdk/models/list_custom_fields200_response_fields_inner.rb +228 -0
- data/lib/late-sdk/models/update_comment_automation200_response.rb +156 -0
- data/lib/late-sdk/models/update_comment_automation200_response_automation.rb +246 -0
- data/lib/late-sdk/models/update_contact200_response.rb +156 -0
- data/lib/late-sdk/models/update_contact200_response_contact.rb +230 -0
- data/lib/late-sdk/models/update_custom_field200_response.rb +156 -0
- data/lib/late-sdk/models/update_custom_field200_response_field.rb +185 -0
- data/lib/late-sdk/version.rb +1 -1
- data/lib/late-sdk.rb +28 -1
- data/openapi.yaml +324 -13
- data/spec/api/comment_automations_api_spec.rb +4 -4
- data/spec/api/contacts_api_spec.rb +6 -6
- data/spec/api/custom_fields_api_spec.rb +3 -3
- data/spec/models/bulk_create_contacts200_response_spec.rb +60 -0
- data/spec/models/create_comment_automation200_response_automation_spec.rb +100 -0
- data/spec/models/create_comment_automation200_response_automation_stats_spec.rb +48 -0
- data/spec/models/create_comment_automation200_response_spec.rb +42 -0
- data/spec/models/create_contact200_response_channel_spec.rb +54 -0
- data/spec/models/create_contact200_response_contact_spec.rb +90 -0
- data/spec/models/create_contact200_response_spec.rb +54 -0
- data/spec/models/create_custom_field200_response_spec.rb +42 -0
- data/spec/models/get_comment_automation200_response_automation_spec.rb +124 -0
- data/spec/models/get_comment_automation200_response_logs_inner_spec.rb +82 -0
- data/spec/models/get_comment_automation200_response_spec.rb +48 -0
- data/spec/models/get_contact200_response_channels_inner_spec.rb +78 -0
- data/spec/models/get_contact200_response_contact_spec.rb +108 -0
- data/spec/models/get_contact200_response_spec.rb +48 -0
- data/spec/models/get_contact_channels200_response_channels_inner_spec.rb +84 -0
- data/spec/models/get_contact_channels200_response_spec.rb +42 -0
- data/spec/models/list_comment_automation_logs200_response_spec.rb +48 -0
- data/spec/models/list_contacts200_response_contacts_inner_spec.rb +138 -0
- data/spec/models/{get_broadcast200_response_broadcast_segment_filters_spec.rb → list_contacts200_response_filters_spec.rb} +6 -6
- data/spec/models/list_contacts200_response_spec.rb +54 -0
- data/spec/models/list_custom_fields200_response_fields_inner_spec.rb +70 -0
- data/spec/models/list_custom_fields200_response_spec.rb +42 -0
- data/spec/models/update_comment_automation200_response_automation_spec.rb +82 -0
- data/spec/models/update_comment_automation200_response_spec.rb +42 -0
- data/spec/models/update_contact200_response_contact_spec.rb +90 -0
- data/spec/models/update_contact200_response_spec.rb +42 -0
- data/spec/models/update_custom_field200_response_field_spec.rb +60 -0
- data/spec/models/update_custom_field200_response_spec.rb +42 -0
- data/zernio-sdk-0.0.79.gem +0 -0
- metadata +114 -6
- data/zernio-sdk-0.0.78.gem +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Zernio API
|
|
3
|
+
|
|
4
|
+
#API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.1
|
|
7
|
+
Contact: support@zernio.com
|
|
8
|
+
Generated by: https://openapi-generator.tech
|
|
9
|
+
Generator version: 7.19.0
|
|
10
|
+
|
|
11
|
+
=end
|
|
12
|
+
|
|
13
|
+
require 'date'
|
|
14
|
+
require 'time'
|
|
15
|
+
|
|
16
|
+
module Late
|
|
17
|
+
class UpdateCustomField200ResponseField < ApiModelBase
|
|
18
|
+
attr_accessor :id
|
|
19
|
+
|
|
20
|
+
attr_accessor :name
|
|
21
|
+
|
|
22
|
+
attr_accessor :slug
|
|
23
|
+
|
|
24
|
+
attr_accessor :type
|
|
25
|
+
|
|
26
|
+
attr_accessor :options
|
|
27
|
+
|
|
28
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
29
|
+
def self.attribute_map
|
|
30
|
+
{
|
|
31
|
+
:'id' => :'id',
|
|
32
|
+
:'name' => :'name',
|
|
33
|
+
:'slug' => :'slug',
|
|
34
|
+
:'type' => :'type',
|
|
35
|
+
:'options' => :'options'
|
|
36
|
+
}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Returns attribute mapping this model knows about
|
|
40
|
+
def self.acceptable_attribute_map
|
|
41
|
+
attribute_map
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Returns all the JSON keys this model knows about
|
|
45
|
+
def self.acceptable_attributes
|
|
46
|
+
acceptable_attribute_map.values
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# Attribute type mapping.
|
|
50
|
+
def self.openapi_types
|
|
51
|
+
{
|
|
52
|
+
:'id' => :'String',
|
|
53
|
+
:'name' => :'String',
|
|
54
|
+
:'slug' => :'String',
|
|
55
|
+
:'type' => :'String',
|
|
56
|
+
:'options' => :'Array<String>'
|
|
57
|
+
}
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# List of attributes with nullable: true
|
|
61
|
+
def self.openapi_nullable
|
|
62
|
+
Set.new([
|
|
63
|
+
])
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# Initializes the object
|
|
67
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
68
|
+
def initialize(attributes = {})
|
|
69
|
+
if (!attributes.is_a?(Hash))
|
|
70
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Late::UpdateCustomField200ResponseField` initialize method"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
74
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
75
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
76
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
77
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Late::UpdateCustomField200ResponseField`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
78
|
+
end
|
|
79
|
+
h[k.to_sym] = v
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if attributes.key?(:'id')
|
|
83
|
+
self.id = attributes[:'id']
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
if attributes.key?(:'name')
|
|
87
|
+
self.name = attributes[:'name']
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
if attributes.key?(:'slug')
|
|
91
|
+
self.slug = attributes[:'slug']
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if attributes.key?(:'type')
|
|
95
|
+
self.type = attributes[:'type']
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
if attributes.key?(:'options')
|
|
99
|
+
if (value = attributes[:'options']).is_a?(Array)
|
|
100
|
+
self.options = value
|
|
101
|
+
end
|
|
102
|
+
end
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
106
|
+
# @return Array for valid properties with the reasons
|
|
107
|
+
def list_invalid_properties
|
|
108
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
109
|
+
invalid_properties = Array.new
|
|
110
|
+
invalid_properties
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
# Check to see if the all the properties in the model are valid
|
|
114
|
+
# @return true if the model is valid
|
|
115
|
+
def valid?
|
|
116
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
117
|
+
true
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Checks equality by comparing each attribute.
|
|
121
|
+
# @param [Object] Object to be compared
|
|
122
|
+
def ==(o)
|
|
123
|
+
return true if self.equal?(o)
|
|
124
|
+
self.class == o.class &&
|
|
125
|
+
id == o.id &&
|
|
126
|
+
name == o.name &&
|
|
127
|
+
slug == o.slug &&
|
|
128
|
+
type == o.type &&
|
|
129
|
+
options == o.options
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
# @see the `==` method
|
|
133
|
+
# @param [Object] Object to be compared
|
|
134
|
+
def eql?(o)
|
|
135
|
+
self == o
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# Calculates hash code according to all attributes.
|
|
139
|
+
# @return [Integer] Hash code
|
|
140
|
+
def hash
|
|
141
|
+
[id, name, slug, type, options].hash
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
# Builds the object from hash
|
|
145
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
146
|
+
# @return [Object] Returns the model itself
|
|
147
|
+
def self.build_from_hash(attributes)
|
|
148
|
+
return nil unless attributes.is_a?(Hash)
|
|
149
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
150
|
+
transformed_hash = {}
|
|
151
|
+
openapi_types.each_pair do |key, type|
|
|
152
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
153
|
+
transformed_hash["#{key}"] = nil
|
|
154
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
155
|
+
# check to ensure the input is an array given that the attribute
|
|
156
|
+
# is documented as an array but the input is not
|
|
157
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
158
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
159
|
+
end
|
|
160
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
161
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
new(transformed_hash)
|
|
165
|
+
end
|
|
166
|
+
|
|
167
|
+
# Returns the object in the form of hash
|
|
168
|
+
# @return [Hash] Returns the object in the form of hash
|
|
169
|
+
def to_hash
|
|
170
|
+
hash = {}
|
|
171
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
172
|
+
value = self.send(attr)
|
|
173
|
+
if value.nil?
|
|
174
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
175
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
hash[param] = _to_hash(value)
|
|
179
|
+
end
|
|
180
|
+
hash
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
end
|
data/lib/late-sdk/version.rb
CHANGED
data/lib/late-sdk.rb
CHANGED
|
@@ -39,6 +39,7 @@ require 'late-sdk/models/api_key_profile_ids_inner'
|
|
|
39
39
|
require 'late-sdk/models/bluesky_platform_data'
|
|
40
40
|
require 'late-sdk/models/bookmark_post200_response'
|
|
41
41
|
require 'late-sdk/models/bookmark_post_request'
|
|
42
|
+
require 'late-sdk/models/bulk_create_contacts200_response'
|
|
42
43
|
require 'late-sdk/models/bulk_create_contacts_request'
|
|
43
44
|
require 'late-sdk/models/bulk_create_contacts_request_contacts_inner'
|
|
44
45
|
require 'late-sdk/models/bulk_delete_whats_app_contacts200_response'
|
|
@@ -80,8 +81,15 @@ require 'late-sdk/models/create_broadcast_request_message'
|
|
|
80
81
|
require 'late-sdk/models/create_broadcast_request_message_attachments_inner'
|
|
81
82
|
require 'late-sdk/models/create_broadcast_request_segment_filters'
|
|
82
83
|
require 'late-sdk/models/create_broadcast_request_template'
|
|
84
|
+
require 'late-sdk/models/create_comment_automation200_response'
|
|
85
|
+
require 'late-sdk/models/create_comment_automation200_response_automation'
|
|
86
|
+
require 'late-sdk/models/create_comment_automation200_response_automation_stats'
|
|
83
87
|
require 'late-sdk/models/create_comment_automation_request'
|
|
88
|
+
require 'late-sdk/models/create_contact200_response'
|
|
89
|
+
require 'late-sdk/models/create_contact200_response_channel'
|
|
90
|
+
require 'late-sdk/models/create_contact200_response_contact'
|
|
84
91
|
require 'late-sdk/models/create_contact_request'
|
|
92
|
+
require 'late-sdk/models/create_custom_field200_response'
|
|
85
93
|
require 'late-sdk/models/create_custom_field_request'
|
|
86
94
|
require 'late-sdk/models/create_google_business_media200_response'
|
|
87
95
|
require 'late-sdk/models/create_google_business_media_request'
|
|
@@ -174,8 +182,15 @@ require 'late-sdk/models/get_best_time_to_post403_response'
|
|
|
174
182
|
require 'late-sdk/models/get_broadcast200_response'
|
|
175
183
|
require 'late-sdk/models/get_broadcast200_response_broadcast'
|
|
176
184
|
require 'late-sdk/models/get_broadcast200_response_broadcast_message'
|
|
177
|
-
require 'late-sdk/models/
|
|
185
|
+
require 'late-sdk/models/get_comment_automation200_response'
|
|
186
|
+
require 'late-sdk/models/get_comment_automation200_response_automation'
|
|
187
|
+
require 'late-sdk/models/get_comment_automation200_response_logs_inner'
|
|
178
188
|
require 'late-sdk/models/get_connect_url200_response'
|
|
189
|
+
require 'late-sdk/models/get_contact200_response'
|
|
190
|
+
require 'late-sdk/models/get_contact200_response_channels_inner'
|
|
191
|
+
require 'late-sdk/models/get_contact200_response_contact'
|
|
192
|
+
require 'late-sdk/models/get_contact_channels200_response'
|
|
193
|
+
require 'late-sdk/models/get_contact_channels200_response_channels_inner'
|
|
179
194
|
require 'late-sdk/models/get_content_decay200_response'
|
|
180
195
|
require 'late-sdk/models/get_content_decay200_response_buckets_inner'
|
|
181
196
|
require 'late-sdk/models/get_daily_metrics200_response'
|
|
@@ -354,10 +369,16 @@ require 'late-sdk/models/list_broadcast_recipients200_response'
|
|
|
354
369
|
require 'late-sdk/models/list_broadcast_recipients200_response_recipients_inner'
|
|
355
370
|
require 'late-sdk/models/list_broadcasts200_response'
|
|
356
371
|
require 'late-sdk/models/list_broadcasts200_response_broadcasts_inner'
|
|
372
|
+
require 'late-sdk/models/list_comment_automation_logs200_response'
|
|
357
373
|
require 'late-sdk/models/list_comment_automations200_response'
|
|
358
374
|
require 'late-sdk/models/list_comment_automations200_response_automations_inner'
|
|
359
375
|
require 'late-sdk/models/list_comment_automations200_response_automations_inner_stats'
|
|
360
376
|
require 'late-sdk/models/list_connection_logs200_response'
|
|
377
|
+
require 'late-sdk/models/list_contacts200_response'
|
|
378
|
+
require 'late-sdk/models/list_contacts200_response_contacts_inner'
|
|
379
|
+
require 'late-sdk/models/list_contacts200_response_filters'
|
|
380
|
+
require 'late-sdk/models/list_custom_fields200_response'
|
|
381
|
+
require 'late-sdk/models/list_custom_fields200_response_fields_inner'
|
|
361
382
|
require 'late-sdk/models/list_facebook_pages200_response'
|
|
362
383
|
require 'late-sdk/models/list_facebook_pages200_response_pages_inner'
|
|
363
384
|
require 'late-sdk/models/list_google_business_locations200_response'
|
|
@@ -535,8 +556,14 @@ require 'late-sdk/models/update_account_group_request'
|
|
|
535
556
|
require 'late-sdk/models/update_account_request'
|
|
536
557
|
require 'late-sdk/models/update_broadcast200_response'
|
|
537
558
|
require 'late-sdk/models/update_broadcast200_response_broadcast'
|
|
559
|
+
require 'late-sdk/models/update_comment_automation200_response'
|
|
560
|
+
require 'late-sdk/models/update_comment_automation200_response_automation'
|
|
538
561
|
require 'late-sdk/models/update_comment_automation_request'
|
|
562
|
+
require 'late-sdk/models/update_contact200_response'
|
|
563
|
+
require 'late-sdk/models/update_contact200_response_contact'
|
|
539
564
|
require 'late-sdk/models/update_contact_request'
|
|
565
|
+
require 'late-sdk/models/update_custom_field200_response'
|
|
566
|
+
require 'late-sdk/models/update_custom_field200_response_field'
|
|
540
567
|
require 'late-sdk/models/update_custom_field_request'
|
|
541
568
|
require 'late-sdk/models/update_facebook_page200_response'
|
|
542
569
|
require 'late-sdk/models/update_facebook_page200_response_selected_page'
|
data/openapi.yaml
CHANGED
|
@@ -14592,7 +14592,48 @@ paths:
|
|
|
14592
14592
|
- { name: limit, in: query, schema: { type: integer, default: 50, maximum: 200 } }
|
|
14593
14593
|
- { name: skip, in: query, schema: { type: integer, default: 0 } }
|
|
14594
14594
|
responses:
|
|
14595
|
-
'200':
|
|
14595
|
+
'200':
|
|
14596
|
+
description: Contacts list with pagination and filter metadata
|
|
14597
|
+
content:
|
|
14598
|
+
application/json:
|
|
14599
|
+
schema:
|
|
14600
|
+
type: object
|
|
14601
|
+
properties:
|
|
14602
|
+
success: { type: boolean }
|
|
14603
|
+
contacts:
|
|
14604
|
+
type: array
|
|
14605
|
+
items:
|
|
14606
|
+
type: object
|
|
14607
|
+
properties:
|
|
14608
|
+
id: { type: string }
|
|
14609
|
+
name: { type: string }
|
|
14610
|
+
email: { type: string }
|
|
14611
|
+
company: { type: string }
|
|
14612
|
+
avatarUrl: { type: string }
|
|
14613
|
+
tags: { type: array, items: { type: string } }
|
|
14614
|
+
isSubscribed: { type: boolean }
|
|
14615
|
+
isBlocked: { type: boolean }
|
|
14616
|
+
lastMessageSentAt: { type: string, format: date-time }
|
|
14617
|
+
lastMessageReceivedAt: { type: string, format: date-time }
|
|
14618
|
+
messagesSentCount: { type: integer }
|
|
14619
|
+
messagesReceivedCount: { type: integer }
|
|
14620
|
+
customFields: { type: object }
|
|
14621
|
+
notes: { type: string }
|
|
14622
|
+
createdAt: { type: string, format: date-time }
|
|
14623
|
+
platform: { type: string }
|
|
14624
|
+
platformIdentifier: { type: string }
|
|
14625
|
+
displayIdentifier: { type: string }
|
|
14626
|
+
filters:
|
|
14627
|
+
type: object
|
|
14628
|
+
properties:
|
|
14629
|
+
tags: { type: array, items: { type: string } }
|
|
14630
|
+
pagination:
|
|
14631
|
+
type: object
|
|
14632
|
+
properties:
|
|
14633
|
+
total: { type: integer }
|
|
14634
|
+
limit: { type: integer }
|
|
14635
|
+
skip: { type: integer }
|
|
14636
|
+
hasMore: { type: boolean }
|
|
14596
14637
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14597
14638
|
post:
|
|
14598
14639
|
operationId: createContact
|
|
@@ -14619,7 +14660,36 @@ paths:
|
|
|
14619
14660
|
platformIdentifier: { type: string }
|
|
14620
14661
|
displayIdentifier: { type: string }
|
|
14621
14662
|
responses:
|
|
14622
|
-
'200':
|
|
14663
|
+
'200':
|
|
14664
|
+
description: Contact created
|
|
14665
|
+
content:
|
|
14666
|
+
application/json:
|
|
14667
|
+
schema:
|
|
14668
|
+
type: object
|
|
14669
|
+
properties:
|
|
14670
|
+
success: { type: boolean }
|
|
14671
|
+
contact:
|
|
14672
|
+
type: object
|
|
14673
|
+
properties:
|
|
14674
|
+
id: { type: string }
|
|
14675
|
+
name: { type: string }
|
|
14676
|
+
email: { type: string }
|
|
14677
|
+
company: { type: string }
|
|
14678
|
+
tags: { type: array, items: { type: string } }
|
|
14679
|
+
isSubscribed: { type: boolean }
|
|
14680
|
+
isBlocked: { type: boolean }
|
|
14681
|
+
customFields: { type: object }
|
|
14682
|
+
notes: { type: string }
|
|
14683
|
+
createdAt: { type: string, format: date-time }
|
|
14684
|
+
channel:
|
|
14685
|
+
type: object
|
|
14686
|
+
description: Created when accountId, platform, and platformIdentifier are provided
|
|
14687
|
+
properties:
|
|
14688
|
+
id: { type: string }
|
|
14689
|
+
platform: { type: string }
|
|
14690
|
+
platformIdentifier: { type: string }
|
|
14691
|
+
displayIdentifier: { type: string }
|
|
14692
|
+
warning: { type: string }
|
|
14623
14693
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14624
14694
|
'409': { description: Duplicate contact }
|
|
14625
14695
|
|
|
@@ -14631,7 +14701,43 @@ paths:
|
|
|
14631
14701
|
parameters:
|
|
14632
14702
|
- { name: contactId, in: path, required: true, schema: { type: string } }
|
|
14633
14703
|
responses:
|
|
14634
|
-
'200':
|
|
14704
|
+
'200':
|
|
14705
|
+
description: Contact with channels
|
|
14706
|
+
content:
|
|
14707
|
+
application/json:
|
|
14708
|
+
schema:
|
|
14709
|
+
type: object
|
|
14710
|
+
properties:
|
|
14711
|
+
success: { type: boolean }
|
|
14712
|
+
contact:
|
|
14713
|
+
type: object
|
|
14714
|
+
properties:
|
|
14715
|
+
id: { type: string }
|
|
14716
|
+
name: { type: string }
|
|
14717
|
+
email: { type: string }
|
|
14718
|
+
company: { type: string }
|
|
14719
|
+
avatarUrl: { type: string }
|
|
14720
|
+
tags: { type: array, items: { type: string } }
|
|
14721
|
+
isSubscribed: { type: boolean }
|
|
14722
|
+
isBlocked: { type: boolean }
|
|
14723
|
+
customFields: { type: object }
|
|
14724
|
+
notes: { type: string }
|
|
14725
|
+
conversationIds: { type: array, items: { type: string } }
|
|
14726
|
+
createdAt: { type: string, format: date-time }
|
|
14727
|
+
updatedAt: { type: string, format: date-time }
|
|
14728
|
+
channels:
|
|
14729
|
+
type: array
|
|
14730
|
+
items:
|
|
14731
|
+
type: object
|
|
14732
|
+
properties:
|
|
14733
|
+
id: { type: string }
|
|
14734
|
+
accountId: { type: string }
|
|
14735
|
+
platform: { type: string }
|
|
14736
|
+
platformIdentifier: { type: string }
|
|
14737
|
+
displayIdentifier: { type: string }
|
|
14738
|
+
isSubscribed: { type: boolean }
|
|
14739
|
+
conversationId: { type: string }
|
|
14740
|
+
createdAt: { type: string, format: date-time }
|
|
14635
14741
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14636
14742
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
14637
14743
|
patch:
|
|
@@ -14655,7 +14761,27 @@ paths:
|
|
|
14655
14761
|
isBlocked: { type: boolean }
|
|
14656
14762
|
notes: { type: string }
|
|
14657
14763
|
responses:
|
|
14658
|
-
'200':
|
|
14764
|
+
'200':
|
|
14765
|
+
description: Contact updated
|
|
14766
|
+
content:
|
|
14767
|
+
application/json:
|
|
14768
|
+
schema:
|
|
14769
|
+
type: object
|
|
14770
|
+
properties:
|
|
14771
|
+
success: { type: boolean }
|
|
14772
|
+
contact:
|
|
14773
|
+
type: object
|
|
14774
|
+
properties:
|
|
14775
|
+
id: { type: string }
|
|
14776
|
+
name: { type: string }
|
|
14777
|
+
email: { type: string }
|
|
14778
|
+
company: { type: string }
|
|
14779
|
+
avatarUrl: { type: string }
|
|
14780
|
+
tags: { type: array, items: { type: string } }
|
|
14781
|
+
isSubscribed: { type: boolean }
|
|
14782
|
+
isBlocked: { type: boolean }
|
|
14783
|
+
notes: { type: string }
|
|
14784
|
+
updatedAt: { type: string, format: date-time }
|
|
14659
14785
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14660
14786
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
14661
14787
|
delete:
|
|
@@ -14677,7 +14803,28 @@ paths:
|
|
|
14677
14803
|
parameters:
|
|
14678
14804
|
- { name: contactId, in: path, required: true, schema: { type: string } }
|
|
14679
14805
|
responses:
|
|
14680
|
-
'200':
|
|
14806
|
+
'200':
|
|
14807
|
+
description: List of contact channels
|
|
14808
|
+
content:
|
|
14809
|
+
application/json:
|
|
14810
|
+
schema:
|
|
14811
|
+
type: object
|
|
14812
|
+
properties:
|
|
14813
|
+
success: { type: boolean }
|
|
14814
|
+
channels:
|
|
14815
|
+
type: array
|
|
14816
|
+
items:
|
|
14817
|
+
type: object
|
|
14818
|
+
properties:
|
|
14819
|
+
id: { type: string }
|
|
14820
|
+
accountId: { type: string }
|
|
14821
|
+
platform: { type: string }
|
|
14822
|
+
platformIdentifier: { type: string }
|
|
14823
|
+
displayIdentifier: { type: string }
|
|
14824
|
+
isSubscribed: { type: boolean }
|
|
14825
|
+
conversationId: { type: string }
|
|
14826
|
+
metadata: { type: object }
|
|
14827
|
+
createdAt: { type: string, format: date-time }
|
|
14681
14828
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14682
14829
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
14683
14830
|
|
|
@@ -14712,7 +14859,18 @@ paths:
|
|
|
14712
14859
|
company: { type: string }
|
|
14713
14860
|
tags: { type: array, items: { type: string } }
|
|
14714
14861
|
responses:
|
|
14715
|
-
'200':
|
|
14862
|
+
'200':
|
|
14863
|
+
description: Bulk import results
|
|
14864
|
+
content:
|
|
14865
|
+
application/json:
|
|
14866
|
+
schema:
|
|
14867
|
+
type: object
|
|
14868
|
+
properties:
|
|
14869
|
+
success: { type: boolean }
|
|
14870
|
+
created: { type: integer }
|
|
14871
|
+
skipped: { type: integer }
|
|
14872
|
+
errors: { type: array, items: { type: object } }
|
|
14873
|
+
total: { type: integer }
|
|
14716
14874
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14717
14875
|
|
|
14718
14876
|
/v1/contacts/{contactId}/fields/{slug}:
|
|
@@ -14758,7 +14916,25 @@ paths:
|
|
|
14758
14916
|
parameters:
|
|
14759
14917
|
- { name: profileId, in: query, schema: { type: string }, description: Filter by profile. Omit to list across all profiles }
|
|
14760
14918
|
responses:
|
|
14761
|
-
'200':
|
|
14919
|
+
'200':
|
|
14920
|
+
description: List of custom field definitions
|
|
14921
|
+
content:
|
|
14922
|
+
application/json:
|
|
14923
|
+
schema:
|
|
14924
|
+
type: object
|
|
14925
|
+
properties:
|
|
14926
|
+
success: { type: boolean }
|
|
14927
|
+
fields:
|
|
14928
|
+
type: array
|
|
14929
|
+
items:
|
|
14930
|
+
type: object
|
|
14931
|
+
properties:
|
|
14932
|
+
id: { type: string }
|
|
14933
|
+
name: { type: string }
|
|
14934
|
+
slug: { type: string }
|
|
14935
|
+
type: { type: string, enum: [text, number, date, boolean, select] }
|
|
14936
|
+
options: { type: array, items: { type: string } }
|
|
14937
|
+
createdAt: { type: string, format: date-time }
|
|
14762
14938
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14763
14939
|
post:
|
|
14764
14940
|
operationId: createCustomField
|
|
@@ -14778,7 +14954,23 @@ paths:
|
|
|
14778
14954
|
type: { type: string, enum: [text, number, date, boolean, select] }
|
|
14779
14955
|
options: { type: array, items: { type: string }, description: Required for select type }
|
|
14780
14956
|
responses:
|
|
14781
|
-
'200':
|
|
14957
|
+
'200':
|
|
14958
|
+
description: Custom field created
|
|
14959
|
+
content:
|
|
14960
|
+
application/json:
|
|
14961
|
+
schema:
|
|
14962
|
+
type: object
|
|
14963
|
+
properties:
|
|
14964
|
+
success: { type: boolean }
|
|
14965
|
+
field:
|
|
14966
|
+
type: object
|
|
14967
|
+
properties:
|
|
14968
|
+
id: { type: string }
|
|
14969
|
+
name: { type: string }
|
|
14970
|
+
slug: { type: string }
|
|
14971
|
+
type: { type: string, enum: [text, number, date, boolean, select] }
|
|
14972
|
+
options: { type: array, items: { type: string } }
|
|
14973
|
+
createdAt: { type: string, format: date-time }
|
|
14782
14974
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14783
14975
|
'409': { description: Duplicate slug }
|
|
14784
14976
|
|
|
@@ -14798,7 +14990,22 @@ paths:
|
|
|
14798
14990
|
name: { type: string }
|
|
14799
14991
|
options: { type: array, items: { type: string } }
|
|
14800
14992
|
responses:
|
|
14801
|
-
'200':
|
|
14993
|
+
'200':
|
|
14994
|
+
description: Custom field updated
|
|
14995
|
+
content:
|
|
14996
|
+
application/json:
|
|
14997
|
+
schema:
|
|
14998
|
+
type: object
|
|
14999
|
+
properties:
|
|
15000
|
+
success: { type: boolean }
|
|
15001
|
+
field:
|
|
15002
|
+
type: object
|
|
15003
|
+
properties:
|
|
15004
|
+
id: { type: string }
|
|
15005
|
+
name: { type: string }
|
|
15006
|
+
slug: { type: string }
|
|
15007
|
+
type: { type: string }
|
|
15008
|
+
options: { type: array, items: { type: string } }
|
|
14802
15009
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
14803
15010
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
14804
15011
|
delete:
|
|
@@ -15566,7 +15773,28 @@ paths:
|
|
|
15566
15773
|
dmMessage: { type: string, description: DM text to send to commenter }
|
|
15567
15774
|
commentReply: { type: string, description: Optional public reply to the comment }
|
|
15568
15775
|
responses:
|
|
15569
|
-
'200':
|
|
15776
|
+
'200':
|
|
15777
|
+
description: Automation created
|
|
15778
|
+
content:
|
|
15779
|
+
application/json:
|
|
15780
|
+
schema:
|
|
15781
|
+
type: object
|
|
15782
|
+
properties:
|
|
15783
|
+
success: { type: boolean }
|
|
15784
|
+
automation:
|
|
15785
|
+
type: object
|
|
15786
|
+
properties:
|
|
15787
|
+
id: { type: string }
|
|
15788
|
+
name: { type: string }
|
|
15789
|
+
platform: { type: string }
|
|
15790
|
+
platformPostId: { type: string }
|
|
15791
|
+
keywords: { type: array, items: { type: string } }
|
|
15792
|
+
matchMode: { type: string, enum: [exact, contains] }
|
|
15793
|
+
dmMessage: { type: string }
|
|
15794
|
+
commentReply: { type: string }
|
|
15795
|
+
isActive: { type: boolean }
|
|
15796
|
+
stats: { type: object, properties: { totalTriggered: { type: integer }, totalSent: { type: integer }, totalFailed: { type: integer } } }
|
|
15797
|
+
createdAt: { type: string, format: date-time }
|
|
15570
15798
|
'400': { description: Validation error }
|
|
15571
15799
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
15572
15800
|
'409': { description: Active automation already exists for this post }
|
|
@@ -15581,7 +15809,45 @@ paths:
|
|
|
15581
15809
|
parameters:
|
|
15582
15810
|
- { name: automationId, in: path, required: true, schema: { type: string } }
|
|
15583
15811
|
responses:
|
|
15584
|
-
'200':
|
|
15812
|
+
'200':
|
|
15813
|
+
description: Automation details with stats and recent trigger logs
|
|
15814
|
+
content:
|
|
15815
|
+
application/json:
|
|
15816
|
+
schema:
|
|
15817
|
+
type: object
|
|
15818
|
+
properties:
|
|
15819
|
+
success: { type: boolean }
|
|
15820
|
+
automation:
|
|
15821
|
+
type: object
|
|
15822
|
+
properties:
|
|
15823
|
+
id: { type: string }
|
|
15824
|
+
name: { type: string }
|
|
15825
|
+
platform: { type: string }
|
|
15826
|
+
accountId: { type: string }
|
|
15827
|
+
platformPostId: { type: string }
|
|
15828
|
+
postId: { type: string }
|
|
15829
|
+
postTitle: { type: string }
|
|
15830
|
+
keywords: { type: array, items: { type: string } }
|
|
15831
|
+
matchMode: { type: string, enum: [exact, contains] }
|
|
15832
|
+
dmMessage: { type: string }
|
|
15833
|
+
commentReply: { type: string }
|
|
15834
|
+
isActive: { type: boolean }
|
|
15835
|
+
stats: { type: object, properties: { totalTriggered: { type: integer }, totalSent: { type: integer }, totalFailed: { type: integer } } }
|
|
15836
|
+
createdAt: { type: string, format: date-time }
|
|
15837
|
+
updatedAt: { type: string, format: date-time }
|
|
15838
|
+
logs:
|
|
15839
|
+
type: array
|
|
15840
|
+
items:
|
|
15841
|
+
type: object
|
|
15842
|
+
properties:
|
|
15843
|
+
id: { type: string }
|
|
15844
|
+
commentId: { type: string }
|
|
15845
|
+
commenterId: { type: string }
|
|
15846
|
+
commenterName: { type: string }
|
|
15847
|
+
commentText: { type: string }
|
|
15848
|
+
status: { type: string, enum: [sent, failed, skipped] }
|
|
15849
|
+
error: { type: string }
|
|
15850
|
+
createdAt: { type: string, format: date-time }
|
|
15585
15851
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
15586
15852
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
15587
15853
|
patch:
|
|
@@ -15605,7 +15871,25 @@ paths:
|
|
|
15605
15871
|
commentReply: { type: string }
|
|
15606
15872
|
isActive: { type: boolean }
|
|
15607
15873
|
responses:
|
|
15608
|
-
'200':
|
|
15874
|
+
'200':
|
|
15875
|
+
description: Automation updated
|
|
15876
|
+
content:
|
|
15877
|
+
application/json:
|
|
15878
|
+
schema:
|
|
15879
|
+
type: object
|
|
15880
|
+
properties:
|
|
15881
|
+
success: { type: boolean }
|
|
15882
|
+
automation:
|
|
15883
|
+
type: object
|
|
15884
|
+
properties:
|
|
15885
|
+
id: { type: string }
|
|
15886
|
+
name: { type: string }
|
|
15887
|
+
keywords: { type: array, items: { type: string } }
|
|
15888
|
+
matchMode: { type: string, enum: [exact, contains] }
|
|
15889
|
+
dmMessage: { type: string }
|
|
15890
|
+
commentReply: { type: string }
|
|
15891
|
+
isActive: { type: boolean }
|
|
15892
|
+
updatedAt: { type: string, format: date-time }
|
|
15609
15893
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
15610
15894
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
15611
15895
|
delete:
|
|
@@ -15635,7 +15919,34 @@ paths:
|
|
|
15635
15919
|
- { name: limit, in: query, schema: { type: integer, default: 50 } }
|
|
15636
15920
|
- { name: skip, in: query, schema: { type: integer, default: 0 } }
|
|
15637
15921
|
responses:
|
|
15638
|
-
'200':
|
|
15922
|
+
'200':
|
|
15923
|
+
description: Trigger logs with pagination
|
|
15924
|
+
content:
|
|
15925
|
+
application/json:
|
|
15926
|
+
schema:
|
|
15927
|
+
type: object
|
|
15928
|
+
properties:
|
|
15929
|
+
success: { type: boolean }
|
|
15930
|
+
logs:
|
|
15931
|
+
type: array
|
|
15932
|
+
items:
|
|
15933
|
+
type: object
|
|
15934
|
+
properties:
|
|
15935
|
+
id: { type: string }
|
|
15936
|
+
commentId: { type: string }
|
|
15937
|
+
commenterId: { type: string }
|
|
15938
|
+
commenterName: { type: string }
|
|
15939
|
+
commentText: { type: string }
|
|
15940
|
+
status: { type: string, enum: [sent, failed, skipped] }
|
|
15941
|
+
error: { type: string }
|
|
15942
|
+
createdAt: { type: string, format: date-time }
|
|
15943
|
+
pagination:
|
|
15944
|
+
type: object
|
|
15945
|
+
properties:
|
|
15946
|
+
total: { type: integer }
|
|
15947
|
+
limit: { type: integer }
|
|
15948
|
+
skip: { type: integer }
|
|
15949
|
+
hasMore: { type: boolean }
|
|
15639
15950
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
15640
15951
|
'404': { $ref: '#/components/responses/NotFound' }
|
|
15641
15952
|
|