late-sdk 0.0.91 → 0.0.93

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.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +14 -1
  3. data/docs/ConnectApi.md +146 -4
  4. data/docs/CreateWhatsAppTemplateRequest.md +1 -1
  5. data/docs/GetYoutubePlaylists200Response.md +20 -0
  6. data/docs/GetYoutubePlaylists200ResponsePlaylistsInner.md +28 -0
  7. data/docs/MessagesApi.md +16 -16
  8. data/docs/UpdateWhatsAppTemplateRequest.md +1 -1
  9. data/docs/{UpdateRedditSubreddits200Response.md → UpdateYoutubeDefaultPlaylist200Response.md} +2 -2
  10. data/docs/UpdateYoutubeDefaultPlaylistRequest.md +20 -0
  11. data/docs/WebhooksApi.md +4 -4
  12. data/docs/WhatsAppApi.md +1 -1
  13. data/docs/WhatsAppBodyComponent.md +24 -0
  14. data/docs/WhatsAppBodyComponentExample.md +18 -0
  15. data/docs/WhatsAppButtonsComponent.md +20 -0
  16. data/docs/WhatsAppFooterComponent.md +22 -0
  17. data/docs/WhatsAppHeaderComponent.md +24 -0
  18. data/docs/WhatsAppHeaderComponentExample.md +20 -0
  19. data/docs/WhatsAppTemplateButton.md +44 -0
  20. data/docs/WhatsAppTemplateComponent.md +85 -0
  21. data/docs/YouTubePlatformData.md +3 -1
  22. data/lib/late-sdk/api/connect_api.rb +140 -3
  23. data/lib/late-sdk/api/messages_api.rb +12 -12
  24. data/lib/late-sdk/api/webhooks_api.rb +3 -3
  25. data/lib/late-sdk/models/create_whats_app_template_request.rb +21 -2
  26. data/lib/late-sdk/models/get_youtube_playlists200_response.rb +158 -0
  27. data/lib/late-sdk/models/get_youtube_playlists200_response_playlists_inner.rb +226 -0
  28. data/lib/late-sdk/models/update_whats_app_template_request.rb +10 -1
  29. data/lib/late-sdk/models/{update_reddit_subreddits200_response.rb → update_youtube_default_playlist200_response.rb} +3 -3
  30. data/lib/late-sdk/models/update_youtube_default_playlist_request.rb +173 -0
  31. data/lib/late-sdk/models/whats_app_body_component.rb +234 -0
  32. data/lib/late-sdk/models/whats_app_body_component_example.rb +150 -0
  33. data/lib/late-sdk/models/whats_app_buttons_component.rb +225 -0
  34. data/lib/late-sdk/models/whats_app_footer_component.rb +227 -0
  35. data/lib/late-sdk/models/whats_app_header_component.rb +235 -0
  36. data/lib/late-sdk/models/whats_app_header_component_example.rb +190 -0
  37. data/lib/late-sdk/models/whats_app_template_button.rb +345 -0
  38. data/lib/late-sdk/models/whats_app_template_component.rb +59 -0
  39. data/lib/late-sdk/models/you_tube_platform_data.rb +14 -4
  40. data/lib/late-sdk/version.rb +1 -1
  41. data/lib/late-sdk.rb +12 -1
  42. data/openapi.yaml +248 -5
  43. data/spec/api/connect_api_spec.rb +26 -1
  44. data/spec/api/messages_api_spec.rb +4 -4
  45. data/spec/api/webhooks_api_spec.rb +1 -1
  46. data/spec/models/get_youtube_playlists200_response_playlists_inner_spec.rb +70 -0
  47. data/spec/models/get_youtube_playlists200_response_spec.rb +42 -0
  48. data/spec/models/{update_reddit_subreddits200_response_spec.rb → update_youtube_default_playlist200_response_spec.rb} +6 -6
  49. data/spec/models/update_youtube_default_playlist_request_spec.rb +42 -0
  50. data/spec/models/whats_app_body_component_example_spec.rb +36 -0
  51. data/spec/models/whats_app_body_component_spec.rb +58 -0
  52. data/spec/models/whats_app_buttons_component_spec.rb +46 -0
  53. data/spec/models/whats_app_footer_component_spec.rb +52 -0
  54. data/spec/models/whats_app_header_component_example_spec.rb +42 -0
  55. data/spec/models/whats_app_header_component_spec.rb +62 -0
  56. data/spec/models/whats_app_template_button_spec.rb +122 -0
  57. data/spec/models/whats_app_template_component_spec.rb +44 -0
  58. data/spec/models/you_tube_platform_data_spec.rb +6 -0
  59. data/zernio-sdk-0.0.93.gem +0 -0
  60. metadata +50 -6
  61. data/zernio-sdk-0.0.91.gem +0 -0
