late-sdk 0.0.49 → 0.0.51
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 +9 -0
- data/docs/AccountWithFollowerStats.md +3 -1
- data/docs/AccountWithFollowerStatsAllOfAccountStats.md +38 -0
- data/docs/GMBAttributesApi.md +16 -8
- data/docs/GMBFoodMenusApi.md +16 -8
- data/docs/GMBLocationDetailsApi.md +10 -4
- data/docs/GMBMediaApi.md +18 -8
- data/docs/GMBPlaceActionsApi.md +18 -8
- data/docs/GMBReviewsApi.md +2 -0
- data/docs/GetWhatsAppDisplayName200Response.md +20 -0
- data/docs/GetWhatsAppDisplayName200ResponseDisplayName.md +22 -0
- data/docs/UpdateWhatsAppDisplayName200Response.md +22 -0
- data/docs/UpdateWhatsAppDisplayName200ResponseDisplayName.md +20 -0
- data/docs/UpdateWhatsAppDisplayNameRequest.md +20 -0
- data/docs/WhatsAppApi.md +212 -0
- data/lib/late-sdk/api/gmb_attributes_api.rb +6 -0
- data/lib/late-sdk/api/gmb_food_menus_api.rb +6 -0
- data/lib/late-sdk/api/gmb_location_details_api.rb +6 -0
- data/lib/late-sdk/api/gmb_media_api.rb +9 -0
- data/lib/late-sdk/api/gmb_place_actions_api.rb +9 -0
- data/lib/late-sdk/api/gmb_reviews_api.rb +3 -0
- data/lib/late-sdk/api/whats_app_api.rb +208 -0
- data/lib/late-sdk/models/account_with_follower_stats.rb +13 -4
- data/lib/late-sdk/models/account_with_follower_stats_all_of_account_stats.rb +249 -0
- data/lib/late-sdk/models/get_whats_app_display_name200_response.rb +156 -0
- data/lib/late-sdk/models/get_whats_app_display_name200_response_display_name.rb +202 -0
- data/lib/late-sdk/models/update_whats_app_display_name200_response.rb +165 -0
- data/lib/late-sdk/models/update_whats_app_display_name200_response_display_name.rb +190 -0
- data/lib/late-sdk/models/update_whats_app_display_name_request.rb +210 -0
- data/lib/late-sdk/version.rb +1 -1
- data/lib/late-sdk.rb +6 -0
- data/openapi.yaml +194 -0
- data/spec/api/gmb_attributes_api_spec.rb +2 -0
- data/spec/api/gmb_food_menus_api_spec.rb +2 -0
- data/spec/api/gmb_location_details_api_spec.rb +2 -0
- data/spec/api/gmb_media_api_spec.rb +3 -0
- data/spec/api/gmb_place_actions_api_spec.rb +3 -0
- data/spec/api/gmb_reviews_api_spec.rb +1 -0
- data/spec/api/whats_app_api_spec.rb +37 -0
- data/spec/models/account_with_follower_stats_all_of_account_stats_spec.rb +96 -0
- data/spec/models/account_with_follower_stats_spec.rb +6 -0
- data/spec/models/get_whats_app_display_name200_response_display_name_spec.rb +52 -0
- data/spec/models/get_whats_app_display_name200_response_spec.rb +42 -0
- data/spec/models/update_whats_app_display_name200_response_display_name_spec.rb +46 -0
- data/spec/models/update_whats_app_display_name200_response_spec.rb +48 -0
- data/spec/models/update_whats_app_display_name_request_spec.rb +42 -0
- metadata +25 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
#Late API
|
|
3
|
+
|
|
4
|
+
#API reference for Late. Authenticate with a Bearer API key. Base URL: https://getlate.dev/api
|
|
5
|
+
|
|
6
|
+
The version of the OpenAPI document: 1.0.1
|
|
7
|
+
Contact: support@getlate.dev
|
|
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 UpdateWhatsAppDisplayNameRequest < ApiModelBase
|
|
18
|
+
# WhatsApp social account ID
|
|
19
|
+
attr_accessor :account_id
|
|
20
|
+
|
|
21
|
+
# New display name (must follow WhatsApp naming guidelines)
|
|
22
|
+
attr_accessor :display_name
|
|
23
|
+
|
|
24
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
25
|
+
def self.attribute_map
|
|
26
|
+
{
|
|
27
|
+
:'account_id' => :'accountId',
|
|
28
|
+
:'display_name' => :'displayName'
|
|
29
|
+
}
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# Returns attribute mapping this model knows about
|
|
33
|
+
def self.acceptable_attribute_map
|
|
34
|
+
attribute_map
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# Returns all the JSON keys this model knows about
|
|
38
|
+
def self.acceptable_attributes
|
|
39
|
+
acceptable_attribute_map.values
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Attribute type mapping.
|
|
43
|
+
def self.openapi_types
|
|
44
|
+
{
|
|
45
|
+
:'account_id' => :'String',
|
|
46
|
+
:'display_name' => :'String'
|
|
47
|
+
}
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# List of attributes with nullable: true
|
|
51
|
+
def self.openapi_nullable
|
|
52
|
+
Set.new([
|
|
53
|
+
])
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# Initializes the object
|
|
57
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
58
|
+
def initialize(attributes = {})
|
|
59
|
+
if (!attributes.is_a?(Hash))
|
|
60
|
+
fail ArgumentError, "The input argument (attributes) must be a hash in `Late::UpdateWhatsAppDisplayNameRequest` initialize method"
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
64
|
+
acceptable_attribute_map = self.class.acceptable_attribute_map
|
|
65
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
66
|
+
if (!acceptable_attribute_map.key?(k.to_sym))
|
|
67
|
+
fail ArgumentError, "`#{k}` is not a valid attribute in `Late::UpdateWhatsAppDisplayNameRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
|
|
68
|
+
end
|
|
69
|
+
h[k.to_sym] = v
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
if attributes.key?(:'account_id')
|
|
73
|
+
self.account_id = attributes[:'account_id']
|
|
74
|
+
else
|
|
75
|
+
self.account_id = nil
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
if attributes.key?(:'display_name')
|
|
79
|
+
self.display_name = attributes[:'display_name']
|
|
80
|
+
else
|
|
81
|
+
self.display_name = nil
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Show invalid properties with the reasons. Usually used together with valid?
|
|
86
|
+
# @return Array for valid properties with the reasons
|
|
87
|
+
def list_invalid_properties
|
|
88
|
+
warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
|
|
89
|
+
invalid_properties = Array.new
|
|
90
|
+
if @account_id.nil?
|
|
91
|
+
invalid_properties.push('invalid value for "account_id", account_id cannot be nil.')
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if @display_name.nil?
|
|
95
|
+
invalid_properties.push('invalid value for "display_name", display_name cannot be nil.')
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
if @display_name.to_s.length > 512
|
|
99
|
+
invalid_properties.push('invalid value for "display_name", the character length must be smaller than or equal to 512.')
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
if @display_name.to_s.length < 3
|
|
103
|
+
invalid_properties.push('invalid value for "display_name", the character length must be greater than or equal to 3.')
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
invalid_properties
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Check to see if the all the properties in the model are valid
|
|
110
|
+
# @return true if the model is valid
|
|
111
|
+
def valid?
|
|
112
|
+
warn '[DEPRECATED] the `valid?` method is obsolete'
|
|
113
|
+
return false if @account_id.nil?
|
|
114
|
+
return false if @display_name.nil?
|
|
115
|
+
return false if @display_name.to_s.length > 512
|
|
116
|
+
return false if @display_name.to_s.length < 3
|
|
117
|
+
true
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
# Custom attribute writer method with validation
|
|
121
|
+
# @param [Object] account_id Value to be assigned
|
|
122
|
+
def account_id=(account_id)
|
|
123
|
+
if account_id.nil?
|
|
124
|
+
fail ArgumentError, 'account_id cannot be nil'
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
@account_id = account_id
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Custom attribute writer method with validation
|
|
131
|
+
# @param [Object] display_name Value to be assigned
|
|
132
|
+
def display_name=(display_name)
|
|
133
|
+
if display_name.nil?
|
|
134
|
+
fail ArgumentError, 'display_name cannot be nil'
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
if display_name.to_s.length > 512
|
|
138
|
+
fail ArgumentError, 'invalid value for "display_name", the character length must be smaller than or equal to 512.'
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
if display_name.to_s.length < 3
|
|
142
|
+
fail ArgumentError, 'invalid value for "display_name", the character length must be greater than or equal to 3.'
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
@display_name = display_name
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
# Checks equality by comparing each attribute.
|
|
149
|
+
# @param [Object] Object to be compared
|
|
150
|
+
def ==(o)
|
|
151
|
+
return true if self.equal?(o)
|
|
152
|
+
self.class == o.class &&
|
|
153
|
+
account_id == o.account_id &&
|
|
154
|
+
display_name == o.display_name
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
# @see the `==` method
|
|
158
|
+
# @param [Object] Object to be compared
|
|
159
|
+
def eql?(o)
|
|
160
|
+
self == o
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
# Calculates hash code according to all attributes.
|
|
164
|
+
# @return [Integer] Hash code
|
|
165
|
+
def hash
|
|
166
|
+
[account_id, display_name].hash
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
# Builds the object from hash
|
|
170
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
171
|
+
# @return [Object] Returns the model itself
|
|
172
|
+
def self.build_from_hash(attributes)
|
|
173
|
+
return nil unless attributes.is_a?(Hash)
|
|
174
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
175
|
+
transformed_hash = {}
|
|
176
|
+
openapi_types.each_pair do |key, type|
|
|
177
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
178
|
+
transformed_hash["#{key}"] = nil
|
|
179
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
180
|
+
# check to ensure the input is an array given that the attribute
|
|
181
|
+
# is documented as an array but the input is not
|
|
182
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
183
|
+
transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
|
|
184
|
+
end
|
|
185
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
186
|
+
transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
|
|
187
|
+
end
|
|
188
|
+
end
|
|
189
|
+
new(transformed_hash)
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Returns the object in the form of hash
|
|
193
|
+
# @return [Hash] Returns the object in the form of hash
|
|
194
|
+
def to_hash
|
|
195
|
+
hash = {}
|
|
196
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
197
|
+
value = self.send(attr)
|
|
198
|
+
if value.nil?
|
|
199
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
200
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
hash[param] = _to_hash(value)
|
|
204
|
+
end
|
|
205
|
+
hash
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
end
|
|
209
|
+
|
|
210
|
+
end
|
data/lib/late-sdk/version.rb
CHANGED
data/lib/late-sdk.rb
CHANGED
|
@@ -20,6 +20,7 @@ require 'late-sdk/configuration'
|
|
|
20
20
|
# Models
|
|
21
21
|
require 'late-sdk/models/account_get_response'
|
|
22
22
|
require 'late-sdk/models/account_with_follower_stats'
|
|
23
|
+
require 'late-sdk/models/account_with_follower_stats_all_of_account_stats'
|
|
23
24
|
require 'late-sdk/models/accounts_list_response'
|
|
24
25
|
require 'late-sdk/models/add_whats_app_broadcast_recipients200_response'
|
|
25
26
|
require 'late-sdk/models/add_whats_app_broadcast_recipients_request'
|
|
@@ -236,6 +237,8 @@ require 'late-sdk/models/get_whats_app_contacts200_response'
|
|
|
236
237
|
require 'late-sdk/models/get_whats_app_contacts200_response_contacts_inner'
|
|
237
238
|
require 'late-sdk/models/get_whats_app_contacts200_response_filters'
|
|
238
239
|
require 'late-sdk/models/get_whats_app_contacts200_response_pagination'
|
|
240
|
+
require 'late-sdk/models/get_whats_app_display_name200_response'
|
|
241
|
+
require 'late-sdk/models/get_whats_app_display_name200_response_display_name'
|
|
239
242
|
require 'late-sdk/models/get_whats_app_groups200_response'
|
|
240
243
|
require 'late-sdk/models/get_whats_app_groups200_response_groups_inner'
|
|
241
244
|
require 'late-sdk/models/get_whats_app_groups200_response_summary'
|
|
@@ -480,6 +483,9 @@ require 'late-sdk/models/update_whats_app_business_profile_request'
|
|
|
480
483
|
require 'late-sdk/models/update_whats_app_contact200_response'
|
|
481
484
|
require 'late-sdk/models/update_whats_app_contact200_response_contact'
|
|
482
485
|
require 'late-sdk/models/update_whats_app_contact_request'
|
|
486
|
+
require 'late-sdk/models/update_whats_app_display_name200_response'
|
|
487
|
+
require 'late-sdk/models/update_whats_app_display_name200_response_display_name'
|
|
488
|
+
require 'late-sdk/models/update_whats_app_display_name_request'
|
|
483
489
|
require 'late-sdk/models/update_whats_app_template200_response'
|
|
484
490
|
require 'late-sdk/models/update_whats_app_template200_response_template'
|
|
485
491
|
require 'late-sdk/models/update_whats_app_template_request'
|
data/openapi.yaml
CHANGED
|
@@ -1664,6 +1664,23 @@ components:
|
|
|
1664
1664
|
growth: { type: number, description: Follower change over period }
|
|
1665
1665
|
growthPercentage: { type: number, description: Percentage growth }
|
|
1666
1666
|
dataPoints: { type: number, description: Number of historical snapshots }
|
|
1667
|
+
accountStats:
|
|
1668
|
+
type: object
|
|
1669
|
+
description: |
|
|
1670
|
+
Platform-specific account stats from the latest daily snapshot.
|
|
1671
|
+
Fields vary by platform. Only present if metadata has been captured.
|
|
1672
|
+
properties:
|
|
1673
|
+
followingCount: { type: number, description: Number of accounts being followed }
|
|
1674
|
+
mediaCount: { type: number, description: Total media posts (Instagram) }
|
|
1675
|
+
videoCount: { type: number, description: Total videos (YouTube, TikTok) }
|
|
1676
|
+
tweetCount: { type: number, description: Total tweets (X/Twitter) }
|
|
1677
|
+
postsCount: { type: number, description: Total posts (Bluesky) }
|
|
1678
|
+
pinCount: { type: number, description: Total pins (Pinterest) }
|
|
1679
|
+
totalViews: { type: number, description: Total channel views (YouTube) }
|
|
1680
|
+
likesCount: { type: number, description: Total likes received (TikTok) }
|
|
1681
|
+
monthlyViews: { type: number, description: Monthly profile views (Pinterest) }
|
|
1682
|
+
listedCount: { type: number, description: Lists the user appears on (X/Twitter) }
|
|
1683
|
+
boardCount: { type: number, description: Total boards (Pinterest) }
|
|
1667
1684
|
ApiKey:
|
|
1668
1685
|
type: object
|
|
1669
1686
|
properties:
|
|
@@ -6051,6 +6068,10 @@ paths:
|
|
|
6051
6068
|
required: true
|
|
6052
6069
|
schema: { type: string }
|
|
6053
6070
|
description: The Late account ID (from /v1/accounts)
|
|
6071
|
+
- name: locationId
|
|
6072
|
+
in: query
|
|
6073
|
+
schema: { type: string }
|
|
6074
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6054
6075
|
- name: pageSize
|
|
6055
6076
|
in: query
|
|
6056
6077
|
schema: { type: integer, minimum: 1, maximum: 50, default: 50 }
|
|
@@ -6173,6 +6194,10 @@ paths:
|
|
|
6173
6194
|
required: true
|
|
6174
6195
|
schema: { type: string }
|
|
6175
6196
|
description: The Late account ID (from /v1/accounts)
|
|
6197
|
+
- name: locationId
|
|
6198
|
+
in: query
|
|
6199
|
+
schema: { type: string }
|
|
6200
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6176
6201
|
security:
|
|
6177
6202
|
- bearerAuth: []
|
|
6178
6203
|
responses:
|
|
@@ -6251,6 +6276,10 @@ paths:
|
|
|
6251
6276
|
required: true
|
|
6252
6277
|
schema: { type: string }
|
|
6253
6278
|
description: The Late account ID (from /v1/accounts)
|
|
6279
|
+
- name: locationId
|
|
6280
|
+
in: query
|
|
6281
|
+
schema: { type: string }
|
|
6282
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6254
6283
|
security:
|
|
6255
6284
|
- bearerAuth: []
|
|
6256
6285
|
requestBody:
|
|
@@ -6339,6 +6368,10 @@ paths:
|
|
|
6339
6368
|
required: true
|
|
6340
6369
|
schema: { type: string }
|
|
6341
6370
|
description: The Late account ID (from /v1/accounts)
|
|
6371
|
+
- name: locationId
|
|
6372
|
+
in: query
|
|
6373
|
+
schema: { type: string }
|
|
6374
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6342
6375
|
- name: readMask
|
|
6343
6376
|
in: query
|
|
6344
6377
|
required: false
|
|
@@ -6437,6 +6470,10 @@ paths:
|
|
|
6437
6470
|
required: true
|
|
6438
6471
|
schema: { type: string }
|
|
6439
6472
|
description: The Late account ID (from /v1/accounts)
|
|
6473
|
+
- name: locationId
|
|
6474
|
+
in: query
|
|
6475
|
+
schema: { type: string }
|
|
6476
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6440
6477
|
security:
|
|
6441
6478
|
- bearerAuth: []
|
|
6442
6479
|
requestBody:
|
|
@@ -6540,6 +6577,10 @@ paths:
|
|
|
6540
6577
|
in: path
|
|
6541
6578
|
required: true
|
|
6542
6579
|
schema: { type: string }
|
|
6580
|
+
- name: locationId
|
|
6581
|
+
in: query
|
|
6582
|
+
schema: { type: string }
|
|
6583
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6543
6584
|
- name: pageSize
|
|
6544
6585
|
in: query
|
|
6545
6586
|
schema: { type: integer, maximum: 100, default: 100 }
|
|
@@ -6602,6 +6643,10 @@ paths:
|
|
|
6602
6643
|
in: path
|
|
6603
6644
|
required: true
|
|
6604
6645
|
schema: { type: string }
|
|
6646
|
+
- name: locationId
|
|
6647
|
+
in: query
|
|
6648
|
+
schema: { type: string }
|
|
6649
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6605
6650
|
security:
|
|
6606
6651
|
- bearerAuth: []
|
|
6607
6652
|
requestBody:
|
|
@@ -6655,6 +6700,10 @@ paths:
|
|
|
6655
6700
|
in: path
|
|
6656
6701
|
required: true
|
|
6657
6702
|
schema: { type: string }
|
|
6703
|
+
- name: locationId
|
|
6704
|
+
in: query
|
|
6705
|
+
schema: { type: string }
|
|
6706
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6658
6707
|
- name: mediaId
|
|
6659
6708
|
in: query
|
|
6660
6709
|
required: true
|
|
@@ -6695,6 +6744,10 @@ paths:
|
|
|
6695
6744
|
in: path
|
|
6696
6745
|
required: true
|
|
6697
6746
|
schema: { type: string }
|
|
6747
|
+
- name: locationId
|
|
6748
|
+
in: query
|
|
6749
|
+
schema: { type: string }
|
|
6750
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6698
6751
|
security:
|
|
6699
6752
|
- bearerAuth: []
|
|
6700
6753
|
responses:
|
|
@@ -6760,6 +6813,10 @@ paths:
|
|
|
6760
6813
|
in: path
|
|
6761
6814
|
required: true
|
|
6762
6815
|
schema: { type: string }
|
|
6816
|
+
- name: locationId
|
|
6817
|
+
in: query
|
|
6818
|
+
schema: { type: string }
|
|
6819
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6763
6820
|
security:
|
|
6764
6821
|
- bearerAuth: []
|
|
6765
6822
|
requestBody:
|
|
@@ -6831,6 +6888,10 @@ paths:
|
|
|
6831
6888
|
in: path
|
|
6832
6889
|
required: true
|
|
6833
6890
|
schema: { type: string }
|
|
6891
|
+
- name: locationId
|
|
6892
|
+
in: query
|
|
6893
|
+
schema: { type: string }
|
|
6894
|
+
description: Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6834
6895
|
- name: pageSize
|
|
6835
6896
|
in: query
|
|
6836
6897
|
schema: { type: integer, maximum: 100, default: 100 }
|
|
@@ -6893,6 +6954,10 @@ paths:
|
|
|
6893
6954
|
in: path
|
|
6894
6955
|
required: true
|
|
6895
6956
|
schema: { type: string }
|
|
6957
|
+
- name: locationId
|
|
6958
|
+
in: query
|
|
6959
|
+
schema: { type: string }
|
|
6960
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6896
6961
|
security:
|
|
6897
6962
|
- bearerAuth: []
|
|
6898
6963
|
requestBody:
|
|
@@ -6943,6 +7008,10 @@ paths:
|
|
|
6943
7008
|
in: path
|
|
6944
7009
|
required: true
|
|
6945
7010
|
schema: { type: string }
|
|
7011
|
+
- name: locationId
|
|
7012
|
+
in: query
|
|
7013
|
+
schema: { type: string }
|
|
7014
|
+
description: Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
6946
7015
|
- name: name
|
|
6947
7016
|
in: query
|
|
6948
7017
|
required: true
|
|
@@ -13163,6 +13232,131 @@ paths:
|
|
|
13163
13232
|
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13164
13233
|
'404': { description: WhatsApp account not found }
|
|
13165
13234
|
|
|
13235
|
+
/v1/whatsapp/business-profile/photo:
|
|
13236
|
+
post:
|
|
13237
|
+
operationId: uploadWhatsAppProfilePhoto
|
|
13238
|
+
tags: [WhatsApp]
|
|
13239
|
+
summary: Upload profile picture
|
|
13240
|
+
description: |
|
|
13241
|
+
Upload a new profile picture for the WhatsApp Business Profile.
|
|
13242
|
+
Uses Meta's resumable upload API under the hood: creates an upload session,
|
|
13243
|
+
uploads the image bytes, then updates the business profile with the resulting handle.
|
|
13244
|
+
security:
|
|
13245
|
+
- bearerAuth: []
|
|
13246
|
+
requestBody:
|
|
13247
|
+
required: true
|
|
13248
|
+
content:
|
|
13249
|
+
multipart/form-data:
|
|
13250
|
+
schema:
|
|
13251
|
+
type: object
|
|
13252
|
+
required: [accountId, file]
|
|
13253
|
+
properties:
|
|
13254
|
+
accountId:
|
|
13255
|
+
type: string
|
|
13256
|
+
description: WhatsApp social account ID
|
|
13257
|
+
file:
|
|
13258
|
+
type: string
|
|
13259
|
+
format: binary
|
|
13260
|
+
description: Image file (JPEG or PNG, max 5MB, recommended 640x640)
|
|
13261
|
+
responses:
|
|
13262
|
+
'200':
|
|
13263
|
+
description: Profile picture updated successfully
|
|
13264
|
+
content:
|
|
13265
|
+
application/json:
|
|
13266
|
+
schema:
|
|
13267
|
+
type: object
|
|
13268
|
+
properties:
|
|
13269
|
+
success: { type: boolean }
|
|
13270
|
+
message: { type: string }
|
|
13271
|
+
'400': { description: Invalid file type, file too large, or missing parameters }
|
|
13272
|
+
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13273
|
+
'404': { description: WhatsApp account not found }
|
|
13274
|
+
|
|
13275
|
+
/v1/whatsapp/business-profile/display-name:
|
|
13276
|
+
get:
|
|
13277
|
+
operationId: getWhatsAppDisplayName
|
|
13278
|
+
tags: [WhatsApp]
|
|
13279
|
+
summary: Get display name and review status
|
|
13280
|
+
description: |
|
|
13281
|
+
Fetch the current display name and its Meta review status for a WhatsApp Business account.
|
|
13282
|
+
Display name changes require Meta approval and can take 1-3 business days.
|
|
13283
|
+
security:
|
|
13284
|
+
- bearerAuth: []
|
|
13285
|
+
parameters:
|
|
13286
|
+
- name: accountId
|
|
13287
|
+
in: query
|
|
13288
|
+
required: true
|
|
13289
|
+
description: WhatsApp social account ID
|
|
13290
|
+
schema:
|
|
13291
|
+
type: string
|
|
13292
|
+
responses:
|
|
13293
|
+
'200':
|
|
13294
|
+
description: Display name info retrieved
|
|
13295
|
+
content:
|
|
13296
|
+
application/json:
|
|
13297
|
+
schema:
|
|
13298
|
+
type: object
|
|
13299
|
+
properties:
|
|
13300
|
+
success: { type: boolean }
|
|
13301
|
+
displayName:
|
|
13302
|
+
type: object
|
|
13303
|
+
properties:
|
|
13304
|
+
name: { type: string, description: Current verified display name }
|
|
13305
|
+
status:
|
|
13306
|
+
type: string
|
|
13307
|
+
enum: [APPROVED, PENDING_REVIEW, DECLINED, NONE]
|
|
13308
|
+
description: Meta review status for the display name
|
|
13309
|
+
phoneNumber: { type: string, description: Display phone number }
|
|
13310
|
+
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13311
|
+
'404': { description: WhatsApp account not found }
|
|
13312
|
+
post:
|
|
13313
|
+
operationId: updateWhatsAppDisplayName
|
|
13314
|
+
tags: [WhatsApp]
|
|
13315
|
+
summary: Request display name change
|
|
13316
|
+
description: |
|
|
13317
|
+
Submit a display name change request for the WhatsApp Business account.
|
|
13318
|
+
The new name must follow WhatsApp naming guidelines (3-512 characters, must represent your business).
|
|
13319
|
+
Changes require Meta review and approval, which typically takes 1-3 business days.
|
|
13320
|
+
security:
|
|
13321
|
+
- bearerAuth: []
|
|
13322
|
+
requestBody:
|
|
13323
|
+
required: true
|
|
13324
|
+
content:
|
|
13325
|
+
application/json:
|
|
13326
|
+
schema:
|
|
13327
|
+
type: object
|
|
13328
|
+
required: [accountId, displayName]
|
|
13329
|
+
properties:
|
|
13330
|
+
accountId:
|
|
13331
|
+
type: string
|
|
13332
|
+
description: WhatsApp social account ID
|
|
13333
|
+
displayName:
|
|
13334
|
+
type: string
|
|
13335
|
+
minLength: 3
|
|
13336
|
+
maxLength: 512
|
|
13337
|
+
description: New display name (must follow WhatsApp naming guidelines)
|
|
13338
|
+
example:
|
|
13339
|
+
accountId: "507f1f77bcf86cd799439011"
|
|
13340
|
+
displayName: "My Business Name"
|
|
13341
|
+
responses:
|
|
13342
|
+
'200':
|
|
13343
|
+
description: Display name change submitted for review
|
|
13344
|
+
content:
|
|
13345
|
+
application/json:
|
|
13346
|
+
schema:
|
|
13347
|
+
type: object
|
|
13348
|
+
properties:
|
|
13349
|
+
success: { type: boolean }
|
|
13350
|
+
message: { type: string }
|
|
13351
|
+
displayName:
|
|
13352
|
+
type: object
|
|
13353
|
+
properties:
|
|
13354
|
+
name: { type: string }
|
|
13355
|
+
status: { type: string, enum: [PENDING_REVIEW] }
|
|
13356
|
+
'400': { description: Invalid display name (too short, too long, or missing) }
|
|
13357
|
+
'401': { $ref: '#/components/responses/Unauthorized' }
|
|
13358
|
+
'404': { description: WhatsApp account not found }
|
|
13359
|
+
|
|
13166
13360
|
# ──────────────────────────────────────────────────────────────────────────
|
|
13167
13361
|
# PHONE NUMBERS
|
|
13168
13362
|
# ──────────────────────────────────────────────────────────────────────────
|
|
@@ -37,6 +37,7 @@ describe 'GMBAttributesApi' do
|
|
|
37
37
|
# Returns GBP location attributes (amenities, services, accessibility, payment types). Available attributes vary by business category.
|
|
38
38
|
# @param account_id
|
|
39
39
|
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
40
41
|
# @return [GetGoogleBusinessAttributes200Response]
|
|
41
42
|
describe 'get_google_business_attributes test' do
|
|
42
43
|
it 'should work' do
|
|
@@ -50,6 +51,7 @@ describe 'GMBAttributesApi' do
|
|
|
50
51
|
# @param account_id
|
|
51
52
|
# @param update_google_business_attributes_request
|
|
52
53
|
# @param [Hash] opts the optional parameters
|
|
54
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
53
55
|
# @return [UpdateGoogleBusinessAttributes200Response]
|
|
54
56
|
describe 'update_google_business_attributes test' do
|
|
55
57
|
it 'should work' do
|
|
@@ -37,6 +37,7 @@ describe 'GMBFoodMenusApi' do
|
|
|
37
37
|
# Returns food menus for a GBP location including sections, items, pricing, and dietary info. Only for locations with food menu support.
|
|
38
38
|
# @param account_id The Late account ID (from /v1/accounts)
|
|
39
39
|
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
40
41
|
# @return [GetGoogleBusinessFoodMenus200Response]
|
|
41
42
|
describe 'get_google_business_food_menus test' do
|
|
42
43
|
it 'should work' do
|
|
@@ -50,6 +51,7 @@ describe 'GMBFoodMenusApi' do
|
|
|
50
51
|
# @param account_id The Late account ID (from /v1/accounts)
|
|
51
52
|
# @param update_google_business_food_menus_request
|
|
52
53
|
# @param [Hash] opts the optional parameters
|
|
54
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
53
55
|
# @return [UpdateGoogleBusinessFoodMenus200Response]
|
|
54
56
|
describe 'update_google_business_food_menus test' do
|
|
55
57
|
it 'should work' do
|
|
@@ -37,6 +37,7 @@ describe 'GMBLocationDetailsApi' do
|
|
|
37
37
|
# Returns detailed GBP location info (hours, description, phone, website, categories). Use readMask to request specific fields.
|
|
38
38
|
# @param account_id The Late account ID (from /v1/accounts)
|
|
39
39
|
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
40
41
|
# @option opts [String] :read_mask Comma-separated fields to return. Available: name, title, phoneNumbers, categories, storefrontAddress, websiteUri, regularHours, specialHours, serviceArea, profile, openInfo, metadata, moreHours.
|
|
41
42
|
# @return [GetGoogleBusinessLocationDetails200Response]
|
|
42
43
|
describe 'get_google_business_location_details test' do
|
|
@@ -51,6 +52,7 @@ describe 'GMBLocationDetailsApi' do
|
|
|
51
52
|
# @param account_id The Late account ID (from /v1/accounts)
|
|
52
53
|
# @param update_google_business_location_details_request
|
|
53
54
|
# @param [Hash] opts the optional parameters
|
|
55
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
54
56
|
# @return [UpdateGoogleBusinessLocationDetails200Response]
|
|
55
57
|
describe 'update_google_business_location_details test' do
|
|
56
58
|
it 'should work' do
|
|
@@ -38,6 +38,7 @@ describe 'GMBMediaApi' do
|
|
|
38
38
|
# @param account_id
|
|
39
39
|
# @param create_google_business_media_request
|
|
40
40
|
# @param [Hash] opts the optional parameters
|
|
41
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
41
42
|
# @return [CreateGoogleBusinessMedia200Response]
|
|
42
43
|
describe 'create_google_business_media test' do
|
|
43
44
|
it 'should work' do
|
|
@@ -51,6 +52,7 @@ describe 'GMBMediaApi' do
|
|
|
51
52
|
# @param account_id
|
|
52
53
|
# @param media_id The media item ID to delete
|
|
53
54
|
# @param [Hash] opts the optional parameters
|
|
55
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
54
56
|
# @return [DeleteGoogleBusinessMedia200Response]
|
|
55
57
|
describe 'delete_google_business_media test' do
|
|
56
58
|
it 'should work' do
|
|
@@ -63,6 +65,7 @@ describe 'GMBMediaApi' do
|
|
|
63
65
|
# Lists media items (photos) for a Google Business Profile location. Returns photo URLs, descriptions, categories, and metadata.
|
|
64
66
|
# @param account_id
|
|
65
67
|
# @param [Hash] opts the optional parameters
|
|
68
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
66
69
|
# @option opts [Integer] :page_size Number of items to return (max 100)
|
|
67
70
|
# @option opts [String] :page_token Pagination token from previous response
|
|
68
71
|
# @return [ListGoogleBusinessMedia200Response]
|
|
@@ -38,6 +38,7 @@ describe 'GMBPlaceActionsApi' do
|
|
|
38
38
|
# @param account_id
|
|
39
39
|
# @param create_google_business_place_action_request
|
|
40
40
|
# @param [Hash] opts the optional parameters
|
|
41
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
41
42
|
# @return [CreateGoogleBusinessPlaceAction200Response]
|
|
42
43
|
describe 'create_google_business_place_action test' do
|
|
43
44
|
it 'should work' do
|
|
@@ -51,6 +52,7 @@ describe 'GMBPlaceActionsApi' do
|
|
|
51
52
|
# @param account_id
|
|
52
53
|
# @param name The resource name of the place action link (e.g. locations/123/placeActionLinks/456)
|
|
53
54
|
# @param [Hash] opts the optional parameters
|
|
55
|
+
# @option opts [String] :location_id Override which location to target. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
54
56
|
# @return [DeleteGoogleBusinessPlaceAction200Response]
|
|
55
57
|
describe 'delete_google_business_place_action test' do
|
|
56
58
|
it 'should work' do
|
|
@@ -63,6 +65,7 @@ describe 'GMBPlaceActionsApi' do
|
|
|
63
65
|
# Lists place action links for a Google Business Profile location. Place actions are the booking, ordering, and reservation buttons that appear on your listing.
|
|
64
66
|
# @param account_id
|
|
65
67
|
# @param [Hash] opts the optional parameters
|
|
68
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
66
69
|
# @option opts [Integer] :page_size
|
|
67
70
|
# @option opts [String] :page_token
|
|
68
71
|
# @return [ListGoogleBusinessPlaceActions200Response]
|
|
@@ -37,6 +37,7 @@ describe 'GMBReviewsApi' do
|
|
|
37
37
|
# Returns reviews for a GBP account including ratings, comments, and owner replies. Use nextPageToken for pagination.
|
|
38
38
|
# @param account_id The Late account ID (from /v1/accounts)
|
|
39
39
|
# @param [Hash] opts the optional parameters
|
|
40
|
+
# @option opts [String] :location_id Override which location to query. If omitted, uses the account's selected location. Use GET /gmb-locations to list valid IDs.
|
|
40
41
|
# @option opts [Integer] :page_size Number of reviews to fetch per page (max 50)
|
|
41
42
|
# @option opts [String] :page_token Pagination token from previous response
|
|
42
43
|
# @return [GetGoogleBusinessReviews200Response]
|