late-sdk 0.0.1593 → 0.0.1594

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 347274c41fe1b389f46a58b959d0aa33bcaf5ddecea9ec96c93f9f6522591435
4
- data.tar.gz: c7b7b0b5c6b1fe6124fb500d7e214882c4e7d8b20a6eafa59017acb59b63774d
3
+ metadata.gz: 491af4c0475c70373f4bb443fbbae5eb791c73de2a2975e7c4dda592b6213eb3
4
+ data.tar.gz: 98cbf40e5d1f7aadf0d0aa1aa78b8d6c9c286337f3d113ea08f0c19e5d775553
5
5
  SHA512:
6
- metadata.gz: db5ddf675a7f721a191353c6c01d81bc4e78e12622abe4de52eab41c4e94526eaed070097c6c761b8de0fc7cc101835ccc4cc1d5382d2af9788a2e8c764bb5a0
7
- data.tar.gz: 8119f098e8ce0213937d510fb0c4589fc25f240ebf98cb2d5fc13f1f4f67f9e6eebf7c72c66ba133e4dc53fbc21b04671455c0418e8614e28faaaf519ead1214
6
+ metadata.gz: 0e9782d62875cf7a02d78dd1f24725eb613db72065d0febd8127b025e71420c0484b4fe174487f3b2a6422e1c119aa362db98c3732563a311ce2362d55bc8940
7
+ data.tar.gz: 2b0e7be4f0da9790975975eff6b2c7797d7643f48e1b722288035f6a4e7c98d8a6dce06ceccb637fd10e85dd9fe6445346bb50b09e6b795066581eb50da59b6a
data/README.md CHANGED
@@ -650,6 +650,7 @@ Class | Method | HTTP request | Description
650
650
  *Zernio::ConversionsApi* | [**list_conversion_destinations**](docs/ConversionsApi.md#list_conversion_destinations) | **GET** /v1/accounts/{accountId}/conversion-destinations | List conversion destinations
651
651
  *Zernio::ConversionsApi* | [**list_custom_conversion_goals**](docs/ConversionsApi.md#list_custom_conversion_goals) | **GET** /v1/ads/conversions/custom-goals | List custom conversion goals
652
652
  *Zernio::ConversionsApi* | [**list_event_destinations**](docs/ConversionsApi.md#list_event_destinations) | **GET** /v1/events/destinations | List event destinations
653
+ *Zernio::ConversionsApi* | [**list_events**](docs/ConversionsApi.md#list_events) | **GET** /v1/events | List stored events
653
654
  *Zernio::ConversionsApi* | [**remove_conversion_associations**](docs/ConversionsApi.md#remove_conversion_associations) | **DELETE** /v1/accounts/{accountId}/conversion-destinations/{destinationId}/associations | Remove associated campaigns
654
655
  *Zernio::ConversionsApi* | [**remove_custom_conversion_goal**](docs/ConversionsApi.md#remove_custom_conversion_goal) | **DELETE** /v1/ads/conversions/custom-goals/{goalId} | Remove a custom conversion goal
655
656
  *Zernio::ConversionsApi* | [**send_conversions**](docs/ConversionsApi.md#send_conversions) | **POST** /v1/ads/conversions | Send conversion events
@@ -2826,6 +2827,10 @@ Class | Method | HTTP request | Description
2826
2827
  - [Zernio::ListEmailMessages200Response](docs/ListEmailMessages200Response.md)
2827
2828
  - [Zernio::ListEmailThreads200Response](docs/ListEmailThreads200Response.md)
2828
2829
  - [Zernio::ListEventDestinations200Response](docs/ListEventDestinations200Response.md)
2830
+ - [Zernio::ListEvents200Response](docs/ListEvents200Response.md)
2831
+ - [Zernio::ListEvents200ResponseEventsInner](docs/ListEvents200ResponseEventsInner.md)
2832
+ - [Zernio::ListEvents200ResponseEventsInnerClickIds](docs/ListEvents200ResponseEventsInnerClickIds.md)
2833
+ - [Zernio::ListEvents200ResponseEventsInnerUtm](docs/ListEvents200ResponseEventsInnerUtm.md)
2829
2834
  - [Zernio::ListFacebookPages200Response](docs/ListFacebookPages200Response.md)
2830
2835
  - [Zernio::ListFacebookPages200ResponsePagesInner](docs/ListFacebookPages200ResponsePagesInner.md)
2831
2836
  - [Zernio::ListFacebookTaggedPosts200Response](docs/ListFacebookTaggedPosts200Response.md)
@@ -21,6 +21,7 @@ All URIs are relative to *https://zernio.com/api*
21
21
  | [**list_conversion_destinations**](ConversionsApi.md#list_conversion_destinations) | **GET** /v1/accounts/{accountId}/conversion-destinations | List conversion destinations |
22
22
  | [**list_custom_conversion_goals**](ConversionsApi.md#list_custom_conversion_goals) | **GET** /v1/ads/conversions/custom-goals | List custom conversion goals |
23
23
  | [**list_event_destinations**](ConversionsApi.md#list_event_destinations) | **GET** /v1/events/destinations | List event destinations |
24
+ | [**list_events**](ConversionsApi.md#list_events) | **GET** /v1/events | List stored events |
24
25
  | [**remove_conversion_associations**](ConversionsApi.md#remove_conversion_associations) | **DELETE** /v1/accounts/{accountId}/conversion-destinations/{destinationId}/associations | Remove associated campaigns |
25
26
  | [**remove_custom_conversion_goal**](ConversionsApi.md#remove_custom_conversion_goal) | **DELETE** /v1/ads/conversions/custom-goals/{goalId} | Remove a custom conversion goal |
26
27
  | [**send_conversions**](ConversionsApi.md#send_conversions) | **POST** /v1/ads/conversions | Send conversion events |
@@ -1259,6 +1260,87 @@ end
1259
1260
  - **Accept**: application/json
1260
1261
 
1261
1262
 
1263
+ ## list_events
1264
+
1265
+ > <ListEvents200Response> list_events(profile_id, opts)
1266
+
1267
+ List stored events
1268
+
1269
+ Lists the conversion events stored for a profile by `POST /v1/events`, newest first. Personal data is never returned: `hasEmail`, `hasPhone` and `hasExternalId` only say whether the event carried that identifier. Events sent with `testCode` are not stored, so they never appear here. Paginate with `cursor`: pass the `nextCursor` of the previous page until it comes back `null`.
1270
+
1271
+ ### Examples
1272
+
1273
+ ```ruby
1274
+ require 'time'
1275
+ require 'zernio-sdk'
1276
+ # setup authorization
1277
+ Zernio.configure do |config|
1278
+ # Configure Bearer authorization (JWT): bearerAuth
1279
+ config.access_token = 'YOUR_BEARER_TOKEN'
1280
+ end
1281
+
1282
+ api_instance = Zernio::ConversionsApi.new
1283
+ profile_id = 'profile_id_example' # String |
1284
+ opts = {
1285
+ limit: 56, # Integer |
1286
+ from: Time.parse('2013-10-20T19:20:30+01:00'), # Time | Only events at or after this time (ISO 8601, on the event time).
1287
+ to: Time.parse('2013-10-20T19:20:30+01:00'), # Time | Only events before this time (ISO 8601, on the event time).
1288
+ event_name: 'event_name_example', # String | Only events with this name, such as `Purchase`.
1289
+ cursor: 'cursor_example' # String | `nextCursor` from the previous page.
1290
+ }
1291
+
1292
+ begin
1293
+ # List stored events
1294
+ result = api_instance.list_events(profile_id, opts)
1295
+ p result
1296
+ rescue Zernio::ApiError => e
1297
+ puts "Error when calling ConversionsApi->list_events: #{e}"
1298
+ end
1299
+ ```
1300
+
1301
+ #### Using the list_events_with_http_info variant
1302
+
1303
+ This returns an Array which contains the response data, status code and headers.
1304
+
1305
+ > <Array(<ListEvents200Response>, Integer, Hash)> list_events_with_http_info(profile_id, opts)
1306
+
1307
+ ```ruby
1308
+ begin
1309
+ # List stored events
1310
+ data, status_code, headers = api_instance.list_events_with_http_info(profile_id, opts)
1311
+ p status_code # => 2xx
1312
+ p headers # => { ... }
1313
+ p data # => <ListEvents200Response>
1314
+ rescue Zernio::ApiError => e
1315
+ puts "Error when calling ConversionsApi->list_events_with_http_info: #{e}"
1316
+ end
1317
+ ```
1318
+
1319
+ ### Parameters
1320
+
1321
+ | Name | Type | Description | Notes |
1322
+ | ---- | ---- | ----------- | ----- |
1323
+ | **profile_id** | **String** | | |
1324
+ | **limit** | **Integer** | | [optional][default to 50] |
1325
+ | **from** | **Time** | Only events at or after this time (ISO 8601, on the event time). | [optional] |
1326
+ | **to** | **Time** | Only events before this time (ISO 8601, on the event time). | [optional] |
1327
+ | **event_name** | **String** | Only events with this name, such as &#x60;Purchase&#x60;. | [optional] |
1328
+ | **cursor** | **String** | &#x60;nextCursor&#x60; from the previous page. | [optional] |
1329
+
1330
+ ### Return type
1331
+
1332
+ [**ListEvents200Response**](ListEvents200Response.md)
1333
+
1334
+ ### Authorization
1335
+
1336
+ [bearerAuth](../README.md#bearerAuth)
1337
+
1338
+ ### HTTP request headers
1339
+
1340
+ - **Content-Type**: Not defined
1341
+ - **Accept**: application/json
1342
+
1343
+
1262
1344
  ## remove_conversion_associations
1263
1345
 
1264
1346
  > <RemoveConversionAssociations200Response> remove_conversion_associations(account_id, destination_id, ad_account_id, campaign_ids)
@@ -0,0 +1,20 @@
1
+ # Zernio::ListEvents200Response
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **events** | [**Array&lt;ListEvents200ResponseEventsInner&gt;**](ListEvents200ResponseEventsInner.md) | | [optional] |
8
+ | **next_cursor** | **String** | Pass as &#x60;cursor&#x60; to get the next page; &#x60;null&#x60; on the last page. | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'zernio-sdk'
14
+
15
+ instance = Zernio::ListEvents200Response.new(
16
+ events: null,
17
+ next_cursor: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,46 @@
1
+ # Zernio::ListEvents200ResponseEventsInner
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **event_id** | **String** | | [optional] |
8
+ | **event_name** | **String** | | [optional] |
9
+ | **event_time** | **Time** | | [optional] |
10
+ | **received_at** | **Time** | | [optional] |
11
+ | **action_source** | **String** | | [optional] |
12
+ | **value** | **Float** | | [optional] |
13
+ | **currency** | **String** | | [optional] |
14
+ | **source_url** | **String** | Origin, path and attribution parameters only. | [optional] |
15
+ | **utm** | [**ListEvents200ResponseEventsInnerUtm**](ListEvents200ResponseEventsInnerUtm.md) | | [optional] |
16
+ | **zrn** | **String** | Ad ID from the &#x60;zrn&#x60; parameter Zernio adds to links of ads it creates. | [optional] |
17
+ | **click_ids** | [**ListEvents200ResponseEventsInnerClickIds**](ListEvents200ResponseEventsInnerClickIds.md) | | [optional] |
18
+ | **destinations_sent** | **Integer** | Destinations the event was forwarded to. | [optional] |
19
+ | **has_email** | **Boolean** | | [optional] |
20
+ | **has_phone** | **Boolean** | | [optional] |
21
+ | **has_external_id** | **Boolean** | | [optional] |
22
+
23
+ ## Example
24
+
25
+ ```ruby
26
+ require 'zernio-sdk'
27
+
28
+ instance = Zernio::ListEvents200ResponseEventsInner.new(
29
+ event_id: null,
30
+ event_name: null,
31
+ event_time: null,
32
+ received_at: null,
33
+ action_source: null,
34
+ value: null,
35
+ currency: null,
36
+ source_url: null,
37
+ utm: null,
38
+ zrn: null,
39
+ click_ids: null,
40
+ destinations_sent: null,
41
+ has_email: null,
42
+ has_phone: null,
43
+ has_external_id: null
44
+ )
45
+ ```
46
+
@@ -0,0 +1,20 @@
1
+ # Zernio::ListEvents200ResponseEventsInnerClickIds
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **gclid** | **String** | | [optional] |
8
+ | **fbc** | **String** | | [optional] |
9
+
10
+ ## Example
11
+
12
+ ```ruby
13
+ require 'zernio-sdk'
14
+
15
+ instance = Zernio::ListEvents200ResponseEventsInnerClickIds.new(
16
+ gclid: null,
17
+ fbc: null
18
+ )
19
+ ```
20
+
@@ -0,0 +1,24 @@
1
+ # Zernio::ListEvents200ResponseEventsInnerUtm
2
+
3
+ ## Properties
4
+
5
+ | Name | Type | Description | Notes |
6
+ | ---- | ---- | ----------- | ----- |
7
+ | **source** | **String** | | [optional] |
8
+ | **medium** | **String** | | [optional] |
9
+ | **campaign** | **String** | | [optional] |
10
+ | **content** | **String** | | [optional] |
11
+
12
+ ## Example
13
+
14
+ ```ruby
15
+ require 'zernio-sdk'
16
+
17
+ instance = Zernio::ListEvents200ResponseEventsInnerUtm.new(
18
+ source: null,
19
+ medium: null,
20
+ campaign: null,
21
+ content: null
22
+ )
23
+ ```
24
+
@@ -1262,6 +1262,93 @@ module Zernio
1262
1262
  return data, status_code, headers
1263
1263
  end
1264
1264
 
1265
+ # List stored events
1266
+ # Lists the conversion events stored for a profile by `POST /v1/events`, newest first. Personal data is never returned: `hasEmail`, `hasPhone` and `hasExternalId` only say whether the event carried that identifier. Events sent with `testCode` are not stored, so they never appear here. Paginate with `cursor`: pass the `nextCursor` of the previous page until it comes back `null`.
1267
+ # @param profile_id [String]
1268
+ # @param [Hash] opts the optional parameters
1269
+ # @option opts [Integer] :limit (default to 50)
1270
+ # @option opts [Time] :from Only events at or after this time (ISO 8601, on the event time).
1271
+ # @option opts [Time] :to Only events before this time (ISO 8601, on the event time).
1272
+ # @option opts [String] :event_name Only events with this name, such as &#x60;Purchase&#x60;.
1273
+ # @option opts [String] :cursor &#x60;nextCursor&#x60; from the previous page.
1274
+ # @return [ListEvents200Response]
1275
+ def list_events(profile_id, opts = {})
1276
+ data, _status_code, _headers = list_events_with_http_info(profile_id, opts)
1277
+ data
1278
+ end
1279
+
1280
+ # List stored events
1281
+ # Lists the conversion events stored for a profile by &#x60;POST /v1/events&#x60;, newest first. Personal data is never returned: &#x60;hasEmail&#x60;, &#x60;hasPhone&#x60; and &#x60;hasExternalId&#x60; only say whether the event carried that identifier. Events sent with &#x60;testCode&#x60; are not stored, so they never appear here. Paginate with &#x60;cursor&#x60;: pass the &#x60;nextCursor&#x60; of the previous page until it comes back &#x60;null&#x60;.
1282
+ # @param profile_id [String]
1283
+ # @param [Hash] opts the optional parameters
1284
+ # @option opts [Integer] :limit (default to 50)
1285
+ # @option opts [Time] :from Only events at or after this time (ISO 8601, on the event time).
1286
+ # @option opts [Time] :to Only events before this time (ISO 8601, on the event time).
1287
+ # @option opts [String] :event_name Only events with this name, such as &#x60;Purchase&#x60;.
1288
+ # @option opts [String] :cursor &#x60;nextCursor&#x60; from the previous page.
1289
+ # @return [Array<(ListEvents200Response, Integer, Hash)>] ListEvents200Response data, response status code and response headers
1290
+ def list_events_with_http_info(profile_id, opts = {})
1291
+ if @api_client.config.debugging
1292
+ @api_client.config.logger.debug 'Calling API: ConversionsApi.list_events ...'
1293
+ end
1294
+ # verify the required parameter 'profile_id' is set
1295
+ if @api_client.config.client_side_validation && profile_id.nil?
1296
+ fail ArgumentError, "Missing the required parameter 'profile_id' when calling ConversionsApi.list_events"
1297
+ end
1298
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 200
1299
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ConversionsApi.list_events, must be smaller than or equal to 200.'
1300
+ end
1301
+
1302
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
1303
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling ConversionsApi.list_events, must be greater than or equal to 1.'
1304
+ end
1305
+
1306
+ # resource path
1307
+ local_var_path = '/v1/events'
1308
+
1309
+ # query parameters
1310
+ query_params = opts[:query_params] || {}
1311
+ query_params[:'profileId'] = profile_id
1312
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
1313
+ query_params[:'from'] = opts[:'from'] if !opts[:'from'].nil?
1314
+ query_params[:'to'] = opts[:'to'] if !opts[:'to'].nil?
1315
+ query_params[:'eventName'] = opts[:'event_name'] if !opts[:'event_name'].nil?
1316
+ query_params[:'cursor'] = opts[:'cursor'] if !opts[:'cursor'].nil?
1317
+
1318
+ # header parameters
1319
+ header_params = opts[:header_params] || {}
1320
+ # HTTP header 'Accept' (if needed)
1321
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
1322
+
1323
+ # form parameters
1324
+ form_params = opts[:form_params] || {}
1325
+
1326
+ # http body (model)
1327
+ post_body = opts[:debug_body]
1328
+
1329
+ # return_type
1330
+ return_type = opts[:debug_return_type] || 'ListEvents200Response'
1331
+
1332
+ # auth_names
1333
+ auth_names = opts[:debug_auth_names] || ['bearerAuth']
1334
+
1335
+ new_options = opts.merge(
1336
+ :operation => :"ConversionsApi.list_events",
1337
+ :header_params => header_params,
1338
+ :query_params => query_params,
1339
+ :form_params => form_params,
1340
+ :body => post_body,
1341
+ :auth_names => auth_names,
1342
+ :return_type => return_type
1343
+ )
1344
+
1345
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1346
+ if @api_client.config.debugging
1347
+ @api_client.config.logger.debug "API called: ConversionsApi#list_events\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1348
+ end
1349
+ return data, status_code, headers
1350
+ end
1351
+
1265
1352
  # Remove associated campaigns
1266
1353
  # Unlinks campaigns from a LinkedIn conversion rule so they stop tracking it. Pass `adAccountId` and `campaignIds` as query parameters (`campaignIds` is comma-separated). The route also accepts a JSON body with the same fields for clients that prefer DELETE-with-body, but the documented surface is query-only because some SDK code generators (e.g. Python) collapse query + body parameters with the same name into a single kwarg.
1267
1354
  # @param account_id [String]
@@ -0,0 +1,160 @@
1
+ =begin
2
+ #Zernio API
3
+
4
+ #API reference for Zernio. Authenticate with a Bearer API key. Base URL: https://zernio.com/api Versioning and deprecation: all endpoints are versioned in the URL path (current version: /v1). Breaking changes only ship in a new path version; existing versions keep working. Deprecated operations are marked 'deprecated: true' in this spec and announced in the changelog (https://zernio.com/changelog) before removal. Errors: every 4xx/5xx response is application/json with a machine-readable 'code' and a human-readable 'error' message (see the ErrorResponse schema). Request ids: responses carry an X-Request-Id header with the id we log the request under. Quote it when reporting a problem. A valid x-request-id you send is reused as that id.
5
+
6
+ The version of the OpenAPI document: 1.384.0
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 Zernio
17
+ class ListEvents200Response < ApiModelBase
18
+ attr_accessor :events
19
+
20
+ # Pass as `cursor` to get the next page; `null` on the last page.
21
+ attr_accessor :next_cursor
22
+
23
+ # Attribute mapping from ruby-style variable name to JSON key.
24
+ def self.attribute_map
25
+ {
26
+ :'events' => :'events',
27
+ :'next_cursor' => :'nextCursor'
28
+ }
29
+ end
30
+
31
+ # Returns attribute mapping this model knows about
32
+ def self.acceptable_attribute_map
33
+ attribute_map
34
+ end
35
+
36
+ # Returns all the JSON keys this model knows about
37
+ def self.acceptable_attributes
38
+ acceptable_attribute_map.values
39
+ end
40
+
41
+ # Attribute type mapping.
42
+ def self.openapi_types
43
+ {
44
+ :'events' => :'Array<ListEvents200ResponseEventsInner>',
45
+ :'next_cursor' => :'String'
46
+ }
47
+ end
48
+
49
+ # List of attributes with nullable: true
50
+ def self.openapi_nullable
51
+ Set.new([
52
+ :'next_cursor'
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 `Zernio::ListEvents200Response` 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 `Zernio::ListEvents200Response`. 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?(:'events')
73
+ if (value = attributes[:'events']).is_a?(Array)
74
+ self.events = value
75
+ end
76
+ end
77
+
78
+ if attributes.key?(:'next_cursor')
79
+ self.next_cursor = attributes[:'next_cursor']
80
+ end
81
+ end
82
+
83
+ # Show invalid properties with the reasons. Usually used together with valid?
84
+ # @return Array for valid properties with the reasons
85
+ def list_invalid_properties
86
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
87
+ invalid_properties = Array.new
88
+ invalid_properties
89
+ end
90
+
91
+ # Check to see if the all the properties in the model are valid
92
+ # @return true if the model is valid
93
+ def valid?
94
+ warn '[DEPRECATED] the `valid?` method is obsolete'
95
+ true
96
+ end
97
+
98
+ # Checks equality by comparing each attribute.
99
+ # @param [Object] Object to be compared
100
+ def ==(o)
101
+ return true if self.equal?(o)
102
+ self.class == o.class &&
103
+ events == o.events &&
104
+ next_cursor == o.next_cursor
105
+ end
106
+
107
+ # @see the `==` method
108
+ # @param [Object] Object to be compared
109
+ def eql?(o)
110
+ self == o
111
+ end
112
+
113
+ # Calculates hash code according to all attributes.
114
+ # @return [Integer] Hash code
115
+ def hash
116
+ [events, next_cursor].hash
117
+ end
118
+
119
+ # Builds the object from hash
120
+ # @param [Hash] attributes Model attributes in the form of hash
121
+ # @return [Object] Returns the model itself
122
+ def self.build_from_hash(attributes)
123
+ return nil unless attributes.is_a?(Hash)
124
+ attributes = attributes.transform_keys(&:to_sym)
125
+ transformed_hash = {}
126
+ openapi_types.each_pair do |key, type|
127
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
128
+ transformed_hash["#{key}"] = nil
129
+ elsif type =~ /\AArray<(.*)>/i
130
+ # check to ensure the input is an array given that the attribute
131
+ # is documented as an array but the input is not
132
+ if attributes[attribute_map[key]].is_a?(Array)
133
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
134
+ end
135
+ elsif !attributes[attribute_map[key]].nil?
136
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
137
+ end
138
+ end
139
+ new(transformed_hash)
140
+ end
141
+
142
+ # Returns the object in the form of hash
143
+ # @return [Hash] Returns the object in the form of hash
144
+ def to_hash
145
+ hash = {}
146
+ self.class.attribute_map.each_pair do |attr, param|
147
+ value = self.send(attr)
148
+ if value.nil?
149
+ is_nullable = self.class.openapi_nullable.include?(attr)
150
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
151
+ end
152
+
153
+ hash[param] = _to_hash(value)
154
+ end
155
+ hash
156
+ end
157
+
158
+ end
159
+
160
+ end