@@ -0,0 +1,24 @@
1
+ # Late::WhatsAppHeaderComponent
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **type** | **String** | | |
8
+ | **format** | **String** | | |
9
+ | **text** | **String** | Header text (may include {{1}} variable). Used when format is TEXT. | [optional] |
10
+ | **example** | [**WhatsAppHeaderComponentExample**](WhatsAppHeaderComponentExample.md) | | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'late-sdk'
16
+
17
+ instance = Late::WhatsAppHeaderComponent.new(
18
+ type: null,
19
+ format: null,
20
+ text: null,
21
+ example: null
22
+ )
23
+ ```
24
+
@@ -0,0 +1,20 @@
1
+ # Late::WhatsAppHeaderComponentExample
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **header_text** | **Array<String>** | Sample values for header text variables | [optional] |
8
+ | **header_handle** | **Array<String>** | When the header format is a media type (IMAGE, VIDEO, GIF, DOCUMENT), provide a public URL here. Zernio will download and upload it to WhatsApp on your behalf, replacing it with the internal file handle before creating the template. | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'late-sdk'
14
+
15
+ instance = Late::WhatsAppHeaderComponentExample.new(
16
+ header_text: null,
17
+ header_handle: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,44 @@
1
+ # Late::WhatsAppTemplateButton
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **type** | **String** | | |
8
+ | **text** | **String** | | |
9
+ | **url** | **String** | Required when type is URL | [optional] |
10
+ | **example** | **Array<String>** | Example values for URL suffix variables | [optional] |
11
+ | **phone_number** | **String** | Required when type is PHONE_NUMBER | [optional] |
12
+ | **otp_type** | **String** | Required when type is OTP | [optional] |
13
+ | **autofill_text** | **String** | | [optional] |
14
+ | **package_name** | **String** | | [optional] |
15
+ | **signature_hash** | **String** | | [optional] |
16
+ | **flow_id** | **String** | | [optional] |
17
+ | **flow_name** | **String** | | [optional] |
18
+ | **flow_json** | **String** | | [optional] |
19
+ | **flow_action** | **String** | | [optional] |
20
+ | **navigate_screen** | **String** | | [optional] |
21
+
22
+ ## Example
23
+
24
+ ```ruby
25
+ require 'late-sdk'
26
+
27
+ instance = Late::WhatsAppTemplateButton.new(
28
+ type: null,
29
+ text: null,
30
+ url: null,
31
+ example: null,
32
+ phone_number: null,
33
+ otp_type: null,
34
+ autofill_text: null,
35
+ package_name: null,
36
+ signature_hash: null,
37
+ flow_id: null,
38
+ flow_name: null,
39
+ flow_json: null,
40
+ flow_action: null,
41
+ navigate_screen: null
42
+ )
43
+ ```
44
+
@@ -0,0 +1,85 @@
1
+ # Late::WhatsAppTemplateComponent
2
+
3
+ ## Class instance methods
4
+
5
+ ### `openapi_one_of`
6
+
7
+ Returns the list of classes defined in oneOf.
8
+
9
+ #### Example
10
+
11
+ ```ruby
12
+ require 'late-sdk'
13
+
14
+ Late::WhatsAppTemplateComponent.openapi_one_of
15
+ # =>
16
+ # [
17
+ # :'WhatsAppBodyComponent',
18
+ # :'WhatsAppButtonsComponent',
19
+ # :'WhatsAppFooterComponent',
20
+ # :'WhatsAppHeaderComponent'
21
+ # ]
22
+ ```
23
+
24
+ ### `openapi_discriminator_name`
25
+
26
+ Returns the discriminator's property name.
27
+
28
+ #### Example
29
+
30
+ ```ruby
31
+ require 'late-sdk'
32
+
33
+ Late::WhatsAppTemplateComponent.openapi_discriminator_name
34
+ # => :'type'
35
+ ```
36
+
37
+ ### `openapi_discriminator_name`
38
+
39
+ Returns the discriminator's mapping.
40
+
41
+ #### Example
42
+
43
+ ```ruby
44
+ require 'late-sdk'
45
+
46
+ Late::WhatsAppTemplateComponent.openapi_discriminator_mapping
47
+ # =>
48
+ # {
49
+ # :'BODY' => :'WhatsAppBodyComponent',
50
+ # :'BUTTONS' => :'WhatsAppButtonsComponent',
51
+ # :'FOOTER' => :'WhatsAppFooterComponent',
52
+ # :'HEADER' => :'WhatsAppHeaderComponent'
53
+ # }
54
+ ```
55
+
56
+ ### build
57
+
58
+ Find the appropriate object from the `openapi_one_of` list and casts the data into it.
59
+
60
+ #### Example
61
+
62
+ ```ruby
63
+ require 'late-sdk'
64
+
65
+ Late::WhatsAppTemplateComponent.build(data)
66
+ # => #<WhatsAppBodyComponent:0x00007fdd4aab02a0>
67
+
68
+ Late::WhatsAppTemplateComponent.build(data_that_doesnt_match)
69
+ # => nil
70
+ ```
71
+
72
+ #### Parameters
73
+
74
+ | Name | Type | Description |
75
+ | ---- | ---- | ----------- |
76
+ | **data** | **Mixed** | data to be matched against the list of oneOf items |
77
+
78
+ #### Return type
79
+
80
+ - `WhatsAppBodyComponent`
81
+ - `WhatsAppButtonsComponent`
82
+ - `WhatsAppFooterComponent`
83
+ - `WhatsAppHeaderComponent`
84
+ - `nil` (if no type matches)
85
+
@@ -10,6 +10,7 @@
10
10
  | **first_comment** | **String** | Optional first comment to post immediately after video upload. Up to 10,000 characters (YouTube&#39;s comment limit). | [optional] |
11
11
  | **contains_synthetic_media** | **Boolean** | AI-generated content disclosure. Set true if the video contains synthetic content that could be mistaken for real. YouTube may add a label. | [optional][default to false] |
12
12
  | **category_id** | **String** | YouTube video category ID. Defaults to 22 (People &amp; Blogs). Common: 1 (Film), 2 (Autos), 10 (Music), 15 (Pets), 17 (Sports), 20 (Gaming), 23 (Comedy), 24 (Entertainment), 25 (News), 26 (Howto), 27 (Education), 28 (Science &amp; Tech). | [optional][default to &#39;22&#39;] |
13
+ | **playlist_id** | **String** | Optional YouTube playlist ID to add the video to after upload (e.g. &#39;PLxxxxxxxxxxxxx&#39;). Use GET /v1/accounts/{id}/youtube-playlists to list available playlists. Works for both immediate and scheduled uploads. Quota cost: 50 YouTube API units per call. | [optional] |
13
14
 
14
15
  ## Example
15
16
 
@@ -22,7 +23,8 @@ instance = Late::YouTubePlatformData.new(
22
23
  made_for_kids: null,
23
24
  first_comment: null,
24
25
  contains_synthetic_media: null,
25
- category_id: null
26
+ category_id: null,
27
+ playlist_id: null
26
28
  )
27
29
  ```
28
30
 
@@ -813,6 +813,69 @@ module Late
813
813
  return data, status_code, headers
814
814
  end
815
815
 
816
+ # List YouTube playlists
817
+ # Returns the playlists available for a connected YouTube account. Use this to get a playlist ID when creating a YouTube post with the `playlistId` field.
818
+ # @param account_id [String]
819
+ # @param [Hash] opts the optional parameters
820
+ # @return [GetYoutubePlaylists200Response]
821
+ def get_youtube_playlists(account_id, opts = {})
822
+ data, _status_code, _headers = get_youtube_playlists_with_http_info(account_id, opts)
823
+ data
824
+ end
825
+
826
+ # List YouTube playlists
827
+ # Returns the playlists available for a connected YouTube account. Use this to get a playlist ID when creating a YouTube post with the &#x60;playlistId&#x60; field.
828
+ # @param account_id [String]
829
+ # @param [Hash] opts the optional parameters
830
+ # @return [Array<(GetYoutubePlaylists200Response, Integer, Hash)>] GetYoutubePlaylists200Response data, response status code and response headers
831
+ def get_youtube_playlists_with_http_info(account_id, opts = {})
832
+ if @api_client.config.debugging
833
+ @api_client.config.logger.debug 'Calling API: ConnectApi.get_youtube_playlists ...'
834
+ end
835
+ # verify the required parameter 'account_id' is set
836
+ if @api_client.config.client_side_validation && account_id.nil?
837
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling ConnectApi.get_youtube_playlists"
838
+ end
839
+ # resource path
840
+ local_var_path = '/v1/accounts/{accountId}/youtube-playlists'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
841
+
842
+ # query parameters
843
+ query_params = opts[:query_params] || {}
844
+
845
+ # header parameters
846
+ header_params = opts[:header_params] || {}
847
+ # HTTP header 'Accept' (if needed)
848
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
849
+
850
+ # form parameters
851
+ form_params = opts[:form_params] || {}
852
+
853
+ # http body (model)
854
+ post_body = opts[:debug_body]
855
+
856
+ # return_type
857
+ return_type = opts[:debug_return_type] || 'GetYoutubePlaylists200Response'
858
+
859
+ # auth_names
860
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
861
+
862
+ new_options = opts.merge(
863
+ :operation => :"ConnectApi.get_youtube_playlists",
864
+ :header_params => header_params,
865
+ :query_params => query_params,
866
+ :form_params => form_params,
867
+ :body => post_body,
868
+ :auth_names => auth_names,
869
+ :return_type => return_type
870
+ )
871
+
872
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
873
+ if @api_client.config.debugging
874
+ @api_client.config.logger.debug "API called: ConnectApi#get_youtube_playlists\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
875
+ end
876
+ return data, status_code, headers
877
+ end
878
+
816
879
  # Complete OAuth callback
817
880
  # Exchange the OAuth authorization code for tokens and connect the account to the specified profile.
818
881
  # @param platform [String]
@@ -1968,7 +2031,7 @@ module Late
1968
2031
  # @param account_id [String]
1969
2032
  # @param update_reddit_subreddits_request [UpdateRedditSubredditsRequest]
1970
2033
  # @param [Hash] opts the optional parameters
1971
- # @return [UpdateRedditSubreddits200Response]
2034
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
1972
2035
  def update_reddit_subreddits(account_id, update_reddit_subreddits_request, opts = {})
1973
2036
  data, _status_code, _headers = update_reddit_subreddits_with_http_info(account_id, update_reddit_subreddits_request, opts)
1974
2037
  data
@@ -1979,7 +2042,7 @@ module Late
1979
2042
  # @param account_id [String]
1980
2043
  # @param update_reddit_subreddits_request [UpdateRedditSubredditsRequest]
1981
2044
  # @param [Hash] opts the optional parameters
1982
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
2045
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
1983
2046
  def update_reddit_subreddits_with_http_info(account_id, update_reddit_subreddits_request, opts = {})
1984
2047
  if @api_client.config.debugging
1985
2048
  @api_client.config.logger.debug 'Calling API: ConnectApi.update_reddit_subreddits ...'
@@ -2015,7 +2078,7 @@ module Late
2015
2078
  post_body = opts[:debug_body] || @api_client.object_to_http_body(update_reddit_subreddits_request)
2016
2079
 
2017
2080
  # return_type
2018
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
2081
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
2019
2082
 
2020
2083
  # auth_names
2021
2084
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -2036,5 +2099,79 @@ module Late
2036
2099
  end
2037
2100
  return data, status_code, headers
2038
2101
  end
2102
+
2103
+ # Set default YouTube playlist
2104
+ # Sets the default playlist used when publishing videos for this account. When a post does not specify a `playlistId`, the default playlist is not automatically used (it is stored for client-side convenience).
2105
+ # @param account_id [String]
2106
+ # @param update_youtube_default_playlist_request [UpdateYoutubeDefaultPlaylistRequest]
2107
+ # @param [Hash] opts the optional parameters
2108
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
2109
+ def update_youtube_default_playlist(account_id, update_youtube_default_playlist_request, opts = {})
2110
+ data, _status_code, _headers = update_youtube_default_playlist_with_http_info(account_id, update_youtube_default_playlist_request, opts)
2111
+ data
2112
+ end
2113
+
2114
+ # Set default YouTube playlist
2115
+ # Sets the default playlist used when publishing videos for this account. When a post does not specify a &#x60;playlistId&#x60;, the default playlist is not automatically used (it is stored for client-side convenience).
2116
+ # @param account_id [String]
2117
+ # @param update_youtube_default_playlist_request [UpdateYoutubeDefaultPlaylistRequest]
2118
+ # @param [Hash] opts the optional parameters
2119
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
2120
+ def update_youtube_default_playlist_with_http_info(account_id, update_youtube_default_playlist_request, opts = {})
2121
+ if @api_client.config.debugging
2122
+ @api_client.config.logger.debug 'Calling API: ConnectApi.update_youtube_default_playlist ...'
2123
+ end
2124
+ # verify the required parameter 'account_id' is set
2125
+ if @api_client.config.client_side_validation && account_id.nil?
2126
+ fail ArgumentError, "Missing the required parameter 'account_id' when calling ConnectApi.update_youtube_default_playlist"
2127
+ end
2128
+ # verify the required parameter 'update_youtube_default_playlist_request' is set
2129
+ if @api_client.config.client_side_validation && update_youtube_default_playlist_request.nil?
2130
+ fail ArgumentError, "Missing the required parameter 'update_youtube_default_playlist_request' when calling ConnectApi.update_youtube_default_playlist"
2131
+ end
2132
+ # resource path
2133
+ local_var_path = '/v1/accounts/{accountId}/youtube-playlists'.sub('{' + 'accountId' + '}', CGI.escape(account_id.to_s))
2134
+
2135
+ # query parameters
2136
+ query_params = opts[:query_params] || {}
2137
+
2138
+ # header parameters
2139
+ header_params = opts[:header_params] || {}
2140
+ # HTTP header 'Accept' (if needed)
2141
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
2142
+ # HTTP header 'Content-Type'
2143
+ content_type = @api_client.select_header_content_type(['application/json'])
2144
+ if !content_type.nil?
2145
+ header_params['Content-Type'] = content_type
2146
+ end
2147
+
2148
+ # form parameters
2149
+ form_params = opts[:form_params] || {}
2150
+
2151
+ # http body (model)
2152
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_youtube_default_playlist_request)
2153
+
2154
+ # return_type
2155
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
2156
+
2157
+ # auth_names
2158
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
2159
+
2160
+ new_options = opts.merge(
2161
+ :operation => :"ConnectApi.update_youtube_default_playlist",
2162
+ :header_params => header_params,
2163
+ :query_params => query_params,
2164
+ :form_params => form_params,
2165
+ :body => post_body,
2166
+ :auth_names => auth_names,
2167
+ :return_type => return_type
2168
+ )
2169
+
2170
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
2171
+ if @api_client.config.debugging
2172
+ @api_client.config.logger.debug "API called: ConnectApi#update_youtube_default_playlist\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
2173
+ end
2174
+ return data, status_code, headers
2175
+ end
2039
2176
  end
2040
2177
  end
@@ -25,7 +25,7 @@ module Late
25
25
  # @param message_id [String] The platform message ID to react to
26
26
  # @param add_message_reaction_request [AddMessageReactionRequest]
27
27
  # @param [Hash] opts the optional parameters
28
- # @return [UpdateRedditSubreddits200Response]
28
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
29
29
  def add_message_reaction(conversation_id, message_id, add_message_reaction_request, opts = {})
30
30
  data, _status_code, _headers = add_message_reaction_with_http_info(conversation_id, message_id, add_message_reaction_request, opts)
31
31
  data
@@ -37,7 +37,7 @@ module Late
37
37
  # @param message_id [String] The platform message ID to react to
38
38
  # @param add_message_reaction_request [AddMessageReactionRequest]
39
39
  # @param [Hash] opts the optional parameters
40
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
40
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
41
41
  def add_message_reaction_with_http_info(conversation_id, message_id, add_message_reaction_request, opts = {})
42
42
  if @api_client.config.debugging
43
43
  @api_client.config.logger.debug 'Calling API: MessagesApi.add_message_reaction ...'
@@ -77,7 +77,7 @@ module Late
77
77
  post_body = opts[:debug_body] || @api_client.object_to_http_body(add_message_reaction_request)
78
78
 
79
79
  # return_type
80
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
80
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
81
81
 
82
82
  # auth_names
83
83
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -105,7 +105,7 @@ module Late
105
105
  # @param message_id [String] The platform message ID to delete
106
106
  # @param account_id [String] Social account ID
107
107
  # @param [Hash] opts the optional parameters
108
- # @return [UpdateRedditSubreddits200Response]
108
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
109
109
  def delete_inbox_message(conversation_id, message_id, account_id, opts = {})
110
110
  data, _status_code, _headers = delete_inbox_message_with_http_info(conversation_id, message_id, account_id, opts)
111
111
  data
@@ -117,7 +117,7 @@ module Late
117
117
  # @param message_id [String] The platform message ID to delete
118
118
  # @param account_id [String] Social account ID
119
119
  # @param [Hash] opts the optional parameters
120
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
120
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
121
121
  def delete_inbox_message_with_http_info(conversation_id, message_id, account_id, opts = {})
122
122
  if @api_client.config.debugging
123
123
  @api_client.config.logger.debug 'Calling API: MessagesApi.delete_inbox_message ...'
@@ -153,7 +153,7 @@ module Late
153
153
  post_body = opts[:debug_body]
154
154
 
155
155
  # return_type
156
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
156
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
157
157
 
158
158
  # auth_names
159
159
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -499,7 +499,7 @@ module Late
499
499
  # @param message_id [String] The platform message ID
500
500
  # @param account_id [String] Social account ID
501
501
  # @param [Hash] opts the optional parameters
502
- # @return [UpdateRedditSubreddits200Response]
502
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
503
503
  def remove_message_reaction(conversation_id, message_id, account_id, opts = {})
504
504
  data, _status_code, _headers = remove_message_reaction_with_http_info(conversation_id, message_id, account_id, opts)
505
505
  data
@@ -511,7 +511,7 @@ module Late
511
511
  # @param message_id [String] The platform message ID
512
512
  # @param account_id [String] Social account ID
513
513
  # @param [Hash] opts the optional parameters
514
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
514
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
515
515
  def remove_message_reaction_with_http_info(conversation_id, message_id, account_id, opts = {})
516
516
  if @api_client.config.debugging
517
517
  @api_client.config.logger.debug 'Calling API: MessagesApi.remove_message_reaction ...'
@@ -547,7 +547,7 @@ module Late
547
547
  post_body = opts[:debug_body]
548
548
 
549
549
  # return_type
550
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
550
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
551
551
 
552
552
  # auth_names
553
553
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -648,7 +648,7 @@ module Late
648
648
  # @param conversation_id [String] The conversation ID
649
649
  # @param send_typing_indicator_request [SendTypingIndicatorRequest]
650
650
  # @param [Hash] opts the optional parameters
651
- # @return [UpdateRedditSubreddits200Response]
651
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
652
652
  def send_typing_indicator(conversation_id, send_typing_indicator_request, opts = {})
653
653
  data, _status_code, _headers = send_typing_indicator_with_http_info(conversation_id, send_typing_indicator_request, opts)
654
654
  data
@@ -659,7 +659,7 @@ module Late
659
659
  # @param conversation_id [String] The conversation ID
660
660
  # @param send_typing_indicator_request [SendTypingIndicatorRequest]
661
661
  # @param [Hash] opts the optional parameters
662
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
662
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
663
663
  def send_typing_indicator_with_http_info(conversation_id, send_typing_indicator_request, opts = {})
664
664
  if @api_client.config.debugging
665
665
  @api_client.config.logger.debug 'Calling API: MessagesApi.send_typing_indicator ...'
@@ -695,7 +695,7 @@ module Late
695
695
  post_body = opts[:debug_body] || @api_client.object_to_http_body(send_typing_indicator_request)
696
696
 
697
697
  # return_type
698
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
698
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
699
699
 
700
700
  # auth_names
701
701
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -91,7 +91,7 @@ module Late
91
91
  # Permanently delete a webhook configuration.
92
92
  # @param id [String] Webhook ID to delete
93
93
  # @param [Hash] opts the optional parameters
94
- # @return [UpdateRedditSubreddits200Response]
94
+ # @return [UpdateYoutubeDefaultPlaylist200Response]
95
95
  def delete_webhook_settings(id, opts = {})
96
96
  data, _status_code, _headers = delete_webhook_settings_with_http_info(id, opts)
97
97
  data
@@ -101,7 +101,7 @@ module Late
101
101
  # Permanently delete a webhook configuration.
102
102
  # @param id [String] Webhook ID to delete
103
103
  # @param [Hash] opts the optional parameters
104
- # @return [Array<(UpdateRedditSubreddits200Response, Integer, Hash)>] UpdateRedditSubreddits200Response data, response status code and response headers
104
+ # @return [Array<(UpdateYoutubeDefaultPlaylist200Response, Integer, Hash)>] UpdateYoutubeDefaultPlaylist200Response data, response status code and response headers
105
105
  def delete_webhook_settings_with_http_info(id, opts = {})
106
106
  if @api_client.config.debugging
107
107
  @api_client.config.logger.debug 'Calling API: WebhooksApi.delete_webhook_settings ...'
@@ -129,7 +129,7 @@ module Late
129
129
  post_body = opts[:debug_body]
130
130
 
131
131
  # return_type
132
- return_type = opts[:debug_return_type] || 'UpdateRedditSubreddits200Response'
132
+ return_type = opts[:debug_return_type] || 'UpdateYoutubeDefaultPlaylist200Response'
133
133
 
134
134
  # auth_names
135
135
  auth_names = opts[:debug_auth_names] || ['bearerAuth']
@@ -27,7 +27,7 @@ module Late
27
27
  # Template language code (e.g., en_US)
28
28
  attr_accessor :language
29
29
 
30
- # Template components (header, body, footer, buttons). Required for custom templates, omit when using library_template_name.
30
+ # Template components (HEADER, BODY, FOOTER, BUTTONS). Required for custom templates, omit when using library_template_name.
31
31
  attr_accessor :components
32
32
 
33
33
  # Name of a pre-built template from Meta's template library (e.g., \"appointment_reminder\", \"auto_pay_reminder_1\", \"address_update\"). When provided, the template is pre-approved by Meta with no review wait. Omit `components` when using this field.
@@ -92,7 +92,7 @@ module Late
92
92
  :'name' => :'String',
93
93
  :'category' => :'String',
94
94
  :'language' => :'String',
95
- :'components' => :'Array<Object>',
95
+ :'components' => :'Array<WhatsAppTemplateComponent>',
96
96
  :'library_template_name' => :'String',
97
97
  :'library_template_body_inputs' => :'Object',
98
98
  :'library_template_button_inputs' => :'Array<CreateWhatsAppTemplateRequestLibraryTemplateButtonInputsInner>'
@@ -192,6 +192,10 @@ module Late
192
192
  invalid_properties.push('invalid value for "language", language cannot be nil.')
193
193
  end
194
194
 
195
+ if !@components.nil? && @components.length < 1
196
+ invalid_properties.push('invalid value for "components", number of items must be greater than or equal to 1.')
197
+ end
198
+
195
199
  invalid_properties
196
200
  end
197
201
 
@@ -206,6 +210,7 @@ module Late
206
210
  category_validator = EnumAttributeValidator.new('String', ["AUTHENTICATION", "MARKETING", "UTILITY"])
207
211
  return false unless category_validator.valid?(@category)
208
212
  return false if @language.nil?
213
+ return false if !@components.nil? && @components.length < 1
209
214
  true
210
215
  end
211
216
 
@@ -254,6 +259,20 @@ module Late
254
259
  @language = language
255
260
  end
256
261
 
262
+ # Custom attribute writer method with validation
263
+ # @param [Object] components Value to be assigned
264
+ def components=(components)
265
+ if components.nil?
266
+ fail ArgumentError, 'components cannot be nil'
267
+ end
268
+
269
+ if components.length < 1
270
+ fail ArgumentError, 'invalid value for "components", number of items must be greater than or equal to 1.'
271
+ end
272
+
273
+ @components = components
274
+ end
275
+
257
276
  # Checks equality by comparing each attribute.
258
277
  # @param [Object] Object to be compared
259
278
  def ==(o)